Этого треда уже нет.
Это копия, сохраненная 15 декабря 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
513 Кб, 657x516
#2 #873908
Поясните мне, почему считают что жава программист не умеет программировать?
>>873914>>873930
#3 #873914
>>873908
У тебя ответ на картинке, если присмотреться.
#4 #873929
>>873899 (OP)
КУКАРЕКУ
>>873931
#5 #873930
>>873908
Ой блять подумоешь, точечку поставил и выбирай методы. Вот это я понимаю погроммирование.
#6 #873931
>>873929
КО-КО-КОНТРАВАРИАТИВНОСТЬ
#7 #874094
Нужна помощь в священной битве
https://2ch.hk/pr/res/874090.html (М)
#8 #874148
Пару тредов назад анон скидывал свой калькулятор и ему посоветовали выложить на гитхаб. Это был троллинг или выкладывать велосипеды студентикам не зазорно?
>>876700
#9 #874270
>>873899 (OP)
объясните пожалуйста один вопрос, вот допустим у меня в функции main из одного класса есть неупорядоченный массив, и я его передаю в функцию сортировки типа void в другой класс, у меня почему-то и массив, который содержится в main становится упорядоченным, почему так? Разве в java аргументы передаются не по значению, то есть в функциях создаётся копия, которая и изменяется, то есть вне функции значение остаётся неизменным? Или в java существует передача по ссылке? Почему мой массив, который по идее не должен меняться, изменился, то есть стал упорядоченным?
>>874276
#10 #874276
>>874270
Примитивные типы передаются по значению, а ссылочные по ссылке.
>>874277
#11 #874277
>>874276
Все передается по значению, в java нет разделения.
>>874285
#12 #874285
>>874277
Но значением то является ссылка.
>>876702
#13 #874292
Анон ,помоги разобраться , что от меня хотят . Написали замечания к коду :

>- Чтение файла в конструкторе может вызвать проблемы, если например объект нужно создать раньше, чем появится сам файл. Это просто замечание на будущее. Для утилиты думаю не критично.


>- Лучше не читать файл в конструкторе, пусть конструктор создает объект, а чтение файла является логикой. А логику лучше вынести в отдельный метод. В случае чего это позволит инициализировать объект без ошибки, если с ресурсом будут проблемы.



Сейчас метод чтения из файла вызывается в конструкторе . Можно вызвать непосредственно в самом методе конвертации и тогда получится, что я буду при каждой конвертации числа без надобности перезаписывать свой мап .Ну или просто убрать из конструктора,сделать паблик и оставить вызов метода на пользователя .Тогда ,думаю, ответят , что конечный юзер должен вызывать только один метод конверт и не ебать голову по поводу вызова других . Как быть?
http://ideone.com/Y3CsGw
>>874358
#14 #874358
>>874292
Всё правильно написали. Вынеси чтение файла в отдельный метод инициализации init(). При вызове метода convert() проверяй, инициализирован ли конвертер (можешь флаг сделать, например).
43 Кб, 770x281
#15 #874372
Егорка обезумел http://jug.ru/2016/11/eo-lang/
Сумеешь ли ты совладать с ним?
59 Кб, 201x190
#16 #874386
>>874372

> 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
>>874426>>874504
#17 #874426
>>874386
>>874372

>no gc


Oh boy
#18 #874504
>>874386
Прочитал голосом и тональностью, как

>we don't need no education..



Ну, глядишь, так и новые языки Даннинг или Крюгер появятся.
#19 #874557
В чем минусы использовать null в качестве аргумента для параметра timestamp в этой ситуации?

public void writeToDB (String string, int timestamp) {

if (timestamp == null) {
блабла вписать в ДБ строку, используя дефолтный timestamp;
} else {
блабла вписать в ДБ строку, используя timestamp;
}
}

Плодить две разных сигнатуры (с timestamp и без) не вариант вообще.
Можно еще подставлять 0 - но это не так очевидно.
>>874568>>874604
#20 #874568
>>874557
int не может быть присвоено null
>>874571
#21 #874571
>>874568
Но можно заменить на Integer timestamp
#22 #874604
>>874557

> две сигнатуры не вариант вообще


А в чем проблема то? Тебе дали полиморфизм, нет, хочу создавать один универсальный для всего метод. Если бы в жаве были параметры по умолчанию, тогда это еще как то оправдано. Но передавать какие то неочевидные нул, 0, -1 и прочие проявления гениальной архитектуры тут лишнее.
>>874637
#23 #874637
>>874604
Здесь нужен такой подход:

new TimedDbWriter(new DbWriter(), ts).write(string);
или
new DbWriter().write(string);

мимо егор
>>874668
#24 #874643
Сап джаваны, обновил jdk до последней версии и эклипс перестал запускаться, в конфиге эклипс поменял на свою версию jdk, эклипс запустился. Но нихуя не компилится, как исправить ?
#25 #874664
>>874643
Использовать IDEA.
>>874674
#26 #874668
>>874637
Егорка, из вас с Барухом кто актив а кто пассив?
>>874672
#27 #874672
>>874668
Разве по бороде и лысине еще не понятно?

Нам, кстати, понравилась конференция в SF. Приглашаем в следующем году: http://www.folsomstreetevents.org/
#28 #874674
>>874643
Ты дебил, да? Тогда тебе к ним >>874664
30 Кб, 673x483
#29 #874772
>>874643
Вот такая хуйня
>>874796
#30 #874796
>>874772
Начнем с того, зачем ты делало апдейт минорщины? Раз уж прошел квест с конфигурацией eclipse.ini или что там. Используемый компилятор задаётся или конфигурацией проекта в gradle/maven/что-там у тебя, тогда соотвествующий плагин подхватит. Это кошерный вариант. Или компилятор задаётся в настройках проекта Eclipse - этот вариант для будущих адептов Идеи.

Но вангую, учитывая этот момент с минорщиной, все дело в том, что в PATH у тебя нет ничего релевантного, а в конфиге стартера эклипса ты забил абсолютный путь.

Короче, хипсто-школота должна страдать.
>>874842
#31 #874842
>>874796
А хуй его зачем я обновлял. Короче, снести к хуям jdk и jre и тогда изменить конфиг в мавен ?
>>874849
#32 #874849
>>874842
В смысле, снести, а потом поставить заново.
>>874900
#33 #874900
>>874849
Попробуй по - новой, да.

Задумался над тем, что может помочь таким страждущим... Несть им числа https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=eclipse&starCount=0
>>874922
#34 #874918
Буду краток. Есть вот такие данные запиленные из CSV файлика.

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++;

}

Спасите и сохраните!
#34 #874918
Буду краток. Есть вот такие данные запиленные из CSV файлика.

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++;

}

Спасите и сохраните!
>>875046
#35 #874922
>>874900
Уже исправил без переустановки, просто поменял конфиги и все заработало. И ты ошибся на счет хипстера-школоты.
38 Кб, 347x364
#36 #875046
>>874918
положил еще вот здеся.
http://ideone.com/o9JDTa
>>875066>>875070
#37 #875066
>>875046
Ты читать умеешь?
#38 #875070
>>875046
Меняй название полей на нормальные, и из строк переводи в правильные типы - long/Date. Сделай класс маппер с методом парсинга, который будет из массива строк делать нормальный объект UserData.

Что бы парсить Date можно использовать DateFormat, что бы парсить в long/int можно использовать соответсвенные статические методы Long::parseLong и Integer::parseInt
#39 #875085
>>873899 (OP)
как же приятно вкатываться в жаву зная кресты ^^. Жава кстати лучше.
#40 #875182
Посоны, есть у кого линки с нормальным описанием новых фич жабы 9? Именно тех, что связаны с самим языком/стандартным АПИ, а не дополнительные тулзы/какие-то оптимизации под капотом.
>>875269
#41 #875269
>>875182
кури официальные джепы и не выебывайся http://openjdk.java.net/projects/jdk9/
#42 #875285
Если есть класс А с статическим методом забирающим информацию с интернета (класс в основном для этого и создан) . И есть класс B в котором понадобилось тоже забирать информацию с интернета. Учитывая что классы лежат в одном пакете. Правильно ли будет использовать делегирование или не заморачиваться и вызывать в методе класса B(там где надо стало в интернет ломиться), метод класса А, (учитывая что класс А статический и они в одном пакете это возможно) ?
#43 #875415
Допилил training project на основе задания из >>868195.
Если вдруг у кого найдётся немного времени, чтобы посмотреть проект и написать замечания по архитектуре/стилю - буду признателен. Замечания по грамматике английского в джавадоке тоже приветствуются.
https://github.com/anatoly-shamov/intern-dev-task
>>875465>>875572
#44 #875443
Ребята, вопрос. Хочу хранить данные в файле, например:

one
two
three

и потом построчно считывать их и забивать в стринговый массив. Какое расширение файла использовать обычный .txt или может есть какие-то аналоги именно для хранения ресурсов в джаве, как например .property?
>>875476
#45 #875458
реквестирую годных книг, видосов, курсов по spring и вообще как вкатиться в него
>>875858
#46 #875465
>>875415
Очень жирный код, слишком много enterprise приседаний, за которыми не видно сути задачи. Может это и есть правильный java код, и определенно он демонстрирует способности к программированию, но еще больше он демонстирует лояльность к жава-макакингу.

Ну серьёзно, какая нахуй архитектура? В общем, я бы предпочел посмотреть на решение, укладывающееся в 100 строк. Хотя видел успешные попилы долгострои, пишущиеся в таком стиле.
>>875477>>875479
#47 #875476
>>875443
.dat ne sud'ba?
#48 #875477
>>875465
Соглашусь с этим ява макакеном.
>>875479
#49 #875479
>>875465
>>875477
Спасибо за мнения.
Собственно, меня и интересует "джава-макакинг", то бишь разработка приложений для бизнеса, а там гибкость и будущая сопровождаемость важнее лаконичности и чистоты. Поэтому и старался писать энтерпрайзно (насколько я это понимаю), выделять слои, декомпозировать функциональность по отдельным сервисам, писать на уровне интерфейсов и т.п.
Решение "на 100 строк" было готово в первый день, но я подумал, что оно более уместно для реального тестового задания с ограничением по времени, чем для проекта, который делается ради интереса и практики (ну и как заполнитель для гитхаба). Подобных сниппетов я набросал уже достаточно, проходя джавараш, и мне такой подход не очень нравится.
Если рассматривать проект и код с такой точки зрения - он скорее годный или скорее говно?
>>875482
#50 #875482
>>875479
Ради лулзов, если там действительно 100 строк (может даже с каким то трюком, как стострочных excel-ях на js), мог бы выложить в соседнем репозитории. Чтобы показать, что жаба не весь мозг съела.

>рассматривать проект и код с такой точки зрения



То это уже схоластика получается. Можно было бы еще побить на компоненты и связать их через apache camel, то же что -то демонстрирует, но читать код так же неприятно. Даже javadoc комментарии напрягают но для демонстрации лояльности джуна, может так и надо, хз. Все же это не библиотека, для прикладного кода комментария к классу необходимо и достаточно (хотя для кого-то и это лишнее).

Решение должно быть соразмерно задаче. Сейчас все молодые, веселые, даже в мире жабы двигается microprofile.io. Поверь, не только в тырпрайзной жабе интересно и вкусно. Проще иметь стострочный микросервис, который легко переписать или выкинуть, чем развесистый слоёный тырпрайз пирог, от которого кормится бригада.
>>875488
#51 #875488
>>875482
Про 100 строк я приукрасил, конечно, там было несколько сотен, и я его не сохранил, увы. Ничего такого - просто тупое консольное приложение, по классу на каждый крупный блок функциональности, заготовка, короче.
Javadoc писался ради самого javadoc'a (пощупать что это и "как его готовить") и "демонстрации лояльности", да. Сам я насмотрелся на код без единого коммента и у меня небольшая аллергия на него (подробнее будет в конце).
Про соразмерность задаче - проект делал "по мотивам" тестового задания, поэтому задачу в целом формулировал себе сам. А именно - написать законченное enterprise-style приложение, применяя приобретенные ранее навыки (книжки/курсы по core, пресловутый джавараш, онлайн-курсы по EE (spring/hibernate)), настроить под него окружение (Ubuntu Server, MySQL, Tomcat, Nginx) и запустить "в продакшн". Своеобразный экзамен.

>Проще иметь стострочный микросервис


Про микросервис - спасибо за замечание. Я сам собираюсь второй учебный проект делать в виде "микро-REST-сервис" + простенький фронт на Spring MVC. Потому что действительно немного подзадолбался, размазывая эту кашу по классам и интерфейсам.

>Сейчас все молодые, веселые, даже в мире жабы двигается microprofile.io.


>Поверь, не только в тырпрайзной жабе интересно и вкусно.


Ну, я уже не очень молодой и слегка побитый жизнью (8,5 лет 1С-макакинга, последние 3 года - сеньор/техлид на больших проектах), так что профдеформация имеет место быть. Буду ломать себе шаблон.
#52 #875572
>>875415
У тебя свалка зависимостей вместо пом файла.
От твоих дао течет кровь из глаз. Раз уж ты делаешь приложение на основе спринга и хибернейта, то посмотри в сторону Spring Data.
У тебя в ентити целых три поля с именем time и все три разных классов. Лично я их не различаю. Зато ты откомментировал каждый сеттер и геттер, круто.
Ну и дальше я не смотрел.
>>875583
#53 #875583
>>875572

>У тебя свалка зависимостей вместо пом файла.


А как лучше организовать POM? Вынести версии в properties? Как-то разбить его по блокам функциональности/фреймворкам?

>От твоих дао течет кровь из глаз. Раз уж ты делаешь приложение на основе спринга и хибернейта, то посмотри в сторону Spring Data.


Можно про кровь из глаз поподробнее? Spring Data посмотрю, спасибо.

>У тебя в ентити целых три поля с именем time и все три разных классов. Лично я их не различаю. Зато ты откомментировал каждый сеттер и геттер, круто.


