Это копия, сохраненная 15 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
У тебя ответ на картинке, если присмотреться.
КУКАРЕКУ
Ой блять подумоешь, точечку поставил и выбирай методы. Вот это я понимаю погроммирование.
КО-КО-КОНТРАВАРИАТИВНОСТЬ
объясните пожалуйста один вопрос, вот допустим у меня в функции main из одного класса есть неупорядоченный массив, и я его передаю в функцию сортировки типа void в другой класс, у меня почему-то и массив, который содержится в main становится упорядоченным, почему так? Разве в java аргументы передаются не по значению, то есть в функциях создаётся копия, которая и изменяется, то есть вне функции значение остаётся неизменным? Или в java существует передача по ссылке? Почему мой массив, который по идее не должен меняться, изменился, то есть стал упорядоченным?
>- Чтение файла в конструкторе может вызвать проблемы, если например объект нужно создать раньше, чем появится сам файл. Это просто замечание на будущее. Для утилиты думаю не критично.
>- Лучше не читать файл в конструкторе, пусть конструктор создает объект, а чтение файла является логикой. А логику лучше вынести в отдельный метод. В случае чего это позволит инициализировать объект без ошибки, если с ресурсом будут проблемы.
Сейчас метод чтения из файла вызывается в конструкторе . Можно вызвать непосредственно в самом методе конвертации и тогда получится, что я буду при каждой конвертации числа без надобности перезаписывать свой мап .Ну или просто убрать из конструктора,сделать паблик и оставить вызов метода на пользователя .Тогда ,думаю, ответят , что конечный юзер должен вызывать только один метод конверт и не ебать голову по поводу вызова других . Как быть?
http://ideone.com/Y3CsGw
Всё правильно написали. Вынеси чтение файла в отдельный метод инициализации init(). При вызове метода convert() проверяй, инициализирован ли конвертер (можешь флаг сделать, например).
Сумеешь ли ты совладать с ним?
> we don't need generics (not sure)
> we don't need private and protected methods
> These things we don't tolerate: unchecked exceptions
https://github.com/yegor256/eo
Прочитал голосом и тональностью, как
>we don't need no education..
Ну, глядишь, так и новые языки Даннинг или Крюгер появятся.
public void writeToDB (String string, int timestamp) {
if (timestamp == null) {
блабла вписать в ДБ строку, используя дефолтный timestamp;
} else {
блабла вписать в ДБ строку, используя timestamp;
}
}
Плодить две разных сигнатуры (с timestamp и без) не вариант вообще.
Можно еще подставлять 0 - но это не так очевидно.
Но можно заменить на Integer timestamp
> две сигнатуры не вариант вообще
А в чем проблема то? Тебе дали полиморфизм, нет, хочу создавать один универсальный для всего метод. Если бы в жаве были параметры по умолчанию, тогда это еще как то оправдано. Но передавать какие то неочевидные нул, 0, -1 и прочие проявления гениальной архитектуры тут лишнее.
Здесь нужен такой подход:
new TimedDbWriter(new DbWriter(), ts).write(string);
или
new DbWriter().write(string);
мимо егор
Разве по бороде и лысине еще не понятно?
Нам, кстати, понравилась конференция в SF. Приглашаем в следующем году: http://www.folsomstreetevents.org/
Начнем с того, зачем ты делало апдейт минорщины? Раз уж прошел квест с конфигурацией eclipse.ini или что там. Используемый компилятор задаётся или конфигурацией проекта в gradle/maven/что-там у тебя, тогда соотвествующий плагин подхватит. Это кошерный вариант. Или компилятор задаётся в настройках проекта Eclipse - этот вариант для будущих адептов Идеи.
Но вангую, учитывая этот момент с минорщиной, все дело в том, что в PATH у тебя нет ничего релевантного, а в конфиге стартера эклипса ты забил абсолютный путь.
Короче, хипсто-школота должна страдать.
А хуй его зачем я обновлял. Короче, снести к хуям jdk и jre и тогда изменить конфиг в мавен ?
Попробуй по - новой, да.
Задумался над тем, что может помочь таким страждущим... Несть им числа https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=eclipse&starCount=0
1455812018,user2,http://ru.wikipedia.org,100
1455812019,user10,http://hh.ru,30
1455812968,user3,http://google.com,60
1455812411,user10,http://hh.ru,90
1455812684,user3,http://vk.com,50
Я создаю ArrayList, и каждую строку делаю объектом с 4-мя параметрами все String. Мне надо над каждым значением производить определенные действия. например сравнить URL второго и 4-го объекта, конвертировать значения timestamp в дату, итд. Как это сделать? И как правильно приводить стринги к интам? так хорошо?
int y = Integer.parseInt(str);
Весь код который пока смог придумать:
public class UserData {
private String UserTimestamp;
private String UserName;
private String UserURL;
private String UserTimeOnPage;
public void show (){
System.out.println(UserTimestamp+" "+UserName+" "+UserURL+" "+UserTimeOnPage);
}
UserData(String UT, String UN, String UU, String UTOP){
UserTimestamp=UT;
UserName=UN;
UserURL=UU;
UserTimeOnPage=UTOP;
}
}
public void getData() {
String csvFile = "D:\\JAVA\\Путь\\Input\\file1.csv";
BufferedReader br = null;
String line ="";
String cvsSplitBy = ",";
//Map staff=new HashMap<String, UserData>();
ArrayList<UserData> list = new ArrayList<UserData>();
int i=0;
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] country=line.split(cvsSplitBy);
UserData ff=new UserData(country[0], country[1], country[2], country[3]);
list.add(i,ff);
i++;
}
Спасите и сохраните!
1455812018,user2,http://ru.wikipedia.org,100
1455812019,user10,http://hh.ru,30
1455812968,user3,http://google.com,60
1455812411,user10,http://hh.ru,90
1455812684,user3,http://vk.com,50
Я создаю ArrayList, и каждую строку делаю объектом с 4-мя параметрами все String. Мне надо над каждым значением производить определенные действия. например сравнить URL второго и 4-го объекта, конвертировать значения timestamp в дату, итд. Как это сделать? И как правильно приводить стринги к интам? так хорошо?
int y = Integer.parseInt(str);
Весь код который пока смог придумать:
public class UserData {
private String UserTimestamp;
private String UserName;
private String UserURL;
private String UserTimeOnPage;
public void show (){
System.out.println(UserTimestamp+" "+UserName+" "+UserURL+" "+UserTimeOnPage);
}
UserData(String UT, String UN, String UU, String UTOP){
UserTimestamp=UT;
UserName=UN;
UserURL=UU;
UserTimeOnPage=UTOP;
}
}
public void getData() {
String csvFile = "D:\\JAVA\\Путь\\Input\\file1.csv";
BufferedReader br = null;
String line ="";
String cvsSplitBy = ",";
//Map staff=new HashMap<String, UserData>();
ArrayList<UserData> list = new ArrayList<UserData>();
int i=0;
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] country=line.split(cvsSplitBy);
UserData ff=new UserData(country[0], country[1], country[2], country[3]);
list.add(i,ff);
i++;
}
Спасите и сохраните!
Уже исправил без переустановки, просто поменял конфиги и все заработало. И ты ошибся на счет хипстера-школоты.
Ты читать умеешь?
Меняй название полей на нормальные, и из строк переводи в правильные типы - long/Date. Сделай класс маппер с методом парсинга, который будет из массива строк делать нормальный объект UserData.
Что бы парсить Date можно использовать DateFormat, что бы парсить в long/int можно использовать соответсвенные статические методы Long::parseLong и Integer::parseInt
как же приятно вкатываться в жаву зная кресты ^^. Жава кстати лучше.
Если вдруг у кого найдётся немного времени, чтобы посмотреть проект и написать замечания по архитектуре/стилю - буду признателен. Замечания по грамматике английского в джавадоке тоже приветствуются.
https://github.com/anatoly-shamov/intern-dev-task
one
two
three
и потом построчно считывать их и забивать в стринговый массив. Какое расширение файла использовать обычный .txt или может есть какие-то аналоги именно для хранения ресурсов в джаве, как например .property?
Очень жирный код, слишком много enterprise приседаний, за которыми не видно сути задачи. Может это и есть правильный java код, и определенно он демонстрирует способности к программированию, но еще больше он демонстирует лояльность к жава-макакингу.
Ну серьёзно, какая нахуй архитектура? В общем, я бы предпочел посмотреть на решение, укладывающееся в 100 строк. Хотя видел успешные попилы долгострои, пишущиеся в таком стиле.
.dat ne sud'ba?
>>875477
Спасибо за мнения.
Собственно, меня и интересует "джава-макакинг", то бишь разработка приложений для бизнеса, а там гибкость и будущая сопровождаемость важнее лаконичности и чистоты. Поэтому и старался писать энтерпрайзно (насколько я это понимаю), выделять слои, декомпозировать функциональность по отдельным сервисам, писать на уровне интерфейсов и т.п.
Решение "на 100 строк" было готово в первый день, но я подумал, что оно более уместно для реального тестового задания с ограничением по времени, чем для проекта, который делается ради интереса и практики (ну и как заполнитель для гитхаба). Подобных сниппетов я набросал уже достаточно, проходя джавараш, и мне такой подход не очень нравится.
Если рассматривать проект и код с такой точки зрения - он скорее годный или скорее говно?
Ради лулзов, если там действительно 100 строк (может даже с каким то трюком, как стострочных excel-ях на js), мог бы выложить в соседнем репозитории. Чтобы показать, что жаба не весь мозг съела.
>рассматривать проект и код с такой точки зрения
То это уже схоластика получается. Можно было бы еще побить на компоненты и связать их через apache camel, то же что -то демонстрирует, но читать код так же неприятно. Даже javadoc комментарии напрягают но для демонстрации лояльности джуна, может так и надо, хз. Все же это не библиотека, для прикладного кода комментария к классу необходимо и достаточно (хотя для кого-то и это лишнее).
Решение должно быть соразмерно задаче. Сейчас все молодые, веселые, даже в мире жабы двигается microprofile.io. Поверь, не только в тырпрайзной жабе интересно и вкусно. Проще иметь стострочный микросервис, который легко переписать или выкинуть, чем развесистый слоёный тырпрайз пирог, от которого кормится бригада.
Про 100 строк я приукрасил, конечно, там было несколько сотен, и я его не сохранил, увы. Ничего такого - просто тупое консольное приложение, по классу на каждый крупный блок функциональности, заготовка, короче.
Javadoc писался ради самого javadoc'a (пощупать что это и "как его готовить") и "демонстрации лояльности", да. Сам я насмотрелся на код без единого коммента и у меня небольшая аллергия на него (подробнее будет в конце).
Про соразмерность задаче - проект делал "по мотивам" тестового задания, поэтому задачу в целом формулировал себе сам. А именно - написать законченное enterprise-style приложение, применяя приобретенные ранее навыки (книжки/курсы по core, пресловутый джавараш, онлайн-курсы по EE (spring/hibernate)), настроить под него окружение (Ubuntu Server, MySQL, Tomcat, Nginx) и запустить "в продакшн". Своеобразный экзамен.
>Проще иметь стострочный микросервис
Про микросервис - спасибо за замечание. Я сам собираюсь второй учебный проект делать в виде "микро-REST-сервис" + простенький фронт на Spring MVC. Потому что действительно немного подзадолбался, размазывая эту кашу по классам и интерфейсам.
>Сейчас все молодые, веселые, даже в мире жабы двигается microprofile.io.
>Поверь, не только в тырпрайзной жабе интересно и вкусно.
Ну, я уже не очень молодой и слегка побитый жизнью (8,5 лет 1С-макакинга, последние 3 года - сеньор/техлид на больших проектах), так что профдеформация имеет место быть. Буду ломать себе шаблон.
У тебя свалка зависимостей вместо пом файла.
От твоих дао течет кровь из глаз. Раз уж ты делаешь приложение на основе спринга и хибернейта, то посмотри в сторону Spring Data.
У тебя в ентити целых три поля с именем time и все три разных классов. Лично я их не различаю. Зато ты откомментировал каждый сеттер и геттер, круто.
Ну и дальше я не смотрел.
>У тебя свалка зависимостей вместо пом файла.
А как лучше организовать POM? Вынести версии в properties? Как-то разбить его по блокам функциональности/фреймворкам?
>От твоих дао течет кровь из глаз. Раз уж ты делаешь приложение на основе спринга и хибернейта, то посмотри в сторону Spring Data.
Можно про кровь из глаз поподробнее? Spring Data посмотрю, спасибо.
>У тебя в ентити целых три поля с именем time и все три разных классов. Лично я их не различаю. Зато ты откомментировал каждый сеттер и геттер, круто.
Спасибо, поправлю. Про геттеры и сеттеры прочитал в рекомендациях по написанию javadoc, что лучше комментить не private поля, а их public геттеры/сеттеры.
>Ну и дальше я не смотрел.
И на этом спасибо!
Не оценил юмора.
Итераторы правда не нужны.
если ты конечно не пишешь что-то ну очень низкоуровневое, что тебе может быть и понадобится он
Ну, например, чтобы пройти по коллекции и удалить какие-нибудь элементы.
Расскажите как работает for изнутри.
for (Object o : objects) {...}
Реальный вопрос с собеседования.
Как обычный for? Только конпелятор расписывает сахар в привычную форму?
Object o;
for (int i=0; i< objects.length; i++){
o = objects;
...;
}
Спасибо, мы вам перезвоним.
там под капотом итератор используется, while (hasNext) next ну и т.п
Ну блять, это естественно же. Я то и на х86 ассемблере писал вот это вот все, не сильно сложнее фор изнутри, чесслово. А зачем знать байткод жвм на собесе. наверное потому что рожей не выщел и надо отказать вежливо.
Теперь напишите класс "односвязный список" и сделайте так, чтобы он работал с for.
Какова будет сложность прохода?
Ой на ночь сочинять не хочу, помню что писал такую фигню за 10 минут, еще когда джавакор изучал, дял практики. Тут соглашусь что неосиливший недостоин.
Вот ссылка на код: http://ideone.com/NjJwek
Помогите, плиз, кто шарит, а то я в растерянности.
> реквестирую годных книг, видосов, курсов по spring и вообще как вкатиться в него
бамп
Ну же аноны не хотят поделиться годнотой
Благодарю, почитаю.
Это наше божество, одно из, оно смотрит твой код, и направляет тебя на путь истинный.
>>875924
Направление на путь истинный обычно выражается в форме так называемых "compilation error". Только просветлённые могут понимать знаки божества.
С долгим опытом медитаций, начиаешь понимать его лучше и лучше.
Да я только вкатился, ребят, а вы мне про какие-то божества затираете. Можете конкретно пояснить, в чём моя ошибка?
не Исиджи, а Исиджей, неверный
Божество даровало тебе откровение - "unclosed string literal". Иди и медитируй над ним, чтобы постичь суть учения Джава.
Пожалуйста. Ткните меня в косяк c итератором.
Короче, если в коллекции 4 треугольника - он выводит два. Если меньше, то NoSuchElement. При том, что, вроде как, я проверяю на it.hasNext и всё такое
[code]
Collections.sort(list, new CompSM());
it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next() + " S=" + it.next().s());
}
[/code]
Но там же две кавычки, одна открывает, другая закрывает. Unclosed это же незакрытый? Там же строка в двух кавычках.
Два раза вызывается it.next().
Сделай так:
while (it.hasNext()) {
Triangle t = it.next():
System.out.println(t + " S=" + t.s());
}
Я не смотрел, какие у тебя там типы, просто вместо Triangle подставь тип, который у тебя обозначает треугольник.
\u0022? Так она же в виде unicode последовательности, разве так нельзя? Внутри строки же допустимы unicode последовательности.
он самый, Triangle.
ЗЫ. Хотел было спросить, в каком смысле два раза - пока пиал вопрос просёк.
tnx.
ЗЗЫ. Всё же выводить через Arraylist'овский get мне нравится больше. В чём профит итератора?
Блять, очевидно же что тебе это задание дали, чтобы ты понял эту особенность блять парсера, ты не понял, тебе показали, ты споришь, хватит меня троллить своей тупостью.
Ты не я, не ври.
В том, что код с итераторами у тебя будет работать обратно совместимо аж до версии 1.2, если мне память не изменяет. Enhanced for loop и StreamAPI - это всего лишь синтаксический сахар, как сказал анон выше, под капотом используются те же итераторы.
Ну ладно, няш, чего ты злишься :3
Пояснил бы, что unicode последовательности преобразуются при самом первом проходе компилятора по исходнику, а уже потом в дело вступает лексический парсер, я бы от тебя отстал. А ты сразу ругаться. Ну, не сразу, но всё же.
Извини друг, погорячился.
Зачем мне нужна обратная совместимость? В конце концов везде ведь автообновления и прочее?
>Enhanced for loop и StreamAPI
А это что..?
И вообще, а хорошо ли это, создавать лишний объект. когда его можно не создавать?
>Зачем мне нужна обратная совместимость
Тебе - не нужна.
А вообще - произвольный (get) и последовательный (iterator) доступ имеют разную вычислительную сложность на разных коллекциях.
>Зачем мне нужна обратная совместимость? В конце концов везде ведь автообновления и прочее?
Ну хуй знает, может доведётся ковырять какое-нибудь легаси-говно, написанное на 1.4, а ты про итераторы не знаешь и не сможешь покопаться в коллекции.
Enhanced for loop уже встречался здесь. Есть, например, обычный for, который с индексами (for (int i = 0; i < x; i++) {...}), а есть улучшенный for, который можно использовать в тех случаях, когда тебе на индексы похуй и нужно просто пробежаться по коллекции.
Например:
List<Triangle> triangles = getTriangles();
for (Triangle t : triangles) {
t.draw();
}
То же самое с обычным for:
List<Triangle> triangles = getTriangles();
for (int i = 0; i < triangles.size(); i++) {
triangles.get(i).draw();
}
Как видишь, код стал немного меньше и тебе уже не надо заботиться об индексах и о том, чтобы не проебать границы списка.
Stream API - это новая фича 8 жабы, там дохуя синтаксического сахара для коллекций. В частности, если взять наш пример, то можно написать так:
List<Triangle> triangles = getTriangles();
triangles.forEach(t -> t.draw());
Как видишь, у коллекций появился метод forEach, который позволяет перебирать её элементы, как и обычный for, только кода стало ещё меньше за счёт введения дополнительных слоёв абстракции.
так, так уже понятнее.
>(t -> t.draw())
А вот эта конструкция? В С++ ведь -> - оператор доступа? Тут тоже? А по нормальному, с точками, нельзя?
не то чтоб я сильно понял, но буду гуглить.
А теперь не подскажет мне кто, почему джава перестала есть русский язык? И где это поправить?
Пока есть вариант, что у тебя какая-то хуйня с кодировками.
http://stackoverflow.com/questions/13898578/making-cyrillic-readable-for-the-scanner-object-in-java
Например, из первого попавшегося.
Окей, при установке виндовский кодировки это исправилось, но я был уверен, что там по умолчанию Unicode. А он должен бы работать, хм.
http://pastebin.com/Y0qyk0Bj
System.out.println("\nТеперь введите имя.");
s=sc.nextLine();
list.add(new Triangle(a, b, c));
list.get(list.size()-1).nameIt(s);
Мне интересно только, почему он вообще не выполняет ввод строки, перескакивая в начало цикла
> почему он вообще не выполняет ввод строки, перескакивая в начало цикла
Так может ты в начале 0 вводишь. Или ты под отладчиком это увидел?
System.out.println("Хотите ли вы задать имена? \nВведите 0 - чтоб отказаться\n");
boolean bll = true;
if (sc.nextInt() == 0) {...}
Вот тут.
Ну, комментарий "Введите имя" - выводится только если в начале был не ноль.
И вообще я тут всё похерил играясь с кодировочками. Так что переписываю с точки восстановления.
Потому что вместо ArrayList'а у тебя должен стоять List. И привалить тебе может не ArrayList, а какой-нибудь LinkedList.
Теперь посмотри реализацию get(int index) во всех версиях и сам ответь на свой вопрос.
Interface-based programming.
Эта же лютая хуета - делать переменную со значением по-умолчанию вне try в этом случае, а в самом try менять ее. Если будет ошибка - мне не нужно, чтобы код продолжал работать и возвращал всякую левую хуйню.
Вангую, что ты обрабатываешь исключение в этом методе, а нужно обрабатывать его в вызывающем коде. В самом методе прописать его через throws, а блок catch удалить.
Подсчёт частоты встречаемости слов в тексте.
Олимпиадки?
Тащемта в них нечего копаться. Чтобы понимать коллекции, надо кампухтер саенс учить, а не collection api.
А зачем? В учебнике описываются стек, очередь, хеш-таблицы, древовидные структуры. Что еще я должен знать?
Подскажите. Вкатываюсь в ЕЕ.
На сколько необходимо задрачивать XML?
DOM, SAX, StAX, JAXB, JSON, XStream вроде как осилил. Хватит ли этого? Вообще, на сколько часто используется в работе? Стоит ли заморачиваться с DTD и Сеткой?
>>876345
Да и все. Всё остальное всякие разновидности. Топ лвл - напейсать свою имплементацию этого говна в каком-то рабочем виде. Нету тут рокет сайенса, но я так вижу 99% на этом отсеиваются.
Ну XML так или иначе в ЕЕ везде попадается, в основном конфиги. А ежели будет что-то специфическое то выучишь за вечер, делов то. А вообще лишних знаний наверное не бывает, дрочи все что нравится, главное адекватно воспринимай актуальность технологии.
пишем в телеграмм не стесняемся @christianlisov
работаю сисадмином в одной конторке никак не связанной с ит, круг задач крутится вокруг сопровождения openvpn аля mikrotik для жесткой связи удаленных офисов, поддержке asterisk телефонии с транками, и несколько серверов 1с, ad dc. В целом настоебало управлять всем этим скудным аркестром, т.к автоматизировал все что можно. Хочу обмазаться тырпрайзами, вот и ищу кто возьмет под крыло
URL url = new URL(this.url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = connection.getResponseCode();
Интересует вторая строчка. Переменной connection типа HttpURLConnection присваивается ссылка на объект типа URLConnection. Но как connection может использовать методы HttpURLConnection?
>Переменной connection типа HttpURLConnection присваивается ссылка на объект типа URLConnection.
Но ведь это не так.
>(HttpURLConnection)
Ссылка на URLConnection явным образом преобразована к HttpURLConnection. Если там вдруг окажется не HttpURLConnection, а, например, JarURLConnection, ты получишь в рантайме ClassCastException.
>Но ведь это не так.
openConnection()
Returns a URLConnection instance that represents a connection to the remote object referred to by the URL.
Всё верно написано. Только URLConnection - абстрактный класс, так что возвращается instance одного из его наследников, который, тем не менее, является "a URLConnection instance".
>>876549
И вообще я про другое.
>Переменной connection типа HttpURLConnection присваивается ссылка на объект типа URLConnection.
На самом деле должно выглядеть как:
Ссылке connection типа HttpURLConnection присваивается ссылка типа HttpURLConnection на объект типа (условно, хз какой он на самом деле) HttpURLConnectionImpl.
В дескрипторе объекта (на который указывает ссылка) отдельно хранится ссылка на Class, предоставляющий информацию о типа, и на объект в куче. Поскольку условный HttpURLConnectionImpl является наследником URLConnection и HttpURLConnection - то всё работает нормально. Но если ты вместо HttpURLConnectionImpl получишь из URL JarURLConnectionImpl, который не является HttpURLConnection то будет ошибка при приведении типа ссылки в (HttpURLConnection).
>отдельно хранится ссылка на Class, предоставляющий информацию о типа, и на объект в куче
мать её рука ебал, нечетко сформулировал
отдельно хранятся два указателя: 1. на объект типа Class, предоставляющий информацию о типе (в частности, о методах); 2. на память, выделенную для данных объекта в куче
Не так давно начал учить си асмы и прочие эксплоиты, и так и учил по сию пору, пока не понял, что этим мне не заработать даже на спички. Поэтому я теперь тут буду, с вами.
Добро пожаловать, здесь все твои друзья, внимательно изучи шапку. Я кстати, тоже по такому пути прошел, даже схемотехникой увлекался и асмы на свое виртуальное железо и вот это во все. Но настало время слезать с шеи мамки и взрослеть.
Благодарствую, уже изучаю и качаю книгу для даунов
Им для этого не хватало твоего ценного совета, ага.
ВОТ ЭТО ПОВОРОТ
Не, я не ханжа, если это одноразовая страничка типа сделал-и-забыл, то почему бы и нет?
Но когда у тебя из нескольких JSP идёт обращение к одному источнику данных - это не наводит тебя на мысль убратьнахуй логику взаимодействия с базой данных из слоя представления?
У меня этих страниц всего штуки три, в каждой по одному запросу - простая плоская таблица. Хотя да, ты заставил меня задуматься.
Если используешь spring&hibernate, то гугли что-то типа spring.jpa.hibernate.ddl-auto=update
Мне туда мотаться надо, ибо хорошего аттестата не видать. Так что сделать надо, но я чет не одупляю. Мне сказали, что начать надо как-то с уравнения окружности, но я не понимаю, как его применить, может я еще слишком мало в джаве знаю, что б такое юзать
Майнкрафт - это такое уникальное явление, что про него даже на java.com есть отдельный пункт в FAQ-е: https://www.java.com/ru/download/faq/minecraft.xml
А гугол зачем бля, вроде это через синусы косинусы решается в 2 строки.
Двачую адеквата.
Например мне дали задание задевать что-то.
Я знаю требования к своей java компоненте, что дальше?
Я должен накидать диаграмму модулей, потом разбить модули на классы?
Как лучше выделять слои/модули/связи между ними и тд. Где это почитать?
Гуглил, выдает всякие паттерны, но чтоб понять какой патерн применять, надо уже разбивку на модули хотябы иметь.
Посоветуете?
>А старших как бы и нету.
Куда они делись? Может быть, нужно думать о том, как свалить подобру-поздорову из этой подозрительной компании?
У нас например толстый клиент написан на спринге и там нет автосканинга, потому что оно сканит слишком уж медленно.
Они только в этом году внедрили систему, которую пилили подрядчики, а на поддержку взяли джунов. Есть миддл который проработал полгода, но по его навыкам я бы миддлом не назвал
java -jar utility.jar -n 5 -l 2000k -o output_folder -f links.txt
Где n - количество одновременно качающих потоков
l - общее ограничение на скорость скачивания, для всех потоков, размерность - байт/секунда
Так вот, как заимплементить ограничение на скорость?
Буфферед ридер?
На гитхабе полно проектов, выбирай любой.
Проверил, там ничего нет.
Задача:Создайте массив из всех нечётных чисел от 1 до 99, выведите его на экран в строку.
Решение:
public class java01 {
public static int[] makeArr(int[] arr) {
for (int i = 1, j = 0; i <= 99; i++) {
if (i % 2 == 1) {
arr[j] = i;
j++;
}
}
return arr;
}
public static void showArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr + " ");
}
System.out.println();
}
public static void showMirrArr(int[] arr) {
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = new int[50];
arr = makeArr(arr);
showArr(arr);
showMirrArr(arr);
}
}
Задача:Создайте массив из всех нечётных чисел от 1 до 99, выведите его на экран в строку.
Решение:
public class java01 {
public static int[] makeArr(int[] arr) {
for (int i = 1, j = 0; i <= 99; i++) {
if (i % 2 == 1) {
arr[j] = i;
j++;
}
}
return arr;
}
public static void showArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr + " ");
}
System.out.println();
}
public static void showMirrArr(int[] arr) {
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = new int[50];
arr = makeArr(arr);
showArr(arr);
showMirrArr(arr);
}
}
Все делается в две строки:
int[] arr = IntStream.rangeClosed(1, 99).filter(i -> i % 2 == 1).toArray();
System.out.println(Arrays.toString(arr));
Что за чушь? Хэш-код - это лишь ключ к корзине (bucket), в которой лежат сами объекты.
Тебе чтоли надо найти элемент по хэш-коду?
>>877273
Java-8
>Хэш-код - это лишь ключ к корзине (bucket), в которой лежат сами объекты.
HashMap() содержит пару ключ+значение и передаются ему ключ и значение <K,V>, где хеш-код ключ. В HashSet() передается хуй знает что <E> - что это? Ключ или значение?
10 из 10, базарю, еще захочешь.
Плюсы мне не нравятся. Так что спрашиваю в этом треде.
внутри hashset инкапсулирована hasmap, а значением для всех ключей служит единственный object. кури исходники
Работа в группах большинству помогает учиться, это что касается вопросов о работе в парах. Естественно, задачки и упражнения нехуй друг другу решать
Мы тебя услышали.
Конечно при хороших знаниях другого языка, тоже можно хорошо получать.
Но вот вакансий от 150 000 рублей, в вашем языке больше всего. Причем с огромным таким отрывом.
Очень интересно было бы услышать ваше мнение, почему так сложилось ?
>почему так сложилось
Обмажешся жава тырпрайзами и будешь за 150к ворочить тяжелые неповоротливые проекты, при этом в реалях сегодняшнего для то годный жава девелопер должен уметь еще и в DevOps, и в какой нибудь SAP js фреймворк на фронденде. Суть в том что бы быть успешным жава волшебником нужно управлять целым аркестром. Еще дохуя софта для крупных контор пишется на java - аля платежные системы для банков, crm для крупных предприятий и т.д. Отсюда и 150-200к зп
Как настроить идею? Все по кодстайлу под чистый код настроил. Но есть проблемы с "edit configuration"
Настраиваю под приложение, но все равно он не дает сделать дебаг. Есть какие нибудь гайды? Киты разумеется стоят, в настройках выбирал их.
Если ты не справился с запуском хеллоуворлда из идеи, то программирования - определенно не твоё.
> Но есть проблемы с "edit configuration"
Вангую, ты тупо намудрил в одном из стартовых экранов и пишешь проект на скале под андроид 2.3. Все, что от тебя требуется - указать путь до ждк, никаких шаблонов.
Засоветуй годноты за биг дату и хадуп в частности. Питон учить пока не готов, поэтому годнота нужна или отвязанная от питона языка, либо сразу под язык кровавого тырпрайза.
Помогите пожалуйста разобраться с таким моментом наследования.
Есть два класса:
public class A{
int x = 10;
public static void main(String[] args) {
A a = new B();
System.out.println(a.x );
}
}
public class B extends A {
int x = 5;
}
В итоге выполнения кода получаем ответ - 10. Почему мы не получаем значения поля класса наследника?
public String foo(){
....String tempString = "hello";
....Vector v = i.getVector();
....Iterator i = v.iterator();
....while(i.hasNext()){
........String s = (String) i.next();
........if(s.equals(tempString)){
........return s;
}
}
}
Почему?
Я же написал что путь до китов установил, последняя версия
Скачивал именно ЖДК
А про скалу - вряд ли, в стартовых ничего не менял
Алсо, писал приложения уровня крестики нолики (текстовый вариант) в нетбинсе, все было норм. Так что ошибок в коде скорее всего нет.
Допустим есть стринговская переменная "0x0022", сразу видно, что тут гексовская величина. Так вот, как мне вернуть это значение в гексах?
Попробуй Integer.parseInt(String s, int radix)
Правда, не уверен, что сработает с таким способом записи.
2. Какими IDE?
Сам сейчас в Win7 + Intellij Idea. Планирую перебраться в ArchLinux и продолжить юзать II.
3. Всё правильно делаю?
А мог бы учить Javascript.
звучит как вызов.
зачем ты такой не экосистемный? купи гейбук, гейфон, гейпад, гейпод, дилдак и в бой, в рамках няшной экосистемы.
а по факту - всё делаешь правильно.
> 2016
> не иметь опыта с серверами, скриптами и никсами
> и при этом не знать Javascript.
Are you a madman?
Ты неправильно задаешь вопрос. Ответы очевидны, особенно второй.
Нужно иначе.
Какими Git-клиентами пользуется анон?
>Какими Git-клиентами пользуется анон?
Очевидный SourceTree, кракен это тормознутое говно внутри браузера
Тормозное говно с налетом джавы и свинга вместо интерфейса. Без всяких профитов.
Слышь, дед, слышал что в джаву добавили? Теперь там можно использовать сахарок дженериков.
Двачую. Ваще охуели пидоры.
Двачую, а если жрать каждый день говно, но убеждать себя, что это не говно, то жрать говно становится легче.
Git bash.
Гитхабен? Лови фашиста!
Ой, все.
Boolean.TRUE.
Наткнулся на лекции данного господина и чёто проиграл.
https://www.youtube.com/watch?v=DcFWgoKs5B0&list=PLd3UqWTnYXOnubQH6Gt8O8Dg-115U0ftk
Из трех известных способов кивания индусами головой, он задействовал пока только один...
Захотелось написать парсер индусского головного киваинга, запилить эмоциональную контектную оценку производимого кивка или последовательности кивков, жаль я только синтаксис пока учу
А чё, нормально говорит, почти всё различимо. Ну оно и понятно - преподаватель, всё-таки. Вот с поддержкой индусской голосом общаться - полный пиздец.
Охуеть, дорогой, тебя хотели поиметь. Использовать неоплачиваемый труд для затыков внутренних бизнес-процессов. Озвучь имя конторы. Ну хоть что-то о ней.
А мог ли он свой тадемарк поставить на этот код, еслиб его запили, типа нельзя юзать без моего согласия
Академ Медиа
Как у них работается.
https://itunion.info/2015/01/novosibirskij-tehnopark-rabota-za-edu-i-macbook.html
Как они наябывали на даллары, прочитай там же первый коммент.
https://roem.ru/08-02-2016/218744/akadem-media-twitter/
Пост об одном из их приложений на зарубежном ресурсе.
http://blogs.wsj.com/cmo/2015/07/23/watch-in-app-mobile-ad-fraud-in-action/
Сотрудники даже паблик "подслушано" сделали где все проигрывают с этой конторы и заводят трактор из неё. ttps://vk.com/public71575730
Такие дела, правда когда написал что с заданием не справился, они попросили прислать хотя бы наработки, а у меня даже их нет, просто пиздец эта Jira с плагинами.
>попросили прислать хотя бы наработки
Ну а что, на халяву и уксус сладкий - подлатали бы что есть и был бы у них active stream
Даже если бы у меня что-то было, вряд ли они смогли бы подлатать.
>>879625
Ох, вспомнил ещё, на собеседовании говорили что вот если устроюсь то будет собственно Jira с java, ну и ещё возможно python + django, т.к. у меня это было указано в резюме.
Допиливать её самодельными плагинами.
Удобною
На одной из прошлых работ они поддерживали SAP. Однажды упала вся корпоративная почта, а нужно было срочно поправить какую-то специфическую для России форму отчётности. После трёх попыток пообщаться (я с индусом из поддержки, я + начальник с fluent english с индусом из поддержки, я + начальник с fluent english с начальником-индусом из поддержки с "fluent english"), мы забили болт и в дальнейшем общались с ними письменно. А на претензии со стороны наших отделов (типа "а чё вы им по почте пишете, быстрее же позвонить") - проигрывали запись разговора, после чего претензии снимались. Причём письменно они общаются вполне прилично. Только жадные шопиздец, но это отдельная история.
И как он помешает ВЗЯТЬ @ И ИСПОЛЬЗОВАТЬ РАБОТУ ЛОХА?
>>879657
Добавил в беклог таску объяснить зачем нужна жира.
Неоплачиваемые тестовые задания длительностью более 5 часов идут нахуй по определению.
Ну тип..запетил..низяа как работает машинка джавы? Они компилит сорсцы в байткод - а байткод это такой асм на специальную машину? можно ли там чего нахимичить злодеям?
Можно, но сложно. Конечно то и дело находят уязвимости, но это касается всех виртуалок.
Как и ожидалось от джава папаши
А можно еще обфускатором отполировать. Анон в ситреде кидал такой, который все в mov превращает, даже небо, даже аллаха.
На любом нормальном собесе смотрят исходники. Можно конечно в начале вкинуть обфусцированный код, а исходники только с рук показывать, с монитора своего ноута, но если тебя хотят наебать - то в лучшем случае ты потратишь эти 5 дней зря. Не стоит того вообще.
http://pastebin.com/C5ANH5cs
Можно здесь без тега <c:set> обойтись и как-нибудь прокинуть объект book прямо в <c:import> ?
Не знаю, связано ли это с их менталитетом, или ещё с чем-то, но любые доработки у них стоили совершенно безумных денег. Например, доработать регламентированную форму из четырёх колонок в SAPе, добавив ещё четыре колонки, стоило 15000 франков (швейцарских). Причём данные в "новых" колонках использовались те же, что и в "старых" (обычный для России продукт законотворчества очередного разрешительно-запретительного министерства). Как рассказал наш собственный САПер, который в итоге и наваял эту несчастную форму, формула у них была очень простая - 1500 за колонку + 1500 за работу в целом, и это всё умножить на 2 за срочность. Причем "срочность" была - две недели. В результате, чуть больше недели из этих двух мы потратили на переписку с головным офисом в стиле "Они охуели!" - "Да, они охуели, но у нас стандартные процедуры, вы не можете выполнять доработки самостоятельно." - "Да, но ОНИ ОХУЕЛИ!", и два дня на саму форму.
> SAP
> удивляться почему любые денежные суммы, будь то затраты, цены или зарплаты на специалстов, сильно завышены
Конкретно твой приведенный пример не про индусов. Такая хуйня с любыми партнерами и интеграторами SAP, где умеют считать деньги и знают сколько за это возьмет рынок, и требуют соответственно.
Не уверен, что они "умели считать деньги", т.к. в итоге их сменили из-за таких вывертов. А "рынок" всегда готов прогнуться под жирного заказчика.
В HashSet хранимый объект это одновременно и ключ, и значение.
Если ты посмотришь в исходники HashSet, то увидишь что под капотом у HashSet находится инстанс HashMap-ы, у которой ключами (key) являются хранимые объекты, а всеми значениями ссылка на объект-затычку (dummy).
Получить доступ элементу сета можно только через обход всей коллекции
Всего <1гб, что не так?
Нахуя нужен нетбинс при наличии идеи? НАчинал кодить на этом говне, рад что это прошло как страшный сон.
>Нахуя нужен нетбинс при наличии идеи?
Я видимо зажрался, но идея тоже кажется уже не торт.
Хочется укатиться на Atom/VSC, которые жрут обычно пару сот МБ, против гибайтов IDEA и запускаются за секунды.
Да в них нет таких хитрожопых рефакторингов и миллиона подсказазок про самые тупы ошибки.
Но Java/C#/Dart на то и статически типизированны что можно не боятся руками делать рефакторинг
и если ты уже мидл и есть много опыта в языке, то лишние подсказки и не нужны.
>>880179
Я, может быть, чего-то не понимаю, но почему объём используемой памяти приводят как аргумент за/против выбора IDE (или, скажем, браузера)?
В смысле, оперативка сейчас копеечная (летом собирал домашний рабочий комп - 3,5 тысячи за 16 ГБ). То есть понятно, что приложение, жрущее больше памяти может быть менее оптимизировано, в нём больше свистоперделок и т.п., но в итоге-то важен комфорт и удобство использования, разве нет?
Он просто пердолик.
Бля ну прикинь сколько времени оно загружается с диска? Или ты думоешь это генерированные на ходу данные?
Точно, про диск забыл. Где-то встречал рекомендацию не закрывать Идею, чтобы она каждый раз не загружалась по десять минут. Дякую тобi б-же що у мене SSD.
Потребление памяти это следствие черезчур мощного анализатор кода в IDEA.
Проблемы выливаются так же в тормоза и скорость запуска ведь она написана на Java.
>но в итоге-то важен комфорт и удобство использования, разве нет?
Для комфотной работы, нужна подсветка ошибок и набор рефакторингов.
Microsoft смогли это как-то затолкать в пару сотен мегабайт в VisualStudioCode.
И получается что VS с тормознутым решарпером - нужны только джунам
>оперативка сейчас копеечная
>собирал домашний рабочий комп - 3,5 тысячи за 16 ГБ
Многим хочется не за железными гробами сидеть, а работать на стильных ультрамакбуках.
В разы. Только, естественно, нужно всё на нём держать - и саму Идею, и проекты.
> не за железными гробами сидеть, а работать на стильных ультрамакбуках.
Но ведь у меня няшный беленький mini ITX. А работать на экранчике 13-15'' - ну нахуй.
>>880263
>>880267
>>880280
На стильных ультрабуках
И в клетчатых рубашках,
Потягивая смузи,
Серийные убийцы
...
Звучит как текст какойнибудь гомогруппы типа Звери
>Я вообще фрилансер и могу работать из старбакса где угодно
Это ты типа похвастался? Я, конечно, тоже могу работать "где угодно", но предпочитаю удобное кресло, привычную полноразмернуюклавиатуру, большой монитор (или два) и тишину вокруг.
>Язык с компактным синтаксисом Scala/Kotlin/Groovy
>"На каком языке будем писать наш стартап?" - "Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!"
Заебись, чо.
> >"На каком языке будем писать наш стартап?" - "Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!"
Проиграл.
>предпочитаю удобное кресло
И тебе тоже можно вставать на работу когда угодно,
обедать в любом ресторане города и бухать за рабочим столом?
>Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!
Да дело не в том как смотрится, а в лаконичности кода. Ты быстрее понимаешь как он работает, глядя на него.
Чем не повод взять современны язык?
Хотя я и на Java много писал, если не городить портянки по >1k строк, тоже отлично работается.
> компактный синтаксис
> Scala/Kotlin/Groovy
Проиграл с это модного молодого человека
хескел господин
>И тебе тоже можно вставать на работу когда угодно, обедать в любом ресторане города и бухать за рабочим столом?
Exactly. Только я встаю по будильнику, обедаю (как и работаю) дома, и не бухаю вообще. А так - ты всё верно описал. Можно.
>Да дело не в том как смотрится, а в лаконичности кода.
Дело не в лаконичности кода, а в том, что "компактный синтаксис" и "экрана хватает" как критерии выбора языка для разработки (чтобы иметь возможность работать в любом ресторане города на стильном ультрамакбуке) - это какое-то шизохипстерское расстройство личности уже.
>Дело не в лаконичности кода, а в том,
>что "компактный синтаксис" и "экрана хватает"
Не вижу противоречий
Там нет противоречия. Это просто пиздец по определению, как критерий для выбора языка.
С них и начинал. Не самое плохое, но и не самое лучшее. Эккель получше наверное будет. Но, думаю, лучше их всех навернуть. И не забудь паттерны Гаммы и Чистый Код.
>пиздец по определению, как критерий для выбора языка.
А тебе никто и не говорил что это была причина выбора языка.
В общем я понял, ты путаешь причину и следствие.
>А работать на экранчике 13-15'' - ну нахуй.
>1) Язык с компактным синтаксисом
По-моему тут никто ничего не путает. Был вопрос - как работать на таком милипиздрическом экране - ответ - выбирать один их этих языков. Итого - критерий выбора языка - компактный синтаксис, чтобы влезло в 13 дюймов.
Мак на пузо, сам на диванчике или мешке - полулежи и работай. Против смузи ничего не имею, клетчатым рубашкам предпочитаю стоковые футболки.
Так это-то норм, сам я 15" лежу. Тезис сам занятный.
Мне джавараш зашёл только как практика, чтобы руку набить (удобный плагин у них). Теорию параллельно у Эккеля читал, потому что эти кривляния а-ля Футурама - очень сильно на любителя.
Как задать ограничение по скорости, которое ручками нужно вводить?
token/leaky bucket
H2
> с 8 класса начинать
Пф, да чего уж там, не сделал в детстве самодельного клона спеки, не написал к нему как минимум 5 игр, даже не думай вкатываться в IT.
Джава-богам тоже бывает непросто неинтересно свои синтаксические ляпы искать, я в логах на Teamcity подобное по нескольку раз в час вижу.
Им лишь бы больше интересных задач накодить
мимо devoops
>>880751
>>880755
>>880799
Это было просто лирическим отступлением. На вопроыс-то кто-нибудь ответить может?
Просто поставь в конце \" и не выебывайся. Ну или сделай String s = "\u0077\u0065\u006c\u006c\u0020\u0064\u006f\u006e\u0065\u005C\u0022"; и продолжай заниматься этой хуйней.
Я с трудом представляю код, в котором он действительно нужен. Почти всегда можно переписать так, чтобы обойтись без него, если только ты не херачишь какую-то темную магию на рефлексии.
предположим, у нас есть определённый запрос к бд, скажем
SELECT * FROM table_name
Мы хотим позволить пользователю как угодно ограничивать данный запрос через гуй. Например, пользователь вводит "where column_name like '%kk%'" и этот стринг тупо конкатенируется к нашему запросу.
Каким образом можно проверить введённую строку на SQL injection? Все попытки найти решение через гоголь ведут к тому, что все рекомендуют использовать PreparedStatement.
Но в данном случае передаётся не просто параметр, а весь where clause. Реально ли вообще валидировать этот стринг? Есть ли какие-то предусмотренные для этого библиотеки?
Если у тебя все ограничивается простыми селектами, то можешь просто проверять строку чтобы там не было всяких drop и тому подобного. Такой себе блэк лист на операции.
А какая у тебя база данных? Почему ты не хочешь почитать документацию по ней, и настроить права доступа сообразно твоим желаниям? Тогда форма запроса будет даже не важна. БД все валидирует сама…
Можно этот запрос пускать под каким-либо отдельным пользователем БД, у которого есть только права на чтение этой одной таблицы.
Благодарю, что сразу нахуй не послали.
>просто проверять строку чтобы там не было всяких drop и тому подобного
Можно на паттерны проверять, но всё не выловишь ведь. Алсо, чревато эффектами вроде "where DROPPABLE='Y'" не будет валидным.
>>881029>>881143
>А какая у тебя база данных?
Орасле.
>настроить права доступа сообразно твоим желаниям?
Это лишь фича в огромной софтине. Так что, не прокатит. Есть вариант - ограничить доступ к фиче, но надо согласовать с системным архитектором. А чтобы согласовывать, надо аргументировать, почему такой подход опасен и нельзя никак сделать его буллетпруфным в короткое время.
>Хуйню сделали.
Ещё не сделали. Концепт пилим. Подбрось аргументов, чтобы мы не пилили хуйню, если можешь.
>Ещё не сделали. Концепт пилим. Подбрось аргументов, чтобы мы не пилили хуйню, если можешь.
Ну смотри. Пилишь обертку над хешмапом. Ключ - имя поля, значение - какое-либо условие. И в своё дао приваливаешь как раз её. Чекнуть ключи на то, что такие столбцы есть - изи, дальше генерируешь вопросики по числу аргументов и всё. В простановку параметров может даже PreparedStatement.
Это так, если не задумываться особо. Но даже так лучше, чем хуячить кусок кода в sql с фронтенда.
>>881029
>Почему ты не хочешь почитать документацию по ней, и настроить права доступа сообразно твоим желаниям?
Ты хочешь пятнадцать юзеров держать на базе для одного приложения? Да и уносить какую-то часть бизнес логики в бд какая-то хуевая идея.
>Пилишь обертку над хешмапом
Это уже что-то, но тут встают опять же новые вопросы:
- Что делать с условиями, вроде like '%%'? PreparedStatement может в них? Нет же, вроде?
- Что с rownum>=x? Уже отпадает при такой валидации.
- Sort, order by и т.д. тоже.
Думаю, что нужно ограничить фичу на простые условия, вроде COLUMN_NAME = 'value'. Тогда такой подход прокатит. Спасибо за идею!
Ну смотри. Усложняешь структуру.
Передаешь уже не просто мапу стринг-стринг, а лист структур AbstractFilter.
У него какой-нибудь абстрактный метод void appendCondition(String sql) и byte[] getArgs().
Пилишь ему дохуилион наследников с каким-нибудь ключем, по которому будешь их десериализовать с фронта.
В итоге у тебя есть что-то вроде NumberFilter с вариантами из >,<,>=,<=,=. И какой-нибудь LikeFilter. Сечешь, к чему я виду?
Да уж, совсем хуево уже.
Блджад, но неужели нет фреймворков/библиотек, которые бы уже это предоставляли всё? Пилить колесо заново не очень хочется.
Да мы тут тоже не в отпусках.
Трансакшнл скрипты имеют право на жизнь, но у вас должно быть ну очень маленькое приложение.
Я так понял, все пользовательские запросы - это выборки. Может быть, просто запретить изменение данных таким запросом? Что-то типа @Transactional(readOnly = true, propagation=Propagation.SUPPORTS)?
Прочитай доки к @Transactional. Ну и даже если readOnly работало, то зачем там SUPPORTS?
А, бля, в глаза долблюсь под конец дня, не оттуда скопировал. REQUIRED. Если они через JDBC работают (а я так понял, ORM там и не пахнет) - будет вылетать исключение при попытке изменения данных. Ну и конечно возрастут накладные расходы из-за транзакций.
>Things we don't tolerate
>static/class methods or attributes
Где в таком случае находится точка входа в программу?
Где-где...
Можешь глянуть на библиотеку JOOQ. У них есть статический генератор кода, запустишь генератор на своей базе, потом в приложении настроишь маппинг между Jooq-DSL и своим гуём. Так можно даже автоподстановку имен пилить.
всем кроме кобочек
Бамп вопросу.
Здравствуй, анон. Вместо изучения джявы тебе пора учить хинди.
Почему хинди? Хорошо, давай учи ассамский язык, бенгальский, гуджаратский неплох, каннада очень своеобразен, многим подойдёт малаяльский, урду ласт возможность поработать и в пакистане. Язык черножопых обезьян, "дай банан", "это моя ветка", "дай я поищу у тебя блох". Забудь белые ванны, чистые улицы, здоровых белых женщин (опционально, скорее всего ты их и не знал), автомобили, уважение начальника, чистый офис с кондиционером, кусок мяса на ужин.
Программисты мира, отныне ваш босс - индус! Отныне ваш язык не английский, а хинди. Ваша город не нюйорк а примумбайский гхаткопар. В резюме будете писать не "работал на 5th авеню NY а потом LA. Рассматриваю работу за 100 тыщ баксов годовых и бонусы", а будете писать "работал в Хайдарабаде, штат Андхра-Прадеш, а сейчас в Канпуре, штат Уттар-Прадеш, готов работать за 1000 рупий, лижу жопу, живу в трущобах".
Начал только читать первую книгу. Насколько я понял, для программирования необходимо знать все возможности API (или знать где найти) и правильно составлять псевдокод (а потом его реализовывать).
Если первое это по сути энциклопедические знания и не требует особого ума, то второе уже сложнее. Как начать учиться составлять псевдокод по поставленной задаче? Я пока чет дико охуеваю со всего этого.
Как начинал ты, анон?
С хуя в жопе.
Метод run, вызывает синхронизированный метод, поэтому поток может получить к нему доступ, только если предыдущий завершил работу и вывод соответственно такой:
First0->0 First1->1 First2->2 First3->3 First4->4 Second0->0 Second1->1 Second2->2 Second3->3 Second4->4
При это в учебнике вывод совсем иной, как будто два потока работают одновременно, это ошибка?
Так годнее неё ничего нет. Всё остальное – васяноподелия.
>First0->0 First1->1 First2->2 First3->3 First4->4 Second0->0 Second1->1 Second2->2 Second3->3 Second4->4
>При это в учебнике вывод совсем иной, как будто два потока работают одновременно, это ошибка?
Не одновременно. Потоки будут в произвольном порядке - как шедулер виртуальной машины решит - получать доступ к синхронизированной секции кода (методу). По факту, скорее всего, получится "по очереди" - первый поток заходит в секцию, второй ожидает, первый выходит из секции, второй заходит в секцию и т.д. Но, емнип, это не гарантированное поведение - т.е. может и один поток два раза подряд зайти в метод.
Предположим что есть у нас сущность Customer.
Есть на входе список имен.
Нужно проверить наличие кастомеров по указанным именам, при этом на выходе нужна коллекция содержащая отсутствующих в базе кастомеров.
Как это решить наиболее грамотным способом?
И сразу расширю задачу.
Предположим что сущность Customer может обладать коллекцией сущностей Phone.
На входе у нас есть список кастомеров и телефонов.
на выходе нужно получить телефоны отсутствующие у указанных кастомеров
@Test(expected = MyException.class)
>>882169
>>882167
http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#query-by-example
Сажа приклеилась.
>Ок, годная штука.
На самом деле я перечитал, что тебе надо и там не особо подходит (читал через слово, пьян).
>А есть вариант не под спринг?
Spring Data - обертка над jpa, так что можно влезть в кишки и взять, что надо.
Вообще в первой задаче тебя спасет банальный IN.
Во второй ты просто руками вытаскиваешь все телефоны, которые есть и делаешь на всех коллекциях номеров diff. Сет из листа собрать сможешь же?
>Во второй ты просто руками вытаскиваешь все телефоны, которые есть и делаешь на всех коллекциях номеров diff.
Понял, сет смогу сконструировать.
Спасибо за помощь!
>Спасибо за помощь!
Обращайся. Всяко интереснее, чем помогать хеллоуворлды в эклипсе запускать.
А какие сейчас модные шаблонизаторы?
И что насчёт Spring Data? Она ещё жива или не стоит тратить время?
Если честно, то я в свое время норм поебался и с спринг дата и хуйбернетом
Юзаю Spring JDBC Template и вам советую
UPD: Но сейчас вообще с монго раьотаю и в хуй не дую (если не считать consistency проблемы и прочую асид поеботу)
>>882178
Это кошернее (если версия junit правильная).
http://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html
75к на руки, мухосранск, контора работает на аутсорсе
Помогаю: на сайте оракль
>Java Servlets are programs that run on a web server and used for developing web applications.
Охуительное определение! 10 из 10 нахуй!
Сервлет это просто нативный в джаве способ обработки http реквестов? Чем он принципиально отличается от rest контроллера в спринге? Или он как раз и используется в фреймворке внутри этих рест контроллеров? Или это вообще 2 разные вещи? Я нихуя не понял!
Сервлеты описываются спецификацией - мол, вот тебе такой способ писать приложения, которые работают с http. Скомпилируй, положи в контейнер, будет тебе счастье. Как должен с твоим приложением взаимодействовать контейнер тоже описано спецификацией.
Ты мог бы написать полностью свой http сервер на джаве, если очень захотелось бы.
Ты верно ухватил суть, что что-то ещё может использовать сервлеты каким-то своим образом, а тебе предоставлять вообще изменённые до неузнаваемости интерфейсы. Почему бы самому немного в исходниках спринга не посмотреть, что же там внутре у ней?
>Сервлет это просто нативный в джаве способ обработки http реквестов?
Не нативный, но повсеместно используемый.
Абстракция над клиент-серверным взаимодействием. Клиент посылает запрос - получает ответ. Между запросом и ответом - работа сервлета.
Ты можешь реализовать свой сервер на чистой Java, но придется столкнуться со множеством проблем. Поэтому чуваки из Oracle (или это был Sun?) дали тебе спецификацию servletов. Ты пишешь свой servlet (если грубо, то процедуру обработки запроса), потом кладешь его в контейнер сервлетов (Tomcat, например) и запускаешь контейнер. Он возьмет на себя все проблемы с организацией подключений и прочим.
>Чем он принципиально отличается от rest контроллера в спринге?
@RestController это уже абстракция Спринга для быстрого создания ресткто бы мог подуматьконтроллеров.
>Или он как раз и используется в фреймворке внутри этих рест контроллеров?
Да.
private DoubleProperty newArray[] = new DoubleProperty[25];
public void setNewArray(double[] array) {
for (int i = 0; i < array.length; i++) {
newArray.set.(array);
}
}
PS: Дадада, swing никому не упал и забытая хурма, но для все же.
*textArea
YouTextArea.setText("Suka pwel nahui v google blyat huisos");
Мне надо подключить проперти файл и считать с него данные, как это лучше сделать, чтобы не плодить сущности?
Я объявляю переменную:
protected static String basePath = property.getProperty("path");
а потом передаю её в метод:
private static getFile(String basePath) {}
Или прямо в методе и херачить, без фигни и переменных? Потому что мужичок сказал на собеседовании, что главное это не использовать Unnecessary variables. Как вы считаете, позволительно так делать?
На джуна? Какие у тебя знания уже есть? Наверное в методе, и вообще смысл прописывать путь в переменную? Можно же вызвать метод.
Ну, блядь. Убираешь точки, ставишь начало списка и конец списка, генерируешь массив, ставишь точки обратно.
Думай.
А я что-то инвертировал разве? Вроде как ввел, так и вывел. Или ты про запись в байты?
Ну чтобы нужные октеты инкрементировались. Такие умные слова знаешь, а такие страныне вопросы задаешь.
Можно ли в Java выбрать на каком ядре процессора будет выполняться поток? Например, чтобы поток использовал второе и третье ядро из общих четрех.
Гуглил-гуглил, нагуглил такую вещь как JNA (http://www.quizful.net/post/java-thread-at-cpu-core), но можно ли сделать без сторонних библиотек?
нинужно
Для админов лучше питон.
Суровые джава-девелоперы из "одноклассников" говорили что нельзя
Ищи книги из шапки же
> мне 32 года
Все уже, поздно. Крайний срок для войти вайти - 25 лет. После него войти вайти не нужны никому и от них только остается нытье на джавараше, что нибирут.
> высшее гуманитарное, работаю unix админом в кроке, сертифицирован выше крыши
Это, скорее, отрицательно говорит о тебе.
А хули там не понятного. В контроллере перед методами стоит аннотация по которой происходит маппинг, а в конце метода возвращается имя представления в виде jsp ну или какой у тебя там шаблонизатор.
>
с этим уже разобрался, возникло другая проблема. Можно ли как-то догенерить Entity через hibernate в IDEA, и чтобы не поебался проект. А то создал еще пару таблиц но работать с ними не могу.
Если графики простые то юзай дефолтные либы типо Java 2D Graphics. Если сложные
http://www.jfree.org/jfreechart/samples.html
http://knowm.org/open-source/xchart/
я сам юзал xchart все оче красиво вышло. Ну а если тебе нужно вставить в курсач, почему не юзануть матлаб?
И тогда еще вопрос. Я с гуи никогда не работал, но слышал, что есть генераторы кода. Типо натыкал кнопок, а потом пиши себе обработчики.
Ну есть во всяких иде, или отдельно.
Антуанты, спасайте!
Вчера начал учить жаву. Пишу примитивный консольный тест. Захотелось сделать задание с таймером. Вроде все норм, когда отвечаешь правильно срабатывает timer.cancel(), но когда не успеваешь, и программа говорит что время истекло, то все равно можно ввести ответ. Вопрос: как завершить программу после того как истечет время в таймере?
Надеюсь понятно написал.
Да, есть такое в Java самый попсовый Swing - есть изкаробки в нетбинсе.
Выше уже пояснил юзай что-нибудь максимально понятное для тебя
> Мечтаю вырваться из этих рамок в которых я нахожусь в финансовом плане
Во-первых, денег никогда не бывает много или достаточно. Во-вторых, развиваться надо в том направлении, в котором у тебя лучше всего получается. В-третьих, хороший специалист всегда будет востребован. В-четвертых, если у тебя есть свободное время, то въебывай. Только стоят ли деньги твоего золотого времени, которое купить за них нельзя? В кодинг хорошо вкатываться до 23, когда у тебя дохуя свободного времени, и ты беззаботно проёбываешь свою молодость.
Тебя затралили послав в Java
В твоем случае только:
1) тестировщий
2) фронтендер / верстальщик
3) JS или PHP программист (максимум что ты потянешь)
> Типа он тупой
Типа у него времени не будет на джаву. Кто захочет в 32 года тратить ~5 лет жизни, чтобы просто вкатиться в кодинг? Только самый отбитый.
Мне 35 и я уже 9 месяцев вникаю в эту джаву, из кора пока посмотрел много чего, сложно разобраться в этих ваших RMI и прокси объектах, та и с многопоточностью иногда надо повозится, что бы синхронизировать именно то что нужно, но мне нравится, хотя и не уверен что именно джава нужна будет, на не джаваскрипт например.
Хочу через полгода уже писать резюме и вкатываться в коворкинги и вот это все...
Парсил страницу, получил инфу, раскинул инфу по аррайлистам, теперь нужно для каждого аррайлиста сделать луп, но так чтобы выводилось в одной строке.
Уже от отчаяния пытаюсь фор за фором ебануть. Знаю что тупой дебил, но никак не могу найти решение.
Ананасы, ответе. Я знаю, что вы знаете.
Бля, писал эту команду и ничего не получалось, теперь только догнал что писал System с маленькой буквы. Спасибо.
Есть, надо скачать, отсмотреть и понять:
– Любой базовый курс по Java
– Любой индусский курс по Selenium вместе с TestNG
– Любой курс по самомотивации, очень советую «Как перестать волноваться, что ты не настоящий программист и начать жить»
Если хочешь вкатиться прямо по-настоящему, то читай про PageObject, PageFactory паттерны и по созданию фреймворков под Селениум Ключевые слова Base Page/Base Test Classes
Отдуши, браток. Базовый курс по JAVA что в себя должен включать? Может есть уже проверенные, которые хорошо заходят? Сейчас читаю Хорстманна первый том.
DEST result = collectionFactory.get();
for (T t : sourceCollection) {
result.add(t);
}
return result;
}
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
точнее сигнатуру метода
Есть некая коллекция sourceCollection, типизированная T, есть Supplier(функц. интерфейс) collectionFactory, который, порождает опять-таки некую коллекцию result, типизированную T (принимаемая и возвращаемая коллекции могут быть разных типов). Потом в result добавляются элементы из sourceCollection и это всё возвращается.
Похоже, этот код добавляет элементы одной коллекции в другую (другого типа). В качестве Supplier'a запихивается лямбда, возвращающая коллекцию, в которую нужно добавить элементы.
Human vasya = new Human(name='Vasia', adress='Mockow') ?
Хз, до этого еще не дочитал.
Если можешь дописать в класс еще один конструктор, то просто добавь еще один с необходимыми тебе свойствами, если нет доступа туда, можешь обернуть класс в свой класс и писать туда свои параметры, а те которые не хочешь, инициализируй в своем конструкторе какими-то дефолтными значениями.
мимо нуб.
сукапздц сложна
Блядь, мама верни мне питон...
>никто
Вкатывающиеся запускают. Это делается системой сборки за тебя, если был запрос на запуск программы, а не только сборку/еще что-то.
Бампую вопросы.
СМЕНИЛ РАБОТУ
@
ТЫ ЕДИНСТВЕННЫЙ, КТО ПИШЕТ ТЕСТЫ
Сукасукасука, а на собеседовании были нормальными.
Подтверждаю.
Как установить JDK на вин7 ? Ебусь целый день с ошибкой 160... чо то там. Удаляю, перезагружаю, и нихуя, мне че систему переустанавливать из за этой злоебучей джавы ?
Снеси старую версию деинсталлятором в разделе программы/удалить. Не поможет - вручную снеси с диска и риестора все следы жабы.
Там пиздец с обновлениями, если старая версия по какой-то причине недоудалилась.
Такой пиздец, что ни новую установить, ни каких-либо шансов удалить старую.
А потом ракеты взрываются.
Не обезьяна, а студент. Гуглить пробовал, нихуя не помогло. Чего стоит помочь-то, а не ругаться? Поможешь - я съебу и не буду вам мешать тут
Да похоже винда, установщик виндоувс отвалился, не запускается даже после перезагрузки и не ставится не только джава, но и пакеты VS c net. Завтра снесу все к хуям
void foo();
void bar();
void exec(String cmd);
void init(String state);
SingleAnon INSTANCE = new SingleAnon() {
private String state;
private final String barVal = "bar";
@Override
public void foo() {
System.out.println(this.getClass().getName() + ": foo");
}
@Override
public void bar() {
System.out.println(this.getClass().getName() + ": " + barVal);
}
@Override
public void exec(String cmd) {
String state = Optional.ofNullable(this.state).orElse("state not initialized");
System.out.println(this.getClass().getName() + ": " + cmd + " -> " + state);
}
@Override
public void init(String state) {
this.state = state;
}
};
}
void foo();
void bar();
void exec(String cmd);
void init(String state);
SingleAnon INSTANCE = new SingleAnon() {
private String state;
private final String barVal = "bar";
@Override
public void foo() {
System.out.println(this.getClass().getName() + ": foo");
}
@Override
public void bar() {
System.out.println(this.getClass().getName() + ": " + barVal);
}
@Override
public void exec(String cmd) {
String state = Optional.ofNullable(this.state).orElse("state not initialized");
System.out.println(this.getClass().getName() + ": " + cmd + " -> " + state);
}
@Override
public void init(String state) {
this.state = state;
}
};
}
Нихуя не понял.
в шапке, хуесос.
http-client в цикле с некоторым интервалом выполняет 2 запроса к серверу. В случае получения необходимого ответа цикл останавливается до наступления следующих суток.
Разумеется, это все должно где-то крутиться - в самом деле не на локальной же машине в идее гонять.
Поясните по хардкору, туда ли я зашел и, если туда, порикаминдуйте как лучше всего вот это всё организовать?
какой язык выучить прежде чем вкатываться? немного знаю сипипи и пайтон
Java.
SQL
выучи еще немного руби, си шарп и джава скрипт, только после этого вкатывайся. что за хуйню ты спрашиваешь длбб?
Ассемблер под DOS, после этого установи JVM версия тоже для доса, и в добрый путь
Ты странный какой-то.
бля я хуею, человек берется объяснять что-то и пишет такой говнокод, как так можно то? или я не прав и так и надо!?
http://java-course.ru/begin/collections_01/
Тогда для тебя также актуален вот этот совет >>887446
Т.к. дальше будет только хуже в плане доступности материалов на русском.
Ну, для новичков на русском куча материала, но ты должен понимать, что он, в основном, второсортный, т.к. пишется по принципу "надёргаю всего из разных книжек, а потом прорекламирую свои курсы за 100500 денег". А кто уже более-менее шарит - те обычно знают язык на уровне, достаточном для чтения книжек/туториалов/SO и просмотра лекций на английском. Т.е. написание или перевод материалов по более продвинутым темам никому, в общем-то, не нужны и если и делаются, то на голом энтузиазме.
В цикле делаешь запросы до того, как получишь ответы, которые тебя удовлетворят. Потом можно делать либо sleep на сутки, либо планировать время следующего выполнения с помощью этого: http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html
Для http обычно использую это:
https://hc.apache.org/httpcomponents-client-ga/quickstart.html
Для того, чтобы крутить постоянно, подойдет любой vds.
плюсану
Подобное можно сделать с помощью паттерна Builder. https://ru.wikipedia.org/wiki/Строитель_(шаблон_проектирования)#Java
Либо добавлять несколько конструкторов с разным набором аргументов, как советовал господин ниже. Но это не всегда удобно и возможно.
Не очень понял, что ты хочешь.
Двачую, кстати. Код пишеться на английском для людей, в первую очередь, и форматируется через диалект языка.
Ну исходники почитай, достаточно занимательно.
братан, я только недавно вкатился в говнокодинг, мне посоветовали с джавы начать
Все правильно посоветовали. Дам тебе одного очень умного еврея. Повторяй за ним, будешь умным и богатым.
https://www.youtube.com/playlist?list=PLkKunJj_bZefB1_hhS68092rbF4HFtKjW
И что свинг которому он две лекции посвятил таки где-то используется еще?
Он дает неблохое задание на поломать девственный от ООП мозг, с гуем, движком за гуем и эксепшонами.
Она запускалась под ДжВМ
С IDEA идет своя маленькая jre.
Знаю точно что если у тебя мак, то там в комлекте идет своя патченная JRE с фиксом сглаживания шрифтов.
Так же для информации:
В Java есть утилита Java Packager которая позволяет собирать платформенные билды с запакованной java.
В Java 9 обещали добавить модульность и вырезание неиспользуемых API (бинарник будет меньше размером).
Набор поля и методов определяются типом ссылочной переменной. Если хочешь получить доступ к полю класса наследника, тип ссылочной переменной должен быть соответствующим
*полей
Вырежешь, а потом будешь бегать спрашивать почему фича_нейм не работает.
почитай про позднее связывание
>Там же куча файлов - посносить и все.
Насколько я знаю там есть юридические ограничения.
Ты можешь удалить только папку ext, там лежат Nashorn/JavaFX и еще что-то.
Остальное ты должен распространять без изменения по лицензии JRE
Тут говорится подробнее https://youtu.be/ePsev12d9dY ~30 минута
У меня тут вот какой вопрос возник...
А чего, треугольник по трём сторонам никак не построить?
Я нашёл только drawPolygon, но он строит по координатам.
> a=(int) t.getA();b=(int)(t.getB());c=(int)(t.getC());
> y[0] = 0;
> x[1] = a;
> y[1] = 0;
> x[2] = (int) (pow(b, 2) - pow(c, 2) + x[1]) / (2 * a);
> y[2] = (int) (pow(b, 2) - x[2]);
Это то, что я придумал. А как-то по другому можно?
Спасибо за советы мудрые.
Заебался уже с ней.
Да поставил я генерацию в ддл. Но почему-то таблицы генерируются только если их нет. Если они уже есть, то новые колонки не добавляются. Какого хуя, блеать?
Может ну её эту спринг дату впизду? Мёртвая же технология, не?
Где и как поставил, покажи?
Не пойму к чему ты будешь привязываться, если будешь строить по стороне, та и какие параметры кроме длинны есть у стороны, те же концы отрезка?
Компенсация ковыряния в 8летнем легаси.
АХАХ. Работал у них в 2014 3 месяца за 17К, писал сдк для андроида (как раз тот сдк, который внедрял в приложения невидимую рекламу ололо). Потом соскочил в относительно норм конторку аж на 30К.
У них это нормальная практика - дать тестовое лоху а потом использовать в реальном проекте
Билдер или кучи конструкторов с разными параметрами.
До половины обошел, вторую половину еще написав такую же муть только задом наперед можно получить, но может есть способ попроще
int[][] crossword = new int[][]{
{'f', 'd', 'e', 'r', 'l', 'k'},
{'u', 's', 'a', 'm', 'e', 'o'},
{'l', 'n', 'g', 'r', 'o', 'v'},
{'m', 'l', 'p', 'r', 'r', 'h'},
{'p', 'o', 'e', 'e', 'j', 'j'}
};
String[] diag = new String[crossword.length + crossword[0].length-1];
for (int i = 0; i < diag.length; i++) diag = "";
for (int i = 0; i < crossword.length; i++) {
int count = i;
for (int j = 0; i + j < crossword[0].length; j++) {
diag[count] += (char) crossword[j];
count++;
}
}
>Почему инкрементирование не атомарно?
Прочитать значение, увеличить значение, записать значение.
>Я так понял, достаточно просто добавить synchronized и все?
Лучше использовать Atomic типы.
З.Ы. Я тебе более того скажу - тупо запись значения в long и double тоже не атомарна.
Я имел ввиду, почему джава девы не сделают такие простые операции атомарными? Достаточно ведь просто пометить их как синхронайзд или не все так просто?
Потому что лишняя синхронизация НИНУЖНА. И в Atomic классах синхронизация тоже не используется (хотя, в свое время, у IBM AtomicLong::incrementAndGet() был сделан тупо как синхронизированный инкремент, емнип). Но вообще, для этого юзают неблокирующие native методы класса Unsafe - getIntVolatile() и compareAndSwapInt(), например.
Синхронизация - это дорого в плане производительности.
Чтобы выебнуться.
никаких. Только длина.
Я подумал, что можно всегда начинать из одной точки, скажем из (0;0), вторую ставить используя длину стороны напрямую (a;0), параллельно Ox;
А вот как правильно получить третью точку - я так и не понял. Вон, пытался выразить из системы, но как-то не очень вышло
Вот для отрисовки что-то вроде этого.
Если так, то надо геометрию школьную вспоминать -
надеюсь для начала ты проверил может ли вообще существовать такой треугольник(сумма двух сторон должна быть больше третьей)
по теореме косинусов узнать угол между
стророной (0,0;а,0) и стороной (0,0;x,y) (все данные у тебя есть).
Потом узнать из тереоремы синусов длинну красных сторон, это и будут тебе координаты точки х,у.
Ну и вобщем-то все.
Посоны, 100к в дс за год работы - это норм или НЕОЧЕ?
>надеюсь для начала ты проверил может ли вообще существовать такой треугольник
Конечно проверил, угу.
Окей, большое спасибо. Мне казалось, что я делал что-то похожее, но теперь я даже и вспомнить не могу, откуда взял ту стрёмную формулу выше. Хотя она и похожа чем-то.
Огромное спасибо ещё раз.
Вот тоже интересно, может подкинешь какую-то статейку по графам, а то мне тут граф сериализировать в учебном задании нужно, а я даже сам класс графов еще в глаза не видел.
Что тут непонятного?
Для каждой вершины графа
__Для каждой соседней вершины (имеет соединение с текущей вершиной)
____Если они равны (одна и та же вершина), то мы нашли петлю
Но посчитается каждая петля дважды.
У меня в котосибирске 95К за два года.
Сделай интернет-магазин
Коре и SE это одно и то же?
По коллекциям - тебе нужно понимать, чем они отличаются и в каких случаях какие коллекции используются. Рекомендую Седжвиковский курс Algorithms на курсере. Это базовые вещи, не обязательно уметь писать на коленке квиксорт или красно-черное дерево, но программист должен понимать различия между структурами данных, сложность алгоритмов и тому подобные вещи (имхо, конечно).
Это копия, сохраненная 15 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.