Это копия, сохраненная 11 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Откуда видеослайды?
Нашел.
Ты ошибся тредом, тебе в .NET
https://www.youtube.com/watch?v=kLO1djacsfg
Весь видеоряд не уместился в лимит.
>>767694
Следишь за нами?
Ой бля я поц, это для конфы снято.
Какая классная вемка, где вы это берете?
Потому что сишарп.
wew там еще и полный фильм будет.
И всего-то?
Потому что сишарп это пиратская версия Java. Microsoft посмотрело на Sun, посмотрело на Java и платформу JVM, и захотело также. Но чисто Java использовать не по-пацански, поэтому они запилили C#, попутно проебав переносимость и тем самым проебав тырпрайз сектор, который по значительной части или ебал Windows, или ебал C#.
>>767735
В андроид тред, там инструкция.
Ньюфаг штоле? Виндавс эта МАЗДАЙ.
Выруби hbm2ddl нахрен и он не будет пересоздавать твои объекты бд.
http://stackoverflow.com/a/3179948/4900642
Блятьямудакпиздецсука. Изначально был один конеткст, пока разбирался как оно работает. Потом разбил по слоям с импортами. И сейчас несколько дней ебался с конфигурацией ентитименеджера в дао слое, но в веб слое старую не удалил и только замеитил. Пушка.
Только чтобы нормально было, а не "в этой статье мы напишем как анонимные внутренние классы менять на лямбда-выражения".
Обоссал жабистов за шапку.
Потому что на JVM пишут в Clojure/Kotlin/Scala/Groovy, а в .NET популярен только C#.
Жабка то сама по себе та еще параша.
Вообщем суть такова:
есть клас Screen1, Screen2, Screen3 итд и есть клас GUIBuilder где я планирую насоздавать всякие типичные кнопки, лейблы, графику к ним и их поведение. Так вот как мне сделать так, что бы использовать только один екземпляр класа GUIBuilder, что бы экономить память, а не писать в каждом класе такое:
class Screen1 {
GUIBuilder builder;
public Screen1 (){
builder = new GUIBuilder;
}
}
class Screen2 {
GUIBuilder builder;
public Screen2 (){
builder = new GUIBuilder;
}
}
итд, как я понял при этом создаются много экземпляров, так как там графика, то все может быть довольно плачевно.
Что то слышал о синглтоне, но так и не понял поможет ли оно мне.
проебал скобки, но не суть
И да, синглтон сам по себе (т.е. без DI) поможет. Но тогда придётся класс гуйбилдера проектировать соответствующим образом.
А если без шуточек то я учился по вот этой книжке https://www.amazon.com/OCP-Certified-Professional-Programmer-1Z0-809/dp/1119067901
там не очень уж и подробно, но базовое понимание дает, остается только подгуглить иногда
>>767950
Спасибо начал читать о DI, походу это сложнее чем синглтон
Так подойдет, переписал с вики с добавлением своего кода:
class GUIBuilder {
MyButton btn1, btn2;
privat GUIBuilder () {
btn1 = new MyButton ("GO!");
btn2 = new MyButton ("STOP");
}
private static final GUIBuilder instance = new GUIBuilder();
public static GUIBuilder getInstance() {
return instance;
}
}
Я не совсем понимаю как это далее использовать, так что ли?
GUIBuilder.getInstance.btn1
то есть например так:
class Screen1 {
public Screen1 (){
this.add(GUIBuilder.getInstance.btn1);
}
}
>>767950
Спасибо начал читать о DI, походу это сложнее чем синглтон
Так подойдет, переписал с вики с добавлением своего кода:
class GUIBuilder {
MyButton btn1, btn2;
privat GUIBuilder () {
btn1 = new MyButton ("GO!");
btn2 = new MyButton ("STOP");
}
private static final GUIBuilder instance = new GUIBuilder();
public static GUIBuilder getInstance() {
return instance;
}
}
Я не совсем понимаю как это далее использовать, так что ли?
GUIBuilder.getInstance.btn1
то есть например так:
class Screen1 {
public Screen1 (){
this.add(GUIBuilder.getInstance.btn1);
}
}
Для начала и так сойдёт.
Везде, где тебе нужен экземпляр GUIBuilder'а, используй GUIBuilder.getInstance().
Отложи сейчас в сторону код на пару часов, скачай Spring in action 4th edition и прочитай первые 3 главы. Нинада синглтонить руками, тем более код не оптимальный.
У неё кадык и отсутствующая талия
> Я туториал пробежал глазами, там столько букав
> чтобы быть жава девелопером
Откуда вы лезете?
бля
Потому что.
Предварительно заполнить Map<Char, KeyEvent> и при надобности в неё заглядывать.
Лучше, да, но все равно придется писать функцию на ее заполнение.
>>768384
Там много куда можно посмотреть. Только как закодировать стрелки, их же не запишешь в файл.
Библиотеки в Java разные, и то что потрачено миллиард мегачасов - это правда, вопрос - всегда ли это хорошо. Многие библиотеки писались сто лет назад, с целью "шоб было", и по остаточному принципу ("для ассортимента"). Получились переусложненными, кривыми, полурабочими, но сделать с этим теперь ничего нельзя, потому что в мире гигатонны кода, уже завязанного на них.
Основная проблема жабы - что она проектировалась идеологически подкованными людьми и изготовлялась людьми по найму. Т.е. проектировали ее согласно руководящей линии, а делали для дяди и побыстрее. В результате какой-нибудь грегорианкалендар гибок до бесформенности, зато keystore.jks и cacerts.jks а)одни на все приложение б)прибиваются гвоздями при старте. Сервлеты и регексы, например, делали люди, которые про них, видимо, старательно прочитали, но а)сами их не использовали и б)сами использовать написанное не собирались. Про такие закидоны можно рассказывать долго - например, когда отдается xsd для wsdl, отдается не тот, который надо, а тот, который первым попался; пути к .xsd в .jar прошиваюстя целиком, и есть специальный параметр, указывающий, что от пути отрезать, чтобы получить путь в .jar'е к правильному .xsd. А так как у нас 21 век и уникод, то русские имена файлов лучше не надо; нетбинс же старательно пытается уложить все проекты в "Мои документы". Очень изящно получается, особенно если учесть чрезвычайную расплывчатость и невнятность жабьих сообщений об ошибках.
Всё что есть хорошего в Java называется JavaEE (это не значит в JavaEE все хорошо, однако вывод не-EE Java полностью бессмысленна, возьмите что угодно другое будет недалек от истины). Самое симпатичное находится в области JPA, JTA, JMS и JDBC. Это не означает что там какие-то невероятные охуенности, только то что делали их умные люди и делали без выдрыгонов - в результате оно есть и оно работает. Ничего сногсшибательного, никаких затей (уточнение - это на поверхности, внутри там если разобраться, особенно в районе JTA, происходит заметное количество штук, напоминающих то как Остап играл в шахматы - если иному народу расссказать, какие замысловатости происходят во время работы их кода - он, народ этот, не верит и сомневается), зато все есть и все как надо.
Но если у тебя веб-сайт на коленке, тебе все это не надо. Понимание зачем это надо и почему на ровном вроде бы месте столько странных телодвижений, можно будет к моменту когда веб-сайт на коленке разрастется в нечто плохо-понятное с кучами подсистем и выяснится что RabbitMQ это вообще не MQ, а распределенные транзакции и Оракел от молодежных CQRS и Монгов отличаются тем что работают. К этому моменту появляются многие понимания, например того почему работающих менеджеров транзакций на свете всего три штуки, и все они стоят очень пиздецатых денег. Но большинству этого всего не надо, и Java им не нужна, и мучаются они с ней совершенно зря.
Библиотеки в Java разные, и то что потрачено миллиард мегачасов - это правда, вопрос - всегда ли это хорошо. Многие библиотеки писались сто лет назад, с целью "шоб было", и по остаточному принципу ("для ассортимента"). Получились переусложненными, кривыми, полурабочими, но сделать с этим теперь ничего нельзя, потому что в мире гигатонны кода, уже завязанного на них.
Основная проблема жабы - что она проектировалась идеологически подкованными людьми и изготовлялась людьми по найму. Т.е. проектировали ее согласно руководящей линии, а делали для дяди и побыстрее. В результате какой-нибудь грегорианкалендар гибок до бесформенности, зато keystore.jks и cacerts.jks а)одни на все приложение б)прибиваются гвоздями при старте. Сервлеты и регексы, например, делали люди, которые про них, видимо, старательно прочитали, но а)сами их не использовали и б)сами использовать написанное не собирались. Про такие закидоны можно рассказывать долго - например, когда отдается xsd для wsdl, отдается не тот, который надо, а тот, который первым попался; пути к .xsd в .jar прошиваюстя целиком, и есть специальный параметр, указывающий, что от пути отрезать, чтобы получить путь в .jar'е к правильному .xsd. А так как у нас 21 век и уникод, то русские имена файлов лучше не надо; нетбинс же старательно пытается уложить все проекты в "Мои документы". Очень изящно получается, особенно если учесть чрезвычайную расплывчатость и невнятность жабьих сообщений об ошибках.
Всё что есть хорошего в Java называется JavaEE (это не значит в JavaEE все хорошо, однако вывод не-EE Java полностью бессмысленна, возьмите что угодно другое будет недалек от истины). Самое симпатичное находится в области JPA, JTA, JMS и JDBC. Это не означает что там какие-то невероятные охуенности, только то что делали их умные люди и делали без выдрыгонов - в результате оно есть и оно работает. Ничего сногсшибательного, никаких затей (уточнение - это на поверхности, внутри там если разобраться, особенно в районе JTA, происходит заметное количество штук, напоминающих то как Остап играл в шахматы - если иному народу расссказать, какие замысловатости происходят во время работы их кода - он, народ этот, не верит и сомневается), зато все есть и все как надо.
Но если у тебя веб-сайт на коленке, тебе все это не надо. Понимание зачем это надо и почему на ровном вроде бы месте столько странных телодвижений, можно будет к моменту когда веб-сайт на коленке разрастется в нечто плохо-понятное с кучами подсистем и выяснится что RabbitMQ это вообще не MQ, а распределенные транзакции и Оракел от молодежных CQRS и Монгов отличаются тем что работают. К этому моменту появляются многие понимания, например того почему работающих менеджеров транзакций на свете всего три штуки, и все они стоят очень пиздецатых денег. Но большинству этого всего не надо, и Java им не нужна, и мучаются они с ней совершенно зря.
А что обсуждать? Какой-то эмоциональный высер человека слабо разбирающегося в теме и не способного сформулировать мысль.
Кто что использовал для отчетов и прочей бизнес интеллиженс (BI)?
Есть как минимум 3 стула (Jasper, Birt, Pentaho).
Почитал про Jasper, прикинул хуй к носу и эфорт на его деплоймент, поддержку и тп и чет приуныл.
Идея с наличием генерирующего сервера мне нравится (это мне тащемта необходимо) , но хули в jasper все так запутано и через 33 пизды?
Может кто альтернативы знает?
Приходилось работать с SAP Business Objects и IBM Cognos. И то, и то квинтэссенция лютейшей ссанины. Если есть возможность, то используй ms sql reporting services.
К MS-стеку не могу привязываться в текущей задаче
Тогда тебе не char2KeyEvent нужен. Юзай сразу имена констант, VK_SHIFT, VK_LEFT и пр. На чтение файла в константы переводи рефлексией, в мапу сохрани.
for(Field field : KeyEvent.class.getFields()) {
int mod = field.getModifiers();
if (Modifier.isStatic(mod) && Modifier.isFinal(mod) && field.getName().equals(...)) { ... }}
Я днём сплю. Норм.
> Instead, I prefer the C struct style of writing classes that merely hold data:
> public class DataHolder {
> public final String data;
>
> public DataHolder(String data) {
> this.data = data;
> }
> }
> better Java
> I dislike heavy ORM frameworks because I like SQL. So I wrote a lot of JDBC templates and it was sort of hard to maintain. jOOQ is a much better solution.
jOOQ is ok. Но пушка про ORM пушка. На уровне того дба-обоссанца из прошлого тренда.
Пускай забирает свою лучшую джаву с собой и никому не показывает.
>>769111
Попиздите мне тут.
Чем меньше в жабе от жабы, тем она лучше.
Поэтому и jOOQ чуть меньшее говно чем большинство ORM.
> инкапсуляция не нужна
> мутабельность доменных объектов не нужна
> ORM не нужно
> стандартизация кода, кстати, тоже
Nodepad++ синтаксис java поставь.
> но ждать пока idea прогрузится
Петуханы, там NetBeans прогрузился (с). Идея грузится долго при старте. Другие проекты открывает быстро. Открой идею и минуту скролль двощ. Потом не закрывай. Или измени параметры JVM идеи и увеличь память - загружаться будет быстрее.
Кстати кто-нибудь знает в идее включена валидация ее class файлов?
Слышал что если ее отключить (какой-то ключик есть), то любая тяжелая Java программа будет загружаться в разы быстрее.
А есть легковесная IDE типа блокнота, но с автодополнением? Пытался vim настроить, но не вышло ни хуя.
Вроде по джава-стандарту (иначе даже обычная джава будет ворнинги писать).
Потому что в Java есть annotations. Служат разным целям. Конкретно @override говорит, что метод оверрайдит родительский метод и проверяет соответствует ли сигнатура метода родительскому.
http://javarush.ru/sale.jsp?gclid=CNaemf61p80CFSTjcgodun4Fzg
Сайт-то у них говенный и криворукий, конечно, я бы не доверил людям, не могущим сделать красивый сайт, свое обучение, но все же спрашиваю, может кто-то там учился?
for (int j = 0; j < 10; j++) {
i++;
}
вызывается из двух потоков, i - это field. реально ли получить по итогу i < 10 ?
Отличный сайт, благодаря ему научился всему и уже руководство рассматривает повышение до синьора.
к*
Давно положил. В этом или предыдущем ITT треде писал об этом, с линками на пруфы.
Так она и есть эти стандарты и их имплементации - JPA, JMS, JTA и товарищи.
Вот на все это Оракел и положил.
Может свое проприетарное будет пилить аналогичное, чтоб никто из его уютного манямирка не думал вылезать.
Может и не может, но создает непонятную ситуацию, которую за тобой кому-то придется разгребать. Вот почему так делать нельзя, даже если можно.
Просирать батарею и ресурсы на такой юзкейс не лучшая идея. А idea классная весщ, тут спору нет, но мне нужно что-нибудь ламповое и быстрое, если вдруг приспичит поскроллить сорцы явы или дройда.
А вот про параметры jvm погуглю, спсасибо, а то на лялексе чтот сильно глючит.
>>769178
Пробовал, но сильно всратый интерфейс и шрифты, глаз не услаждается.
>>769216
Спасибо няша, совсем забыл про него
"По-верхам" знаю кор, ЕЕ, пару фреймворков какие юзал, вебчик-хуебчик - для работы хватало. Были попытки пойти поучить что-то ещё: руби - хватило на месяц, не понял нахуя, JavaScript - вроде нормально задрочился, но вот бида - чувствую себя нубом.
Все ходят выёбываются про какие-то jms-ы, вротвыебаные задачи по многопоточности, ХАЙЛОАДЫ, БИГДАТЫ - жопа жопная. Я хуярю юайчик на gwt, пишу рест-сервисы, с другой энтерпрайз парашей, никакого рокетсайенса.
Чувствую что время идёт зря, и полным лохом себя вообще чувствую. Что делать?
>4ый год жабамакак
>про какие-то jms-ы
>пишу рест-сервисы
>с другой энтерпрайз парашей
Не сходится. Тебе ни разу, за 4 года, ни в одном REST-сервисе не потребовалась асинхронная коммуникация с каким-либо другим сервисом, который к тому же может и прилечь на полчасика иногда?
nah, все коллы - коллы к json-rpc какому-то, какой в базу ходит. Отвечает быстро, всё хорошо
И за все это время тебе ни разу не потребовалось обратиться ни к одному сервису дальше соседней машины (я уж не говорю стороннему вообще)?
И твоему нащальника заебись, молодца что у тебя синхронные вызовы, которые при задержке ответа от базы поставят раком весь твой сервер?
И тебе за все это время ни разу не пришло в голову что можно все это делать хотя бы чуть-чуть прямее?
>>769407
Парни, я вами обоими восхищаюсь. Я не представлял что такое бывает. Вот на ютубе курицу видел, она без головы бегала какое-то время, потом все-таки свалилась, не смогла. А вы - можете! И вам при этом - охуенно!
WHERE timestamp_column >= :timeFrom AND timestamp_column <= :timeTo
в параметры timeFrom и timeTo передаю объекты java.util.Date. итак, как игнорить дату?
алсо, читал оракловские доки на тему функций по времени. были там всякие EXTRACT(hours from ...). а мне нужны часы и минуты. итого выходит по два экстракта на два условия = 4 экстракта на запрос. потому и спросил, может нанотехнологии уже решили эту проблему
это уже сегодня читал (как и описывалось выше - экстракты и date_part отдельно по часам и минутам выпиливать)
добра в тебе мало, няш. блять, задал вопрос, ответили. тебя ебет в какой тред запостил? как будто в джава треде sql никто ни разу не видел. вот анон помог уже. и стоило ебать мне мозги из-за одной строчки ::time?
>>769467
спасибо
Давай я приду к тебе домой и насру под подушку, потому что тебе ебет куда я сру, уебок.
Ну ты и тварь.
приходи и сри, мне то хули? у меня их все равно две (подушки). а у вас тредов вообще 33
i++ не атомарная операция. Раскладывается на read,increment,write.
Первый поток делает read и останавливается.
Второй поток делает 9 раз i++.
Теперь i == 9.
Первый поток далает increment(0) и write.
Теперь i == 1.
Второй поток делает read и останавливается.
Первый поток делает 9 раз i++.
Теперь i == 10.
Второй поток делает increment(1) и write.
Теперь i == 2.
И это все при условии удачной синхронизации кэшей, конечно.
Ну или volatile i.
Как это сделать?
Ходи "итератором" по массиву и проверяй каждый элемент на соответствие нулю. Если ноль, то проверяешь стрингбаффер и если он пуст, то добавляешь туда ноль, а в начальный и конечный индекс пишешь текущий индекс. Если не пуст, то аппендишь ноль и изменяешь конечный индекс. Если не ноль, то стираешь содержимое стрингбаффера и начальных и конечных индексов.
Делай.
Идея не жрет ничего кроме памяти если ничего не делает, а она ничего не делает если ты в ней ничего не делаешь.
Хуйню написал. Какие еще бафферы?
Нужно хранить всего лишь 4 числа: начальный индекс, конечный индекс самой длинной последовательности; текущий начальный, текущий конечный индекс. Длина рассчитывается как (конечный - начальный + 1). Если текущая последовательность оказалась длинней максимальной, то обновляешь индексы максимальной.
алгоритм уровня зк
Автоматом конечным. Заводишь переменные maxlength и counter. Когда встречается нуль, инициализировать счетчик длины (counter=0) и потом увеличивать, когда нули закончатся (конец строки или другой символ) - брать подсчитывать длину из счетчика (counter), если она будет больше максимума (maxlength), то записывать ее в максимум. В результате в maxlength будет максимальная длина. Также запоминать индексы начала и конца в отдельных переменных (обновлять при изменении максимума).
Создаю spring приложение, жму new->GUI Form, все норм, появляется дизайнер. Накидываю компоненты, все работает. Закрываю иде.
Запускаю, открываю проект, дизайнера нет, есть только файл с xml разметкой. ЧЯДНТ?
учи сразу nio.2, гуглить так же
Так его нет, когда иде перезапустишь, не открывается. Или сторонний имеешь в виду?
Сап, двоч. В пятницу собеседование, хочу совета у бывалых, что там могут спросить.
Чисто гипотетически, могут вообще ничего не спросить, а сразу взять на работу. Шанс есть.
В шапке там есть ссылочка, а в той ссылочке еще одна ссылочка, а в той ссылочке еще две ссылочки, посмотри что там написано
Первых два клика за тебя я сделал, не благодари
https://github.com/qqqlll/Java-Thread/wiki/Interview
Сам циклами писать буду, а тимлида на монады подсажу.
Потому что примитивы не имеют методов. Примитивы нельзя определить как тип дженерика.
Потому что примитивы -- это не ссылочные типы. Соответственно, это не объекты.
А зачем нужны книги в ОП-посте, а, ленивый ублюдок?
Если по сути, то потому что обобщение примитивом невозможно из-за механизма стирания типов в runtime.
Блять, вы откуда берётесь? Причём тут type erasure и дженерики вообще? Ты, как, сука, в коллекцию примитивный тип запихнёшь (число / булево значение)? Пусть это будет версия джавы до дженериков, с обычными, не generic, коллекциями. Есть Collection. Есть число 2. Как добавить 2 в эту коллекцию, с учётом того, что она принимает только объекты?
Чтобы не хуярить постоянно самописные обёртки, их ввели на уровне спецификации и реализовали в самом первом JDK -- бери и пользуйся.
Причём тут дженерики или type erasure, не понятно.
Вечер капитанов.
>не делать руками имплементацию каждого ебаного parseInt()
Смотрите, дети. Вот что бывает когда вы видели только кривую эмуляцию полиморфизма в ОО-манямирке. Не делайте так.
Теперь, когда ты прекратил верещать и плеваться пивом, можно и поговорить.
Из твоих воплей ничего новичку не понятно.
В ранних версиях Java для работы с теми же коллекциями использовалось, внезапно, наследование. Как выглядела начинка того же ArrayList? Внутри лежал Object[]. Любой класс - наследник Object, значит, можно положить в ArrayList что угодно. За исключением примитивов, которые от Object не наследуются.
А так как мы все-таки в 2016, а не в 1995 году, пример с Generics актуален, свеж и тоже показывает потребность в обертках.
>показывает потребность в обертках в убогих языках без развитых средств реализации полиморфизма
дополнил тебя, не благодари
Они разве подходят под "не заебное"?
Нимейер Патрик и "Java 8. Полное руководство, 9-е издание", Шилдт Герберт.
Анон, помоги пожалуйста это сделать.
продолжение...
При нажатии на кнопку, которая была создана, открывается окошко с таблицой и несколькими кнопками. Кнопка 1 - создать столбец, кнопка 2 - удалить столбец, кнопка 3 - создать строку, кнопка 4 - удалить строку. Кнопка 5 - сохранить и отправить в БД(тут ещё используется база данных MySQL).
Ну вот закрыл я программу, открываю снова все созданные мною вкладки с кнопками должны сохранится(информация о том какие вкладки и какие кнопки созданны должны записываться в базу данных и, соответственно, браться из базы данных).
Шилдт - перепечатка доков с docs.oracle.com/javase/8/docs/api/index.html с ошибками. Первую не читал. Для начинающего лучше одну из этого списка:
1. Кэти Сиерра, Берт Бейтс «Изучаем Java»
2. Кен Арнолд, Джеймс Гослинг «Язык программирования Java» (от автора языка)
3. Брюс Эккель «Философия Java»
4. Кей Хорстманн «Java 2»
5. Джошуа Блох «Java. Эффективное программирование»
В какой IDE хоть делаешь? Вообще для формошлепства лучше C#, Visual Basic, Delphi/Lazarus или Qt.
делаю в IDEA
У меня есть "Философия JAVA", но как-то она меня не сильно впечатляет, да и там пятая Java.
Я вот Нимейера полистал в магазине, она мне показалась более прокаченная. Там и про лямбды, и про вэб-сервисы и т.д. Ну Шилдт и дороже так неплохо.
Ну не знаю, я просто гуглил, как создать окно, как добавлять кнопки и другие компоненты и т.д. Когда-то (очень давно) много писал на AWT и Swing. Вот пример из Википедии:
https://ru.wikibooks.org/wiki/Java/Первое_окно
Еще несколько статей:
http://www.javenue.info/themes/java-gui
Учебник по Swing на русском:
http://progbook.ru/java/181-portyankin_swing_effektnye_polzovatelskie_interfei.html
Еще у Хорстманна оно было описано.
У тебя открывающая скобочка не закрыта.
Вкратце, порядок следующий:
1) создаешь окно, если нужно выбираешь стиль;
2) добавляешь сетку для автоматического выравнивания/растягивания компонентов;
3) добавляешь компоненты в ячейки сетки;
4) устанавливаешь обработчики и показываешь окно.
> Based on Project Jigsaw, Java modularization will happen in Java SE Development Kit 9, which is due in March 2017. "If the watchword for JDK 8 was 'functional,' then the watchword for JDK 9 is 'transitive,'" said Alex Buckley, with the Java platform group at Oracle, during a presentation at a Silicon Valley Java User Group meeting.
>The new watchword refers to the promise that the forthcoming JDK will understand dependencies across modules, and will attempt to resolve these "transitive" dependencies at compile or launch time.
Про OSGi почитай. Теперь это из коробки будет. Компонентная архитектура, расширяемые приложения аки линукс.
Нинужен.
Кто тебе не нужен?
Чего ты ожидал от джава-макак?
Ну кстати по сути ЕЕ и так пилится уже не ораклом. Передали бы в управление редхату.
> List<String> collect = Files.lines(path).map(String::new).collect(Collectors.toList());
> BufferedReader reader = Files.newBufferedReader(path);
> List<String> strings = new ArrayList<>();
> String line;
> while ((line = reader.readLine()) != null) {
> strings.add(line);
> }
> reader.close();
Кончаю от функциональщины. Это норма?
Кем же оно пилится?
Не забудь этим ребятам с guardian рассказать заодно, ты ведь знаешь куда больше их.
Тут нет нормальной функциональщины, это лишь тень, но да, это норма.
Как уже правильно заметили, это не функциональщина, это мелкие рюшечки, синтаксический сахар, напоминающий по виду некоторые элементы ФП.
И не забудь все нуллы, которые в твоих напоминающих по виду ФП конструкциях могут встретиться, монады Maybe у тебя нету, и даже разделить Nullable и не-Nullable ты толком не можешь.
>>771137
> Clojure
> (defn run [nvecs nitems nthreads niters]
> (let [vec-refs (vec (map (comp ref vec)
> (partition nitems (range (* nvecs nitems)))))
> swap #(let [v1 (rand-int nvecs)
> v2 (rand-int nvecs)
> i1 (rand-int nitems)
> i2 (rand-int nitems)]
> (dosync
> (let [temp (nth @(vec-refs v1) i1)]
> (alter (vec-refs v1) assoc i1 (nth @(vec-refs v2) i2))
> (alter (vec-refs v2) assoc i2 temp))))
> report #(do
> (prn (map deref vec-refs))
> (println "Distinct:"
> (count (distinct (apply concat (map deref vec-refs))))))]
> (report)
> (dorun (apply pcalls (repeat nthreads #(dotimes [_ niters] (swap)))))
> (report)))
>
> (run 100 10 10 100000)
I'll better stick with Java 8 for a while.
Диплом - это единственное что можно написать на Clojure, учитывая то как оно тормозит.
Ну и функционального в нем, как в любом Лиспе, только несколько рюшечек. Потому что первое что с ним рекомендуется делать чтоб оно хоть как-то ворочалось, это - верно! - отрубить к хуям все эти рюшечки. http://stackoverflow.com/a/14116215
"Гибридный" язык - модно теперь стало такие лепить. "Гибридность" играет с ФП злую шутку потому, что на все проблемы с ФП в таких языках один ответ: Идиоматичный ФП-код тормозит? Не типизируется? Требует экранов бойлерплейта? Не используйте ФП! В нашем языке есть все, для того, чтоб ФП не использовать! (И кое-что, чтоб использовать, но вам это не пригодится). Понятно, что писать оптимизирующий компилятор, реализовывать адекватную систему типов и вообще что-то делать никому не охота. Поэтому у знакомых только с гибридами неизбежно складывается представление описанное Кметтом - "If scala was the only language I had to think in, I'd think functional programming was a bad idea that didn't scale". Scala тут заменяется на любой гибрид без изменения смысла всего высказывания.
У CL с этим, конечно, на порядки лучше, на уровне сравнимом с сишечкой, даже с бесплатным SBCL, особенно если в критичных по производительности местах помочь компилятору оптимизировать указывая типы. С коммерческими Lispworks или Allegro все совсем охуенно, но они дорогие.
Суть в чем, есть некий сеньор-помидор, который посмотрел задачку эту, и данный фрагмент кода изначально отметил как "замени двойные фигурные скобки, ввиду возможных проблем".
Ок, заменил на то, что вы видите на картинке. Выслал ему, его ответ - "formatting!"
Что это значит? Как его еще подравить?
Еще какой.
Для чего Clojure годится - это для ClojureScript, чтоб эту мерзопакостную джаваскрипту не ковырять. Джаваскрипту оно генерирует годную, а что генерирует небыстро - то не так и важно, к тому же джаваскрипты той обычно не гигабайты совсем.
Найди на клавиатуре клавишу Tab и отформатируй своих Петровых чтоб столбцы были ровненькие.
Включи отображение невидимых символов, в т. ч. в конце строки. Убери избыточный Employee из угловых скобок. После этого скинь весь файл целиком.
In this example a vector of references to vectors is created, each containing (initially sequential) unique numbers. Then a set of threads are started that repeatedly select two random positions in two random vectors and swap them, in a transaction. No special effort is made to prevent the inevitable conflicts other than the use of transactions.
Ну и как ты на джаве это напишешь?
"Тьюринг-полнота языков, что это и нахуя мне про это знать", издательство "Мир", 1961
Я перепутал с горизонтальным, горизонтально нинужно. https://google.github.io/styleguide/javaguide.html#s4.6.2-horizontal-whitespace
>>771184
Ну конечно {{ в данном случае ебанство. А еще отступ перед констурктором.
Хочешь сказать такую хуйню на фортране не делали?
НЕТ!
Зато все ровно.
У тебя по смыслу эти данные - таблица. Скорее всего, в таблице же и хранятся.
Ну и сделай ее выглядящей как таблицу.
Я лишь предложил вариант анону. Не знаю, что ему нужно конкретно.
Выглядит максимально ебануто. Алсо между названием класса и атрибутами не должно быть бланк лайна.
на джаве для того чтобы это написать нужно в пять раз больше строк кода и неплохое понимание java.util.concurrent
На кложуре все компактно и проще. Не легче, а именно проще.
java code conventions
Да сверхъестественной глубины нужно понимание чтоб лочить две позиции в векторе, и снимать после их свопа этот лок. Мастером 100500 уровня надо быть.
>>771180
>>771201
https://ideone.com/JblEBu - весь код
Нужно было оформить поиск по строке и поиск по году с месяцем.
ну форматни средой, перенеси все строки длиннее 80 символов и шли его нахуй.
>Ну конечно {{ в данном случае ебанство.
А когда не ебанство? Прост всегда юзаю и не вижу проблем.
Есть два xml. Чем будешь контейнер описывать?
Ну во-первых в статическом контексте, а во-вторых, ну может быть в биледре.
Ну ты это, java.util.Calendar используй, если че.
Так они на 8-ой жабе пишут, повезло что не взяли.
Класс состоит из интерфейса и реализации. Вот чем. А ты что ответил? Самому такие вопросы задавали и я конкретно срезался. Щас вот погуглил.
прошу не кидаться дерьмом, только начинаю свой путь в java :c
> Класс состоит из интерфейса и реализации
> Самому такие вопросы задавали и я конкретно срезался.
> Класс состоит из интерфейса и реализации
Што за хуйню ты несешь?
Я бы посоветовал IDE от jetbrains.
Как в Гиперборее.
>что класс состоит из интерфейса и реализации.
https://habrahabr.ru/post/30444/
с кем я на одной борде сижу боже
>>771458
А теперь найди это в документации оракле или в книжке дядюшки боба, а не в высере нонейма с петухабра.
Мне открывать документацию оракла и отвечать цитатами на инглише из нее руснявому интервьюверу?
Yes.
Они правы. В бекенде Node JS, а для стартапчиков руби. Ну еще сишарп для виндовых приложений. Java уже уходит в прошлое и вкладываться в нее мало смысло. Это как в кобол вкладываться - раньше тоже был самый важный бузинесс-язык, но он не развивался и все.
От себя рекомендую JS - сможешь и во фронтенде работать и в бекенд через Node JS вкатиться. В этом треде помогут: https://2ch.hk/pr/res/767377.html (М)
Удачи.
Смотря что хочешь писать. Java или C++ заставляют немного думать над организацией кода в отличии от языков с динамической типизацией.
Джава не мертва, но потиху начинается какой-то пиздец. У меня в конторе осталось очень мало проектов на джаве. Я хз что буду делать когда текущий закончится. На JS мб перекатываться..
У нас девелопер адвокат недавно проводил митап и сказал, что будем переводить проект на ноду из-за ее быстродействия и акторконтрллинга посоветовал всем готовиться, если не хотим сокращение.
Чорт охуевший. Старое и хуевое не значит плохое. Хотя немного он прав.
>акторконтрллинга
Что это?
>посоветовал всем готовиться, если не хотим сокращение.
Примерно так и у нас. Только при поиске нового проекта.
Суля по названию, спиздили Akka, все по пути хорошее из нее поломав, а все ценное но джаваскриптерам непонятное выбросив?
Единственный ее плюс в том что "не надо джаву учить, она слоожная".
Имея людей, которые ее уже знают, выкидывать Java и переходить на NodeJS - это какой-то апофеоз маразма.
> Both the Java EE and Node.js tech stack undoubtedly have their strengths and their flaws, but most importantly, I don’t see a single reason which would really let me turn down Java EE just now to write REST APIs. Both technologies offer a range of frameworks, and the opportunity to build your own, to make work easier. Most specifically, the important aspect of model validation currently seems superior in Java EE.
> Some of the Node.js packages I covered here clearly are still in a quite early stage
> http://www.codebulb.ch/2016/01/java-ee-with-jax-rs-jpa-vs-nodejs-with-hapi-bookshelfjs-part-2.html
NodeJS сливает по всем тестам, с огромным отставанием
http://blog.paralleluniverse.co/2014/02/04/littles-law/
>Oracle says it is closing down the Kenai.com and Java.net forges next year, so all project data has to be copied elsewhere before then
Теперь так буйнопомешанных на модно-молодежных технологиях социоблядей называют.
тот анон пиздабол, это не я был
из того, что не ответил - чем GET отличается от POST (не по предназначению, а чисто технически), что такое mutex, как отправить файл на сервер из командной строки линукса, что такое индекс (когда начал пытаться хоть что-то ответить, сказали, что я путаю индекс с первичным ключом), ну и самая пушка только не смейтесь - что такое Hashtable. И самое смешное то, что месяц назад завалил другое собеседование, в котором тоже спрашивали про Hashtable, и я тогда пообещал себе выучить нахуй все структуры данных, но, как сказано выше, необучаемый дегенерат.
Андроид жвм, но в Гугл Плее никто не платит за приложения, поэтому перспективы у андроид ньюфага хуевые. Хуячь лучше iOS - там все платят за приложения и инапп покупки. Язык objective c и новый эпловский. В общем, иди в тред iOS разработки и там подскажут.
> чем GET отличается от POST
> что такое mutex
> что такое индекс
> что такое Hashtable
> не знаю :(((
Нужно хоть что-то знать. Иди картриджи меняй и 1С настраивай.
Это базис, это знать надо.
И сам иди нахуй, псина. Я тебе добра желаю - профессию твоего уровня, а ты говнишься и оскорбляешь человека. Ну тогда продолжай посылаться нахуй на собеседованиях до тех пор, пока не дойдет до тебя, что это не твое.
я понимаю, разумеется, что ты мамкин траллер, но может ты все-таки объяснишь, зачем так делать? тебя в детстве стажер выебал или ты просто неудовлетворенный гей и тешишь свое чсв на таких, как я?
Вот это фантазии неграмотного необучаемого дебила.
Ладно, раз ты идиот, а не просто глуповат, то объясню на пальцах. Чтобы ты понял. Ты не знаешь основ и не стремишься даже их изучить. Ты необучаемый и, как выяснилось, неграмотный дурачок.
Внимание вопрос: нахер ты нужен? Зачем тратить на необучаемого человека время и деньги, чтобы он потратил время и деньги компании, и либо ничему не научился, либо нахватался верхов и при любой нестандартной задаче, где нужно сесть и подумать, будет кококо незнаю глаза в пол?
Компаниям на линейном уровне нужны люди, которые будут приносить им деньги, а не которые будут тратить эти деньги.
Теперь понял, или ты не просто идиот, а даже имбецил?
можешь не стараться расходовать ресурс своей клавиатуры как и свое время, ушлепок, тебе меня не сломить.
Мальчик-имбецил обиделся. Ну тогда:
> Ну тогда продолжай посылаться нахуй на собеседованиях до тех пор, пока не дойдет до тебя, что это не твое.
stfw
только начинаю знакомиться с многопоточностью в java, в связи с этим возникли несколько вопросов. Модификатор volatile может использоваться для всех типов данных, или только для примитивных типов? И ещё вопрос, для чего нужны атомарные типы данных, если существует volatile? То есть, в чём разница между volatile и атомарными типами данных? И объясните пожалуйста, в чём различие между блокирующей и неблокирующей синхронизацией
Есть в виде детской книжки для слепых безруких детей-инвалидов.
>>772050
https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ref=sr_1_1?s=books&ie=UTF8&qid=1466171926&sr=1-1&keywords=Java+Concurrency+in+Practice
Для всех.
volatile не даёт атомарность. Он лишь говорит, что сущность с таким модификатором не должна кэшироваться тредом + определяет семантику volatile read и volatile write посредством установления отношения "happens before". Таким образом, любой volatile write сущности будет отображён прямо память, и тред, делающий volatile read этой сущности, гарантированно увидит результат выполненного в другом треде volatile write.
Блокирующая синхронизация выстраивает потоки в очередь и в один момент времени синхронизированный участок кода может выполнять лишь один поток. То есть, атомарность операции достигается засчёт использования монитора (lock). Неблокирующие алгоритмы и структуры данных не используют синхронизацию. Вместо этого они пытаются сделать операции атомарными различными способами: для структур это, в основном, volatile read и volatile write с использованием CAS (Compare And Set); для методов -- возврат хэндлера результата асинхронной операции в виде объекта Future.
Мб кто из более опытных анонов поправит.
А для чего тебе именно на джаве?
Купил подписку, куча задач неясной направленности, но теория, как по мне, даётся хорошо. Учусь только по нему пока, в принципе доволен.
Ну, твой коллега и прав, и не прав одновременно. Действительно, чисто функциональных типов в джаве не завезли - лямбда-выражения строятся на основе функционального интерфейса и в глубине представляю инстанс функционального интерфейса. Синс эврифинг из эн обжект парадигмы.
Тем не менее - их вполне можно назвать first-class value, т.к. они умеют делать все, что должны делать first-class value: https://en.wikipedia.org/wiki/First-class_function
Конечно, когда компилер видит лямбду, он выясняет таргет тайп и абстрактный метод функционального интерфейса с помощью чего хавает содержимое лямбы и создает инстанс функционального интерфейса и работает с ним как с объектом и все остальное не в курсе что это лямбда и работает как с объектом, поэтому лямбды так легко вписались в существующий язык.
Поэтому first-class value - да. Объект - да.
Алсо про такое в 9 джаве не слышал.
> это синтаксический сахар для создания анонимного класса
Там теперь внутри invokedynamic.
Хуй положи на мнение спермораба.
Ок, спасибо анон
Начал упарываться в жабаFX - и блять, это же полный пиздец! До этого писал на крестах и qml, все было стройно и понятно, документация была интегрирована прямо в IDE где на любой элемент все разжевано и все описано. А я сижу с лицом аутиста над ебучим fxml и гуглю, как сделать чтобы элемент растянуть на размер предка (SomeElement { Zalupa { anchors.fill: parent} }), но блять - в интернетах ваще видимо никто не знает! А их гребаные пасты кода не работают.
Накидайте книжек по JavaFX8, желательно чтобы было с примерами объяснение этого ебучего fxml (нахуй они вообще этот ебучий xml впендюрили, был же годный читаемый jfx script суки!)
>Захотел выучить эту вашу жабу, буду писать гуй
>Захотел выучить этот ваш хаскель, буду писать высокопроизводительный игровой движок
>Захотел выучить этот ваш С++, буду писать веб фреймворк
В том энтерпрайзе где до сих пор нужен, для формошлепства берут не голую джаву, а энтерпрайзную формошлепалку - Oracle Forms, например.
В остальном все уходят на веб.
Ну судя по вики это какая-то хуйня для БД.
На работке мы юзали шаговые движки EcoStep - к их контроллерам была софтина ECO studio для их настройки и тестирования. Так вот она была на жабе, и гуя там было пиздец сколько, мама-ояебу.
Энтерпрайз это и есть БД. БД и формочки, формочки и БД.
>>в ынтырпрайсе гуй не нужен?
>мы юзали шаговые движки EcoStep
Как связано одно с другим?
То что была кроваво-ынтырпрайсная прога к пиздецки дорогим ынтырпрайсным движкам и всякой промышленной хуйне. И там прога на жабе (и разумеется - гуй).
Ну как обычно - заказали гуй индусам, а индусы кроме энтерпрайзной джавы ничего не умеют
Но производитель - немчурская корпорация. Разве они тоже гуй индусам заказывают? Я думал, это у муррики прочные связи.
fork(), епта!
Кстати их проги на компах, управляющие печью и установщиком компонентов - тоже на жабе.
Правда там гуй - редкая параша (правда они старые, да и там ваще охуенный девайс - тачскрин на кинескопном мониторе, ахуеть вообще).
Собсно, я писал его аналог со свистелками и перделками на крестах и qml.
Все заказывают. Гуи это ведь у них не основная деятельность, основная - проектирование и производство моторчиков (логично - немцы в этом сильны). Неосновное всегда аутсорсится.
Что тут выбирать в шестой джаве? implements Runnable запускаешь через Thread. Сам тред деваешь в переменную, в коллекцию, пул, анус, никуда.
У муррики именно что прочные связи - они основной продукт в либо в индию заказывают, либо местным мурриканским индусам.
А немцы только гуй.
У Раджеша и Кумара зарплата в 2-3 раза больше, чем у нас.
У нас сервисники на обучение к ним на завод ездили.
Говорят погромистов там пиздец сколько много, огромное здание и сидит их дохуя.
Так что возможно, нихуя они не аутсорсят.
>>772897
И у Ганса и Фрица, лол - мы целиком немецкую печку спиздили, Rehm-овскую, свой софт и начинку электронную поставили и обозвали своей разработкой. Импортозаместили, епт!
> целиком немецкую печку спиздили, Rehm-овскую, свой софт и начинку электронную поставили и обозвали своей разработкой
Это молодцы. Так почему обозвали - она и есть ваша разработка, начинка и управление все ваше, а сама чугунка - не из секретного наверное бундес-чугуния была.
> погромистов там пиздец сколько много, огромное здание и сидит их дохуя
Ох проиграют они с такими устаревшими бизнес-практиками мурриканско-бангалорско-китайским конкурентам.
>>772731
Порыл вопрос поглубже, почитал пару статей, поглядел байткод лямбы. Анон >>772735 прав - ссы на спермораба тугой струей мочи в рот.
В байткоде каждый анонимный внутренний класс генерирует новый класс, который его вызвал, сохраняет референс, загружает его и вызывает его метод для получения ништяков из реализации анонимного внутреннего класса:
> Runnable runnable = new Runnable() {
> @Override
> public void run() {
> integerValue.intValue();
> }
> };
> 17: new #5 // class Test$1
> 20: dup
> 21: aload_1
> 22: invokespecial #6 // Method Test$1."<init>":(Ljava/lang/Integer;)V
Что жрет лишнюю память и GC нужно будет его снести.
С лямбдой же лямбда фактори возвращает инстанс функционального интерфейса и тело лямбды конвертируется в метод, который будет вызван invokedynamic инструкцией.
> Runnable runnable2 = integerValue::intValue;
> 33: invokedynamic #8, 0 // InvokeDynamic #2:run:(Ljava/lang/Integer;)Ljava/lang/Runnable;
> моар:
> invokedynamic #3, 0 // InvokeDynamic #0:apply:()Ljava/util/function/Function;
> invokedynamic #4, 0 // InvokeDynamic #1:test:()Ljava/util/function/Predicate;
Так что ссы коллеге на голову с кококолямбда это сахар анонимного внутреннего класса.
И че, бля? Вон тот же Эккель прислушался к фидбекам, и в четвертом издании включил упражнения.
Для кора тебе хватит. Восьмую джаву нужно отдельно изучать.
Сап анон, такое дело. Пишу утилиту для выборки кое-каких данных из бы (бд большая), скачал jooq, нагенерил классов, сделал пару простых запросов и все вроде заебись. Но тут подумал какого хуя, я ж на груви пишу, почему бы не заюзать gorm? В общем такой вопрос, если кто сталкивался, какой фреймворк сами выберете, на какой матушку посадите?
хм, звучит убедительно, тем более, что горм за собой еще спрингбут тащит и хибернейт. буду пока жока придерживаться, спс.
Прочитай что сами разработчики жоки говорят: https://blog.jooq.org/2015/03/24/jooq-vs-hibernate-when-to-choose-which/
О, даже про горм написали. Ну писать мне ничего не надо в бд, да и не хочется тянуть половину мавен артифактори ради того чтоб избавиться от генерации кода. Сгенерированный код как я выяснил можно вообще заигнорить чтоб не коммитить, вместо этого генерировать при сборке.
>можно вообще заигнорить чтоб не коммитить, вместо этого генерировать при сборке.
О сколько нам открытий чудных...
как раз ищу кому бы пропихнуть фронтенд. напиши в жабер-конфу емейл-релейтед
>>7732163
Запилить фронт я и сам могу, время у меня не ограничено.
Потому что у него не учебник а справочник. Причем невнятно написанный с пропуском важных особенностей и заострением внимания на никому не нужной хуйне. Половина книги вообще прямой копипаст из стандартной библиотеки. Сложность подаваемых тем по книге скачкообразно повышается и понижается. Главу назад рассказывает что такое статический метод, переходит к наследованию и тут же заливает про рефлекшн и только потом вводит понятие интерфейса. Примеров очень мало и они не выразительны. Вставки для крестовиков вообще непонятно для кого написаны, как будто они будут читать эту парашу. В общем не рекомендую этот выкидыш печатной индустрии. Head first в сравнении с этой какашкой просто эталон написания обучающей литературы, даром что написан 10 лет назад.
Зачем вообще нужен рефлекшн обычному кодеру? Профессионал и так сможет ее понять без уебанских книжек.
Зачем вообще нужна книжка по кору? Любой вменяемый челвоек все поймет из java-doc'а, в хуевом случае погуглит.
Вот теперь хуйню несешь ты. Кор - это и есть справочник формул. Уровня девятого класса.
Любой вменяемый человек давно все понял не открывая джавадока и пишет на Scala, Clojure, котлинах и цейлонах.
Узкоспециализированные языки особо не прокормят. Работу хуй найдешь. То ли дело на жабе: вакансий дохуя, плотют прилично.
АТО. Но лямбды круче.
Да, я тоже глянул.
Откуда взялся HelloService? И при создании клиента этот класс и клас Hello откуда беруться если предположить, что клиент делается удаленно?
Чтобы избегать сильных связей.
> The source code for the service is in the tut-install/examples/jaxws/helloservice-war/ directory
Если ты генеришь клиент из wsdl-ки, то классы у тебя автогенерируются, если ты сам пишешь и сервер и клиент, то вот лучш шпаргалку посмотри, в проекте ничего лишнего, только вебсервис-релейтед хуйня https://github.com/hdghg/wstest
Хехе
Спс мен! А в сервисе HelloService сам генериться? Просто нет возможности глянуть в приложенные исходники
Просто скажи. Зачем нужен интерфейс? Практическое применение. Я лишь вижу его применение его в том, чтобы видеть, как мне следует назвать метод и какой тип ему давай в качестве аргумента, если нужно.
Кекус. Через 5 лет ООПизденения ты будешь задавать вопрос нахуя нужно наследование.
иди читай книжки, вруша
К примеру возмем пять человек все пять человеки и дышат воздухом одновременно четыре из них петухи и ебутся в жопу одновременно три кодят на паскале и ебутся в рот и т.д.
Спс =Р
ИНТЕРФЕЙСЫ ОБЛАДАЮТ ЛИШЬ АБСТРАКТНЫМИ МЕТОДАМИ И КОНСТАНТАМИ И НЕ МОГУТ ИМЕТЬ РЕАЛИЗАЦИИ, ИБО ЭТО НЕ РЕАЛИЗАЦИИ, А СПЕЦИФИКАЦИИ КОНТРАКТОВ, КОТОРЫЕ ДОЛЖНЫ РЕАЛИЗОВЫВАТЬ КЛАССЫ, РЕАЛИЗУЮЩИЕ ЭТИ ИНТЕРФЕЙСЫ
@
БЛЯ, КОРОЧ, МЫ ПРОЕБАЛИСЬ И ДОХУЯ ЧЕГО ЗАБЫЛИ ВКЛЮЧИТЬ В ИНТЕРФЕЙСЫ И ИХ НЕ РЕАЛИЗОВАЛИ В ДОЧЕРНИХ КЛАССАХ
@
ПОХУЙ, СДЕЛАЕМ ДЕФОЛТНЫЕ РЕАЛИЗАЦИИ))
somewhere in Oracle
ну они решили этим пару проблем, но лучшеб запилили https://msdn.microsoft.com/ru-ru/library/bb383977.aspx
Костыль пришелся в тему и весьма функциональным, но это все равно слом парадигмы.
>>773758
Идиот, я как про дефолтные методы в 8 джаве и говорю.
Не буду тебе отвечать, специально. Анон сказал что ты вруша, но ты неосилятор. Не осилил интерфейсы, и решил сделать вброс авось кто-то ткнет мордой в то место где ты обосрался. Но нет, никто не ткнет, ищи сам.
Пжлст чувак :)
Видимо, ты сам новичок, или просто придаешь интейфесам потаенный смысл. Интерфейс это просто перечисление методов, которые должны быть обязательно реализованы у класса. И все.
Чтобы отделить контракт от реализации и иметь возможность быстро подменить реализующий объект в месте инициализации, не перелопачивая вместо этого мегабайты кода.
Годно расписал, схоронил.
1.
package pets;
public class Pet {
String name;
Pet(String enter){
this.name = enter;
}
Pet(){
}
}
2.
package pets;
public class Dog extends Pet {
}
3.
import pets.Dog;
import pets.Pet;
public class PetMaster {
public static void main(String[] args) {
Dog myDog = new Dog("Sam");
}
}
IDE говорит, что Dog() in Dog cannot be applied to (java.lang.String), а почему так?
1.
package pets;
public class Pet {
String name;
Pet(String enter){
this.name = enter;
}
Pet(){
}
}
2.
package pets;
public class Dog extends Pet {
}
3.
import pets.Dog;
import pets.Pet;
public class PetMaster {
public static void main(String[] args) {
Dog myDog = new Dog("Sam");
}
}
IDE говорит, что Dog() in Dog cannot be applied to (java.lang.String), а почему так?
Но ведь у класса Dog нет конструктора со строкой. У него есть только дефолтный конструктор.
В книге задание так звучит:
In the package pets create a new class Pet with a constructor that will take the name of the pet (of type String) as an argument.
Change the declarations of the class Dog so it extends Pet.
Create the class PetMaster and give pets names while instantiating classes Dog and Fish.
А писать конструктор в Dog не позволено.
Именно коллекции, конечно, не часто, но зато есть возможность, как я уже написал, сделать это довольно быстро. Какие-нибудь компоненты из IoC-контейнера вообще можно подменить без сборки проекта, изменив его конфигурацию в xml (если, конечно, он кофигурируется через него, а не через классы и аннотации).
>LinkedList
Нинужно
>как часто ты подменяешь реализацию
Подменяю бины без перекомпиляции меняя xml-конфиги спринга, или прямо в коде через удаленный дебаг без остановки продакшена.
хуй зна, такой же нубас.
Pet p1Dog = new Pet("Ssaka");
Pet ssylka;
ssylka Dog;
вообще блять, пустые классы это что нахуй?
То что надо?
У LL лишь одно преимущество - быстрое добавление в середину (ну или удаление), которое ОЧЕНЬ редко когда нужно.
AL содержит внутри массив. Когда ты идешь последовательно по LL, ты каждый раз переходишь по ссылке на следующую ноду, а для AL просто сдвигаешься в памяти на размер элемента. Из-за того, что у ЦП есть кэш, почти со 100% вероятностью следующий элемент AL будет лежать в кэше и в память обращаться не нужно, что не гарантируется для LL.
При добавлении элемента к AL, если он был полон, приходится создавать новый массив и копировать в него предыдущий, но копирование памяти достаточно быстро, да и происходит нечасто.
Короче, LL сосет, AL решает.
В 99.99% процентов случаев по мнению сертифицированных энтерпрайз джава-макак.
Макаба звездочку съела, блядина такая.
Атрибуты с дефолтным аксесс-модификатором - можно писать напрямую. Но вообще так не делается - нарушается принцип инкапсуляции.
Ты забыл добавить, что:
LL может быть распределён в пространстве, в то время как AL лежит одним куском -- этот факт, конечно, редко где может пригодиться, но это уже отличительная особенность;
random access для LL занимает O(n) напротив O(1) у AL;
перевыделение памяти под новый массив у AL -- заявка на GC.
Короче, я к чему: структуры данных нужно выбирать исходя из требований задачи, и вот так с ходу говорить, что LL или какая-либо другая структура данных не нужна -- по меньшей мере некорректно.
stackoverflow.com
Любая книга по алгоритмам и структурам данных подойдёт. Придумано ещё до джавы.
>LL может быть распределён в пространстве, в то время как AL лежит одним куском
Я именно на этом и заострил внимание, когда говорил о кэше.
SciTE
В этой любой книге будет О-нотация, опирающаяся на представление о процессоре из 1968 года, с детерминированной стоимостью операции, не зависящей ни от чего.
Эта модель так же точно отражает реалии современного интеловского CPU как представления о плоской Земле, установленной на трех китах.
Не учите анона плохому.
Анон, посмотри https://www.youtube.com/watch?v=Nsf2_Au6KxU (слайды - http://media.steampowered.com/apps/valve/2015/Migdalskiy_Sergiy_Physics_Optimization_Strategies.pdf), потом сюда http://danluu.com/new-cpu-features/
убери из URL '),', парсер этой борды sucks
В этих книгах, как правило, сразу пишут, что приведённые оценки справедливы для абстрактной машины, и в реальности могут варьироваться в зависимости от устройства конкретной платформы. Ну, и что? Получить общее представление об алгоритмах и структурах данных это никоим образом не мешает. И оно не будет неправильным (плохим). Оно будет корректным в среднем случае, где предполагается, что код выполняется равновероятно на йоба-процессоре, процессоре дидов или вообще на примитивном кристалле с базовым набором операций.
Твои ссылки полезны тем, кто уже кое в чём разобрался и хочет идти в ногу со временем.
Оно будет ПОЛНОСТЬЮ неправильным, до степени обратности правильности на любом современном процессоре кроме Cortex M0 (за 50 центов, у которого кэша вообще нет).
И представление об алгоритмах и структурах данных будет таким же.
Анон будет хреначить линкед листы, а процессор сходить с ума от джампов по указателям и проигрывать кофеварке. В результате анон бьется головой о стену (и переделывает линкед лист на skip list, от чего процессор превращается уже не в кофеварку, а в самовар), процессор тормозит, довольны только авторы книжек с О-нотацией из 1968 года.
>без остановки продакшена
Я уже чувствую уровень твоей конторы.
И под той фразой я имел в виду то, что вменяемые люди вообще бизнес интерфейсы не пишут. Времена HuitaDao и HuitaDaoImpl прошли, интерфейсы царят где-то во фреймворках.
>>774620
Это не тонкости и не явы. Это разница между связным списком и массивом. Можешь навернуть Алгоритмы и структуры данных Вирта (или забить хер, если тебе не предстоит работа с ними, а 80% джавы - сраный веб, который хер клал на скорость работы три мапа и хеш мапа).
>довольны только авторы книжек с О-нотацией из 1968 года.
Ты хотел сказать авторы всех книжек? Не видел ни одной вменяемой книги по программирование. Даже видосики на ютубе уровня "как работает спринг" полезнее.
Из-за оптимизаций работы массивов AL выигрывает всегда. К тому же вспомни про случайный доступ и вставку в середине: часто они тебе нужны? Ты чаще весь список обходишь итератором.
Что хотел сказать то и сказал
>В этой любой книге будет О-нотация, опирающаяся на представление о процессоре из 1968 года
Нужны новые книжки, но их нет. Потому что у академиков нет модели на смену детерминированному процессору из 1968 года.
> Не видел ни одной вменяемой книги по программирование. Даже видосики на ютубе уровня "как работает спринг" полезнее
Если ты говоришь о книжках "любая еботень за 24 часа", то понятно.
Если о нормальных книжках, то они, конечно, есть.
Если бы перед просмотром видосика про Spring программист прочитал бы "Patterns of Enterprise Application Architecture" и "Enterprise Integration Patterns", толку было бы больше. И на Spring он смотрел бы гораздо критичней, понимая его недостатки. И во многих случаях от него для своей задачи отказался бы - что задаче только пошло бы на пользу.
>"Patterns of Enterprise Application Architecture"
Т.е. про процессоры тебе старье, а Фаулеровские "ПАЦАНЫ! XML - ЭТО БУДУЩЕЕ" - это ок?
> И во многих случаях от него для своей задачи отказался
Ты же понимаешь, что вместо спринга можно вставить что угодно? Серебряной пули пока не подвезли.
Списочек минусов Спринга, который заставляет отказаться от него во многих случаях при разработке enterprise application, в студию!
Самый очевидный: он слишком попсовый, для такого крутого парня!
Спринг - это клубок лапши, сбитый гвоздями и перемотанный изолентой, для тех кто не осилил EJB и кому надо хуяк-хуяк, чтоб через час запустилось, а потом хоть трава не расти. Иногда это оправданный подход.
>>775052
В будущем XML радостно заменили на JSON (к которому работающего аналога схем так до сих пор и не подвезли) и решили что это все резко изменило.
> вместо спринга можно вставить что угодно
Именно об этом я и говорю.
Книжки нужны для того чтобы понимать какие именно что угодно куда вставлять, а какие куда - не вставлять. И почему. И какие есть подходы к проблеме этого и к проблеме того. И какие у них минусы и плюсы.
>В будущем XML радостно заменили на JSON
Да меня не конкретно XML там печалит. Меня печалит, что во многом книга о том, что тебе не пригодится. Какие паттерны испоьзовать при общении с бд? Хуятерны, возьми любую ОРМ и не выебывайся. Но нет, Фаулера ОРМ упоминаются вскользь и как что-то таинственное и очень крутое.
>Книжки нужны для того чтобы понимать какие именно что угодно куда вставлять, а какие куда - не вставлять. И почему. И какие есть подходы к проблеме этого и к проблеме того. И какие у них минусы и плюсы.
Найдешь мне хорошую книжку по сравнению различных технологий - свисти, с радостью почитаю. Обычно книжки задвигают либо без конкретики (тот же Фаулер), либо топят за свою любимую поделку (тот же спринг).
>Спринг - это клубок лапши, сбитый гвоздями и перемотанный изолентой, для тех кто не осилил EJB
Будто бы переусложненность EJB была плюсом. Именно IoC контейнер спринга - хорошо сделанная штука. Лапша, сбитая гвоздями и перемотанная изолентой, начинается, когда они пытаются AOP изображать (а изображают они его сейчас много где).
в телеграмме есть уютная конфа по жабке
https://telegram.me/joinchat/B7IzvT5twDRYYTqO0y7bQg
> о том, что тебе не пригодится
Ты лучше меня знаешь что мне пригодится, вероятно.
> возьми любую ОРМ и не выебывайся
Давай обобщим это до "возьми X и не выебывайся" и обнаружим что типичной макаке не нужно вообще ничего кроме прилежания, аккуратности и нащальника, который будет хуярить бамбуковой палкой раз в полчаса за косяки.
И постановим на этом основании что не нужны не только книги, но и множество иных вещей.
Полезным ли будет такой наш вывод?
> хорошую книжку по сравнению различных технологий
Не бывает (почти - может быть они где-то и есть, утверждать не стану) хороших книжек по сравнению конкретных имплементаций конкретных технологий в конкретной экосистеме - уровень желаемой тобой конкретики ты можешь легко найти среди блогов, поискав по паттерну "X vs Y" (или "X sucks" и "Y sucks"), книжку ради перечисления десяти недостатков JOOQ конкретной версии для конкретных применений писать не стоит. И читать не стоит, если бы ее даже кто-то и написал.
> Будто бы переусложненность EJB была плюсом
Сложность была, конечно, минусом.
Плюсом была гибкость и даже некоторая стройность, достигнутая ценой сложности.
В результате имеем Spring, давно превысивший все пределы сложности EJB, но стройности и уж тем более гибкости (высокоуровневой, а не микро - это важно) как не было, так и нет.
В EJB сложность была up front - видна сразу и дизайнить надо сразу. Но всем хотелось быстренько нахуярить, а потом будем дизайнить - может быть, если время останется.
Результат немного предсказуем.
>Ты лучше меня знаешь что мне пригодится, вероятно.
Естественно я имел ввиду себя.
>Давай обобщим это до "возьми X и не выебывайся" и обнаружим что типичной макаке не нужно вообще ничего кроме прилежания, аккуратности и нащальника, который будет хуярить бамбуковой палкой раз в полчаса за косяки.
Ну так и есть, собственно. Зачем макаке больше?
>В результате имеем Spring, давно превысивший все пределы сложности EJB, но стройности и уж тем более гибкости (высокоуровневой, а не микро - это важно) как не было, так и нет.
Я не знаю, о какой гибкости ты говоришь. IoC настраивается так, как ты хочешь. Расскажи, что у тебя не получилось сделать в спринге, что ты сделал с EJB.
Питон паста.txt
Тебе не нужна Java.
Рекомендую сначала прочитать как минимум про Servlet API, JSP, CDI.
После этого будет более-менее понятно, откуда растут ноги у многих вещей в Spring.
Без представления об этих вещах рискуешь привыкнуть "программировать мышкой".
Спасибо, укатился читать.
Есть ли уроки JavaRush в открытом доступе, или только за донат?
scene.getStylesheets().add("path/stylesheet.css");
работают стили, только если их прямо в коде к каждой кнопке прописывать
По книгам, что бы подготовится. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Можно по-разному интерпретировать. Я в это понятие вложил смысл фразы "хуярить без понимания". Например, так происходит, когда копипастишь решения со stackoverflow, особо не разбираясь что, собственно, происходит.
Сделал ВСЁ как написано
Переменная среды
CLASSPATH
.;
Системная перемнная
Path
C:\Program Files\Java\jdk1.8.0_91\bin(-это я добавил);C:\ProgramData\Oracle\Java\javapath;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Skype\Phone
В cmd прописываю как в книжке, но выходит пикрилейтед.
Поясните, что за хуйня? Только так, чтобы понял такой имбецил как я.
линукс поставь
Он есть, и он нах-ся по верному адресу.
можно
Смотря какие ворнинги, очевидно же. Если тебе говорят, что моджно сократить конструкцию "if (a == true) {}", то это хороший совет с высокой долей вероятности.
>>775560
>"Java для детей, родителей, бабушек, дедушек и таких долбоёбов как я"
Хуевая книга. В действительно версии "для даунов" было бы "установи ide, пидор, желательно idea" где то между нулевым и вторым пунктом.
Ладно, понял, буду изучать ворнинги, эспэсэ.
Ох как вы заебали с этой Идеей. Я, конечно, понимаю, что она охуенна и всё такое, но, блять, отбери её у вас -- и вы даже хеллоу ворлд не соберёте. Нахуй так жить?
Пусть нуфаня потренируется с конпеляцией и запуском, хотя бы на кошках.
Пусть Хэд Ферст читает. Та хуита для бабушек и дедушек имеет лютые, просто пиздец какие ошибки, которые новичок не сразу увидит. Не факт, что увидит вообще. Я в самом начале пути тоже копипастил оттуда код и не понимал, почему он не работает. А потом выяснялось, что автор не удосужился упомянуть, что нужно импортировать какую-либо директиву или, еще хуже, вообще пропустил кусок вызывающего кода изучаемого метода.
Была такая трабла, пока не пересел на пингвинятину. Не помню, как решил, но очень много гуглил и пробовал разные варианты. Помню только, что нашел на одном форуме ответ, где мужик пишет, как прописать путь через командную строку, а не через окошечко. В общем, проблема в самом пути, твой терминал просто не видит утилиту javac. Гугли.
На форумах находил, но я хочу шоб прям по книжным лекалам, а то дальше могут быть нюансы которые всё испортят. Хотя, сразу вон какая хрень.
Наверное сменю книгу как >>775624 советует
Это я и советую. Книга, которую ты читаешь была издана почти 10 лет назад. Хотя хэд фертс вообще вышла в 2004, но она просто эталон преподавательской литературы. Не знаю, найдешь ли на русском, но я на инглише почти все понимал. Сначала очень часто в переводчик лез, но потом освоился. И, да, если не понимаешь перевод некоторых языковых конкструкций или средств - пиши сюда, я либо кто-то еще тебе поможет.
> как же вы заебали с этими людьми! Отберите у человека одежду, все вещи и инструменты, засуньте в пустыню Сахара и он даже воды себе попить не найдет, куда уж там до прожить всего лишь неделю. Нахуй так жить?
Ты наверное и classpath руками прописываешь, да? Если нет, то иди нахуй мудак. Надо сразу приучать людей к качественным инструментам, чтобы потом не натыкаться на блять проекты на сука ебучем анте в блять 2016 году, поубивал бы нахуй гандонов.
Выключи компьютер, возьми витую пару в руки и отправляй нули и единицы с помощью статического электричества.
Мне кажется что ты его неправильно понял.
Он не агитировал за то чтобы прописывать classpath руками - лишь за то чтобы нуб один раз сделал это - и все остальное - руками, и понимал откуда что берется, где что лежит, и что где должно лежать.
Засрали уже всю доску глупейшими проблемами "ой, что это оно мне тут пишет файл не найден".
Много вас по весне оттаяло, смотрю. Перед тем как начать пользоваться инструментами для удобства, неплохо бы понять, какие именно процессы облегчает инструмент. Кактус с антом жрать необязательно, достаточно лишь знать, что он нужен для облегчения сборки проекта. Но, извини меня, не знать, чем, как и во что компилируются java-классы и как запустить скомпилированный хеллоуворлд -- это "мы вам перезвоним".
Для кого лучше?
По каким параметрам лучше?
В каких случаях лучше?
Половина вопросов на этой борде сводятся к "что мне сделать чтобы не думать"
> Но, извини меня, не знать, чем, как и во что компилируются java-классы и как запустить скомпилированный хеллоуворлд
В реальной жизни эти навыки никому не нужны - ну разве что ты собираешься писать новый Maven/Gradle - но это будет вообще апофеоз велосипедостроения.
Пользоваться командной строкой это хоть и не относится к джаве, но ващет важный фундамент для любого занятия. И то что пездюков этому не обучили в школе или они сами прогуляли уроки это очень печально. Пусть дрочит командную строку, любой хеловорлд на любом языке предполагает запуск из кс. А потом пусть учит баш, вим, лесс, тейл, тмукс, гит вот это вот все. Это не, жаба это сколько набор инструментов специалиста. Это знать надо, это классика!
Напиши это, если ошибка - проблема с путями.
> новый Maven/Gradle
Вот такие долбоебы с IDE наперевес и пишут эти велосипеды с квадратными колесами.
Потому что в make не умеют, про awk и sed не знают.
Потому что Оракел положил на нее хуй и всех занимавшихся Java EE уволил.
http://arstechnica.com/information-technology/2016/06/oracle-boosts-cloud-sales-but-at-expense-of-java-and-everything-else/
> ой, что это оно мне тут пишет файл не найден
А вот это уже проблема в человеке. Если человек не способен не то что погуглить проблему, а просто прочитать текст "файл не найден" и разобраться в значении этих слов, то он не то что для программирования негоден, он негоден для замены картриджей, а то застрянет бумага, а герой его выбросит нахуй, потому что не печатает.
Интересно, зачем вообще тогда стримы нужны? Ведь основное назначение джавы это тырпрайз.
Чтобы кратко и гибко работать с последовательными наборами данных, а не писать длинные императивные портянки, которые хуй распараллелишь нормально.
В энтерпрайзе стримы нужны даже больше чем в веб-макакании
https://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.pla.doc/q005080_.htm
Нет, это ты иди нахуй, спермовор.
Когда твой банковский процессинг будет на NodeJS написан макаками, презирающими транзакции? Хочешь себе такого будущего?
Там микростримы, модные, молодежные, на коллбэках и промисах.
>>775855
Чтобы устроиться в лухософт джуниором за миску риса. Весь /pr об этом.
Не прикасался к ноде и к ее фреймворкам, которые выходят каждый день. Я вообще тут новичок и только-только выучил кор.
как работает код
Он толстит, видимо.
Платили 65к.
Но при этом ты живешь в диких ебенях 11 месяцев в году. Начальство - бывшие военные и их заискивающие холуи - как следствие полнейший долбоебизм, маразм, формализм и бюрократия.
Работай я хотя бы вахтой (мес. через мес.) можно было бы и потерпеть. А так - извините, я один раз живу.
Очевидно чтобы избежать смертоносного ромба смерти
Ты выглядишь адекватным аноном, попробую тебе помочь с профориентацией в нашей говноайтишечке.
> бывшие военные и их заискивающие холуи - как следствие полнейший долбоебизм, маразм, формализм и бюрократия.
У нас тоже такое (или почти такое) есть примерно в тех же местах, только вместо буровых язык программирования Модула-2, а все остальное как ты описал.
Java энтерпрайзная лучше, но тоже недалеко ушла от всего этого. Джуниоры корячатся во всевозможных лухософтах не поднимая головы, долбоебизм и маразм почти такие же, формализма и бюрократии поменьше, холуи такие же.
Java не-энтерпрайзная - это практически только веб-бэкенды. Загибается медленно но верно, пожираема немного питоно-джангами и руби-рельсами, и много и все больше с каждой секундой - NodeJS.
Так что может быть тебе лучше Javascript лучше поучить? Перспективней будет, и формализмов в среднем поменьше заметно.
>может быть тебе лучше Javascript лучше поучить?
Вот даже не знаю. Мне хотя бы азы освоить, а выбирать можно бесконечно. Вообще тяжело перекатиться с Java на JS? И как там с трудоустройством?
@
БЛЯ, ПОСОНЫ, РЕШИЛ, БУДУ УЧИТЬ JAVA
https://2ch.hk/pr/res/776055.html (М)
https://2ch.hk/pr/res/776055.html (М)
https://2ch.hk/pr/res/776055.html (М)
Можно калькулятор, можно Мейнкрахт, можно текст редактор, можно просмотрщик изображений.
Поясните за "Head First java". Можно ли с нее изучать изучение явы, если за спиной только школьный курс паскаля?
Перекатился
Это копия, сохраненная 11 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.