Спасибо, поправлю. Про геттеры и сеттеры прочитал в рекомендациях по написанию javadoc, что лучше комментить не private поля, а их public геттеры/сеттеры.

>Ну и дальше я не смотрел.


И на этом спасибо!
#54 #875585
Зачем нужен итератор, если можно использовать методы, которые есть в коллекции?
#55 #875589
>>875585
Не нужен, все, деприкейтим итераторы из ждк.
>>875652
#56 #875652
>>875589
Не оценил юмора.
#57 #875679
Дайте книг по сервером программированию плес. Хочу создать свой локальный сервер, но в серверах вообще не шарю
>>875795
#58 #875683
>>875585
Итераторы правда не нужны.
если ты конечно не пишешь что-то ну очень низкоуровневое, что тебе может быть и понадобится он
#59 #875690
>>875585
Ну, например, чтобы пройти по коллекции и удалить какие-нибудь элементы.
#60 #875696
>>875585
Расскажите как работает for изнутри.
for (Object o : objects) {...}
Реальный вопрос с собеседования.
>>875708
#61 #875708
>>875696
Как обычный for? Только конпелятор расписывает сахар в привычную форму?

Object o;
for (int i=0; i< objects.length; i++){
o = objects;
...;
}
#62 #875710
>>875708
objects, разумеется.
>>875712
#63 #875712
>>875708
>>875710
бля, я обдвачевался, квадратные скобки макаба сьедает
#64 #875737
>>875708
Спасибо, мы вам перезвоним.
там под капотом итератор используется, while (hasNext) next ну и т.п
>>875742
#65 #875742
>>875737
Ну блять, это естественно же. Я то и на х86 ассемблере писал вот это вот все, не сильно сложнее фор изнутри, чесслово. А зачем знать байткод жвм на собесе. наверное потому что рожей не выщел и надо отказать вежливо.
#66 #875750
>>875708
Теперь напишите класс "односвязный список" и сделайте так, чтобы он работал с for.
Какова будет сложность прохода?
>>875764
#67 #875764
>>875750
Ой на ночь сочинять не хочу, помню что писал такую фигню за 10 минут, еще когда джавакор изучал, дял практики. Тут соглашусь что неосиливший недостоин.
#68 #875795
>>875679
new ServerSocket(1488).accept()
>>875810
#69 #875810
>>875795
Хороший сокет.
>>875829
655 Кб, 2304x1536
#70 #875829
>>875810
А то
#71 #875856
Бля, почаны, не хочу создавать новый тред, пишу в этом. Недавно начал изучать Джаву, дошёл до строк. Накидал простенькую программку, а она нехочет даже компилироваться.
Вот ссылка на код: http://ideone.com/NjJwek
Помогите, плиз, кто шарит, а то я в растерянности.
#72 #875858
>>875458

> реквестирую годных книг, видосов, курсов по spring и вообще как вкатиться в него


бамп
Ну же аноны не хотят поделиться годнотой
#73 #875884
>>875856
Кавычка лишняя.
>>875897>>875945
#74 #875897
>>875884
Где? Там их чётное количество.
>>875903>>875907
#75 #875898
Есть хелловоролд спрингбут сервер, торчит парой рестов на ружу, как туда запилить код, который будет раз в час, например, работать с базой. Какой метод наиболее каноничен?
>>875904
#76 #875903
>>875897
Ищи лучше.
>>875913
#77 #875904
>>875898
М-м-м, @Scheduled ?
>>875908
#79 #875908
>>875904
Благодарю, почитаю.
#80 #875913
>>875903
>>875907
Так она же преобразована в unicode последовательность. Почему она интерпретируется как обычная?
#81 #875915
>>875913
спроси у джаваси
>>875917
#82 #875917
>>875915
Что это такое?
>>875919
#83 #875918
>>875913
escape-последовательности заменяются соответствующими символами
>>875920>>875945
#84 #875919
>>875917
ты что, не знаешь Джавасю?
>>875920
#85 #875920
>>875918
Ну при выводе на консоль же.
>>875919
Нет. Кто это?
#86 #875923
>>875920
При компиляции заменяются.
А Джавася - это чувак, превращающий твои сорцы в байт-код.
>>875931>>875945
#87 #875924
>>875920
Это наше божество, одно из, оно смотрит твой код, и направляет тебя на путь истинный.
>>875926>>875932
#88 #875926
>>875920
>>875924
Направление на путь истинный обычно выражается в форме так называемых "compilation error". Только просветлённые могут понимать знаки божества.
>>875927
77 Кб, 571x699
#89 #875927
>>875926
С долгим опытом медитаций, начиаешь понимать его лучше и лучше.
33 Кб, 317x372
#90 #875930
Одно из неканонических изображений Джаваси.
#91 #875931
>>875923
Я Эклипсом компилирую. Не совсем понимаю, о чём ты.
>>875932
#92 #875932
>>875931
Ну написано же >>875924 "одно из". Если компилируешь Эклипсом, значит твоё божество - Исиджи.
>>875934>>875936
#93 #875934
>>875932
Да я только вкатился, ребят, а вы мне про какие-то божества затираете. Можете конкретно пояснить, в чём моя ошибка?
>>875940
#94 #875936
>>875932
не Исиджи, а Исиджей, неверный
#95 #875940
>>875934
Божество даровало тебе откровение - "unclosed string literal". Иди и медитируй над ним, чтобы постичь суть учения Джава.
>>875943
#96 #875941
http://rgho.st/6gpGfpnzc
Пожалуйста. Ткните меня в косяк 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]
>>875946
#97 #875943
>>875940
Но там же две кавычки, одна открывает, другая закрывает. Unclosed это же незакрытый? Там же строка в двух кавычках.
>>875945>>875947
#98 #875945
>>875943
Также ты можешь медитировать над предыдущими постами.
>>875884
>>875918
>>875923
#99 #875946
>>875941
Два раза вызывается it.next().
Сделай так:
while (it.hasNext()) {
Triangle t = it.next():
System.out.println(t + " S=" + t.s());
}
Я не смотрел, какие у тебя там типы, просто вместо Triangle подставь тип, который у тебя обозначает треугольник.
>>875949
#100 #875947
>>875943
В трех, Карл, тебе же ткнули носом где ошибка.
>>875948
#101 #875948
>>875947
\u0022? Так она же в виде unicode последовательности, разве так нельзя? Внутри строки же допустимы unicode последовательности.
>>875951
#102 #875949
>>875946
он самый, Triangle.
ЗЫ. Хотел было спросить, в каком смысле два раза - пока пиал вопрос просёк.
tnx.

ЗЗЫ. Всё же выводить через Arraylist'овский get мне нравится больше. В чём профит итератора?
>>875954>>876082
24 Кб, 480x363
#103 #875951
>>875948
Блять, очевидно же что тебе это задание дали, чтобы ты понял эту особенность блять парсера, ты не понял, тебе показали, ты споришь, хватит меня троллить своей тупостью.
>>875953>>875956
#104 #875953
>>875951
Ты не я, не ври.
#105 #875954
>>875949
В том, что код с итераторами у тебя будет работать обратно совместимо аж до версии 1.2, если мне память не изменяет. Enhanced for loop и StreamAPI - это всего лишь синтаксический сахар, как сказал анон выше, под капотом используются те же итераторы.
>>875958
#106 #875956
>>875951
Ну ладно, няш, чего ты злишься :3
Пояснил бы, что unicode последовательности преобразуются при самом первом проходе компилятора по исходнику, а уже потом в дело вступает лексический парсер, я бы от тебя отстал. А ты сразу ругаться. Ну, не сразу, но всё же.
>>875957
#107 #875957
>>875956
Извини друг, погорячился.
542 Кб, 385x883
#108 #875958
>>875954
Зачем мне нужна обратная совместимость? В конце концов везде ведь автообновления и прочее?

>Enhanced for loop и StreamAPI


А это что..?

И вообще, а хорошо ли это, создавать лишний объект. когда его можно не создавать?
>>875964>>875966
#109 #875964
>>875958

>Зачем мне нужна обратная совместимость


Тебе - не нужна.

А вообще - произвольный (get) и последовательный (iterator) доступ имеют разную вычислительную сложность на разных коллекциях.
#110 #875966
>>875958

>Зачем мне нужна обратная совместимость? В конце концов везде ведь автообновления и прочее?


Ну хуй знает, может доведётся ковырять какое-нибудь легаси-говно, написанное на 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, только кода стало ещё меньше за счёт введения дополнительных слоёв абстракции.
>>875968
#111 #875968
>>875966
так, так уже понятнее.

>(t -> t.draw())


А вот эта конструкция? В С++ ведь -> - оператор доступа? Тут тоже? А по нормальному, с точками, нельзя?
>>875969
#112 #875969
>>875968
Это лямбда.
>>875972
17 Кб, 583x349
#113 #875972
>>875969
не то чтоб я сильно понял, но буду гуглить.

А теперь не подскажет мне кто, почему джава перестала есть русский язык? И где это поправить?
>>875979
#114 #875979
>>875972
sc у тебя - это что?
>>875980
#115 #875980
>>875979
Scanner
>>875981
#116 #875981
>>875980
Пока есть вариант, что у тебя какая-то хуйня с кодировками.
http://stackoverflow.com/questions/13898578/making-cyrillic-readable-for-the-scanner-object-in-java
Например, из первого попавшегося.
>>875986
#117 #875986
>>875981
Окей, при установке виндовский кодировки это исправилось, но я был уверен, что там по умолчанию 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);


Мне интересно только, почему он вообще не выполняет ввод строки, перескакивая в начало цикла
>>876005
#118 #876005
>>875986

> почему он вообще не выполняет ввод строки, перескакивая в начало цикла


Так может ты в начале 0 вводишь. Или ты под отладчиком это увидел?

System.out.println("Хотите ли вы задать имена? \nВведите 0 - чтоб отказаться\n");
boolean bll = true;
if (sc.nextInt() == 0) {...}

Вот тут.
>>876008
#119 #876008
>>876005
Ну, комментарий "Введите имя" - выводится только если в начале был не ноль.

И вообще я тут всё похерил играясь с кодировочками. Так что переписываю с точки восстановления.
#120 #876082
>>875949
Потому что вместо ArrayList'а у тебя должен стоять List. И привалить тебе может не ArrayList, а какой-нибудь LinkedList.
Теперь посмотри реализацию get(int index) во всех версиях и сам ответь на свой вопрос.
>>876111
#121 #876111
>>876082

>Потому что вместо ArrayList'а у тебя должен стоять List


Что?
>>876124
#122 #876124
>>876111
Interface-based programming.
#123 #876154
Как адекватно сделать return в блоке try, если метод должен вернуть результат запроса к БД, например?

Эта же лютая хуета - делать переменную со значением по-умолчанию вне try в этом случае, а в самом try менять ее. Если будет ошибка - мне не нужно, чтобы код продолжал работать и возвращал всякую левую хуйню.
>>876173
#124 #876173
>>876154
Вангую, что ты обрабатываешь исключение в этом методе, а нужно обрабатывать его в вызывающем коде. В самом методе прописать его через throws, а блок catch удалить.
#125 #876285
Что можно написать, чтобы покопаться в коллекциях?
#126 #876293
>>876285
Подсчёт частоты встречаемости слов в тексте.
#127 #876298
>>876285
Олимпиадки?
#128 #876319
>>876285
Тащемта в них нечего копаться. Чтобы понимать коллекции, надо кампухтер саенс учить, а не collection api.
>>876345
#129 #876345
>>876319
А зачем? В учебнике описываются стек, очередь, хеш-таблицы, древовидные структуры. Что еще я должен знать?
>>876439>>876521
#130 #876360
Анонусы, я однажды наваял простейший асинхронный чатек на жабке. А теперь я, будучи школьником, хочу метнуться на конференцию какую. И вот встал вопрос, что можно интересного сверх этого наворотить, чтобы нескучно было. С джава-стеком не знаком, поэтому в голове вертится только какая-нибудь эллиптическая криптография
sage #131 #876402
>>873899 (OP)
Подскажите. Вкатываюсь в ЕЕ.
На сколько необходимо задрачивать XML?
DOM, SAX, StAX, JAXB, JSON, XStream вроде как осилил. Хватит ли этого? Вообще, на сколько часто используется в работе? Стоит ли заморачиваться с DTD и Сеткой?
>>876441>>876638
#132 #876439
>>876345
>>876345
Да и все. Всё остальное всякие разновидности. Топ лвл - напейсать свою имплементацию этого говна в каком-то рабочем виде. Нету тут рокет сайенса, но я так вижу 99% на этом отсеиваются.
>>876521
#133 #876441
>>876402
Ну XML так или иначе в ЕЕ везде попадается, в основном конфиги. А ежели будет что-то специфическое то выучишь за вечер, делов то. А вообще лишних знаний наверное не бывает, дрочи все что нравится, главное адекватно воспринимай актуальность технологии.
>>876638
#134 #876450
ананасы, кароч java джун (spring framework, javaFX, postgresql, *nix, tomcat, Docker, CI, git, php, bash, js(Angularjs, jquery), html/css не люблю но страшненько верстаю) Есть несколько самопальных проектов на java в процессе разработки аля - spring-boot микросервисная архитектура с angularjs на фронтенде. Заебался хиккавать в одного, хочу влиться в команду или просто покодить в паре, так сказать набраться опыта командной разработки.
пишем в телеграмм не стесняемся @christianlisov
>>876519
#135 #876519
>>876450

>java джун


На работе не хватает командной разработки? Или ты wannabe-джун?
>>876536
#136 #876521
>>876345
>>876439

>напейсать свою имплементацию этого говна в каком-то рабочем виде


>99% на этом отсеиваются


