Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Книги: - Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком. - Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах. - Thinking in Java (4th Edition): Bruce Eckel - для тех, кто уже умеет в программирование на другом языке, но хочет перекатиться. - Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает джаву, но хочет перестать писать костыли. Больше здесь: http://www.proklondike.com/books/java.html - Soft Skills: The software developer’s life manual : John Sonmez - сказки на ночь.
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред. Тех.поддержка английского >>201049
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко обьявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять сраз скопипасти этот кусок кода". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Нужно советов мудрых... Возникла задачка слепить несложное десктопное приложение (табличка-круд и обновление некоторой статистики собираемой по каждой записи в ней). Взял netbeans+swing и почувствовал боль от того что компоненты не потокобезопасны, и надо танцевать вокруг SwingWorker-а. Вроде простая задача - обновление таблички из бэкграунд-треда превращается в какой то ад из колбэков и всяких там invokeLater.
JavaFX в этом плане будет лучше (GUI раньше никогда не делал) или те же грабли?
Анон, хочу уметь в Java. Собственно вопрос: нужно ли мне для этого ide и какой посоветуете. Также хочу знать, нужно мне ставить jdk от oracle или open подойдет ?
У меня вопрос по заданию из учебника. Почему данный код: public class Solution { public static int min(int a, int b) { int m; if (a<b) m = a; else m = b; return m;
}
public static void main(String[] args) throws Exception { System.out.println( min(12,33) ); System.out.println( min(-20,0) ); System.out.println( min(-10,-20) ); } Считается правильным, в отличие от этого: public class Solution { public static int min(int a, int b) { int m; if (a<b) m = a; if(a>b) m = b; return m;
Привет. Столкнулся с одной гипотезой в книжке Head First, что статический метод не вызывается через ссылочную переменную, хотя я могу это легко опровергнуть следующим кодом. Что не так?
>>718011 Ты, кажется, не так понял предложение. На пике утверждается, что это делать годно, а потом рядом пишут False, то есть это нихуя не годно, но никто не мешает тебе так делать
>>718013 >то есть это нихуя не годно, но никто не мешает тебе так делать А, теперь понял. Но почему это нихуя не годно? Нарушается читабельность? Или попадает под какие-то экшепшены?
>>717996 Ебаный пидорас! Няша, во-первых, научись, блять, оформлять правильно код, а, во-вторых, сука тупая, заливай его в онлайн-интерпретатор, как я.
Делается это так: http://ideone.com/OOS4Sr Айдеон не умеет в паблик классы, так что пришлось сделать ссылку на твой статик метод. Но суть ты, надеюсь поймешь.
Итак, отвечая на твой вопрос: оба варианта правильные, но: нахуя плодить сущности добавлять лишнее условие, когда можно обойтись одним? Я бы сделал код еще проще, но был бы нанесен ущерб читабельности. Суть ты понял, в общем?
Откуда столько ньюфагов в этом ИТТ треде? Не заходил месяц, и вот на тебе. Весна...
>>718204 Йобаный в рот, захожу я на сосач, тут блядь жявамартышки выпердолили свой тред на нулевую и несут хуйню. Дибилам вроде тебя нужно запретить писать без саги, серьёзно.
Статические методы – просто ебаная абстракция не влияющая на перформанс, заинлайнить всегда можно что угодно, вопрос только в том, что влезет в первый (самый мелкий и главный) кеш процессора, как всё расфасуется в остальные уровни кешей, и сколько соответственно кеш миссов совершится или удастся избежать из-за твоего инлайна, чем и занимается жит. А ты лучше просто пиши абстрактные фабрики и не пытайся в оптимизацию.
Пишу YobaGame и внезапно столкнулся с проблемой адекватного сохранения данных. Просто обычная запись и чтение из файла переменных не очень крутая и безопасная штука, а может сериализация?, и я уверен, что вы, котаны, знаете какую-то спешиал секретную альтернативу, которая мне поможет. Собсно, подскажите, что вбивать в гугл.
>>718206 >заинлайнить всегда можно что угодно Где-то вдали послышался дикий хохот создателей (оптимизирующих) компиляторов.
>ебаная абстракция не влияющая на перформанс Ну, если ты не видишь разницы между вызовом статического и обычного метода... Тут предположение было о том, что вызов статического метода на классе и объекте происходит чуть по-разному, мало ли ты какой извращенец, мало ли что допускает спецификация. Если предположение неправильное - меня без проблем можно ткнуть носом, а потом обоссать.
>чем и занимается жит Ну ты же понимаешь что до JIT свою лепту еще и байткод-компилятор вносит, и первому так легче.
>>718243 Если не считать, что из-за тебя пидараса, мне пришлось марать пеку накатывая ждк...
http://pastebin.com/fqPtJHSn Вот собственно и всё что надо. Статический метод действительно будет быстрее при первом вызове (без прогрева, в явке оказывается все нестатические методы по умолчанию виртуальные, т.е. вызываемый метод вычисляется в рантайме а не компайлтайме, тормозное говно оно такое). На этом, собственно, все отличия - память в статических методах придётся выделять точно так же, так что на лишние инструкции в конкретно этом листинге можно не обращать внимания. Как видишь, сам компилятор такие базовые вещи не инлайнит, а оставляет это хотспоту. Если у тебя хэловорлд с 1 функцией и ты хочешь выиграть 0.001 мс (при том что сама вм будет стартовать 2-3 секунды) - делай методы статическими и наслаждайся прогрессивной оптимизацией. мимо >>718206
Тебе дается утверждение, мол "вызывать статический метод через ссылку это нормас". Справа написано False, что как бы намекает, что нихуя не нормас, но при этом остается возможным
>>718256 >мне пришлось марать пеку накатывая ждк Ну кто же виноват, что ты вот такой - из штанов лезешь, доказывая свою охуенность на анонимном форуме.
Ты не понял, я предположил, что вот эти два метода будут вызываться слегка по-разному. Class.staticMethod() object.staticMethod() Посмотри, пожалуйста.
Btw, никто не говорил, что тут будут ощутимые выигрыши и вообще в этом есть какой-то смысл - это уже ты себе додумал.
>Как видишь, сам компилятор такие базовые вещи не инлайнит, а оставляет это хотспоту. Совсем не факт, что в другом месте не заинлайнит, но тут я совсем не спорю.
>>718264 >Ты не понял, я предположил, что вот эти два метода будут вызываться слегка по-разному. >Btw, никто не говорил, что тут будут ощутимые выигрыши и вообще в этом есть какой-то смысл - это уже ты себе додумал. Сейчас я ссу тебе на ебало повторно: >>718204 >Я вангую оптимизации под капотом, статические методы тупо заинлайнить можно. >>718239 >Тут предположение было о том, что вызов статического метода на классе и объекте происходит чуть по-разному
>Ну кто же виноват, что ты вот такой - из штанов лезешь, доказывая свою охуенность на анонимном форуме. Я знаю что я ахуенен, я лезу из штанов вон (аж 1 строку в консоли написал, во) чтобы нассать тебе на ебало, доказывать себе что я ахуенный я смогу без твоей помощи. >Совсем не факт, что в другом месте не заинлайнит, но тут я совсем не спорю. Если ты не понял что я тебе объяснял в своём первом посте - просто иди нахуй а лучше грузчиком, дегрод. ЖВМ за него под каждую машину персонально всё оптимизирует с ниебической эвристикой, за счёт чего работает на серверах не хуже нативных языков, а он хочет обычной статической оптимизации как в нативных языках.
>>718288 Так лол, дело не в вызове, если ты не заметил по моему листингу, жвм так делает вообще при любой инициализации класса: Main(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V ... EbatMoiHui(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return
Очевидно что aload_0 пушит в стэк ссылку на новоиспечённый объект для быстрого доступа (и определения конкретной реализации в рантайме), тут нечего поправлять.
>>718299 Таких даунов как ты мало просто обоссать, в этом вся печаль.
Аноны, решил обмазаться реактивом, реквестирую годной литературы по akka и реактивной парадигме. Есть вроде годные книдки akka in action @ reactive design patterns, но пираты не подсуетились, если у анона есть линки с меня патч на jvm чтоб плюсы обгоняла как обычно
Анончик, есть одна книга "Уолтер Савитч. Язык Java Курс программирования." Настоящая нахуй, в твёрдом переплёте, как у меня оказалась не помню. А с недавних пор загорелся идеей учить эту самую Яву. Может кто пояснить за книгу, или уж если читать, то что-то другое?
Прочитал примерно половину книги Эккеля и половину джава раша. Книга что то туго идет, некоторые примеры бывают некорректны(может только в том варианте, который я скачал), в жавараше надоели задания на телепатию и выводы хуйни в консоль. В шараге года 4 назад учил кресты и ещё всякое разное, так что начинал вкатываться не с 0. На какой источник обучения лучше перейти? Что бы было последовательно, сжато и с примерами.
>>718717 Последовательно, сжато и с примерами есть только курсы, но они тебе дадут нихуя. Читай какой-нибудь учебник из шапки и применяй полученные знания, пробуя всяко-разно вертеть код и создавая какие-нибудь крутые штуки. Если у тебя нет желания всяко-разно вертеть код чисто из любопытства, то программистом тебе не стать.
>>717652 (OP) помогите пожалуйста разобраться с Graphics2D, как повернуть ось Oy в обратную сторону, то есть как сделать ориентацию базиса правой? По умолчанию она левая, и как ещё сместить точку начала координат, которая находится в левом верхнем углу, в середину моего JFrame?
>>718220 Я для своей игры тупо все состояние мира сериализую в файл. Получается пара мегабайт. Минимум ебли, главное с serialVersionUID не проебываться и не забывать его добавлять, а то потом веселуха с совместимостью сейвов между версиями начинается.
>>719824 Ты когда-нибудь слышал про биполярное расстройство личности? >>719830 >Каждый тред который я перекатываю, будет с такой шапкой. Не нравится - перекати сам. Претензия не к тому что не нравится, читай внимательно. Претензия к тому, что У ОПа каждый новый тред - новое мнение. Сижу в треде с 2014 года, и с тех пор как вы тут срались про джавараш, так и срётесь.
>>719908 Внезапно. Что делать если меня забанили на одеске? Года полтора назад. До этого был пиздатый акк с 200+ часами и охуеным рейтингом и тестами. Просто забил как то и заказчик на мея петишку кинул. Меня зобайнели. Теперь никак? За создание второй учетки пидорнут?
>>719837 >Претензия к тому, что У ОПа каждый новый тред - новое мнение Какого, блять, ОПа? Тут не один человек перекатывает, а тот, кого раньше заебёт писать в тонущий тред.
>>719777 Какой нафиг жсон? Стандартный джавовский сериализатор. Нахуй с чем-то изъебываться? Размер сейвов и скорость в данном случае не особо важна, плюс-минус пара метров или пара секунд на сохранении не принципиальна. Зато пишется в три строчки фактически.
>>720077 Все таки я не понимаю зачем эти выебоны: Consumer, UnaryOperator, BinaryOperator, Predicate, Function ... Почему бы просто не назвать Action0, Action1, ..., Func0, Func1?
>>720098 > Все таки я не понимаю зачем эти выебоны - языки, компиляторы? > Почему бы просто не назвать > 011111101100011101111100100011001010111010100100101101010001001111010101001
>>720100 Мань, ну нервись ты так сразу, дай обсудим.
В том же RxJava/Kotlin/C# не пытаются блеснуть лингвистическими познаниями, а делают как удобнее запомнить. Наверное это из-за того что в java пока нет auto и объявление переменных некрасиво бы смотрелось.
>>720103 > 2016 > Не писать на Spring, Akka, Vert.x, Ratpack, RxJava Хорошо, жди некро-EE8 дальше.
>>720105 BiPredicate лучше, чем TwoArgumentFunctionToBoolean. И UnaryOperator - это лучше, чем FunctionWithSingleArgumentOfTheSameTypeAsReturnValueType.
>>720112 > UnaryOperator - это лучше, чем FunctionWithSingleArgumentOfTheSameTypeAsReturnValueType Java-интерпрайз-программист детектед , есть же Action<T1, T2> и Func<T, R>
>>720117 UnaryOperator - "функция, которая имеет единственный аргумент того же типа, что и возвращаемое значение". Как это можно обозначить в Action<T1, T2> и Func<T, R>? Никак. Если ты не считаешь нужным придерживаться конвенциям наименований и поддерживать code style, то иди нахуй.
>>720176 Это всего лишь значит что получить ошибку в данной ситуации нормально и просто не хотелось делать выебоны с возвращением кортежей/Result'ов, как в Go/Rust'e.
Там, где нужно, я все сам выброшу и поймаю, но вот здесь, например >>720077 у меня 0 желания сношаться как с неожиданными, так и с ожидаемыми исключениями, пусть просто падает.
Надо красиво спиздеть в резюме про основные ачивменты и решенные сложности в разработке приложения на сервлетах+jdbc+mysql, которое я еще нихуя не разрабатывал. Мордой, по легенде, не занимался.
>>720471 Судя по всему ты будешь устраиваться джуниором - от них вообще сильно ничего не ждут. Поэтому не нужно пиздеть, а просто честно ответить на вопросы, уровня отличия абстрактных классов от интерфейсов.
>>720473 Ответил на своем первом собеседовании. Меня, естественно, не взяли но сказали что не терминально тупой, дали больше 5 книжек на почитать, сказали добавишь ачивок в резюме, прийдешь через пол-года. А позвонили через месяц, мол, присылай обновленное резюме, новая позиция. И на собес если резюме ок.
Я как-бы нихуя джедаем за месяц не стал, но не слать тоже не вариант. Надо сейчас выслать резюме и до собеса хорошо разобрать что я там напизжу.
>>720471 Я настоятельно рекомендую тебе не пиздеть, поскольку с очень большой вероятностью ты будешь это приложение на сервлетах разрабатывать сразу, а там уже подставишь людей своим незнанием и заработаешь себе плохую репутацию.
>>720772 >Ты очень толстый. Ну правда же спрашивали. Хотя, конечно, вряд ли меня стали бы прям подробно расспрашивать о них, если бы я не указал это в резюме. Кстати сильный повод не особо увлекаться пиздежом в резюме: недавно к нам собеседовался один кун на тестировщика, в резюме указал, что знает джаву и плюсы, ему дали простенький код на джаве и попросили объяснить, что он делает, а он взял да и обосрался. В итоге впечатление было испорчено и куна так и не взяли, хотя по остальным пунктам он подходил, а джава для этой вакансии вообще не была нужна.
Посоны, пол года назад вкатился в джаву с нуля. Вызубрил кор, разобрал все примеры из Эккеля, прочитал Эффективную Джаву. Задрочил алгоритмы сортировки, шаблоны проектирования по GoF, разбираюсь с concurrency, вроде все понятно, но все еще бывает туплю в отдельных моментах. Сейчас хочу взяться за log4j, spring, hibernate, maven и прочие радости. Но писать отдельные классы меня уже доебало, сил моих нет. Близкие все спрашивают, почему я отказался от кучи предложений по работе, расчистил свой график и аутирую за компьютером по 6 часов в день. В общем хочется взяться за что нибудь большое, сложное (ну, для моего уровня), что в итоге можно будет пощупать и показать. Но не знаю за что. Посоветуйте проекты по возрастающей сложности, чтобы нужно было учить новые технологии и на ходу встраивать их в проект, обкатывать, привыкать.
>>720780 https://bitbucket.org/tschool/javaschool/src/6edff31d2bac733f9ee2a79a87714551dcc0f5b8/tasks/?at=master Просто берешь любое из этих заданий и делаешь. Перед началом прочитай пару статей про мавен, там ничего сложного нет. Куришь Spring in Action (ну, я его читал, например, есть и другие книги) и делаешь понемногу, параллельно гайды по хибернейту. Логи потом уже допилишь. Там еще есть папка с лекциями, но это только презентации, по ним одним особо ничего не поймёшь без пояснений, но можешь тоже поглядеть, хуже не будет.
Сап, жабаны. Хочу перекатиться из жопы одина, пусть и с просадкой. Как известно, работу не найти без опыта, а опыт можно получить только на работе. Как лучше поступить? Свой проект вечерами пилить?
Начал изучать javarush, дошел до 20 уровня, но, чувствую, это не совсем то что надо джуну (возможно, я ошибаюсь). Если ли что-нибудь прикладное с грамотным разбором для Java, как курсы Гилева для 1С?
Вообще, пригодится ли опыт (серьезный, 10 лет, кучи внедрений в куче предметных областей) 1С в Java-разработке?
>>720789 Твой уровень - голый Эккель, Антош, который научил пользоваться if-else и вызывать методы библиотечных классов. Effective Java написана архитектором для практикующих программистов, вряд ли ты понял ее, а Design Patterns без фундаментальных знаний из CS, того же SICP, вообще смысла не имеет. Многопоточное программирование, работу с сетью и базами данных нужно учить отдельно, прочитав по каждому как минимум 1 книгу в 500-800 страниц. Не ходи в мир EE пока, не аутируй за компьютером - читай литературу, в противном случае возведешь шаткое здание без фундамента, которое развалится либо на первом же собеседовании, либо на первом же проекте.
Аноны, поясните новичку за котлин. Стоит ли браться за него вместо джавы с начальными знаниями о джаве? В чем существенное отличие, кроме синтаксиса? Как его подключить в идее/андроид студии? Просто начать писать код на нем или как?
>>720807 Kotlin можно было бы посоветовать Senior разработчикам для увеличения продуктивности, но они все уже Scala знают. Вощим, учи Java, не отвлекайся.
>>720814 >>720815 А на джава-программиста реально устроиться? Я даже не рассматриваю этот вариант, там как-то сложно все, непонятный ентерпрайз, куча направлений, которым сложно самому научиться и раобраться, вряд ли меня возьмут даже через десять лет самообразования. Так-то для работки учу пока питон и околовеб, а джава - просто для себя наверное, попытки сделать несложные андроид приложения в надежде что они кому-то пригодятся.
>>720820 Чтобы устроиться на джуна надо больше коллективу подходить, чем что-то знать. Бывали случаи когда брали абсолютно нулевых ребят и за месяц из макаки делали программиста. Главное хотеть и пытаться. Много. Можно быть неебаццо профессионалом, но редкостным говнюком без работы.
>>720820 У Python нет будущего в Web, учи JavaScript: jQuery, Lodash, Node, Angular, MongoDB. Туда можно вкатываться сразу без особой боли, через год домашних экспериментов устроишься тысяч на 35 с последующим ростом и возможностью фрилансить на дядю за доллары.
>>720824 >брали абсолютно нулевых ребят и за месяц из макаки делали программиста Ты аккуратнее с такими оборотами, а то неподготовленный мозг за правду посчитает.
>>720800 >Effective Java написана архитектором для практикующих программистов, вряд ли ты понял ее С примерами уровня "мы вернули из метода коллекцию и почистили её, теперь у нас почему-то в объекте пустая коллекция! Как же так произошло и что же теперь делать?!" Охуеть сложность.
>>720874 Дело не в сложности. Простейший тезис "Воровать - это плохо" знают все дети лет с трех, но в полной мере понять эту истину у людей получается годам к 25, пока придет жизненный опыт, пока найдется время порефлексировать на эту тему.
Effective Java - это не книжка с рецептами "Как делать надо", она выступает проводником, который шагает по языку вместе с программистом и "подсвечивает" некоторые особенности языка (ремесла), оставляя программиста с этими "указателями" и своими мыслями (опытом) наедине, позволяя сделать далеко идущие выводы и выстроить общую картину. У новичка же после прочтения останутся только "указатели", которые вне "единого знания" вскоре пропадут из памяти.
>>720917 Ну я не знаю. Меня на протяжении всей книжки не покидало ощущение "да что ты блять говоришь". Такие простые истины в ней описаны, что я даже хз, для кого эта книжка нужна.
Запрос doc.search("tag=animal") должен вернуть три ноды, а запрос doc.search("tag=felis and size<20") - одну. Какие будут поля у каждого элемента заранее не известно, т.е. вместо tag и size может быть десяток других.
В общем мне это напоминает xml и кажется что задача уже решена, но я не знаю что гуглить.
>>720935 Если без теории категорий и всей хуйни, то порядок примерно такой: 1. SICP (для понимания Java 8 и Design Patterns) 2. Алгоритмы (Седжвик / Кормен / Левитин) 3. Design Patterns (половина книги с приходом Java 8 устарела, но прочитать надо) 4. Java Concurrency in Practice (половина книги с приходом Java 7-8 устарела, но прочитать надо) 5. Что-нибудь по сетям, бери русского автора 6. Что-нибудь по реляционным базам данных, бери русского автора
Далее легонечко обмазывайся сервлетами с JSP (нужно просто базовое понимание) и переходи к JSF, а потом Spring Framework. Далее тебя ждет огромный мир, в котором найдешь дорогу сам, я в тебя верю.
>>720616 Почитай немного про синтаксис, потом переходи к коллекциям и дженерикам, потом конкьюренси. Или просто посмотри оглавление любой книги и прочитай то, чего не знаешь.
>>720967 У меня уже есть парсер. Думаю создать xml документ и выполнять xpath запросы используя dom4j - ок?
>>720976 Судя по описанию, он для табличных данных. Как он себя поведёт если у меня будет пара тысяч нод с десятками тысяч уникальных свойств? Запилит одну таблицу с десятью тысячами столбцов? Или пару тысяч таблиц?
>>720616 Берешь свой код на плюсах, выкидываешь из него delete, функции оборачиваешь в классы - профит, ты теперь кодер на джаве. Ну стандартную библиотеку подучи только, она в джаве сильно богаче чем в плюсах.
Посоветуйте генератор парсеров для контекстно-свободной грамматики. Желательно с хорошей документацией и/или книгами, а то я плохо представляю как это к чему-либо прикрутить.
>>720967 Блин, не катит. В xml, внезапно, нельзя записать объединение интервалов (пример: [1, 2] ∪ [5, 7]) так, что бы xpath запросы работали как надо.
>>721151 Дипломная - это чаще всего исследование. Ничего общего с разработкой программного обеспечения оно не имеет. Занимаются такие своими "композициями алгоритмов, основанных на случайном лесе" и потом сосут хуи в НИИ за 15к. А Васян возьмет выучит пхп и будет на одеске 30$ в час хуярить.
>>721284 Хотя бы 3 года опыта в офисе + хороший английский. Ну и умение пиздеть, продавать себя. Потом идешь на одеск и конкурируешь с индусами. Но таки свои 30$ сможешь делать.
>>721276 А в вузах погромистам дефакто преподают в 4 раза больше матана чем всех остальных вместе взятых предметов (ещё бывает дохуя физики и инж. параши в шаражках).
>>721292 ВМК - это не кафедра, а факультет. Один из лучших, чуть-чуть уступает ФИВТу МФТИ. Специальность - прикладная математика и информатика. Но "программистов" ни там, ни там не готовят. Среда-то академическая - ученые, исследователи. Это не обслуживатели ЭВМ, которым хватает 3-месячных курсов и дальнейшего набивания руки за станком.
>>720959 Ты сам этот формат придумал? Если да, то не городи велосипеды. Если нет, то парси в какую-то структуру (AST) и гоняй запросы на ней. Для запросов сделай что-то на подобии Criteria в JPA. Теперь ты можешь либо использовать этот criteria-like API, либо написать поверх него свой язык запросов (тот что у тебя в примере). Для DSL используй javacc, например.
>>721384 Правильно он все пишет (правда утрирует слегка). Вуз не готовит программистов (не готовил и не будет). Программирование - инструмент, пусть и не самый простой. Я вот только не понимаю, почему ещё не создали нормальных ПТУ, которые бы за 4 года готовили бы именно кодеров.
>>721304 >Но "программистов" ни там, ни там не готовят. Среда-то академическая - ученые, исследователи Кекнул чет. На самом деле вузы готовят борщехлёбов и небольшое количество предателей родины. Самые умные из рашки валят в науку Европы. Вот моя преподавательница алгебраической геометрии защитила в рашке диссер и несколько лет назад завела трактор.
>>721380 Похоже я не достаточно ясно выразился. Пользователь вводит свой запрос во время работы программы. И помимо аст и поиска по его элементам придётся реализовывать парсинг и выполнение запроса, чего мне не очень хочется, т.к. слабо представляю как это сделать без говна, палок и костылей.
> сделай что-то на подобии Criteria в JPA Ты говоришь про какие-то внутренние особенности реализации criteria или то как примерно программист с классом взаимодействует?
>>721408 Ты и сейчас не достаточно ясно выразился. Во-первых, ты не ответил на вопрос откуда такой формат. Если можешь не использовать его - не используй. Во-вторых, парсинг можешь реализовать с помощью javacc - за вечер разберешься. Ну или свой парсер костылять. Ты ведь как-то парсишь сам документ. С помощью чего? В-третьих, под criteria-like api я имею ввиду что-то типа document.find(new And(new FieldEqual("tag", "felis"), new FieldLess("size", 20)));
Полный ноль в программировании. Начал с учебника в шапке. Посоветуйте что-нибудь для ознакомления с матчастью, чтобы без практики. То есть чтобы не был нужен компьютер. Имею планшет и некоторое количество свободного времени на работе, значит лучше бы потратить его на чтение.
>>721539 А где сейчас работаешь? Энивэй хуевая у вас там работа, раз ты книги читать во время перекура собрался. "Learn Java in the 1 week spending 1 hour per day"
>>721436 Вот запустил пользователь программу, скормил ей файл, программа построила аст - это я умею и уже делаю. Теперь пользователь вводит строку, по которой будет фильтроваться это дерево. Например: "sex=male & age>17 & age<28". И вот эту строку сложнее парсить и не понятно как потом применять.
>>721389 >почему ещё не создали нормальных ПТУ Потому что само слово ПТУ у нас стало синонимом "шарага для дебилов". Непрестижно, никто не пойдет, всем ВУЗ подавай. Хотя часть вузов по факту ПТУ и есть
БЛЯЯЯЯЯЯЯ ОНИ ЧТО ЛИ ТРОЛЛЯТ МЕНЯ СУКА!???? Я проебался полтора часа честно пытаясь разрешить это говно (хотя изначально дико тупанул из-за невнимательности), но когда сдался... Сука! Откуда, блядь, откуда там пробел!? Или же почему его нет в правильном ответе!?!?!? PIZDOSSSSSSSSSSS
>>721752 Читай в оригинале, там обычно нету проблем с переписыванием кода. В том же эккеле просто миллиард ошибок, почти нигде в коде нету кавычек. Или скачай на оф сайте сорцы к заданиям.
Аноны, поясните ньюфагу за проблему затирания типов. Многие говнят эту штуку, но в общем то в compile time все работает как надо. В каких случаях может понадобиться использовать обобщенные типы в рантайме?
>>721755 Я полный ноль. Учебник толстый и там обещали научить меня программировать! лол. Там всё объясняется тем, что визуальная информация усваивается на дохуя процентов лучше текстовой и скучной
>>721758 Знания английского боюсь не хватит. Хотя не хороший ли это способ одновременно натренировать и английский, и жабу...
>>721761 >визуальная информация усваивается на дохуя процентов лучше текстовой и скучной Ты будешь кнопочки перетаскивать или текст печатать будучи погромистом?
Проганы, поможете дебилу воннаби-программистишке? На прошлой первой работе 4 месяца писал на пыхе, потом опомнился, решил перекатиться в джаву. Дали тестовое задние для джунопетуха в говноконторку почти неделю назад, а я и забыл про него, осталось несколько дней до сдачи. Кое-какие знания по джаве из универа остались, нужно разобраться с jax-rs, мавен-хуявен, и хотелось бы ещё всё это на гитхаб закинуть.
Бюджет 7-10к рублей, в зависимости от уровня помощи. Объяснить некоторые моменты, или помочь с выполнением. Хоть скайп, хоть вк, хоть почта. Готов перечислить на любой кошелёк, частями по мере выполнения.
>>721580 Со запросом то же самое - парсишь в аст. Потом пишешь функцию find(DocAST docAst, QueryAST queryAst). Ну это грубо говоря, конечно. Для парсинга используй что угодно. Мой выбор - javacc. Там сразу пишешь грамматику и парсишь в структуру.
>>722188>>722198 > javacc > parboiled Спасибо, посмотрю. Хотя, судя по всему, у меня получается контекстно-зависимая грамматика.
>>722198 >А почему ты в UI фильтры не нарисуешь? Во первых, не могу придумать нормальный ui. Получается сложное говно и не только для использования, но и для написания. Во вторых, я лучше поиграюсь с парсером, чем с очередным интерфейсом.
>>722222 > заставляет пользователей писать на своем говно-DSL > я лучше поиграюсь с парсером, чем с очередным интерфейсом Типичный программист-аутист, замкнувшийся в своем манямирке и желающий решать задачи. > сложное говно и не только для использования Нет. > написания Смотря как напишешь.
>>722230 > Типичный программист-аутист, замкнувшийся в своем манямирке и желающий решать задачи Это внутренний продукт и вся ЦА не против. Если бы вариант с xml подошёл, то ей бы пришлось писать xpath запросы, что, на мой вкус, гораздо неудобнее.
> Нет. Что нет? Конкретно мой интерфейс для конкретно этой задачи получается говёным и сложным, т.к. я не могу в интерфейсы.
> Смотря как напишешь. Ну да. Если накидать неподдерживаемый код, то будет достаточно просто написать.
>>722246 Ну охуеть. Пусть пишут на Sql тогда. Решение у тебя говеное. Одну таблицу на Swing /JavaFX с динамическим фильтром написать сложно, а писать парсеры несложно. И ещё что-то говорит про поддерживаемость. Ты сегодня у мамы человек дождя?
>>722230 Велосипеды, зеркалки, КПК и интересные проекты - вот анатомия программистишки! С арийским приветом в честь дня рождения Дедушки, Ганс-пулеметчик.
>>722258 А хуле читать? Нормальный формат не нужен, SQL ему не нравится, XPath / XQuery тоже, гуй слишком сложно. Сначала придумал проблему, а потом и решение - парсеры писать.
Есть прохладные, кто пришел с нуля на джаву с успехом? Сколько времени понадобилось учиться? Если все свободное время буду учить, а свободное 24\5, сколько времени нужно, чтобы пойти на учебные курсы от айти-конторы?
>>722408 Потому что компании важно понять, насколько хорошо ты ПОНИМАЕШЬ концепцию ООП. Т.е. буркнуть заученное: "Ой, да инкапсуляция - это сокрытие данных, сеттеры/геттеры пишем и вуаля" - не катит. Сойдёшь за не шибко умного, мягко говоря. Должен рассказать, насколько важна инкапсуляция при написании какого-либо кода, привести примеры как эта парадигма помогает писать библиотеки и после совершенствовать их, не меняя API. Как влияет на уровень абстракции кода.
Я на собеседовании по поводу только ОО-подхода говорил минут 40/60.
>>722264 Тот кто тебе отвечал - не я. Твоё предложение с таблицей не подходит, т.к. данные плохо представляются в виде таблицы. Можешь представить их себе как xml документ, каждый тег - нода в дереве, атрибуты тега - атрибуты этой ноды по которым нужно фильтровать, вложенные теги - дети, при чём они наследуют все атрибуты родителей. Ну и как это таблицей представить? Поэтому и sql не прикрутишь. xpath/xquery - они не поддерживают объединённые интервалы: [1, 2] ∪ [5, 7]. Точнее xml их не поддерживает. А так бы подошло. Гуй тут плохо подходит, т.к. только гуем трудно составить запрос вида: (a < 10 & b > 100) | (c < 4 & d > 6)
Мне тут надо нахуярить рестик на джаве, вот думаю, сделать старый добрый варник, томкат, все дела, или есть более кошерные решения в современности? Что то типа spring mvc, play, netty.
Сервис - простолйка между юзерами и облаком, будет чекать права на файлы у запрашивающегл клиента.
Короче, каков современный уклад дел в сфере написания бекендя веб дрисни?
>>722433 > (a < 10 & b > 100) | (c < 4 & d > 6) Почему так сложно? Где такие запросы используются?
>>722443 Твой выбор - Dropwizard, Spring Boot, Ratpack или Vert.x. Обычно это все пакуется в один толстый jar с эмбеддед сервлет контейнером. Но если хочется извращений, можно и в war.
>>722429 По поводу полиморфизма. Во-первых, его четыре, если не ошибаюсь, вида. И overriding - лишь один из них. Так-то, надо понимать, почему в некоторых языках нельзя полиморфно вызывать метод. Во-вторых, неплохо знать о типах связывания методов: late binding, early binding. Короче, понять, что Java за инструмент, какие задачи решает, и почему именно так, а не эдак.
Теперь про наследование. Примером сложностей, которые возникают при его использовании, можно назвать работу метода Object'овского equals. Чтобы я тут не переписывал тебе книгу, уважаемый, вот прям сейчас вбил в Google "Effective Java 2nd edition", открыл главу про equals и понял сложность проблемы. Иначе как-нибудь отстрелишь себе ногу на тех же HashMap.
>>722434 Советую Effective Java/Эккеля и практику. Я гуглил задания разных компаний на практику/стажировку. Купил себе Эккеля/Блоха в бумажном виде, обклеил закладочками цветными. Часто во время кодинга что-то забываю и возвращаюсь к этим книгам. И совет: не пытаться заучить, а понять. Этот процесс долгий, но когда мозги вправишь, если не уже, будешь залипать в эти, отчасти, философские вопросы перед сном.
>>722474 > Эккеля Посмотрел сейчас оглавление. Там же всего пара глав на эту тему. Точно подойдёт? И у меня есть интуитивное понимание принципов ООП и как его использовать, но я не могу на собеседованиях умными словами рассказывать про это.
> late binding, early binding А про это где читать? В документации первое упоминается один раз, второе - ноль.
>>722486 Никто не мешает загуглить дополнительно какой-либо вопрос. Алгоритм: прочитал что-то -> выписал непонятные места -> копнул глубже(или шире) с помощью Google -> написал простенькую программку с комментариями "Здесь так, тут - вот так"
Этот >>722493 отчасти прав - практической выгоды не несёт. Нужно для более глубоко понимания своего инструмента и собеседующего
абстрактный класс реализует три публичных метода объявленных синхронайзед почему это не считается валидным?
в effective java написано (если я не забыл английский) примерно следущее: наследники могут захватывать лок на объект и не освободить его, более валидно будет объявить private final lock объект и синхронизировать по нему.
Проконсультируйте новичка, пожалуйста. http://www.naumen.ru/upload/medialibrary/029/test_programmer_java.pdf Это тестовое задание на стажировку. Обязательно ли использовать потоки? Пока первая идея - это пройтись в методе refresh быстрой сортировкой, отсортировать в лексикографическом порядке, попутно меняя местами время, затем уже в методе guess снова пройтись быстрой сортировкой, заранее поделив массив на 2 части.
причина в том что лок на этот объект может захватить левый класс и заблочить эти три метода приватный константный монитор дает нам гарантию того что никто не сможет занять лок извне.
>>722402 Если будешь сидеть 24/7, то желание учить джаву пропадет через неделю. И ты положишь хуй на программирование. Удаляй пару часов в день изучай понемногу, пробуй понемногу , если придумаешь себе проект и втянишься, то тогда уже и будешь сидешь по 12 часов не вставая из-за компа. Я в итоге ровно 1 год учил джаву. Но я очень ленивый и иногда делал перерывы на 2/3 недели, иногда и месяц к кодингу не подходил. А вот когда прижало(отчислили из универа на уебищьной спецухе) и пора было искать работу, перспектива работать продавцом-консультантом (менджером по продажам) не прельщала мне, то за месяц узнал больше чем за весь предыдущий год(попщупал фреймворки, написал пару веб приложений) и еще месяц ходил по собеседованиям ипараллельно еще писал код. В итоге 1 год и я уже джава программист за 50к. Через пару месяцев повышение зп, кстати
Решил вкатиться в джаву параллельно пиля на ней на ней вёб сервис с картами/маршрутами. Но не совсем понимаю с чего начинать. От такого количества разношёрстных аббревиатур в голове бардак.
>>722534 > Никто не мешает загуглить дополнительно какой-либо вопрос. Я, конечно, могу загуглить late and early bindings уже сделал Но это отрывочное знание, просто один кусочек пазла, который ни куда не подходит. Та же ситуация с thinking in java. Там даются базовые понятия ооп и что с ним делать, но цельная картина не складывается. Будто прочитал теорему и основные выводы из неё, но без доказательств. Вроде и применять можешь, но как обезьяна - не до конца понимая что к чему.
Грейдло-даун опять выходит на связь. Есть корневой проект, который содержит ещё два проекта в себе. В билд-скрипте корневого проекта есть что-то подобное: allprojects { task buildShit } Если вызывать buildShit внутри модулей, то всё нормально. Однако, если вызвать его, находясь в корневом проекте, то этот таск запустится для КАЖДОГО проекта (и в корневом, и во всех модулях). Как сказать грейдлу, что если buildShit запускается из-под корневого, то и выполнять надо только в корневом проекте?
>>723055 Результаты инфиксной и постфиксной операций - так же как в сях. В джаве выражения вычисляются с лева на право и это гарантируется. А вот в сях, вроде бы, в стандарте не прописано и зависит от компилятора.
>>723142 Я не он, но мне не с кем поговорить > a = ++i + i++ пусть i = 3 ++i - сначала i увеличивается и теперь i = 4, потом возвращается значение i, т.е. грубо говоря джава подставляет вместо ++i четвёрку: > a = 4 + i++ Потом вычисляется i++. Сначала возвращается значение i (сейчас там 4), а потом уже i увеличивается и становится равно 5, но в выражение подставиться 4 потому что это значение было возвращено. Ну и дальше понятно: > a = 4 + 4
Алсо помедитируй над этим кодом: int i = 10; int j = ++i; int k = i++;
>>723197 Как в xml сохранить информацию об объединении интервалов так, что бы потом к этому можно было делать xpath запросы? Например записать x = [1, 2] ∪ [5, 7], а потом в запросе x > 0 этот интервал будет, x > 4 будет частично (ну или даже полностью, не важно), а при x > 8 - нет. Ну ещё как принадлежность надо проверять.
>>723269 Что такое x? Значение в ноде или некое представление интервала? По факту, любой такой интервал представим в виде объединения интервалов, которые можно запихнуть в массив структур из двух полей. Такой массив можно в xml хранить и в ячейке таблицы как объявленный табличный тип из двух столбцов.
>>722433 Ты там что ли конструктор гуя для пользователей делаешь? Да легко - нужно три идентификатора. 1 - object_id - идентификатор самого дерева. 2 - element_id - идентификатор элемента в дереве. 3 - parent_id - идентификатор родителя. Только искать по такой хреновине становится труднее.
>>723389 > Что такое x? Можно считать, что это имя свойства ноды. > Такой массив можно в xml хранить и в ячейке таблицы как объявленный табличный тип из двух столбцов. Но xpath по этому делу нормально искать не будет и, в таком случае, какой смысл его использовать?
> Ты там что ли конструктор гуя для пользователей делаешь? Фильтрация/поиск в древовидном документе. Я понимаю, что это можно представить в виде таблицы, но не уверен что будет удобно этим пользоваться. Структура получится такая первая таблица: element_id, parent_id вторая таблица: element_id, property, value И как тут реализовать удобные запросы?
>>722868 просто сядь и замути свой проект, оприаясь на то, что выучил, не стесняйся кодить так как понял из материала, похер на сомнения, тупо так как понял. Потом, походу, найдутся моменты, где все через жопу, подумай почему и исправь, и это и будет опыт. Потом будешь за версту чувстовать потенциальный костыль, который не к месту, даже при поверхностном дизайне.
>>723517 Я тебе про изучение теории, а ты мне про практику. Вот, например, я знаю какая теория стоит за функциональными языками: лямбда исчисления. А ооп сколько уже существует - должно же и за ним что-то стоять? Понятно, что никакого матана за ним нет это не плохо но где-то же должны быть описаны его принципы, на что опирались при создании, что получилось, какие взгляды на ООП у разных его идеологов.
>>723591 1. ctfl+f 2. "конф" 3. если нашел конфу - идешь туда, конец 4. если не нашел - идешь в оп пост и оттуда попадаешь в предыдущий тред 5. переходишь к п.1
>>723603 Как вы заебали, малолетние долбаебы которые приходят и ноют что им не разжевали и в рот не положили. Конфу не создали. Книги на русский не перевели. Да и вообще не посоветовали годную книжку чтобы сразу вкатиться. Лабу не решили. Шапку для треда нормальную не сделали. Полотенце под ноги не бросили. За жавараш не пояснили. Инфу по конфам не выдали.
Тут должен был быть мудрый совет и подзатыльник от обладателя седых мудей, но его не будет, страдай.
Посоны, получаю джейсон, сериализиую джексоном: Object o = mapper.readValue(JSON, Object.class); Все отлично, но как быть с тем, что приходит в виде идешника и нужно вытягивать объект из базы? Можно и руками все сделать но может можно предикат какой джексону скормить?
Сейчас, используя maven-assembly, собираю проект с зависимостями в один jar. Jar получается очень жирный. Как мне не тащить полностью завимости, а брать только нужные файлы в каждой из них?
сап. хочу вкатиться в одну контору работать в бекенде. товарищ, работающий в той конторе посоветовал запилить проект для собеседования (который может я и не покажу но лучше чтобы было). так вот, думаю запилить какой-то элементарный веб-сервер, чтобы с бд как-то сотрудничал и все такое. но я не очень понимаю в организации и устройстве этого всего дела. посоветуйте литературы может какой, по запиливанию веб серверов, про то как работают и с чем его вообще едят спасибо заранее
>>723757 >хочу вкатиться в одну контору работать в бекенде >не очень понимаю в организации и устройстве этого всего дела. посоветуйте литературы может какой, по запиливанию веб серверов, про то как работают и с чем его вообще едят Пиздец, ты охуел мразь? Мы тут значит с полными гитхабами и программированием с 12 лет ждём когда нам перезвонят, а он собрался вкатиться вообще не зная как сделать ебаный ВЕБ-СЕРВЕР блять, это же основы сука, уёбок, червь-пидор чтобы ты сдох.
>>723627 Ну так то легче айдишники отдельными аргументами передать а потом уже в готовый объект вставить. Я думал я мож это предусмотрели. Я ж тупой, обычно узнаю что ТАК МОЖНО БЫЛО уже постфактум.
>>724291 Зубрёжка. Что как работает и во что раскладываются твои абстракции нужно плюсовикам, сишникам и прочим господам с языками низкого уровня. Тут за тебя вся низкоуровенная ебля реализована, память чистится сама, код хорошо оптимизируется сам (да, лол), каких-то сложных вещей просто нету — язык примитивен и код сеньёра не часто будет отличаться от кода джуниора (если не брать всякие хайлоды в расчёт, хотя туда не допустят нюфагов, да и не особо такой код отличается от сишного).
Зубри стандартную библиотеку, гуавы и всё вот это вот + вопросы на собеседование и ты уже почётный ява-макакгражданин.
Сегодня наткнулся на книгу thinkjava, думаю нуфагам и вкатывальщикам с 0 она хорошо подойдет. В конце главы есть словарик и задачки. Написана на очень простом английском, так что даже с даун с дцп ее осилит. Залил на ргхост: http://rghost.ru/6RcWTDL4G .
Как же меня надоел Экель со своей better java. Написал книгу, добавил в неё кучу отсылок к своей будущей книге, но не написал её. Выразил свой батхёрт в пикрилейтед.
>>724830 Ок, я не новичок в программировании. И экель мне кажется достаточно скучным. Дропать его и начинать Хортсмана или сначала дочитать? Или есть что-то по лучше не для новичков?
Саб, зк. Собственно, написал курсач, работающий в консольном режиме - задача была показать иерархию. Теперь затребовали гуй - на чем его пилить? Интерфейса минимум будет.
>>724838 > top-books-for-advanced-level-java-developers/ Это же список для тех кто уже знает джаву и хотят стать продвинутыми джава программистами, а я писал на пайтоне и, давным-давно, шарпе.
>>724847 Если ты не новичок, то смысл фразы Kokoko<E> koko = new Kokoko() тебе объяснять не надо, равно как и со стандартной библиотекой ты без проблем сможешь ознакомиться в интернете - пакеты, классы и методы говорят за себя.
>>724880 Все эти книжки, которые рекомендуют для вкатывания в яву - глупость. Они на самом деле для тех, кто вкатывается в программирование с нуля. Там тебе рассказывают про циклы и ифы, про массивы и листы, про классы и методы, в итоге если ты писал что-то сложнее helloworld'а на любом другом языке, читать все это говно типо Экеля ну просто нереально. А я предполагаю, что в яву вкатываются те, кто уже писал хэллоуворлды на других языках. Так что лучше сразу отправлять читать всяких там Фаулеров, либо изучать всякие там спринги, чем искать _лучше_книгу_по_изучению_основ_языка_. Основы на тысячу страниц, я ебал.
>>724911 Вот я знаю другие языки и сейчас читаю thinking in java. Что интересного из него узнал за сегодня: - как организована память (registers, stack, heap, constant storage) - про обёртки и автобоксинг - в джаве не функции, а методы Остальное было очевидным/скучным. Несколько полезных вещей на ~20 страниц. В общем не много. Но в какой книге я это прочитал бы в сжатом виде, без воды?
>>724950 >А если ты уже знаешь какой-то материал, слабо его проскипать? В итоге я проскипал весь Thinking in Java. Затем проскипал Effective Java, потому что та же очевидная хрень. >>724922 >- как организована память (registers, stack, heap, constant storage) Не касается явы, особенно про регистры. >- про обёртки и автобоксинг Изначально не нужны. >- в джаве не функции, а методы Разные названия одних и тех же вещей.
>>724911 >типо Экеля ну просто нереально Ну х.з., я писал на Дельфи и плюсах проги уровня лаба02, и для меня в Эккеле много чего полезного было. Пока не начался лютый пиздец который мне мозги разносит, начиная с Анонимных классов, генериков, RTTI, прочего. Куча кода, в котором хуй разберешься, куча классов. Хортсмана что ли попробовать, или там еще хуже будет?...
>>724986 Да нихуя, сам на экеле высушил себе мозги, не смогу написать почему, но эккелевские куски кода на удивление тяжело воспринимаются, до сих пор скипаю код, когда освежаю память по какой-нибудь теме, а ведь уже сотни кода просмотрел, гитхаб, исходники, андроид.
>>725030 >эккелевские куски кода на удивление тяжело воспринимаются Что посоветуешь тогда, чтобы освоить core? Complete reference довольно легко воспринимается, но там оче кратко и неглубоко.
>>725045 Шилдта я дропнул почти сразу, для обучения хуита, для справочника есть гугл и "СтекПереполнение". Читай Эккеля, просто пропускай код, ты ведь не из тех кто наслово не поверит, а еще и в исходники жавы полезет чтобы убедиться что автор не наебывает? Хорстмана для core еще советуют, книжка так и называется java core. Я не читал, но заебенил другую книгу этого автора: скала для нетерпеливых, ультрагоднота!
>>724960 > Не касается явы, особенно про регистры. Разве? Без понимания как оно работает будешь писать плохой код. > Изначально не нужны. Может тебе всё же стоит thinking in java прочитать? Там написано зачем всё это нужно. > Разные названия одних и тех же вещей. Ага, вот только в сообществе принято употреблять термин метод, а не функция. И не следовать этому негласному правилу всё равно что ходить в носках и шлёпанцах.
А как обстоят дела с названием переменных/функций/классов в конторах, где программисты не знают английский? Гугл транслэй, транслит или пишут прямо по-русски?
>>725140 >Разве? Без понимания как оно работает будешь писать плохой код. Серьезно так думаешь? Мне кажется, что ты выбрал не тот язык. Иди посмотри на си. >Может тебе всё же стоит thinking in java прочитать? Там написано зачем всё это нужно. Я и без невдалых книг знаю, зачем оно нужно. Чтобы закостылить примитивы. Правильный вариант - убрать примитивы. >Ага, вот только в сообществе принято употреблять термин метод, а не функция. Т.е. про регистры ты знать хочешь, а про реализации методов в самом низу - нет?
>>725206 > Серьезно так думаешь? Конечно. Если ты только смутно догадываешься как работает инструмент/технология, то ты не сможешь эффективно его использовать. > Правильный вариант - убрать примитивы. И получить падение производительности, ага. > про реализации методов в самом низу Про что?
>>725225 >>Конечно. Если ты только смутно догадываешься как работает инструмент/технология, то ты не сможешь эффективно его использовать. Ява - это не про работу с кучей и стеком. >>И получить падение производительности, ага. Это проблемы jvm. А типы-примитивы - проблема всей концепции. Может ты еще всякие там битовые флаги используешь, потому что так быстрее?
>>725225 Ну расскажи, как тебе поможет знание работы регистров (которое у каждого вида процессоров разное) при пейсании на жяве. Нахуя тебе нужно знать про стэк и константный блок памяти, если нигде кроме как на куче выделять ты сам не можешь? да, это может сделать жит, но ты для этого нахуй не нужен Ява тот язык, при пейсании на котором даже не нужно думать что и как выделять – всё за тебя дефрагментируется, жит сам всё оптимизирует под конкретную машину и тд. Платформа специально сделана для людей с низкой квалификацией.
>>725234 >Платформа специально сделана для людей с низкой квалификацией ну ни над( Квалификация - штука относительная. Скажешь ли ты, что программист хуевый, если он не умеет играть на фортепьяно? Так же и здесь. Кто-то хорошо знает низкоуровневые штуки, а кто-то проектирование и готовые решения. Стоит посмотреть код какого-нибудь биткоина, который явно write-only говнецо. Зато написан пэхэдэшниками.
>>725232 Тогда уж forEach(func) И нет, скорость взятия элемента по индексу будет зависить от конкретной реализации листа, а итератору наплевать. >>725234 >>Платформа специально сделана для людей с низкой квалификацией. А ты хорош.
>>725242 Вот именно. Обычному человеку хватит пройти за месяцок курсы, и он уже свободно может макачить на яве. Даже если он не особо будет понимать что вообще делает – всё будет работать. А теперь попробуй посчитать время, нужное человеку чтобы вникнуть в какие нибудь плюсы чтобы написать что нибудь, что не будет падать, и тем более написать код который будет хотя бы недалико от оптимизмрованного житом решения.
Я не засираю никого, просто это развитие индустрии – требуется больше рабов, времени на обучение и ресурсов для контроля ни у кого нету. >пэхэдэшниками Я тебе сейчас приоткрою завесу тайны: это ученные. Если не нравится так – исследователи.
>>725248 Кому-то пичот от нарушение консистентности аксиомы "всёце объект".
>>725281>>725288 Integer a = new Integer(1); Integer b; b = a; System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(b));
>>725260 Потому что Integer -- immutable. Ссылка у 'a' после всех манипуляций указывает на всё тот же объект, который в результате манипуляций не изменяется.
>>725306 А в каких случаях он из пула берёт? Вот в этом не взял:
Integer a = new Integer(1); Integer b; b = a; b++; b--; System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(b));
>>725309 И ещё, забыл добавить: код в твоём посте компилятор изменяет на следующий: Integer a = new Integer(1); //new object on the heap, not cached Integer b; b = a; b = Integer.valueOf( b.intValue() + 1); //new object on the heap, cached b = Integer.valueOf( b.intValue() - 1); //new object on the heap, cached System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(b));
>>725507>>725656 Именно. Какого чёрта присваивание разрешены внутри условия? Один из аргументов в пользу джава: трудно выстрелить себе в ногу. В условии нельзя присваивать небулеаны - уже хорошо, целый класс выстрелов по невнимательности недоступен, но почему оставили возможность присваивания булеанов? Вот в каком случае эта штука вообще может пригодится?
Только начал изучать, можете посоветовать скажем так, "закладки" программиста?
Какие-то сайты, сервисы и прочие вещи, которые облегчают жизнь?
Уже слышал про Git, Maven и тому подобные вещи, но до конца смысла их не понимаю.
PS: Вопрос, у меня на работе и дома JDK. Как сделать так, чтобы когда я на работе написал какую то программу, дома она была скопирована и я пришел и продолжил её.
>>725812 Оставили, потому что присваивание имеет результат. И результат этот - присвоенное значение. Значение булево, значит оно может быть в ифе. Все просто.
>>725832 Я понимаю почему это работает, не понимаю почему они не сказали: идите к чёрту, не будет у вас в ифе присвоения, что бы в ногу не выстрелили. Риторический вопрос. минибугурт после го
>>725851 По началу не мини, а мегабугурт. Но, со временем, понимаешь как писать их так, что бы try-catch были не в каждой строке и мегабугурт сменяется среднебугуртом, в некоторых модулях переходя в минибугурт. Но глядя на плюсы го прощаешь ему эту "фичу". А потом смотришь на список вакансий и начинаешь учить джаву.
>>724868 Тут хуй проссышь. В проекте, на который приходишь, какой-то гуй обычно уже есть, и выбирать не приходится. Я видел свинг, я видел эф-ыксный браузер вклеенный в свинг, я видел вообще гуй на дотнете для жава-приложения, и это только мой ограниченный опыт.
>>724839 В свете вышесказанного: ознакомься и с тем, и с тем, а подробнее по мере необходимости подботаешь. Для курсача монетку можешь бросить.
>>724960 >автобоксинг не нужен А он есть. И надо знать об этом. Иначе может быть больно.
>>- как организована память (registers, stack, heap, constant storage) >Не касается явы, особенно про регистры. Хуя ты категоричный. Круды пишешь штоле? Как устроена память, как работает гэ-мать-его-цэ, почему нужен паддинг, как 4к алиасинг может тебя выебать - все это говно полезно хотя бы в общих чертах представлять.
>>725234 >>725234 >нигде кроме как на куче выделять не можешь. Можешь. Сорта оффхип сторэджей довольно разнообразны. Но это для тех, кто знает, что он умнее гц, и имеет свои проблемы.
>>726007 >Хуя ты категоричный. Круды пишешь штоле? Ага. Как и 95% программистов на яве. Проблем? Ебутся производительностью явы те, кто имеют дело с хайлоад, а их а) мало; b) вообще не ебет твой стек и хип, у них там беда с горизонтальным масштабированием и иже с ними.
>>726012 Схуяли? Иди набери это в иде и декомпилируй. Все три варианта скомпилируются по-разному, потому что во всех трех написано разное.
>>726021 Я как приеду к компу - не поленюсь все четыре варианта рассмотреть.
Сладок хлеб тех, кому похуй производительность, че. Ну и хип со стеком и гц таки ебут, нам бы скаляризации побольше, аллокаций поменьше, stw раз в неделю бы вообще.
>>725896 Вообще ни разу не видел таких, кто путает, но знаю что в плюсах и сишке даже говноконвенции изобретают, писать предикат как 123 == huita вместо huita == 123, чтоб если ты макнин пиздоглаз компилятор ругнулся.
>>726144 А теперь найди проект или конвенцию где такая хуйня присутствует. Ни в бустовом кодстайле, ни в гугловском, ни в фейсбучном и кутешном такой хуйни лично я не видел. Да даже в core guidlines её нету. Книга конечно была достоверным источником для оправдания утверждений.
Потом попробуй провести такой же анализ пхп кода – будешь сильно удивлён.
Интересная байка из thinking in java: In science and engineering, ‘e’ refers to the base of natural logarithms, approximately 2.718. (A more precise double value is available in Java as Math.E.) This is used in exponentiation expressions such as 1.39 x e ^ -43 , which means 1.39 x 2.718 ^ -43. However, when the FORTRAN programming language was invented, they decided that e would mean “ten to the power”, which is an odd decision because FORTRAN was designed for science and engineering, and one would think its designers would be sensitive about introducing such an ambiguity.
>>726120 Это не то же самое. Такой стиль просто избавляет от лишней ненулл проверки >>726115 Пыху не видел, но там предполагалось что если ты криворукий уебан и написал в цикле a = 1 вместо сравнения, то это проскочет и превратится в баг, а если 1 = a, то компилятор нахуй пошлет. С плюсами и няшной не работаю и конвенций фб и прочих не читал. Но видел это как минимум в двух книгах про плюсы и в одной про c(вроде даж у Ричи). Плюс в одной статье на хабре про советы от hr, автор на такой хуйне матерых прогеров детектил, лол.
>>726143 это поведение еще с ебаного си пошло, в шарпе и жабе начали требовать в условных операторах булеан, лет через десять, глядишь, вообще выпилят это говно.
>>726371 винда была завирусена, решил снести. мамка притащила типа диск с виндой, а он ваще без драйеверов. не люблю когда в моем компе чужи дяди роются.
>>726432 Да я вообще мимо проходил, просто решил поддержать срач разговор. Мне вообще кажется что проблема if(a==b) в java переоценена (ни разу не сталкивался).
>>726485 > решается в любой нормальной IDE > плагин Oh, you!
>>726497 Сознательно - нет. Но когда горят сроки, ты не спал последние 2 дня, уже 4 утра и сдача через 5 часов, то можешь опечататься и вместо == написать =.
Привет, аноны. Ситуация такая: понадобилось написать прожку (на Java естественно), которая сможет формировать icmp пакеты на уровне ethernet (задавать MAC и IP получателя, тип самого сообщения и т.п.) и отправлять их по указанному ip-адресу. Может быть у кого-нибудь есть опыт работы с чем-то подобным? Что лучше заюзать? Пока что использую обертку над библиотекой libpcap/winpcap (для линуха и винды соответственно), но может есть варианты получше?
>>726527 >Но когда горят сроки, ты не спал последние 2 дня, уже 4 утра и сдача через 5 часов Сочувствую бро, в наших краях энтерпрайз макак так не насилуют Подданный усача
>>727036 radix tree должно хорошо зайти. но я вообще полный ноль в алгоритмах, так что не стоит бросаться и делать именно так. стоит погуглить статьи на тему индексов заточенных под подобные range запросы
ананасы, подскажите какие-нть нормальные конторы в ДС2 или удаленку, где зипстота пишет угорает по хардкору и 8 джаве, а не саппорт легаси-говна из 90х на шестой с дедами-пердунами 35+. такие вообще есть?
>>727792 >Яндекс офис в жопе >JB сложнааа >ДБ, Сбретех, Девекс серьезно? думал там говно в основном. на счет сбертеха не уверен, кончено, но остальное попахивает ЫНТЕРПРАЙЗОМ, не, я не прав, оказывается?
Анон, есть две вещи, которые я про джаву не могу понять. Точнее, одна вещь про две вещи. Класспас и пэкеджи. В умных книжках про них написано, буквально (вкратце): Х ОЧЕНЬ ВАЖНО, ДЛЯ ДЖАВА ПРОГРАММИСТА ПРАВИЛЬНО ПОНИМАТЬ, ЧТО ТАКОЕ Х, ЗАЧЕМ НУЖНО И КАК ПРАВИЛЬНО ДЕЛАТЬ, НЕ ЗАБЫВАЙТЕ УДАЛЯТЬ ВНИМАНИЕ Х, ПОМНИТЕ, КАК Х ВАЖНО и ещё на три главы подобной воды, но, блядь, ни слова о том, ЧТО ЭТО, КАК ЭТО И НАХУЯ ЭТО. Вопрос, собственно, такой: что это, как это и нахуя это?
>>729131 Package это аналог namespace из плюсов\шарпа, что-то типа дополнительного имени в названии классов, чтобы система не путала названия. Допустим есть страндартный list. На самом деле полное название java.collections.list и поэтому если какой-нибудь васян напишет свою реализацию, система все равно отличит, потому что полное имя будет vasya.2ch.ebanoe.dno.list. Вот эта приставка перед list - это и есть package. С другой стороны ты можешь импортировать этот list из нужного тебе пакета и пользоваться как боярин коротким именем. Classpath это банально название папки в которой находится твой пакет с классами, он может быть задан в переменных окружения твоей ОС, при компиляции, в манифесте. Короче штуке для машины, чтоб она знала где твои сырцы\скомпилированные классы. В 99% случаев тебе ничего руками не надо прописывать, все сделает иде.
>>717652 (OP) Короче, ньюфажина. Как запилить генерацию ориентированных графов без контуров, ну, то есть, циклов? Причем чтобы генерировались в текстовый файл, первое число в котором - число вершин, а дальше по парам, откуда и куда ведет ребро.
Аноны, за сколько времени обычно пишется крудня типа интернет магазнина на spring mvc с секюрити хибернейтом и прочими интеграционными\юнит тестами? Хочу нахерачить для портфолио, чтоб макакой взяли, интересно в какие временные рамки можно уложиться.
Подкиньте идей для приложения активно использующего потоки. Я правда совсем нуфаг, умею только работать с графикой, и пилить гуевые интерфейсы в свинге.
Сап, программач. Есть одно HttpURLConnection соединение в котором я делаю пост запрос на https адрес. После этого мне нужно сделать гет запрос в этом же соединении(Connection: Keep-Alive). Какие варианты, антошки?
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать?
A: Туториалы:
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
HARD: http://docs.oracle.com/javase/tutorial/
Книги:
- Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
- Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах.
- Thinking in Java (4th Edition): Bruce Eckel - для тех, кто уже умеет в программирование на другом языке, но хочет перекатиться.
- Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает джаву, но хочет перестать писать костыли.
Больше здесь: http://www.proklondike.com/books/java.html
- Soft Skills: The software developer’s life manual : John Sonmez - сказки на ночь.
Видео:
https://habrahabr.ru/company/golovachcourses/blog/215275/ : 1000+ часов видео по Java на русском.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Тех.поддержка английского >>201049
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо?
A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко обьявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять сраз скопипасти этот кусок кода". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики.
Уровня laba1.pas: http://codingbat.com/java http://codehunt.com
Чутка серьезнее: http://programmr.com/zone/java http://codingame.com/puzzles
Рулеточка: http://postimg.org/image/xdfbvgps9/
Олимпиадка: http://codeforces.com
Примеры той-проектов: http://eax.me/programming-language-learning/
Ежедневные задачки, разделены на три уровня сложности https://www.reddit.com/r/dailyprogrammer
Q: Я выучил кор, достаточно ли этого, чтоб взяли на работу?
A: Лол, конечно нет хотя некоторым всё же везёт.
Вот майндмап с джава-технологиями: https://atlas.mindmup.com/2015/10/3d59a040592a0133d02a5d31ebcc5420/java/index.html
Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)
Q: Слышал, SQL знать надо обязательно. Где его учить?
A: Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/
Q: Вопросы на собеседование.
A: http://jsehelper.blogspot.ru/2016/01/blog-post_59.html : куча вопросов с ответамине всегда правильными
http://becomejavasenior.com/blog/2015/07/01/327-inter..
Q: Какие еще ресурсы можно почитать?
A: https://android-arsenal.com/ : android
https://google.github.io/styleguide/javaguide.html : google java style
http://blog.jooq.org/ : Java, SQL, and jOOQ
http://virtualjug.com/podcast/ : подкасты
Q: Где можно пообщаться на java тематику?
- В этом ITT треде
https://www.reddit.com/r/java : reddit
http://stackoverflow.com/questions/tagged/java : платформа для вопросов и ответов
Список java фреймворков, библиотек и по на любой вкус:
https://github.com/akullpp/awesome-java
Предыдущий тред тонет тут