This.
Я в своё время забил на дальнейшее "копание" в структурах после попытки написать k-d tree, не подглядывая в существующие реализации (Сэджвиковский "Algorithms" на курсере).
#137 #876536
>>876519
работаю сисадмином в одной конторке никак не связанной с ит, круг задач крутится вокруг сопровождения openvpn аля mikrotik для жесткой связи удаленных офисов, поддержке asterisk телефонии с транками, и несколько серверов 1с, ad dc. В целом настоебало управлять всем этим скудным аркестром, т.к автоматизировал все что можно. Хочу обмазаться тырпрайзами, вот и ищу кто возьмет под крыло
#138 #876543
Добрый день. Объясните, пожалуйста, следующую магию:

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?
>>876544>>876550
#139 #876544
>>876543

>Переменной connection типа HttpURLConnection присваивается ссылка на объект типа URLConnection.


Но ведь это не так.

>(HttpURLConnection)


Ссылка на URLConnection явным образом преобразована к HttpURLConnection. Если там вдруг окажется не HttpURLConnection, а, например, JarURLConnection, ты получишь в рантайме ClassCastException.
>>876547
#140 #876547
>>876544

>Но ведь это не так.


openConnection()
Returns a URLConnection instance that represents a connection to the remote object referred to by the URL.
>>876549>>876557
#141 #876549
>>876547
Всё верно написано. Только URLConnection - абстрактный класс, так что возвращается instance одного из его наследников, который, тем не менее, является "a URLConnection instance".
>>876557
#143 #876557
>>876547
>>876549
И вообще я про другое.

>Переменной connection типа HttpURLConnection присваивается ссылка на объект типа URLConnection.


На самом деле должно выглядеть как:
Ссылке connection типа HttpURLConnection присваивается ссылка типа HttpURLConnection на объект типа (условно, хз какой он на самом деле) HttpURLConnectionImpl.
В дескрипторе объекта (на который указывает ссылка) отдельно хранится ссылка на Class, предоставляющий информацию о типа, и на объект в куче. Поскольку условный HttpURLConnectionImpl является наследником URLConnection и HttpURLConnection - то всё работает нормально. Но если ты вместо HttpURLConnectionImpl получишь из URL JarURLConnectionImpl, который не является HttpURLConnection то будет ошибка при приведении типа ссылки в (HttpURLConnection).
>>876560
#144 #876560
>>876557

>отдельно хранится ссылка на Class, предоставляющий информацию о типа, и на объект в куче


мать её рука ебал, нечетко сформулировал

отдельно хранятся два указателя: 1. на объект типа Class, предоставляющий информацию о типе (в частности, о методах); 2. на память, выделенную для данных объекта в куче
#145 #876638
>>876441
>>876402
Хуй знать, аннотации уже юзают давно.
>>876646>>876936
#146 #876642
>>873899 (OP)
Не так давно начал учить си асмы и прочие эксплоиты, и так и учил по сию пору, пока не понял, что этим мне не заработать даже на спички. Поэтому я теперь тут буду, с вами.
>>876647
#147 #876646
>>876638
Мир работает на легаси коде.
>>876668
#148 #876647
>>876642
Добро пожаловать, здесь все твои друзья, внимательно изучи шапку. Я кстати, тоже по такому пути прошел, даже схемотехникой увлекался и асмы на свое виртуальное железо и вот это во все. Но настало время слезать с шеи мамки и взрослеть.
>>876650
#149 #876650
>>876647
Благодарствую, уже изучаю и качаю книгу для даунов
#150 #876662
Вопрос, есть БД в которой есть пустая таблицанейм. Делаю маппинги и в них указываю несуществующие колонки. При запуске и работе они будут созданы автоматически? Или нужно делать все самому?
>>876693>>876718
#151 #876668
>>876646
В жопу, пусть займутся рефакторингом.
>>876692
#152 #876692
>>876668
Им для этого не хватало твоего ценного совета, ага.
#153 #876693
>>876662

>нужно делать все самому

#154 #876697
Яваны, такая проблема с JSTL - на нескольких jsp-страницах вызывается sql:query. То есть, каждый раз приходится вставлять setDataSource. А можно ли вместо этого в тег query каким-то образом передать готовый объект Connection?
>>876698>>877066
#155 #876698
>>876697

>на нескольких jsp-страницах вызывается sql:query


Да ну нахуй.
>>876701
#156 #876700
>>874148
Ну ты епта даешь!
Даже я школьник на гитхаб пушу, а ты нет?
#157 #876701
>>876698
А что не так?
>>876711
#158 #876702
>>874285
ВОТ ЭТО ПОВОРОТ
#159 #876711
>>876701
Не, я не ханжа, если это одноразовая страничка типа сделал-и-забыл, то почему бы и нет?
Но когда у тебя из нескольких JSP идёт обращение к одному источнику данных - это не наводит тебя на мысль убратьнахуй логику взаимодействия с базой данных из слоя представления?
>>876714
#160 #876714
>>876711
У меня этих страниц всего штуки три, в каждой по одному запросу - простая плоская таблица. Хотя да, ты заставил меня задуматься.
#161 #876718
>>876662
Если используешь spring&hibernate, то гугли что-то типа spring.jpa.hibernate.ddl-auto=update
132 Кб, 1920x1080
#162 #876722
Сап, меня недавно записали на курсы по джаве и на где-то пятом занятии я столкнулся с проблемой. Мне задали дома заставить этот шар вращаться, но я не знаю как. Хелп, пж
>>876727>>876748
#163 #876727
>>876722

> java gui


> swing


> курсы


Беги от туда.
#164 #876730
>>876727
Мне туда мотаться надо, ибо хорошего аттестата не видать. Так что сделать надо, но я чет не одупляю. Мне сказали, что начать надо как-то с уравнения окружности, но я не понимаю, как его применить, может я еще слишком мало в джаве знаю, что б такое юзать
#165 #876732
>>876727
А на чем написали Майнкрафт? Там же тоже графика есть?
>>876741
#166 #876741
>>876732
Майнкрафт - это такое уникальное явление, что про него даже на java.com есть отдельный пункт в FAQ-е: https://www.java.com/ru/download/faq/minecraft.xml
#167 #876748
>>876722
А гугол зачем бля, вроде это через синусы косинусы решается в 2 строки.
#168 #876764
>>876727
Двачую адеквата.
230 Кб, 1400x628
#169 #876806
А почему так? С индексами же проще.
#170 #876881
Товарищи, посоветуйте книгу/ресурсы по архитектуре/дизайну.
Например мне дали задание задевать что-то.
Я знаю требования к своей java компоненте, что дальше?
Я должен накидать диаграмму модулей, потом разбить модули на классы?
Как лучше выделять слои/модули/связи между ними и тд. Где это почитать?
Гуглил, выдает всякие паттерны, но чтоб понять какой патерн применять, надо уже разбивку на модули хотябы иметь.
Посоветуете?
>>876883
33 Кб, 400x525
#171 #876883
3 Кб, 300x168
#172 #876921
Устроился недавно мл. разработчиком Java. А старших как бы и нету. Дорабатываю проект на фреймворке Java Play. Руководитель предложил составить приоритет развития моих навыков, найти по ним курсы, и организация предоставит мне возможность обучения в виде времени и денег. Кто какие годные курсы может посоветовать начинающему Java разработчику в ДС ?
>>876925
#173 #876925
>>876921

>А старших как бы и нету.


Куда они делись? Может быть, нужно думать о том, как свалить подобру-поздорову из этой подозрительной компании?
>>876937
26 Кб, 588x351
#174 #876936
>>876638
У нас например толстый клиент написан на спринге и там нет автосканинга, потому что оно сканит слишком уж медленно.
>>877052
#175 #876937
>>876925
Они только в этом году внедрили систему, которую пилили подрядчики, а на поддержку взяли джунов. Есть миддл который проработал полгода, но по его навыкам я бы миддлом не назвал
>>877067
#176 #877052
>>876936

>Клиент на спринге, медленный автосканинг


Чего несёт, охуеть вообще
#177 #877054
Пишу качалку файлов по http. Вызывается это все из консоли
java -jar utility.jar -n 5 -l 2000k -o output_folder -f links.txt
Где n - количество одновременно качающих потоков
l - общее ограничение на скорость скачивания, для всех потоков, размерность - байт/секунда
Так вот, как заимплементить ограничение на скорость?
>>877070
44 Кб, 599x449
#178 #877066
>>876697

>на нескольких jsp-страницах вызывается sql:query

9 Кб, 480x360
#179 #877067
#180 #877070
>>877054
Буфферед ридер?
#181 #877085
Подскажите, что почитать про дженерики. Чувствую, что некоторые конструкции и разницу между ними я не совсем уловил.
>>877109>>877110
119 Кб, 858x664
#182 #877107
так ананасы, подскажите какой нибудь жава опенсорс проект, в который можно вкатиться?
>>877111
#183 #877109
>>877085
СТАНДАРТ
Т
А
Н
Д
А
Р
Т
>>877131
#184 #877110
>>877085
Generics and Collections
>>877131
#185 #877111
>>877107
На гитхабе полно проектов, выбирай любой.
#186 #877131
>>877109
>>877110
Пошли нахуй, пидоры.
>>877156
#187 #877156
>>877131
Аргументируй.
>>877164
#188 #877164
>>877156
Аргументировал тебе за щеку.
>>877198
#189 #877198
>>877164
Проверил, там ничего нет.
#190 #877246
Пацаны, когда давно вкатывался в джаву, щас решил опять навернуть, решаю разные задачки что б повспоминать что-куда. Подкиньте каких задач, и подскажите, что в коде ниже не так( работает правильно, по структуре кода и прочему неуверен что все идеально)
Задача:Создайте массив из всех нечётных чисел от 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);
}
}
#190 #877246
Пацаны, когда давно вкатывался в джаву, щас решил опять навернуть, решаю разные задачки что б повспоминать что-куда. Подкиньте каких задач, и подскажите, что в коде ниже не так( работает правильно, по структуре кода и прочему неуверен что все идеально)
Задача:Создайте массив из всех нечётных чисел от 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);
}
}
>>877248>>877260
#191 #877248
>>877246
обосрался чуть
http://pastebin.com/MF0D3bxK
#192 #877260
>>877246
Все делается в две строки:
int[] arr = IntStream.rangeClosed(1, 99).filter(i -> i % 2 == 1).toArray();
System.out.println(Arrays.toString(arr));
>>877273
#193 #877272
HashSet() не хранит ключи, а хранит хеш-коды объектов, а учитывая, что это множество они еще и в неотсортированном виде. Как я могу получить доступ к нужному мне элементу?
>>877279>>880078
#194 #877273
>>877260

>IntStream.


Это откуда?
>>877279
#195 #877279
>>877272
Что за чушь? Хэш-код - это лишь ключ к корзине (bucket), в которой лежат сами объекты.
Тебе чтоли надо найти элемент по хэш-коду?
>>877273
Java-8
>>877366
#196 #877366
>>877279

>Хэш-код - это лишь ключ к корзине (bucket), в которой лежат сами объекты.



HashMap() содержит пару ключ+значение и передаются ему ключ и значение <K,V>, где хеш-код ключ. В HashSet() передается хуй знает что <E> - что это? Ключ или значение?
>>877405>>877585
#197 #877373
Есть один джун (я) с опытом полугода, приходилось работать со спрингом и EJB, а тут подкинули книжку Гонсалвеса, говорят, мол, 10 из 10, базарю, еще захочешь. Вот я и думаю, с одной стороны, я сталкивался со всеми описанными в книге технологиями, с другой - вдруг в процессе я открою для себя что-то новое. Есть вообще смысл тратить время на эту книгу?
>>877390
#198 #877390
>>877373
10 из 10, базарю, еще захочешь.
#199 #877400
Учу джавень в универе. Ну, вернее С++\Джава Каждый симестр меняются. Программистом, на самом деле, работать не хочу, но сам процесс - мне лично весело. Поясните за то, на что я должен обращать внимание в ходе решения учебных задач? Ну, в смысле, решать-то я их решаю, не важно, каким способом. Но на что стоит обратить внимание? На реализацию интерфейсов? На ООПфичи? На лямбда-выражения (Которые я не осилил. В универе их в любом случае не будет. А сам я не понимаю, хм, зачем. Есть же функции\методы)? Что на счёт работы в паре с кем-то? Положительно сказывается или отрицательно на результативности обучения?

Плюсы мне не нравятся. Так что спрашиваю в этом треде.
>>877720
#200 #877405
>>877366
внутри hashset инкапсулирована hasmap, а значением для всех ключей служит единственный object. кури исходники
#201 #877585
>>877366

>где хеш-код ключ


Мы вам перезвоним.
#202 #877720
>>877400
Работа в группах большинству помогает учиться, это что касается вопросов о работе в парах. Естественно, задачки и упражнения нехуй друг другу решать
47 Кб, 983x486
#203 #877725
>>877726
#204 #877726
>>877725
Мы тебя услышали.
Java очень востребован #205 #877746
Ребят, я вот тут hh, полистал. И увидел такую картину, что ваш язык, является очень востребованным и хорошо оплачиваемым при хороших знаниях.
Конечно при хороших знаниях другого языка, тоже можно хорошо получать.
Но вот вакансий от 150 000 рублей, в вашем языке больше всего. Причем с огромным таким отрывом.
Очень интересно было бы услышать ваше мнение, почему так сложилось ?
>>877749>>889105
#206 #877749
>>877746

>почему так сложилось


Обмажешся жава тырпрайзами и будешь за 150к ворочить тяжелые неповоротливые проекты, при этом в реалях сегодняшнего для то годный жава девелопер должен уметь еще и в DevOps, и в какой нибудь SAP js фреймворк на фронденде. Суть в том что бы быть успешным жава волшебником нужно управлять целым аркестром. Еще дохуя софта для крупных контор пишется на java - аля платежные системы для банков, crm для крупных предприятий и т.д. Отсюда и 150-200к зп
#207 #878017
Не пинайтесь, я ньюфаг
Как настроить идею? Все по кодстайлу под чистый код настроил. Но есть проблемы с "edit configuration"
Настраиваю под приложение, но все равно он не дает сделать дебаг. Есть какие нибудь гайды? Киты разумеется стоят, в настройках выбирал их.
>>878018>>878042
#208 #878018
>>878017
Если ты не справился с запуском хеллоуворлда из идеи, то программирования - определенно не твоё.
#209 #878042
>>878017

> Но есть проблемы с "edit configuration"



Вангую, ты тупо намудрил в одном из стартовых экранов и пишешь проект на скале под андроид 2.3. Все, что от тебя требуется - указать путь до ждк, никаких шаблонов.
>>878211
250 Кб, 503x711
#210 #878070
Петуханы, настала пятница и меня временно выбросило из водоворота кровавого тырпрайза, паручасовой пересборки цепочки проектов (дай бох бобра разработчикам джававосставшего), CI, скрама, ебучих карточек канбана и ебли с планами выполнения реляционщины и захотелось забухать расширить анальный кругозор.

Засоветуй годноты за биг дату и хадуп в частности. Питон учить пока не готов, поэтому годнота нужна или отвязанная от питона языка, либо сразу под язык кровавого тырпрайза.
>>878131
sage #212 #878159
>>873899 (OP)
Помогите пожалуйста разобраться с таким моментом наследования.
Есть два класса:

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. Почему мы не получаем значения поля класса наследника?
#213 #878198
Я понимаю, почему нельзя делать единственный return в методе внутри блока if (возвращаемое значение может быть не инициализировано бла бла), но в упор не понимаю, почему нельзя сделать единственный return внутри цикла while

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;
}
}
}

Почему?
>>878199>>878246
#214 #878199
>>878198

>i.hasNext()


Ладно, допустим, это изначально будет false, но если его заменить на true?
#215 #878211
>>878042
Я же написал что путь до китов установил, последняя версия
Скачивал именно ЖДК
А про скалу - вряд ли, в стартовых ничего не менял
Алсо, писал приложения уровня крестики нолики (текстовый вариант) в нетбинсе, все было норм. Так что ошибок в коде скорее всего нет.
#216 #878223
Поясните за версии етой вашей жавы? Какую учить можно, а какую уже не стоит?
>>878224
#217 #878224
>>878223
Они обратно совместимы, учи последюю 8
#218 #878246
>>878159
Функции можно оверрайдить, а поля - нет.
>>878198
Что возвращать, если итератор пустой? В этом смысле while это тот же if, только зацикленный.
#219 #878275
Аноны, привет, подскажите пожалуйста по джаве такой моментец.

Допустим есть стринговская переменная "0x0022", сразу видно, что тут гексовская величина. Так вот, как мне вернуть это значение в гексах?
>>878297>>878301
#220 #878297
>>878275
Попробуй Integer.parseInt(String s, int radix)
Правда, не уверен, что сработает с таким способом записи.
>>878313
#221 #878301
>>878275
В гугл, пидрило.
>>878387
#223 #878305
>>878302

> 2016


> аджайл-хуйджайл


> CI и CD


> devops-хуйопс


> не писать тесты



Такие есть?
#224 #878313
>>878297

>Integer.parseInt(s, 16)


Сделал как-то так, спасибо.
СОЦОПРОС #225 #878348
1. Какими ОС пользуются Java-девелоперы?
2. Какими IDE?

Сам сейчас в Win7 + Intellij Idea. Планирую перебраться в ArchLinux и продолжить юзать II.
3. Всё правильно делаю?
#226 #878350
>>878348
Давай, установи арч.
>>878360
#227 #878354
>>878348
А мог бы учить Javascript.
#228 #878356
>>878348
Нахуй тебе эти прыщи нужны?
Это тебе скила в жабабыдлокодинге не прибавит. От слова вообще.
>>878358
#229 #878358
>>878356
В некоторых конторах в последнее время начали требовать заний linux.
>>878371
#230 #878360
>>878350
звучит как вызов.
#231 #878362
>>878348
зачем ты такой не экосистемный? купи гейбук, гейфон, гейпад, гейпод, дилдак и в бой, в рамках няшной экосистемы.

а по факту - всё делаешь правильно.
#232 #878371
>>878358

> 2016


> не иметь опыта с серверами, скриптами и никсами


> и при этом не знать Javascript.


Are you a madman?
#233 #878375
>>878348
Ты неправильно задаешь вопрос. Ответы очевидны, особенно второй.

Нужно иначе.

Какими Git-клиентами пользуется анон?
#234 #878380
>>878375

>Какими Git-клиентами пользуется анон?


Очевидный SourceTree, кракен это тормознутое говно внутри браузера
>>878382
#235 #878382
>>878380
Тормозное говно с налетом джавы и свинга вместо интерфейса. Без всяких профитов.
#236 #878383
>>878375
Пользуюсь CVS.
>>878385
#237 #878385
>>878383
Слышь, дед, слышал что в джаву добавили? Теперь там можно использовать сахарок дженериков.
>>878388
#238 #878387
>>878301
Двачую. Ваще охуели пидоры.
#239 #878388
>>878385
Сахар это белый яд
>>878389
#240 #878389
>>878388
Двачую, а если жрать каждый день говно, но убеждать себя, что это не говно, то жрать говно становится легче.
#241 #878393
>>878375
Git bash.
#242 #878395
>>878375
Ну GITHABE хуле.
>>878407
#243 #878407
>>878395
Гитхабен? Лови фашиста!
#244 #878432
>>878375
zsh + git
Git for Windows SDK в спермоокружении
34 Кб, 640x480
#245 #878548
Анон, надо вкатиться быстро и решительно в джаву после питона уровня начинающий. Суть в том, что надо освоить Appium и автоматизацию под Android. Куда и в какую сторону грести, чтобы зря не терять время?
>>878557
#246 #878557
>>878548
Обратно в сторону биг даты, очевидно же!
>>878559
#247 #878559
>>878557
Толсто.
>>878561
#248 #878561
>>878559
Ой, все.
#249 #879268
Жава всё?
>>879279
#250 #879279
>>879268
Boolean.TRUE.
sage #251 #879475
>>873899 (OP)
Наткнулся на лекции данного господина и чёто проиграл.
https://www.youtube.com/watch?v=DcFWgoKs5B0&list=PLd3UqWTnYXOnubQH6Gt8O8Dg-115U0ftk
>>879494>>879530
#252 #879494
>>879475
Из трех известных способов кивания индусами головой, он задействовал пока только один...
>>879495
#254 #879528
>>879495
Захотелось написать парсер индусского головного киваинга, запилить эмоциональную контектную оценку производимого кивка или последовательности кивков, жаль я только синтаксис пока учу
#255 #879530
>>879475
А чё, нормально говорит, почти всё различимо. Ну оно и понятно - преподаватель, всё-таки. Вот с поддержкой индусской голосом общаться - полный пиздец.
>>879531
#256 #879531
>>879530
Поведай кулстори, где тебе пришлось общаться с их поддержкой?
>>879705
8 Кб, 300x200
#257 #879534
Ходил на собеседование на джуна, зп 20k, дали тестовое задание где надо написать дополненный плагин Activity Stream для Jira за 5 дней, которое я конечно не сделал, в чём был подвох такого задания, оно сложное или я тупой?
>>879554>>879583
#258 #879554
>>879534
Подвох таких заданий в одном - работодатель жлоб.
>>879569
#259 #879569
>>879554
В чём жлоб? У конторы кстати есть пара громких косяков.
>>879583
90 Кб, 607x672
#260 #879583
>>879534
>>879569
Само задание
>>879597>>879776
#261 #879597
>>879583
Охуеть, дорогой, тебя хотели поиметь. Использовать неоплачиваемый труд для затыков внутренних бизнес-процессов. Озвучь имя конторы. Ну хоть что-то о ней.
>>879611>>879618
#262 #879611
>>879597
А мог ли он свой тадемарк поставить на этот код, еслиб его запили, типа нельзя юзать без моего согласия
>>879774
98 Кб, 462x634
#263 #879618
>>879597
Академ Медиа

Как у них работается.
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 с плагинами.
#264 #879620
>>879618

>попросили прислать хотя бы наработки


Ну а что, на халяву и уксус сладкий - подлатали бы что есть и был бы у них active stream
>>879625
39 Кб, 200x200
#265 #879625
>>879620
Даже если бы у меня что-то было, вряд ли они смогли бы подлатать.
>>879644
6 Кб, 429x410
#266 #879644
>>879618
>>879625
Ох, вспомнил ещё, на собеседовании говорили что вот если устроюсь то будет собственно Jira с java, ну и ещё возможно python + django, т.к. у меня это было указано в резюме.
>>879657
#267 #879657
>>879644
JIRA нахуй нужно вооще?
#268 #879665
>>879657
Допиливать её самодельными плагинами.
#269 #879701
>>879657
Удобною
#270 #879705
>>879531
На одной из прошлых работ они поддерживали SAP. Однажды упала вся корпоративная почта, а нужно было срочно поправить какую-то специфическую для России форму отчётности. После трёх попыток пообщаться (я с индусом из поддержки, я + начальник с fluent english с индусом из поддержки, я + начальник с fluent english с начальником-индусом из поддержки с "fluent english"), мы забили болт и в дальнейшем общались с ними письменно. А на претензии со стороны наших отделов (типа "а чё вы им по почте пишете, быстрее же позвонить") - проигрывали запись разговора, после чего претензии снимались. Причём письменно они общаются вполне прилично. Только жадные шопиздец, но это отдельная история.
>>879734>>879770
#271 #879734
>>879705
Пили про жадность,чего уж. Тоже интересно
>>880039
#272 #879770
>>879705
Люто, бешено инкрементирую про индусов.

был в континентальной Индии пару недель
#273 #879774
>>879611
И как он помешает ВЗЯТЬ @ И ИСПОЛЬЗОВАТЬ РАБОТУ ЛОХА?
>>879657
Добавил в беклог таску объяснить зачем нужна жира.
>>879778
#274 #879776
>>879583
Неоплачиваемые тестовые задания длительностью более 5 часов идут нахуй по определению.
#275 #879778
>>879774
Ну тип..запетил..низяа как работает машинка джавы? Они компилит сорсцы в байткод - а байткод это такой асм на специальную машину? можно ли там чего нахимичить злодеям?
#276 #879781
>>879778
Можно, но сложно. Конечно то и дело находят уязвимости, но это касается всех виртуалок.
#277 #879782
>>879778
Запетил тебе по губам, сынок.
>>879784
#278 #879784
>>879782
Как и ожидалось от джава папаши
#279 #879785
>>879778
А можно еще обфускатором отполировать. Анон в ситреде кидал такой, который все в mov превращает, даже небо, даже аллаха.
>>879788
#280 #879788
>>879785
На любом нормальном собесе смотрят исходники. Можно конечно в начале вкинуть обфусцированный код, а исходники только с рук показывать, с монитора своего ноута, но если тебя хотят наебать - то в лучшем случае ты потратишь эти 5 дней зря. Не стоит того вообще.
#281 #879800
По jstl вопрос, кто разбирается?

http://pastebin.com/C5ANH5cs

Можно здесь без тега <c:set> обойтись и как-нибудь прокинуть объект book прямо в <c:import> ?
#282 #880039
>>879734
Не знаю, связано ли это с их менталитетом, или ещё с чем-то, но любые доработки у них стоили совершенно безумных денег. Например, доработать регламентированную форму из четырёх колонок в SAPе, добавив ещё четыре колонки, стоило 15000 франков (швейцарских). Причём данные в "новых" колонках использовались те же, что и в "старых" (обычный для России продукт законотворчества очередного разрешительно-запретительного министерства). Как рассказал наш собственный САПер, который в итоге и наваял эту несчастную форму, формула у них была очень простая - 1500 за колонку + 1500 за работу в целом, и это всё умножить на 2 за срочность. Причем "срочность" была - две недели. В результате, чуть больше недели из этих двух мы потратили на переписку с головным офисом в стиле "Они охуели!" - "Да, они охуели, но у нас стандартные процедуры, вы не можете выполнять доработки самостоятельно." - "Да, но ОНИ ОХУЕЛИ!", и два дня на саму форму.
>>880041
#283 #880041
>>880039

> SAP


> удивляться почему любые денежные суммы, будь то затраты, цены или зарплаты на специалстов, сильно завышены


Конкретно твой приведенный пример не про индусов. Такая хуйня с любыми партнерами и интеграторами SAP, где умеют считать деньги и знают сколько за это возьмет рынок, и требуют соответственно.
>>880042
#284 #880042
>>880041
Не уверен, что они "умели считать деньги", т.к. в итоге их сменили из-за таких вывертов. А "рынок" всегда готов прогнуться под жирного заказчика.
#285 #880078
>>877272
В HashSet хранимый объект это одновременно и ключ, и значение.

Если ты посмотришь в исходники HashSet, то увидишь что под капотом у HashSet находится инстанс HashMap-ы, у которой ключами (key) являются хранимые объекты, а всеми значениями ссылка на объект-затычку (dummy).

Получить доступ элементу сета можно только через обход всей коллекции
2 Кб, 446x17
#286 #880138
#287 #880144
>>880138
Всего <1гб, что не так?
#288 #880146
>>880138
Нахуя нужен нетбинс при наличии идеи? НАчинал кодить на этом говне, рад что это прошло как страшный сон.
>>880179
#289 #880179
>>880146

>Нахуя нужен нетбинс при наличии идеи?


Я видимо зажрался, но идея тоже кажется уже не торт.
Хочется укатиться на Atom/VSC, которые жрут обычно пару сот МБ, против гибайтов IDEA и запускаются за секунды.

Да в них нет таких хитрожопых рефакторингов и миллиона подсказазок про самые тупы ошибки.
Но Java/C#/Dart на то и статически типизированны что можно не боятся руками делать рефакторинг
и если ты уже мидл и есть много опыта в языке, то лишние подсказки и не нужны.
>>880185
#290 #880185
>>880138
>>880179
Я, может быть, чего-то не понимаю, но почему объём используемой памяти приводят как аргумент за/против выбора IDE (или, скажем, браузера)?
В смысле, оперативка сейчас копеечная (летом собирал домашний рабочий комп - 3,5 тысячи за 16 ГБ). То есть понятно, что приложение, жрущее больше памяти может быть менее оптимизировано, в нём больше свистоперделок и т.п., но в итоге-то важен комфорт и удобство использования, разве нет?
#291 #880198
>>880185
Он просто пердолик.
#292 #880223
>>880185
Бля ну прикинь сколько времени оно загружается с диска? Или ты думоешь это генерированные на ходу данные?
>>880251
#293 #880251
>>880223
Точно, про диск забыл. Где-то встречал рекомендацию не закрывать Идею, чтобы она каждый раз не загружалась по десять минут. Дякую тобi б-же що у мене SSD.
>>880253
#294 #880253
>>880251
SDD хотя бы на 50% быстрее?
>>880270
#295 #880261
>>880185
Потребление памяти это следствие черезчур мощного анализатор кода в IDEA.
Проблемы выливаются так же в тормоза и скорость запуска ведь она написана на Java.

>но в итоге-то важен комфорт и удобство использования, разве нет?


Для комфотной работы, нужна подсветка ошибок и набор рефакторингов.
Microsoft смогли это как-то затолкать в пару сотен мегабайт в VisualStudioCode.
И получается что VS с тормознутым решарпером - нужны только джунам


>оперативка сейчас копеечная


>собирал домашний рабочий комп - 3,5 тысячи за 16 ГБ


Многим хочется не за железными гробами сидеть, а работать на стильных ультрамакбуках.
#296 #880263
>>880261

>а работать на стильных ультрамакбуках


>И в клетчатых рубашках.

#297 #880264
>>880261
Ну у меня на 8 гигах все ок. И ведростудия и эмуляторы с хромом.
>>880263
И смузи с маффинами.
#298 #880267
>>880263

>И в клетчатых рубашках.


>Потягивая смузи.

>>880287
#299 #880270
>>880253
В разы. Только, естественно, нужно всё на нём держать - и саму Идею, и проекты.
#300 #880272
>>880261

> не за железными гробами сидеть, а работать на стильных ультрамакбуках.


Но ведь у меня няшный беленький mini ITX. А работать на экранчике 13-15'' - ну нахуй.
>>880285
#301 #880280
>>880263
Клетчатые рубашки только серийные убийцы носят
>>880287
1603 Кб, 3264x2448
#302 #880285
>>880272

> у меня няшный беленький mini ITX


Я вообще фрилансер и могу работать из старбакса где угодно

>>880272

>А работать на экранчике 13-15'' - ну нахуй.


1) Язык с компактным синтаксисом Scala/Kotlin/Groovy
2) Distruction mode в IDEA
В итоге экрана хватает даже на шрифт Hasklig 16 с лигатурами
>>880293>>880303
#303 #880287
>>880261
>>880263
>>880267
>>880280
На стильных ультрабуках
И в клетчатых рубашках,
Потягивая смузи,
Серийные убийцы
...
>>880291
#304 #880291
>>880287
Звучит как текст какойнибудь гомогруппы типа Звери
#305 #880293
>>880285

>Я вообще фрилансер и могу работать из старбакса где угодно


Это ты типа похвастался? Я, конечно, тоже могу работать "где угодно", но предпочитаю удобное кресло, привычную полноразмернуюклавиатуру, большой монитор (или два) и тишину вокруг.

>Язык с компактным синтаксисом Scala/Kotlin/Groovy


>"На каком языке будем писать наш стартап?" - "Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!"


Заебись, чо.
>>880299>>880302
#306 #880299
>>880293

> >"На каком языке будем писать наш стартап?" - "Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!"


Проиграл.
#307 #880302
>>880293

>предпочитаю удобное кресло


И тебе тоже можно вставать на работу когда угодно,
обедать в любом ресторане города и бухать за рабочим столом?

>Давайте на Kotlin, его код хорошо смотрится на моём 13-дюймовом макбуке!


Да дело не в том как смотрится, а в лаконичности кода. Ты быстрее понимаешь как он работает, глядя на него.
Чем не повод взять современны язык?

Хотя я и на Java много писал, если не городить портянки по >1k строк, тоже отлично работается.
>>880311
#308 #880303
>>880285

> компактный синтаксис


> Scala/Kotlin/Groovy


Проиграл с это модного молодого человека
хескел господин
#309 #880311
>>880302

>И тебе тоже можно вставать на работу когда угодно, обедать в любом ресторане города и бухать за рабочим столом?


Exactly. Только я встаю по будильнику, обедаю (как и работаю) дома, и не бухаю вообще. А так - ты всё верно описал. Можно.

>Да дело не в том как смотрится, а в лаконичности кода.


Дело не в лаконичности кода, а в том, что "компактный синтаксис" и "экрана хватает" как критерии выбора языка для разработки (чтобы иметь возможность работать в любом ресторане города на стильном ультрамакбуке) - это какое-то шизохипстерское расстройство личности уже.
>>880317
#310 #880317
>>880311

>Дело не в лаконичности кода, а в том,


>что "компактный синтаксис" и "экрана хватает"


Не вижу противоречий
>>880420
#311 #880420
>>880317
Там нет противоречия. Это просто пиздец по определению, как критерий для выбора языка.
>>880513
#312 #880450
что за такое явление - javarush? стоит ли начинать оттуда?
>>880453>>880694
#313 #880451
Кек
#314 #880453
>>880450
Еще одна школа для тех кто хочет вайти в айти. Хуйня, ящитаю.
>>880499
#315 #880494
Стоит ли скачивать Core Java (10th edition) by Cay S. Horstmann? Или всё же скачать 9-ое издание для начинающего?
#316 #880499
>>880453
ну раз настало время откровений: Хорстман и Корнел норм написали?
>>880501
#317 #880501
>>880499
С них и начинал. Не самое плохое, но и не самое лучшее. Эккель получше наверное будет. Но, думаю, лучше их всех навернуть. И не забудь паттерны Гаммы и Чистый Код.
#318 #880513
>>880420

>пиздец по определению, как критерий для выбора языка.


А тебе никто и не говорил что это была причина выбора языка.
В общем я понял, ты путаешь причину и следствие.
>>880549
#319 #880549
>>880513

>А работать на экранчике 13-15'' - ну нахуй.


>1) Язык с компактным синтаксисом


По-моему тут никто ничего не путает. Был вопрос - как работать на таком милипиздрическом экране - ответ - выбирать один их этих языков. Итого - критерий выбора языка - компактный синтаксис, чтобы влезло в 13 дюймов.
>>880653
#320 #880653
>>880549
Мак на пузо, сам на диванчике или мешке - полулежи и работай. Против смузи ничего не имею, клетчатым рубашкам предпочитаю стоковые футболки.
>>880655
#321 #880655
>>880653
Так это-то норм, сам я 15" лежу. Тезис сам занятный.
#322 #880694
>>880450
Мне джавараш зашёл только как практика, чтобы руку набить (удобный плагин у них). Теорию параллельно у Эккеля читал, потому что эти кривляния а-ля Футурама - очень сильно на любителя.
#323 #880696
Пишу качалку простую. Пока работает http://pastebin.com/z0BtniVU
Как задать ограничение по скорости, которое ручками нужно вводить?
>>880699
#324 #880699
>>880696
token/leaky bucket
#325 #880709
Посоветуй годную БД.
>>880717
#326 #880712
Всем привет. На связи школьник, 11 класс. Надеюсь, что не поздно вкатился. Сейчас читаю "Изучаем Java", прочитал больше половины. Думаю, что чиать дальше. Думаю взять Кея Хортсмана "Java. Библиотека профессионала. Том 1. Основы." Осилю ли? А так же сейчас стоит ли придумать какой-нибудь проект и его реализовывать, практикуясь, терзая гугол и т.д.? Все равно ничего толкового еще не смогу написать.
>>880740>>880761
#327 #880717
#328 #880740
>>880712
Поздно. Нужно было с 8 класса начинать.
#329 #880751
>>880740
Хм, учитывая когда вышла Java, он мог начинать с младенчества
>>880755>>880862
#330 #880755
>>880751
Двачую. Повылазили вкатывальщики после 15...
>>880862
#331 #880761
>>880740
Два чая адеквату.

>>880712
Тебе это не нужно, бро, одумайся, пока не поздно.
263 Кб, 736x736
#332 #880799
>>880740

> с 8 класса начинать


Пф, да чего уж там, не сделал в детстве самодельного клона спеки, не написал к нему как минимум 5 игр, даже не думай вкатываться в IT.
>>880862
#333 #880800
Сап, ананасы. В веб-проекте под websphere не работает логирование через log4j. При logger.info в EJB-методе вызываемого из сервлетки выдает ошибку "Операция Connection.commit запрещена во время выполнения глобальной транзакции." Гугл говорит что поможет включение нетранзакционного источника данных. Но это нежелательно если проект не использует JPA, а мой проект как раз его не использует. Может кто сталкивался? И если сталкивался то как сделать это рабочим?
>>881879
#334 #880852
>>875856
Джава-богам тоже бывает непросто неинтересно свои синтаксические ляпы искать, я в логах на Teamcity подобное по нескольку раз в час вижу.
Им лишь бы больше интересных задач накодить
мимо devoops
#335 #880862
>>880740
>>880751
>>880755
>>880799
Это было просто лирическим отступлением. На вопроыс-то кто-нибудь ответить может?
>>880879
#336 #880879
>>880862

>зк


>отвечать на вопросы


Мы интернет покупаем не затем чтоб нас тут допрашивали
#337 #880951
>>875913
Просто поставь в конце \" и не выебывайся. Ну или сделай String s = "\u0077\u0065\u006c\u006c\u0020\u0064\u006f\u006e\u0065\u005C\u0022"; и продолжай заниматься этой хуйней.
>>880953
#338 #880953
>>875856
Вот, немного промахнулся.
>>880951
#339 #880957
Госпота, прошу выразить ваше мнение об instanceof в java и других аналогичных вещах. Богоугодное ли дело, втыкать сею конструкцию куда ни попадя, или же следует использовать с осторожностью?
>>880971>>880982
#340 #880971
>>880957

>втыкать сею конструкцию куда ни попадя


Для каких целей втыкать?
#341 #880982
>>880957
Я с трудом представляю код, в котором он действительно нужен. Почти всегда можно переписать так, чтобы обойтись без него, если только ты не херачишь какую-то темную магию на рефлексии.
49 Кб, 1140x600
SQL Injection validation #342 #880987
Суп, котаны,

предположим, у нас есть определённый запрос к бд, скажем

SELECT * FROM table_name

Мы хотим позволить пользователю как угодно ограничивать данный запрос через гуй. Например, пользователь вводит "where column_name like '%kk%'" и этот стринг тупо конкатенируется к нашему запросу.
Каким образом можно проверить введённую строку на SQL injection? Все попытки найти решение через гоголь ведут к тому, что все рекомендуют использовать PreparedStatement.
Но в данном случае передаётся не просто параметр, а весь where clause. Реально ли вообще валидировать этот стринг? Есть ли какие-то предусмотренные для этого библиотеки?
#343 #881003
>>880987
Если у тебя все ограничивается простыми селектами, то можешь просто проверять строку чтобы там не было всяких drop и тому подобного. Такой себе блэк лист на операции.
>>881154>>881158
#344 #881029
>>880987

А какая у тебя база данных? Почему ты не хочешь почитать документацию по ней, и настроить права доступа сообразно твоим желаниям? Тогда форма запроса будет даже не важна. БД все валидирует сама…
#345 #881086
>>880987

>Но в данном случае передаётся не просто параметр, а весь where clause


Хуйню сделали.
>>881154>>881158
#346 #881143
>>880987
Можно этот запрос пускать под каким-либо отдельным пользователем БД, у которого есть только права на чтение этой одной таблицы.
>>881154>>881158
48 Кб, 1200x1200
#347 #881154
>>881003>>881029>>881086>>881143

Благодарю, что сразу нахуй не послали.

>просто проверять строку чтобы там не было всяких drop и тому подобного



Можно на паттерны проверять, но всё не выловишь ведь. Алсо, чревато эффектами вроде "where DROPPABLE='Y'" не будет валидным.

>>881029>>881143

>А какая у тебя база данных?



Орасле.

>настроить права доступа сообразно твоим желаниям?



Это лишь фича в огромной софтине. Так что, не прокатит. Есть вариант - ограничить доступ к фиче, но надо согласовать с системным архитектором. А чтобы согласовывать, надо аргументировать, почему такой подход опасен и нельзя никак сделать его буллетпруфным в короткое время.

>Хуйню сделали.



Ещё не сделали. Концепт пилим. Подбрось аргументов, чтобы мы не пилили хуйню, если можешь.
>>881208
#348 #881158
>>881003>>881029>>881086>>881143

Ах да, котаны - запрос может меняться (вроде бы, только имя таблицы), но операция всегда SELECT.
#349 #881208
>>881154

>Ещё не сделали. Концепт пилим. Подбрось аргументов, чтобы мы не пилили хуйню, если можешь.


Ну смотри. Пилишь обертку над хешмапом. Ключ - имя поля, значение - какое-либо условие. И в своё дао приваливаешь как раз её. Чекнуть ключи на то, что такие столбцы есть - изи, дальше генерируешь вопросики по числу аргументов и всё. В простановку параметров может даже PreparedStatement.
Это так, если не задумываться особо. Но даже так лучше, чем хуячить кусок кода в sql с фронтенда.

>>881029

>Почему ты не хочешь почитать документацию по ней, и настроить права доступа сообразно твоим желаниям?


Ты хочешь пятнадцать юзеров держать на базе для одного приложения? Да и уносить какую-то часть бизнес логики в бд какая-то хуевая идея.
>>881220
#350 #881220
>>881208

>Пилишь обертку над хешмапом



Это уже что-то, но тут встают опять же новые вопросы:

- Что делать с условиями, вроде like '%%'? PreparedStatement может в них? Нет же, вроде?
- Что с rownum>=x? Уже отпадает при такой валидации.
- Sort, order by и т.д. тоже.

Думаю, что нужно ограничить фичу на простые условия, вроде COLUMN_NAME = 'value'. Тогда такой подход прокатит. Спасибо за идею!
>>881233>>881235
#351 #881233
>>881220
Ну смотри. Усложняешь структуру.
Передаешь уже не просто мапу стринг-стринг, а лист структур AbstractFilter.
У него какой-нибудь абстрактный метод void appendCondition(String sql) и byte[] getArgs().
Пилишь ему дохуилион наследников с каким-нибудь ключем, по которому будешь их десериализовать с фронта.
В итоге у тебя есть что-то вроде NumberFilter с вариантами из >,<,>=,<=,=. И какой-нибудь LikeFilter. Сечешь, к чему я виду?
#352 #881235
>>881220
>>881233
С сортировкой - та же фигня, отдельный класс.
#353 #881236
>>881233

> виду


пидарас
>>881241
sage #354 #881241
>>881236
Да уж, совсем хуево уже.
#355 #881244
>>881233

Блджад, но неужели нет фреймворков/библиотек, которые бы уже это предоставляли всё? Пилить колесо заново не очень хочется.
>>881246>>881552
sage #356 #881246
>>881244
Конечно есть. Criteria API хибернейта/jpa
>>881407
#357 #881407
>>881246

Но для них нужно перепиливать всю архитектуру. Создавать объекты для всевозможных таблиц.
#358 #881408
>>881407

>объекты



Классы.

Быстрофикс
#359 #881419
>>881407

>Создавать класс для всевозможных таблиц.


А у тебя их нет? Очень плохо.
>>881429
#360 #881425
>>881407
Т.е. вы просто работаете с базой напрямую, что ли?
>>881429
#361 #881429
>>881425>>881419

Именно так.

Сорри, посоны, я на работе сижу. Много писать не могу.
>>881440
#362 #881440
>>881429
Да мы тут тоже не в отпусках.
Трансакшнл скрипты имеют право на жизнь, но у вас должно быть ну очень маленькое приложение.
#363 #881552
>>881244
Я так понял, все пользовательские запросы - это выборки. Может быть, просто запретить изменение данных таким запросом? Что-то типа @Transactional(readOnly = true, propagation=Propagation.SUPPORTS)?
>>881557
#364 #881557
>>881552
Прочитай доки к @Transactional. Ну и даже если readOnly работало, то зачем там SUPPORTS?
>>881572
#365 #881572
>>881557
А, бля, в глаза долблюсь под конец дня, не оттуда скопировал. REQUIRED. Если они через JDBC работают (а я так понял, ORM там и не пахнет) - будет вылетать исключение при попытке изменения данных. Ну и конечно возрастут накладные расходы из-за транзакций.
17 Кб, 200x200
#366 #881587
>>874372

>Things we don't tolerate


>static/class methods or attributes


Где в таком случае находится точка входа в программу?
>>881589
#367 #881589
>>881587
Где-где...
#368 #881609
>>880987
Можешь глянуть на библиотеку JOOQ. У них есть статический генератор кода, запустишь генератор на своей базе, потом в приложении настроишь маппинг между Jooq-DSL и своим гуём. Так можно даже автоподстановку имен пилить.
#369 #881678
Чем join() от sleep() отличается?
>>881690
35 Кб, 640x549
#370 #881684
Сап двач, какой язык начать учить, котаны посоветуйте пожауста
>>881689
#371 #881689
#372 #881690
>>881678
всем кроме кобочек
#373 #881879
>>880800
Бамп вопросу.
#374 #881956
Здравствуй, анон. Подскажи, есть ли у меня шансы безболезненно вкатиться в Джаву при умении написания калькулятора на VB6.0?
>>881969
#375 #881969
>>881956
Здравствуй, анон. Вместо изучения джявы тебе пора учить хинди.

Почему хинди? Хорошо, давай учи ассамский язык, бенгальский, гуджаратский неплох, каннада очень своеобразен, многим подойдёт малаяльский, урду ласт возможность поработать и в пакистане. Язык черножопых обезьян, "дай банан", "это моя ветка", "дай я поищу у тебя блох". Забудь белые ванны, чистые улицы, здоровых белых женщин (опционально, скорее всего ты их и не знал), автомобили, уважение начальника, чистый офис с кондиционером, кусок мяса на ужин.

Программисты мира, отныне ваш босс - индус! Отныне ваш язык не английский, а хинди. Ваша город не нюйорк а примумбайский гхаткопар. В резюме будете писать не "работал на 5th авеню NY а потом LA. Рассматриваю работу за 100 тыщ баксов годовых и бонусы", а будете писать "работал в Хайдарабаде, штат Андхра-Прадеш, а сейчас в Канпуре, штат Уттар-Прадеш, готов работать за 1000 рупий, лижу жопу, живу в трущобах".
>>882011
#376 #882011
>>881969
Ув. Анон!
Есть ли какая-то надежда, что скромный ньюфаг сможет избежать такой злой судьбы?
#377 #882025
>>873899 (OP)
Начал только читать первую книгу. Насколько я понял, для программирования необходимо знать все возможности API (или знать где найти) и правильно составлять псевдокод (а потом его реализовывать).
Если первое это по сути энциклопедические знания и не требует особого ума, то второе уже сложнее. Как начать учиться составлять псевдокод по поставленной задаче? Я пока чет дико охуеваю со всего этого.
Как начинал ты, анон?
>>882032
#378 #882032
>>882025
С хуя в жопе.
7 Кб, 680x74
#379 #882080
http://ideone.com/Cparea

Метод run, вызывает синхронизированный метод, поэтому поток может получить к нему доступ, только если предыдущий завершил работу и вывод соответственно такой:

First0->0 First1->1 First2->2 First3->3 First4->4 Second0->0 Second1->1 Second2->2 Second3->3 Second4->4

При это в учебнике вывод совсем иной, как будто два потока работают одновременно, это ошибка?
>>882148
#380 #882085
Вкиньте кто-нибудь годноты по тестам с помощью селениума кроме офф документации
>>882097
sage #381 #882097
>>882085
Так годнее неё ничего нет. Всё остальное – васяноподелия.
#382 #882148
>>882080

>First0->0 First1->1 First2->2 First3->3 First4->4 Second0->0 Second1->1 Second2->2 Second3->3 Second4->4


>При это в учебнике вывод совсем иной, как будто два потока работают одновременно, это ошибка?



Не одновременно. Потоки будут в произвольном порядке - как шедулер виртуальной машины решит - получать доступ к синхронизированной секции кода (методу). По факту, скорее всего, получится "по очереди" - первый поток заходит в секцию, второй ожидает, первый выходит из секции, второй заходит в секцию и т.д. Но, емнип, это не гарантированное поведение - т.е. может и один поток два раза подряд зайти в метод.
#383 #882156
Поясните как в junit'е обрабатывать троу ексепшн?
>>882178>>882547
#384 #882167
Господа, возник следующий вопрос по JPA.

Предположим что есть у нас сущность Customer.
Есть на входе список имен.
Нужно проверить наличие кастомеров по указанным именам, при этом на выходе нужна коллекция содержащая отсутствующих в базе кастомеров.

Как это решить наиболее грамотным способом?
>>882169>>882178
#385 #882169
>>882167
И сразу расширю задачу.
Предположим что сущность Customer может обладать коллекцией сущностей Phone.

На входе у нас есть список кастомеров и телефонов.
на выходе нужно получить телефоны отсутствующие у указанных кастомеров
>>882178
#387 #882179
>>882178
Сажа приклеилась.
#388 #882182
>>882178

>ссылка


Ок, годная штука.
А есть вариант не под спринг?
>>882205
#389 #882205
>>882182

>Ок, годная штука.


На самом деле я перечитал, что тебе надо и там не особо подходит (читал через слово, пьян).

>А есть вариант не под спринг?


Spring Data - обертка над jpa, так что можно влезть в кишки и взять, что надо.

Вообще в первой задаче тебя спасет банальный IN.
Во второй ты просто руками вытаскиваешь все телефоны, которые есть и делаешь на всех коллекциях номеров diff. Сет из листа собрать сможешь же?
>>882215
#390 #882215
>>882205

>Во второй ты просто руками вытаскиваешь все телефоны, которые есть и делаешь на всех коллекциях номеров diff.



Понял, сет смогу сконструировать.
Спасибо за помощь!
>>882223
#391 #882223
>>882215

>Спасибо за помощь!


Обращайся. Всяко интереснее, чем помогать хеллоуворлды в эклипсе запускать.
#392 #882381
Поясните, какие технологии нынче в моде? Про Spring + Hibernate понятно.
А какие сейчас модные шаблонизаторы?
И что насчёт Spring Data? Она ещё жива или не стоит тратить время?
>>882492>>885317
#393 #882492
>>882381
Если честно, то я в свое время норм поебался и с спринг дата и хуйбернетом

Юзаю Spring JDBC Template и вам советую
>>882493
#394 #882493
>>882492
UPD: Но сейчас вообще с монго раьотаю и в хуй не дую (если не считать consistency проблемы и прочую асид поеботу)
#395 #882547
>>882156
>>882178
Это кошернее (если версия junit правильная).
http://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html
60 Кб, 733x547
#396 #882598
Памагити
>>882600>>882601
59 Кб, 500x498
#397 #882600
#398 #882601
>>882598

> Чингиз



Сука.
#399 #882604
Как в intellij idea включить описание стандартных и не очень методов, как в нетбинсе? Ну чтоб нажал контрол-пробел и прочитал, что оно делает.
#400 #882688
Что там у вас по зп?

мимо андроид
>>882702>>882711
#401 #882702
>>882688
А ты откуда и какой левел скилла?
>>882714
sage #402 #882711
>>882688
75к на руки, мухосранск, контора работает на аутсорсе
#403 #882714
>>882702

>А ты откуда и какой левел скилла


Из дома, 80лвл
#404 #882965
Буду писать JavaFX за 100$.
#405 #883216
Ребят, где скачать компилятор. Помогите
>>883243
#406 #883243
>>883216
Помогаю: на сайте оракль
32 Кб, 300x309
#407 #883341
Поясните за сервлеты. Я уже с десяток статей прочитал, но так нихуя и не понял, зачем они нужны и что это такое. Вот например начало одной из них

>Java Servlets are programs that run on a web server and used for developing web applications.


Охуительное определение! 10 из 10 нахуй!
Сервлет это просто нативный в джаве способ обработки http реквестов? Чем он принципиально отличается от rest контроллера в спринге? Или он как раз и используется в фреймворке внутри этих рест контроллеров? Или это вообще 2 разные вещи? Я нихуя не понял!
>>883353>>883369
#408 #883353
>>883341
Сервлеты описываются спецификацией - мол, вот тебе такой способ писать приложения, которые работают с http. Скомпилируй, положи в контейнер, будет тебе счастье. Как должен с твоим приложением взаимодействовать контейнер тоже описано спецификацией.

Ты мог бы написать полностью свой http сервер на джаве, если очень захотелось бы.

Ты верно ухватил суть, что что-то ещё может использовать сервлеты каким-то своим образом, а тебе предоставлять вообще изменённые до неузнаваемости интерфейсы. Почему бы самому немного в исходниках спринга не посмотреть, что же там внутре у ней?
#409 #883369
>>883341

>Сервлет это просто нативный в джаве способ обработки http реквестов?


Не нативный, но повсеместно используемый.
Абстракция над клиент-серверным взаимодействием. Клиент посылает запрос - получает ответ. Между запросом и ответом - работа сервлета.
Ты можешь реализовать свой сервер на чистой Java, но придется столкнуться со множеством проблем. Поэтому чуваки из Oracle (или это был Sun?) дали тебе спецификацию servletов. Ты пишешь свой servlet (если грубо, то процедуру обработки запроса), потом кладешь его в контейнер сервлетов (Tomcat, например) и запускаешь контейнер. Он возьмет на себя все проблемы с организацией подключений и прочим.

>Чем он принципиально отличается от rest контроллера в спринге?


@RestController это уже абстракция Спринга для быстрого создания ресткто бы мог подуматьконтроллеров.

>Или он как раз и используется в фреймворке внутри этих рест контроллеров?


Да.
#410 #883401
Помогите нубу! как конвертировать массив double в массив DoubleProperty? то что ниже у меня не работает

private DoubleProperty newArray[] = new DoubleProperty[25];

public void setNewArray(double[] array) {
for (int i = 0; i < array.length; i++) {
newArray.set.(array);
}
}
#411 #883527
Такой вопрос? Есть Swing-форма, у кнопки есть листэнер, который создает объект другого класса и запускает его метод. Как сделать так, чтобы данные которые генерируются в этом методе выводились в testArea на Swing-форме?

PS: Дадада, swing никому не упал и забытая хурма, но для все же.
>>883528>>883571
#412 #883528
>>883527
*textArea
#413 #883571
>>883527
YouTextArea.setText("Suka pwel nahui v google blyat huisos");
#414 #883582
Ребята, делаю тестовое задание на джуна и возник вопрос по структуре кода раньше долбил всё в одном классе, но это же не дело.

Мне надо подключить проперти файл и считать с него данные, как это лучше сделать, чтобы не плодить сущности?

Я объявляю переменную:
protected static String basePath = property.getProperty("path");

а потом передаю её в метод:
private static getFile(String basePath) {}

Или прямо в методе и херачить, без фигни и переменных? Потому что мужичок сказал на собеседовании, что главное это не использовать Unnecessary variables. Как вы считаете, позволительно так делать?
>>883600
#415 #883600
>>883582
На джуна? Какие у тебя знания уже есть? Наверное в методе, и вообще смысл прописывать путь в переменную? Можно же вызвать метод.
#416 #883788
Как можно перебрать все ip в заданном диапазоне? То есть есть диапазон к примеру 217.173.78.92-217.173.78.95, нужно получить список всех ip которые в него входят.
>>883790>>883839
#417 #883790
>>883788
217.173.78.92
217.173.78.93
217.173.78.94
217.173.78.95

Не благодари.
>>883796
#418 #883796
>>883790
Лол, меня интересует алгоритм
>>883804>>883834
#419 #883804
>>883796
Ну, блядь. Убираешь точки, ставишь начало списка и конец списка, генерируешь массив, ставишь точки обратно.
>>883823
#420 #883823
>>883804
Не сработает если входные данные будут например 2.92.128.0-2.92.255.255
>>883838
#421 #883834
>>883796
Ну это будет не простой алгоритм, хуле подумай сам-то рутина же.
>>883839
#422 #883838
>>883823
Думай.
#423 #883839
>>883788
>>883834
В каком месте он не простой?
http://ideone.com/50KGZY
>>883866
#424 #883866
>>883839
Я что то не совсем понял, зачем октеты инвертировать?
>>883871
#425 #883871
>>883866
А я что-то инвертировал разве? Вроде как ввел, так и вывел. Или ты про запись в байты?
>>883876
#426 #883876
>>883871
Да, про запись в байты
>>883878
#427 #883878
>>883876
Ну чтобы нужные октеты инкрементировались. Такие умные слова знаешь, а такие страныне вопросы задаешь.
101 Кб, 400x388
#428 #883913
>>873899 (OP)
Можно ли в Java выбрать на каком ядре процессора будет выполняться поток? Например, чтобы поток использовал второе и третье ядро из общих четрех.

Гуглил-гуглил, нагуглил такую вещь как JNA (http://www.quizful.net/post/java-thread-at-cpu-core), но можно ли сделать без сторонних библиотек?
>>883949>>884031
#429 #883949
>>883913
нинужно
#430 #883956
мне 32 года, высшее гуманитарное, работаю unix админом в кроке, сертифицирован выше крыши. хочу научиться в java программирование
#431 #883985
>>883956
Для админов лучше питон.
#432 #884031
>>883913
Суровые джава-девелоперы из "одноклассников" говорили что нельзя
#433 #884083
>>883956
Ищи книги из шапки же
#434 #884090
>>883956

> мне 32 года


Все уже, поздно. Крайний срок для войти вайти - 25 лет. После него войти вайти не нужны никому и от них только остается нытье на джавараше, что нибирут.

> высшее гуманитарное, работаю unix админом в кроке, сертифицирован выше крыши


Это, скорее, отрицательно говорит о тебе.
#435 #884092
Сап аноны, требуется помощь знающих spring. Как реализовать шаблонизацию как в cms, т.е чтобы в зависимости от страницы вызывался определенный шаблон с определенным контентом? Сейчас юзаю apache tiles для связывания jspшек и шаблонов, но там нужно их прописывать статично. Кто может подсказать?
>>884292
#436 #884292
>>884092
А хули там не понятного. В контроллере перед методами стоит аннотация по которой происходит маппинг, а в конце метода возвращается имя представления в виде jsp ну или какой у тебя там шаблонизатор.
>>884435
#437 #884293
Сап джаваны, для курсача надо нарисовать пару графиков, есть небольшой обыт разработке на спринге. Но мне кажется, что с гуи это будет быстрее, подскажите какие библиотеки юзать.
>>884441
#438 #884435
>>884292

>


с этим уже разобрался, возникло другая проблема. Можно ли как-то догенерить Entity через hibernate в IDEA, и чтобы не поебался проект. А то создал еще пару таблиц но работать с ними не могу.
#439 #884441
>>884293
Если графики простые то юзай дефолтные либы типо Java 2D Graphics. Если сложные
http://www.jfree.org/jfreechart/samples.html
http://knowm.org/open-source/xchart/
я сам юзал xchart все оче красиво вышло. Ну а если тебе нужно вставить в курсач, почему не юзануть матлаб?
>>884491>>884518
16 Кб, 296x181
#440 #884491
>>884441
Там простые графики пикрил.
>>884811
#441 #884518
>>884441
И тогда еще вопрос. Я с гуи никогда не работал, но слышал, что есть генераторы кода. Типо натыкал кнопок, а потом пиши себе обработчики.
>>884559>>884810
#442 #884559
>>884518
Ну есть во всяких иде, или отдельно.
122 Кб, 351x367
#443 #884568
>>873899 (OP)
Антуанты, спасайте!
Вчера начал учить жаву. Пишу примитивный консольный тест. Захотелось сделать задание с таймером. Вроде все норм, когда отвечаешь правильно срабатывает timer.cancel(), но когда не успеваешь, и программа говорит что время истекло, то все равно можно ввести ответ. Вопрос: как завершить программу после того как истечет время в таймере?
Надеюсь понятно написал.
>>884896>>884899
#444 #884810
>>884518
Да, есть такое в Java самый попсовый Swing - есть изкаробки в нетбинсе.
#445 #884811
>>884491
Выше уже пояснил юзай что-нибудь максимально понятное для тебя
#446 #884836
Добрый день уважаемые господа, являюсь 32 летним снабженцем в подразделении одной крупной компании. Достиг потолока своей карьеры в своем подразделении. Получаю на руки ~ 28к в мухосрани, что как бы нормально для обычной жизни. Хочу вкатиться в программирование, какие реальные перспективы могут меня ожидать, считаете ли вы, что я по посту потрачу своё время так и ничего не добившись на этом поприще? Мечтаю вырваться из этих рамок в которых я нахожусь в финансовом плане. въебывать готов.
>>884845>>884851
#447 #884845
>>884836

> Мечтаю вырваться из этих рамок в которых я нахожусь в финансовом плане


Во-первых, денег никогда не бывает много или достаточно. Во-вторых, развиваться надо в том направлении, в котором у тебя лучше всего получается. В-третьих, хороший специалист всегда будет востребован. В-четвертых, если у тебя есть свободное время, то въебывай. Только стоят ли деньги твоего золотого времени, которое купить за них нельзя? В кодинг хорошо вкатываться до 23, когда у тебя дохуя свободного времени, и ты беззаботно проёбываешь свою молодость.
sage #448 #884851
>>884836
Тебя затралили послав в Java

В твоем случае только:
1) тестировщий
2) фронтендер / верстальщик
3) JS или PHP программист (максимум что ты потянешь)
>>884861
#449 #884861
>>884851
Можешь пояснить почему? Типа он тупой и не сможет в языки программирования?
>>884872
#450 #884872
>>884861

> Типа он тупой


Типа у него времени не будет на джаву. Кто захочет в 32 года тратить ~5 лет жизни, чтобы просто вкатиться в кодинг? Только самый отбитый.
>>884875
#451 #884875
>>884872
Мне 35 и я уже 9 месяцев вникаю в эту джаву, из кора пока посмотрел много чего, сложно разобраться в этих ваших RMI и прокси объектах, та и с многопоточностью иногда надо повозится, что бы синхронизировать именно то что нужно, но мне нравится, хотя и не уверен что именно джава нужна будет, на не джаваскрипт например.
Хочу через полгода уже писать резюме и вкатываться в коворкинги и вот это все...
>>884877
#452 #884877
>>884875

> но мне нравится


Лучше поздно, чем никогда найти то, что тебе нравится в жизни.
49 Кб, 1580x492
#453 #884894
Ананасы, скажите как сделать луп для двух стрингов?
Парсил страницу, получил инфу, раскинул инфу по аррайлистам, теперь нужно для каждого аррайлиста сделать луп, но так чтобы выводилось в одной строке.
Уже от отчаяния пытаюсь фор за фором ебануть. Знаю что тупой дебил, но никак не могу найти решение.
>>885105>>887765
#454 #884896
>>884568
Ананасы, ответе. Я знаю, что вы знаете.
6 Кб, 107x84
#456 #884907
>>884899
Бля, писал эту команду и ничего не получалось, теперь только догнал что писал System с маленькой буквы. Спасибо.
#457 #884911
А есть здесь QA автоматизаторы? Что надо выучить, чтобы вкатиться с нуля в автоматизацию на Java?
>>884956
#458 #884945
Как вы называете классы, с маленькой буковки или с большой?
#459 #884956
>>884911
Есть, надо скачать, отсмотреть и понять:
– Любой базовый курс по Java
– Любой индусский курс по Selenium вместе с TestNG
– Любой курс по самомотивации, очень советую «Как перестать волноваться, что ты не настоящий программист и начать жить»

Если хочешь вкатиться прямо по-настоящему, то читай про PageObject, PageFactory паттерны и по созданию фреймворков под Селениум Ключевые слова Base Page/Base Test Classes
>>884960
#460 #884960
>>884956
Отдуши, браток. Базовый курс по JAVA что в себя должен включать? Может есть уже проверенные, которые хорошо заходят? Сейчас читаю Хорстманна первый том.
пацаны, объясните код плз #461 #884994
public static <T, SOURCE extends Collection<T>, DEST extends Collection<T>> DEST transferElements(SOURCE sourceCollection, Supplier<DEST> collectionFactory) {
DEST result = collectionFactory.get();
for (T t : sourceCollection) {
result.add(t);
}
return result;
}

https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
>>884997>>885062
#462 #884997
>>884994
точнее сигнатуру метода
#463 #885062
>>884994
Есть некая коллекция sourceCollection, типизированная T, есть Supplier(функц. интерфейс) collectionFactory, который, порождает опять-таки некую коллекцию result, типизированную T (принимаемая и возвращаемая коллекции могут быть разных типов). Потом в result добавляются элементы из sourceCollection и это всё возвращается.

Похоже, этот код добавляет элементы одной коллекции в другую (другого типа). В качестве Supplier'a запихивается лямбда, возвращающая коллекцию, в которую нужно добавить элементы.
461 Кб, 2830x1600
#464 #885105
>>884894
Ну же Антуаны. Расскажите мне мою ошибку.
>>886540
#465 #885130
Есть конструктор, но при создании объекта я не хочу использовать все переменные в этом конструкторе. Например, не хочу указывать дату рождения. Можно как-то при создании объекта указать только конкретные переменные? Например:

Human vasya = new Human(name='Vasia', adress='Mockow') ?
#466 #885132
>>885130
Не в Java сынок, не в Java
>>885134
95 Кб, 735x660
#467 #885134
>>885132
А в джаве как быть тогда? В питоне, я знаю, можно...
>>885138>>889118
#468 #885138
>>885134
Метод с переменным кол параметров. Перегрузка конструкторов?
>>885139
#469 #885139
>>885138
Хз, до этого еще не дочитал.
#470 #885142
>>885130
Если можешь дописать в класс еще один конструктор, то просто добавь еще один с необходимыми тебе свойствами, если нет доступа туда, можешь обернуть класс в свой класс и писать туда свои параметры, а те которые не хочешь, инициализируй в своем конструкторе какими-то дефолтными значениями.
мимо нуб.
>>885143>>885144
#471 #885143
>>885142
сукапздц сложна
#472 #885144
>>885142
Блядь, мама верни мне питон...
#473 #885150
На работе сказали, что в 2016 никто из консоли не запускает код (типа javac programm.java, java programm). Это так?
>>885152>>885154
#474 #885152
>>885150

>никто


Вкатывающиеся запускают. Это делается системой сборки за тебя, если был запрос на запуск программы, а не только сборку/еще что-то.
#476 #885317
>>882381
Бампую вопросы.
#477 #885360

СМЕНИЛ РАБОТУ
@
ТЫ ЕДИНСТВЕННЫЙ, КТО ПИШЕТ ТЕСТЫ


Сукасукасука, а на собеседовании были нормальными.
>>885377>>885534
#478 #885377
>>885360
НАШЁЛ РАБОТУ
@
ОФИЦИАНТОМ В МАКДАК
@
Т.К. ПОГРОМИЗДЫ В ЕБЕНЯХ НЕ НУЖНЫ
>>885527
#479 #885522
Где можно JavaFX поизучать? Желательно на русском.
>>885526>>886471
#480 #885526
>>885522

>на русском


no way
#481 #885527
>>885377
@
А ИНТЕРНЕТ В ВАШ ГОРОД НЕ ЗАВЕЗЛИ, ЧТОБЫ ФРИЛАНСИТЬ
#482 #885534
>>885360

>СМЕНИЛ РАБОТУ


>@


>ТЫ ЕДИНСТВЕННЫЙ, КТО ПИШЕТ ТЕСТЫ


Welcome to the real world.
>>885991
#483 #885538
Новый дизинг иконок в идеи ня
>>885637
#484 #885637
>>885538
Подтверждаю.
#485 #885735
>>873899 (OP)
Как установить JDK на вин7 ? Ебусь целый день с ошибкой 160... чо то там. Удаляю, перезагружаю, и нихуя, мне че систему переустанавливать из за этой злоебучей джавы ?
>>885740>>885963
#486 #885740
>>885735
Снеси старую версию деинсталлятором в разделе программы/удалить. Не поможет - вручную снеси с диска и риестора все следы жабы.
Там пиздец с обновлениями, если старая версия по какой-то причине недоудалилась.
Такой пиздец, что ни новую установить, ни каких-либо шансов удалить старую.
#487 #885963
>>885735

> злоебучей джавы


Злоебучая здесь не джава, а винда. Либо твои руки. Незачто.
>>886002
919 Кб, 712x1210
#488 #885991
>>885534
А потом ракеты взрываются.
#489 #885993
Сап, аноны. Даун в тренде. Учусь javе в шараге и собственно возникла задача вывести исходный код программы на экран алгоритмически. Каким образом это сделать?
>>885994
#490 #885994
>>885993
Обезьяна, ты ведь даже не пробовал заходить в гугл.
>>885999
#491 #885999
>>885994
Не обезьяна, а студент. Гуглить пробовал, нихуя не помогло. Чего стоит помочь-то, а не ругаться? Поможешь - я съебу и не буду вам мешать тут
>>886025
#492 #886002
>>885963
Да похоже винда, установщик виндоувс отвалился, не запускается даже после перезагрузки и не ставится не только джава, но и пакеты VS c net. Завтра снесу все к хуям
#494 #886204
А вот поясните за JavaSkript в Java. Почему нельзя было сразу возможность писать скрипты встроить в язык, как это сделанно в питоне? Причем еще и упоротый синтаксис делает этот фреймворк вообще не юзабельным в джаве.
>>886216
sage #495 #886216
>>886204

>JavaSkript в Java


Шел бы ты от сюда, петушок.
Йоба-синглтон #496 #886425
public interface SingleAnon {

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;
}

};

}
Йоба-синглтон #496 #886425
public interface SingleAnon {

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;
}

};

}
#497 #886471
>>885522
Что там изучать лол?
>>887759
sage #498 #886540
>>885105
Нихуя не понял.
#499 #886590
Где можно обучаться онлайн бесплатно и без смс? Как ни зайду на какой-либо курс везде "подписка". И что лучше: шароебиться по интернету или сесть и читать какую-то определенную книгу по джаве какую??
>>886594
sage #500 #886594
>>886590
в шапке, хуесос.
#501 #887344
Java-господа, хочу написать программу суть такова:
http-client в цикле с некоторым интервалом выполняет 2 запроса к серверу. В случае получения необходимого ответа цикл останавливается до наступления следующих суток.
Разумеется, это все должно где-то крутиться - в самом деле не на локальной же машине в идее гонять.
Поясните по хардкору, туда ли я зашел и, если туда, порикаминдуйте как лучше всего вот это всё организовать?
>>887758
#502 #887360
>>873899 (OP)
какой язык выучить прежде чем вкатываться? немного знаю сипипи и пайтон
#503 #887366
#504 #887369
#505 #887446
>>887360
английский
#506 #887488
>>887446
очень, блять, смешно, долбаеб, вот тебе было не жаль этих секунд жизни?
>>887564
#507 #887546
>>887360
выучи еще немного руби, си шарп и джава скрипт, только после этого вкатывайся. что за хуйню ты спрашиваешь длбб?
#508 #887547
>>887360
Ассемблер под DOS, после этого установи JVM версия тоже для доса, и в добрый путь
#509 #887549
Ребята где почитать про коллекции? Чтоб понятно было объяснено, гоголь вываливает сео помойку с хуетой, написанной какими-то слабоумными дегенератами.
#510 #887564
>>887488
Ты странный какой-то.
#511 #887568
>>887549
бля я хуею, человек берется объяснять что-то и пишет такой говнокод, как так можно то? или я не прав и так и надо!?
http://java-course.ru/begin/collections_01/
#512 #887573
>>887549
Generics and Collections. Maurice Naftalin, Philip Wadler.
>>887591
#513 #887591
>>887573
255 стр. на англицком? у меня на это уйдет полгода
>>887597
#514 #887597
>>887591
Тогда для тебя также актуален вот этот совет >>887446
Т.к. дальше будет только хуже в плане доступности материалов на русском.
>>887645
#515 #887645
>>887597
мда жаль, почему рузьке не пишут ничего по яве? ведь она актуальна вроде как.
>>887722
#516 #887722
>>887645
Ну, для новичков на русском куча материала, но ты должен понимать, что он, в основном, второсортный, т.к. пишется по принципу "надёргаю всего из разных книжек, а потом прорекламирую свои курсы за 100500 денег". А кто уже более-менее шарит - те обычно знают язык на уровне, достаточном для чтения книжек/туториалов/SO и просмотра лекций на английском. Т.е. написание или перевод материалов по более продвинутым темам никому, в общем-то, не нужны и если и делаются, то на голом энтузиазме.
#517 #887758
>>887344
В цикле делаешь запросы до того, как получишь ответы, которые тебя удовлетворят. Потом можно делать либо 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.
>>888822
#518 #887759
>>886471
плюсану
#519 #887761
>>885130
Подобное можно сделать с помощью паттерна Builder. https://ru.wikipedia.org/wiki/Строитель_(шаблон_проектирования)#Java

Либо добавлять несколько конструкторов с разным набором аргументов, как советовал господин ниже. Но это не всегда удобно и возможно.
#520 #887765
>>884894
Не очень понял, что ты хочешь.
#521 #888254
>>887446
Двачую, кстати. Код пишеться на английском для людей, в первую очередь, и форматируется через диалект языка.
#522 #888279
Как фон в JFrame менять? Попробовал разные способы которые мне дал гугл, но нихуя не меняется.
>>888291
#523 #888286
>>887549
Ну исходники почитай, достаточно занимательно.
#524 #888291
>>888279

>2k16


>юай на джаве

>>888307
#525 #888307
>>888291
братан, я только недавно вкатился в говнокодинг, мне посоветовали с джавы начать
>>888315
#526 #888315
>>888307
Все правильно посоветовали. Дам тебе одного очень умного еврея. Повторяй за ним, будешь умным и богатым.

https://www.youtube.com/playlist?list=PLkKunJj_bZefB1_hhS68092rbF4HFtKjW
>>888387
#527 #888387
>>888315
И что свинг которому он две лекции посвятил таки где-то используется еще?
>>888440>>888451
#528 #888440
>>888387

>свинг которому он две лекции посвятил таки где-то используется еще


IDEA же на нем написана
>>888459
#529 #888451
>>888387
Он дает неблохое задание на поломать девственный от ООП мозг, с гуем, движком за гуем и эксепшонами.
#530 #888459
>>888440
Хм, почему же моя Идея запускалась без ДжВМ...
#531 #888518
>>888459
Она запускалась под ДжВМ
#532 #888520
>>888459
С IDEA идет своя маленькая jre.
169 Кб, 698x555
#533 #888530
>>888459
Знаю точно что если у тебя мак, то там в комлекте идет своя патченная JRE с фиксом сглаживания шрифтов.

Так же для информации:
В Java есть утилита Java Packager которая позволяет собирать платформенные билды с запакованной java.
В Java 9 обещали добавить модульность и вырезание неиспользуемых API (бинарник будет меньше размером).
>>888674
#534 #888629
>>878159
Набор поля и методов определяются типом ссылочной переменной. Если хочешь получить доступ к полю класса наследника, тип ссылочной переменной должен быть соответствующим
>>888632
#535 #888632
>>888629
*полей
#536 #888674
>>888530
А разве сейчас нельзя повырезать ненужное?
Там же куча файлов - посносить и все.
>>888731>>888791
#537 #888731
>>888674
Вырежешь, а потом будешь бегать спрашивать почему фича_нейм не работает.
#538 #888736
>>878159
почитай про позднее связывание
#539 #888786
Посоветуйте стек технологий и примерное направление для Пет проекта на яве который бы на много процентов был похож на все то что используют в Ява энтерпрайзе?
#540 #888791
>>888674

>Там же куча файлов - посносить и все.


Насколько я знаю там есть юридические ограничения.
Ты можешь удалить только папку ext, там лежат Nashorn/JavaFX и еще что-то.

Остальное ты должен распространять без изменения по лицензии JRE
Тут говорится подробнее https://youtu.be/ePsev12d9dY ~30 минута
#541 #888798
Всем чмоки в этом чате. Пидор с ебучими треугольниками снова тут.
У меня тут вот какой вопрос возник...
А чего, треугольник по трём сторонам никак не построить?
Я нашёл только 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]);



Это то, что я придумал. А как-то по другому можно?
>>889095
#542 #888822
>>887758
Спасибо за советы мудрые.
#543 #888875
Spring Data
Заебался уже с ней.
Да поставил я генерацию в ддл. Но почему-то таблицы генерируются только если их нет. Если они уже есть, то новые колонки не добавляются. Какого хуя, блеать?
Может ну её эту спринг дату впизду? Мёртвая же технология, не?
>>888936
#544 #888936
>>888875
Где и как поставил, покажи?
#545 #889095
>>888798
Не пойму к чему ты будешь привязываться, если будешь строить по стороне, та и какие параметры кроме длинны есть у стороны, те же концы отрезка?
>>889679
#546 #889105
>>877746
Компенсация ковыряния в 8летнем легаси.
#547 #889108
>>879618
АХАХ. Работал у них в 2014 3 месяца за 17К, писал сдк для андроида (как раз тот сдк, который внедрял в приложения невидимую рекламу ололо). Потом соскочил в относительно норм конторку аж на 30К.
У них это нормальная практика - дать тестовое лоху а потом использовать в реальном проекте
#548 #889118
>>885134
Билдер или кучи конструкторов с разными параметрами.
24 Кб, 153x197
#549 #889248
Тут вот что-то запутался с обходом матрицы по диагонали, начал что-то писать, но как-то сложно выходит,
До половины обошел, вторую половину еще написав такую же муть только задом наперед можно получить, но может есть способ попроще
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++;
}
}
#550 #889266
Почему инкрементирование не атомарно? Я так понял, достаточно просто добавить synchronized и все?
>>889270
#551 #889270
>>889266

>Почему инкрементирование не атомарно?


Прочитать значение, увеличить значение, записать значение.

>Я так понял, достаточно просто добавить synchronized и все?


Лучше использовать Atomic типы.

З.Ы. Я тебе более того скажу - тупо запись значения в long и double тоже не атомарна.
>>889277
#552 #889277
>>889270
Я имел ввиду, почему джава девы не сделают такие простые операции атомарными? Достаточно ведь просто пометить их как синхронайзд или не все так просто?
#553 #889287
>>889277
Потому что лишняя синхронизация НИНУЖНА. И в Atomic классах синхронизация тоже не используется (хотя, в свое время, у IBM AtomicLong::incrementAndGet() был сделан тупо как синхронизированный инкремент, емнип). Но вообще, для этого юзают неблокирующие native методы класса Unsafe - getIntVolatile() и compareAndSwapInt(), например.
#554 #889327
>>889277
Глянь https://youtu.be/qKTREnERaec неплохо рассказывают про синхронизацию
#555 #889396
>>889277
Синхронизация - это дорого в плане производительности.
#556 #889500
Господа, зачем в некоторых проектах в финальных классах-утилитах (прости господи нас грешных) в приватном конструкторе выкидывают эксепшн. Неужели не достаточно просто приватности, только злой буратино-мудак будет рефлексией его выковыривать непонятно зачем, в чем соль?
>>889507
#557 #889507
>>889500
Чтобы выебнуться.
#558 #889679
>>889095
никаких. Только длина.
Я подумал, что можно всегда начинать из одной точки, скажем из (0;0), вторую ставить используя длину стороны напрямую (a;0), параллельно Ox;
А вот как правильно получить третью точку - я так и не понял. Вон, пытался выразить из системы, но как-то не очень вышло
>>889733
#559 #889682
Подскажие какую-нибудь легковесную библиотеку для построения не самых базовых 3D фигур, например пружины.
>>889684
19 Кб, 300x311
#560 #889684
>>889682
Вот для отрисовки что-то вроде этого.
3 Кб, 373x249
#561 #889733
>>889679
Если так, то надо геометрию школьную вспоминать -
надеюсь для начала ты проверил может ли вообще существовать такой треугольник(сумма двух сторон должна быть больше третьей)

по теореме косинусов узнать угол между
стророной (0,0;а,0) и стороной (0,0;x,y) (все данные у тебя есть).

Потом узнать из тереоремы синусов длинну красных сторон, это и будут тебе координаты точки х,у.
Ну и вобщем-то все.
>>890039
#562 #889749
Какой мотивацией обмазаться, чтобы не искать где попроще и быстрее чем в Java? Какой пет проект выбрать хоть отдаленно похожий на то что юзается в JEE?
>>890819
#563 #889763
Есть ли среди вас успешные вкатывальщики в скалу с джавы? В скала треде кроме перекати-поле никого нет.
#564 #889770
Ебать вы лалки, перекатить тред не можете.
Посоны, 100к в дс за год работы - это норм или НЕОЧЕ?
>>890549
#565 #890039
>>889733

>надеюсь для начала ты проверил может ли вообще существовать такой треугольник



Конечно проверил, угу.

Окей, большое спасибо. Мне казалось, что я делал что-то похожее, но теперь я даже и вспомнить не могу, откуда взял ту стрёмную формулу выше. Хотя она и похожа чем-то.

Огромное спасибо ещё раз.
50 Кб, 1067x201
#566 #890149
Может кто-нибудь пошагово объяснить как найти количество петель в графе?
>>890459>>890465
#567 #890459
>>890149
Вот тоже интересно, может подкинешь какую-то статейку по графам, а то мне тут граф сериализировать в учебном задании нужно, а я даже сам класс графов еще в глаза не видел.
#568 #890465
>>890149
Что тут непонятного?
Для каждой вершины графа
__Для каждой соседней вершины (имеет соединение с текущей вершиной)
____Если они равны (одна и та же вершина), то мы нашли петлю

Но посчитается каждая петля дважды.
#569 #890549
>>889770
У меня в котосибирске 95К за два года.
#570 #890819
>>889749
Сделай интернет-магазин
#571 #891127
Уважаемые объясните пжст зачем столько видов коллекций, трисеты, тримепы, итд, почему нельзя все тупо запихивать в аррейлист например? Чем я больше смотрю в яву тем больше она начинает смотреть на меня тем больше вижу миллионы каких-то функционалов, инструментов, это все надо знатьэто классика блядь? или юзается малый процент вот этого всего?
>>891145>>891152
#572 #891145
>>891127
Это всего-лишь Коре, дальше будет только хуже.
>>891150
#573 #891150
>>891145
Коре и SE это одно и то же?
#574 #891152
>>891127
По коллекциям - тебе нужно понимать, чем они отличаются и в каких случаях какие коллекции используются. Рекомендую Седжвиковский курс Algorithms на курсере. Это базовые вещи, не обязательно уметь писать на коленке квиксорт или красно-черное дерево, но программист должен понимать различия между структурами данных, сложность алгоритмов и тому подобные вещи (имхо, конечно).
#575 #891177
Вопрос у меня есть аррейлист, в нем несколько объектов, в каждом объекте по пять полей, я вижу что например в объекте первом и втором совпадают значения первого и второго полей, значит я должен соединить их в один объект, сделав попутно манипуляции с остальными полями в которых разные значения. Как это провернуть?
#576 #891253
Тред утонул или удален.
Это копия, сохраненная 15 декабря 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски