FAQ: 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
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: В списке книг одно старье. Новее ничего нет? A: Годноту быдлу не палим. Джава 5 вышла больше десяти лет назад. В шестой и седьмой изменений в синтаксисе минимум. В восьмой было довольно значительное обновление, но а) многие проекты все еще сидят на шестой или седьмой; б) там не такие фундаментальные изменения, чтоб нужно было переучиваться: за пару вечеров лямбды и стримы вполне можно осилить.
Q: Я не могу в книги, но нашел крутую штуку - javarush. Что скажете? A: В наших тредах постоянно появляются люди типа тебя. Громко обьявляют, что начинают заниматься по джаварашу, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять сраз скопипасти этот кусок кода". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
написал сегодня генератор имён. Имена выходят глупые, странные, похожие на имена викингов, но фантазии на большее не хватило. Да и делалось скорее для оттачивания/проверки навыков, а не для "души и творчества". В общем, поехали. Класс NameGen - класс с основами и всеми фишками, типа рандома. геттеры-сеттеры тоже тут. http://pastebin.com/6gvvNn4v класс NameGenRules. Тут у нас уже методы запуска и всё такое. плюс массивы с кусками имён: http://pastebin.com/9XBEfEuy И класс с мэйн методом, в котором я решил реализовать экншлистнеры и гуи. Вышло кривовато и не очень красиво, да, зато теперь знаю, что надо бы про ГУИ побольше почитать и больше позаниматься. вот тут класс(даже комменты на ангельском вставил): http://pastebin.com/M83qMNE7
В результате вышла милая программка, пикрелейтед.
Расскажи, что думаешь, Анон. Кроме класса с гуем - там я знаю, там много лишнего и криво.
Есть ли смысл применять жаву в вебе (сервлеты, вот эти вот хибернеты всякие), если уже может написать сайт на скриптовом языке? Алсо есть ли какие-то стильные фреймворки для стилизации формочек в FX? Хотя я почему то стили не могу подключить, применяю их прямо в коде к элементам
>>687487 Для мелкосайтов - скриптопараша лучше. Когда же у тебя появляется потребность в кешах внутри приложения, фоновых задачах, а база ложится из-за слишком большого количества коннекшнов (естественно же, в ПХП до сих по коннекшну на реквест открывают), то джава выигрывает.
>>687457 Базарю, анон, у тебя явно склонности к кодерству. Не думал в гугл на стажировку зааплаиться? Очень классная и милая программка ))) Как вариант можно еще в майкрософт в отдел разработки графических интерфейсов пользователя. Очень удачно соблюдены пропорции для графических элементов в твоей программе, юзабилити очень крутой. Удачи, у тебя все получится! )))
Бля, мне на вакансии пхп дауна прислали тест на регулярки. (они типа сайты регулярками парсят). Вообще ахуеть, DOM элементы регулярками, когда в жаве есть куча удобных библиотек!
>>687548 А если серьезно, выкатывай только реальную прикладную аппликуху, которая будет выполнять конкретную функцию, или несколько функций. Навскидку, минимум 1к строк кода должно быть, чтобы не стыдно было людям показывать и просить ревью. А ты прочитал вступление и первую главу Шилдта, наваял какую-то... программу, блядь, твое ЧСВ зашкалило, и ты решил выкатить свой талант на всеобщее обозрение. Конечно, здесь тебя за такое обоссут. Сколько тебе лет вообще?
>>687575 читаю head first прочитал до середины файна, с середины пиздец начался какой-то. оттуда и почерпнул про гуй и про основные элементы его. сейчас только head first и Java Api листаю.
>>687578 Так ты задачи решаешь? Это пиздец как важно. Причем нужно стараться копировать стиль автора. Во, вспомнил! Забей короче на всю хуйню и кури только эту книгу ближайшие месяцы: http://math.hws.edu/javanotes/ Там самая необходимая база, без которой никуда, и задачи интересные. И не распыляйся на множество источников, добей книгу от начала и до конца. И уже будешь неплохим кодерком. Такое мое видение.
>>687612 Если интерпрайз (особенно на java), то рано радоваться. Это такая вещь, которая через полгода убивает у "неокрепших умов" все желание программировать.
>>687623 22, читал эккеля и немного spring in action. в вакансии было "высшее техническое и желание развиваться в интересной области" >>687624 данон же >>687627 удачи братиш, будь уверенней и все ок будет.
>>687639 Логично что НЕ интерпрайз: • То что можно сделать с нуля • Где можно быстро увидеть и "потрогать" результат своего труда • Где к тебе относятся НЕ как к винтику, давая кучу низко-интелектуальных задач • Где применяются актуальные технологии • Где можно экспериментировать • Разрабатывать то чем пользуются простые пользователи, так что можно будет этим хвастаться
С другой стороны, если можешь пережить отсутсвие всего этого, то через год будешь неплохо зарабатывать.
We are looking for Junior Java Developer who desire to increase his/her knowledge and succeed with great results working with us.
Required skills : Technical education (related to computer science) - второй курс Good knowledge of Java - знаю джава кор Be familiar with Algorithms and Data Structures - да Good theoretical knowledge of Databases - нет Experience with HTML and CSS would be a plus - на лабах делал Be familiar with Java code conventions - да Desire to work and study new technologies - да English Intermediate level or above - B2 Fast-learning person - да
Аноны куда лучше заливать свои проекты, github или bitbucket? Гитхаб вроде как мейнстрим, но на битбакете можно будет скрыть свои говнопроекты от потенциального работодателя(не хочу 100500 аков создавать). VCS до этого не пользовался, вот сейчас вкатываюсь в гит т.к. везде требуют.на самом деле хочу кинуть анонам на ревью свой небольшой проект
>>687647 Не, тот анон с безысходностью - это тот, который как раз сейчас с собеседования вышел. Первые впечатления - ощутил, что я хуй простой и вообще нихуя не знаю. В 2 словах: были вопросы на разные тонкости, стринг буферы разные, цикл жизни сервлетов и jsp, веб, sql и БД, борьба с sql-инъекциями и как именно реализован prepared statement. Еще было про жабаскрипт и css, но на этом я совсем обосрался, так как работал с ними только копипастой и тонкостей нихуя не знаю. Под конец была оче занятная логическая задача про поезда: дан замкнутый поезд неизвестной длины, определить сколько в нем вагонов. Собственно, можно только перемещаться и включать/выключать свет, изначально освещение в вагонах включено рандомно.
Алсо, пасаны из return on intelligence внезапно вспомнили обо мне и прислали тестовое задание, позже напишу подробнее. Ну и тянка-HR сильно доебывалась, что я на курсы инглиша не хожу.
>>687794 Не везет тебе братишь, хотя это как посмотреть. Судя по твоим постам конторы попадаются не самые хуевые и если ты не собираешься писать рутину 24\7 за зарплату, а стать приличным программистом то в такие конторы и надо устраиватся.
>>687762 > заливать что-то на гитхаб только для портфолио > не контрибьютить в чужие проекты и не разрабатывать свои И себя ты называешь программистом?
>>687811 > заливать что-то на гитхаб только для портфолио Залил свой проект, а потом через год работадатель именно его решил открыть, а там код ньюфани. > не контрибьютить в чужие проекты Хотеть, но пока не уметь >И себя ты называешь программистом? НАЧИНАЮЩИЙ
>>687794 >дан замкнутый поезд неизвестной длины, определить сколько в нем вагонов. Собственно, можно только перемещаться и включать/выключать свет, изначально освещение в вагонах включено рандомно. Как решил? Нельзя просто везде включить, потом выключить любой один, начать идти со следующего, дойти по кругу до выключенного - он будет являться концом вагона. Где подвох?
>>687823 >просто везде включить А вот в этом и подвох, как ты поймёшь, что включил "везде"? То, что тебе попались n светлых вагонов подряд еще ни о чем не говорит.
>>687836 Если не заданы условия оптимизации думаю можно так: Включить в вагоне свет, он будет отправной точкой, продвинуться вперед на 1 вагон и вернуться обратно, проверить свет, потом на два вагона впереди и обратно, если на старте свет выключен, то мы обошли поезд целиком.
>>687849 Effective java наверни, там все это будет, насколько знаю из опыта знакомых, любят оттуда вопросы. >>687855 >проверить свет, потом на два вагона впереди и обратно Забыл дописать что потом на 3,4 и т.д., пока не будет выключен свет в первом вагоне
>>687815 Первая половина книги не протухла, а вот дальше чувствуется, что в 2002 году писалось. Ну и хотелось бы книжку, где мне за си шарп не задвигают и не вспоминают местами про питон с руби.
>>687900 Ну не должно это ебать типичного дева, вопросы по языку - да, по алгоритмам - конечно, попросить написать код - само собой. Но с этой хуйней пусть jvm разбирается, главное знать, что не нужно много строк создавать.
An implementation may choose to perform conversion and concatenation in one step to avoid creating and then discarding an intermediate String object. To increase the performance of repeated string concatenation, a Java compiler may use the StringBuffer class or a similar technique to reduce the number of intermediate String objects that are created by evaluation of an expression.
For primitive types, an implementation may also optimize away the creation of a wrapper object by converting directly from a primitive type to a string.
>>687908 >интринсики Хули ты умничаешь-то? Тебе говорят, блять, что это не прописано в спецификации и все оптимизации типа тех же интринсиков -- это воля разработчиков JVM. Поставь себе другую JVM от Васяна, а не Hotspot -- обязательно там интринсики будут?
>>687897 С той же целью, что и "расскажите подробно, как отрабатывает команда put в мапе" - проверить знание тонкостей кора. Знаешь ты про putfornullkey, корзины и связные списки внутри них или для тебя это просто магическая хуйня, где всякие штуки парами лежат. Алсо, спрашивали про устройство памяти и работу GC, тут я тоже частично обосрался: в общих чертах знал, но на вопросы о более подробном устройстве хипа (я читал, что там с позиции GB ещё как-то память разделена, но детали не запомнил) и о том, как именно GC поступает с объектами, указывающими только друг на друга (я знаю, что он умеет искать перекрёстные ссылки, но КАК он это делает - в душе не ебу) не ответил. Ещё были вопросы про веб, мол, я на ссылочку нажал, а что там за магия в интернетах происходит, как оно всё отрабатывает и на какой порт стучится. Как jsp преобразуется в сервлет спрашивали. Про композицию, множественное наследование и это всё, мол, что я буду делать, если мне нужно запихать методы нескольких классов в третий класс. Был вопрос про 5 принципов объектно-чего-то-там-дизайна, но я про это впервые слышал.
>>687921 Нет, я не к тому, я сам просто шарпист, и сам довольно таки глубоко лез внутрь, вникал в работу гц, медитировал над разницей в генерировании машинного кода старым компилятором и рослином, и все такое, но на собеседованиях на джуна меня ни разу ни о чем на таком уровне не спрашивали. Может у вас в джаве там конечно все иначе и хардкорней, но я не думаю, что джуну нужно знать о настолько тонких подробностях.
>>687926 ну я читал про это у эккеля где-то вначале, но максимум, что там писалось это то, что gc пытается раскрутить все ссылки до стека, а про сурвайволы и олд генерейшон там не было и слова.
>>687926 >Может у вас в джаве там конечно все иначе и хардкорней, но я не думаю, что джуну нужно знать о настолько тонких подробностях. Ну всякое говно вроде во сколько там стрингов скомпилится твое выражение и правда немного лишнее, но знать как там внутри устроена хеш-таблица (можно даже без выебонов вроде лоад факторов и "а чому это там суспрес ворнинг стоит") - это вполне вменяемые требования, как мне кажется.
>>687930 >там писалось это то, что gc пытается раскрутить все ссылки до стека Наоборот. Он начинает со стека (точнее с некоего "корневого множества"). Так что всякие там объекты с только цикличискими вообще не попадут к нему в претенденты на живых.
>>687920 А хуй знает, кстати. Формально у них и джуновских вакансий-то не было, но они сказали, что если норм, то в теории могут и взять джуном. Это, кстати, те самые, про которых я в прошлом треде писал, я у них ещё в блокноте игру в города пилил на первом собеседовании. А Return on Intelligence что-то удивили, берут в интернатуру на 4 месяца, зп 20к, после интернатуры могу взят в штат, а могут и не взять.
>>687932 Против алгоритмов и структур данных ничего против не имею, это очень хорошие и правильные вопросы. Просто когда доходит до вопросов, где начинаешь пытаться думать как компилятор, чтобы он сделал, оптимизует он или нет, то это все-таки лишнее уже.
>>687937 > А Return on Intelligence что-то удивили, берут в интернатуру на 4 месяца, зп 20к С такими ситуациями я знаком, тут можно попытаться договориться уменьшить такой срок хотя бы в 2 раза
>>687947 А то, что я даже если буду бухой и неспавший пятеро суток, я не стану сравнивать ссылки на объекты. И вопрос не про автоупоковку, а про кеширование. Мы вам перезвоним.
>>687945 На самом деле вопрос "сколько объектов создастся (в рантайм"), а не как скомпилируется.
А если он дальше по коду не используется (в условии это не уточняется)? Какая нибудь хитрожопая реализация JVM может это оптимизировать и выкинет это в рантайме, в спецификации ведь про такие случаи не говорится.
>>687941 Вот, кстати, из задание. Да ладно уменьшить, взяли бы хоть. И так боюсь, что даже если задание сделаю хорошо, могут к разговорному английскому приебаться.
>>688070 Во-первых ты неверно перепечатал образец: минус в a1. Во-вторых загляни в метод Integer.valueOf и обрати внимание на границы кеша Integer объектов.
Пиздец, ананасы, дрочу джавараш, в перерывах почитываю Head First Java. И, знаете, чувствую себя нереально тупым. Вот иной раз читаю что - то и понимаю, что я ровным счётом нихуя не соображаю. Прочту 3 -4 раза одно и то же пока до меня начинает доходить смысл. Сконцентрироваться не могу нихуя толком постоянно что - то отвлекает. Когда дело до заданий доходит постоянно ползаю в лекции подсматривать то что прочёл пару минут назад, алгоритм придумать для меня иной раз совсем непосильная задача. С программированием раньше дела не имел совсем, но так как времени много решил подучить жаву. Может мне не дано, или это у всех так было?
>>688168 Заруби себе на носу - для того, чтобы программировать не нужен какой-то божий дар. Только практика и ещё раз практика. Тех, кто тебя убеждает в ином, шли нахуй.
Насколько в idea хорошая поддержка git, нужна ли мне будет консолеебля или все связанное с git(домохозяйка-левел) можно сделать из иде? Вот ща добавил проект, но хуй проссыш как заигнорить папки, файлы.
>>688228 Бери SourceTree - охуенная весчь на маке особенно, полный контроль за репой без консолеебства. Я с ней просто отключаю все VCS плагины в идее, тк не нужны.
>>688228 >Насколько в idea хорошая поддержка git Хорошая, если не любишь пердолиться с консолью хотя как можно не любить, можно этого избежать. Пиздато мерждить через него, например.
>как заигнорить папки редактируй гитигнор через само ide, там есть даже плагин для людей с особенностями.
>>687417 (OP) Ворвался в джаву 3 недели назад на позицию джуниора в дс, не зная ни одного фреймворка и ни одной системы сборки. Оцените хуевость конторы.
>>688317 >Что платят? Ну сказали, так как опыта нет, то будут платить первые 3 месяца 30к. >Долго учился перед этим? про алгоритмы и ещё писал скрипты на ней для нагрузочного тестирования.
>>688321 Блять, проебал часть написанного. Писал, как дебил, одни реализации алгоритмов дома по книге лафора и сенжвика. Больше на ней ничего не делал.
В обещм есть в основном треде такая стандартная конструкция:
public final Random random = new Random();
И есть куча остальных тредов, которые использут этот random.
Программа огромная. Появились страшные глюки. Не понимал в чём дело, пока не добрался до сути. Дело оказалось в этом самом random.
Вызывая этот самый random из другого треда начинается лютый пиздец, но если для треда создать свой рандом и использовать его, а не тот из основного треда, то всё работает збс.
>>688311 Краткая запись. Проблема в том, что тернарная операция - суть оператор, и тип значения решается в момент компиляции. То есть если у тебя (true) ? int : double, то независимо от условия тебе вернётся double. Более того, если ты используешь несколько раз этот оператор (c1? r1 : c2 ? r21 : r22) и один из r1, r21, r22 равен null, а jcnfkmyst - два разных типа (точно не помню какой), то ты словшь null poiter exception когда условия сложаться так, что этот null будет результатом условий. Потому что сгенерированныйкод будет пытаться скастить null и сгенерирует невализный код.
>>688331 Instances of java.util.Random are threadsafe. However, the concurrent use of the same java.util.Random instance across threads may encounter contention and consequent poor performance. Consider instead using ThreadLocalRandom in multithreaded designs.
>>688311 Тернарный оператор используется для того чтобы инициализировать значения в переменных или выражениях. Например: System.out.println("Оп - " + (new Random.nextInt%2==0) ? "няша":"мудак"; Можно делать такое гавно цепочкой.
Пытаюсь реализовать паттерн "репозиторий". Есть уровень бизнес-логики, есть уровень данных (Hibernate). Общаются они через репозитарий.
Бизнес-логика вызывает Repository.save(object); Репозитарий должен извлекать из бизнес-объектов данные и наполнять этими данными POJO-объекты, которые аннотированы Hibernate'овскими аннотациями.
Это делается для того, чтобы бизнес-логика ничего не знала о том как хранятся данные. Но возникает проблема как сделать переход между бизнес-объектами и Hibernate-аннотированными объектами. После опробования разных способов пришёл к тому, что в моем случае проще бизнес-объектам наследовать hibernate-объекты.
Тогда внутри репозитария можно безопасно кастовать аннотированные hibernate-классы на бизнес-объекты. И потом сохранять.
Но возникла проблема. Когда я пытаюсь кастовать, суперкласс упорно не хочет кастоваться (см. пикчу).
Также хотел бы услышать соображения о том как ещё можно сделать переход между бизнес-объектами и Hibernate-объектами. Другие мои идеи включали enum, например (огрубленный код):
>>688446 Помнишь си? Вот ты кастанул лишь указатель(ссылку). От этого каста объект лежащий по тому адресу не перестал быть User. А еще кастовать засраные хибернейтом домены к чему-либо - плохая идея. Там же привалит хуй пойми какое прокси и у тебя будет класс каст эксепшн на каждом шагу.
Как и в прошлом треде, прошу помощи у настоящих программистов. Есть проект - игра на libGdx, которую я пилю в свободное время. Репозиторий - https://bitbucket.org/dksurname/rolik . Хочу критики по поводу некрасивых (с точки зрения программирования) решений, конструкций и архитектуры. Кода уже довольно много, но качество его таково, что можно тыкать в сорсы наугад и стабильно попадать в говнокод. Большое спасибо анону из прошлого треда, который указал на одно улучшение. Попробовать игру (пока просто по сути - прототип) на баги можно по вышеприведённой ссылке (downloads).
>>688685 >какие библиотеки надо подключать, чтобы развернуть проект в иде? Да. Прошу прощения за такое. Короче, проще всего брать пустой libGdx проект и копировать (форкать) в него. Скачиваешь libGdx жарник с их сайта, запускаешь. Нужно добавить галку на FreeType и, вроде tools (ну или потом их в грэдл зависимостями сунуть). Generate -> получаешь пустой проект. В core обычно лежит весь, собственно, код.
>>688685 >на чем графику делал? Всмысле? libGdx там сам как то её рисует. Глубинные механизмы мне не известны. А спрайты я сам рисовал. Преимущественно в gimp-е.
>>688702 <pre> public void buildMap (){ map.clear(); WordGram gKey = new WordGram(myText, 0, myOder); int ind = 0; while (myText.length >= ind+myOder){ System.out.println(gKey); if (!map.containsKey(gKey)){ ArrayList<String> list = getFollowsKeys(gKey); map.put(gKey, list);
} if (ind+myOder == myText.length){ break; } for (String s : map.get(gKey)){ System.out.println("\t" + s); }
String s = myText[ind+myOder]; //System.out.println(s); gKey.shiftAdd(myText[ind+myOder]); // System.out.println(gKey); ind +=1;
>>688703 Тут же послу добавления ключа проверяю - все хорошо. Уникальные ключи добавляются. их значения тоже. Но когда пытаюсь использовать этот HashMap в коде - выясняется что все ключи заменены, на то которое было добавлено вторым. Как так?
>>688704 Проверял вот этим <pre/> public void printHashMapInfo () { System.out.println("map size " + map.size()); for (WordGram wg : map.keySet()){ System.out.println("key " +"\""+ wg +"\""+" :"); for (String s : map.get(wg)){ System.out.println ("\t"+ s); } }</pre>
Захотел изучать джаву вбил в поиск выскочил курс javarush.ru, я начал, мне вроде нравиться, много простых задач сначала, постепенно добавляется новый материал и оседает старый как усвоенный. И теперь я хочу спросить и попросить совета - как вообще этот курс, стоит ли продолжать и заплатить за курс, кем я буду когда закончу эти 40 уроков? Ну и я понимаю что мало кто вообще с этим курсом знаком, но вдруг кто-то может что-то посоветовать. Понятно что развиваться надо будет и дальше и много, но работать мне нужно уже сейчас что бы не умереть с голоду, смогу ли я это сделать, то есть смогу ли я найти хоть какую нибудь работу с этими знаниями?
>>688737 Тут не всё однозначно. Чтобы libGdx проект сразу запускался надо очень много всяких сопутствующих файлов. Но даже, если покидать их все в репозиторий, человек, не занимавшийся раньше программированием под андроид, всё равно не сможет его просто клонировать и сразу запустить. Надо будет ставить андроид апи нужной версии и т.п. Это всё мультиплатформенность. Удобнее конечному пользователю = больше геморроя разработчику. В общем, я изначально рассчитывал, что кто-то просто посмотрит код в src на битбакете. Но, раз уж тебе хочется именно в ide его развернуть - добавил в Downloads архив roli2ch.zip. В нём идеевский проект целиком и без андроида. Надо только запустить, импортировать грэдл и кликнуть таск desktop - other - run.
>>688763 А он и не под андроид. Просто движок позволяет делать одновременно и под него и под десктоп. Мультиплатформа. Да и андроидовского там в коде (в core) ровно ничего.
>>688748 Не будешь ты программистом. Понимаешь, в этой профессии очень важны усидчивость, внимание к деталям, способность самостоятельно искать решение проблем. А ты, дебилушка, даже шапку просмотреть не осилил. Для вас, идиоты, специально добавили там вопрос про джавараш. Сложно, блядь, поиском по треду пройтись? Ты, кстати, уже второй такой за два дня существования этого треда, что как бы символизирует уровень аудитории джавараша.
Аноны, выкатываю свой первый проект. Прога сохраняет альбомы, диалоги, сообщения, музычку, группы и инфу о вас в файл. https://bitbucket.org/GlowEffect/java-vksaver/ Все началось с того, что пару тредов назад посоветовали написать качалку фоток с vk.
>>688844 А я тот кто придумал, заценим, из того что сразу бросается - VkAPiUtils.PERMISSION. Нейминг enumов такой же как и у обычных классов, то есть Permission. Еще не вижу смысла держать енам в том же классе, зачем тебе дополнительная вложенность, почему не VkPermission.java? Ну и перед toString() анноташку оверрайда добавить.
>>688844 Осиль мавен или грейдл. Незачем в репозитории хранить джарки распространенных либ. Добавь *.iml в гитигнор. Почему не восьмая джава? Учи java.util.concurrent. За код типа while(!isStopped()) { Thread.sleep(1000);} должно быть очень стыдно. За автоформаттер написали уже.
>>688877 Ну в файле VkApiUtils например, вообще можно настроить так что бы оно по всему проекту сразу чинило. Мне кажется Gradle, так как он более гибкий чем Maven, но проигрывает в скорости Ant, но ant совсем уже гибкий, но все пишешь в xml.
>>688877 2. Форматирование у тебя непривычное для джавистов, слишком плотное, пробелы неконсистентны. Между методами вставляй пустую строку, пробел между ) и {, пробел вокруг операторов, и т.д. Алсо не пытайся выравнивать названия полей по вертикали: мороки много, переименовал класс в одном месте - в другом форматирование поплыло, запустил автоформаттер - все сбросилось нах. Короче, таким только сишники сейчас занимаются.
1. Ант - говно мамонта. Гредл - дофига гибкий, но с кучей граблей, магии и недокументированных плагинов. Мавен - оптимальный выбор для большинства проектов.
>>688902 Автоматизация сборки, чтобы не нужно было твои 100500 файлов вручную компилировать и слепливать в единый jar + как намекают аноны выше с помощью него можно удобно добавлять библиотеки в проект одним куском xml кода. Все остальное сделает maven. >>688891 >>688881 Форматирование поправлю(кстати значение enumoв пишеться капсом или тоже как обычное имя переменной? Типа Permissions.DOCS или Permissions.docs?
А по общей архитектуре, кривым решениям есть какие-нибудь замечания?(concurrent тоже учту)
>>688947 Да не, там все просто, в андроид-студии накидал кнопочек и полей для ввода, хуяк-хуяк и готово. Тут где-то рядом андроидотред, там подробнее расскажут.
>>688947 Выучить джаву, чуть-чуть. В это же время выучишь и все инструменты для разработки, все, можешь учить фреймворк ведроида и его специальные инструменты.
Знающие аноны, поясните за тяжелый энтерпрайс. Начал изучать JavaEE (ту, которая не спринг) и на меня посыпались какие то модули EJB, сервера приложений и куча вложенных проектов в один (типа модули). Спустя 2 дня мавеном смог все это собрать, задеплоить и запустить, чтобы работало то что я наговнокодил. И чтобы не повторять эти 100500 действий по сборке как шизофреник у меня созрел вопрос - как быть, если я хочу внести поправки в проект? Типа изменил что то на jsp странице, и чтобы не компилировать и собирать весь проект заново, изменения сразу были видны просто перезагрузив страницу в браузере. И то же самое с классами - изменил 2 символа в строке кода и не пришлось заново компилить и деплоить весь проект... Как тут быть? Как это вообще практикуют?
>>689120 если пользуешься идеей, то запускаешь проект в контейнере и прямо налету можешь подменять классы. Называется это hotswap, если не ошибаюсь. Срабатывает не всегда, ну ты погугли. Насчет JSP, их можно тоже подменять налету редактируя jsp в твоем контейнере. Ты вообще, пробовал? Быстрее проверить было бы или загуглить чем писать пост.
Есть интерфейс Rtriangle, который задает прямоугольный треугольник. Координаты задаются методами getApex.., имеют тип int. Есть метод RtriangleProvider.getRtriangle(), который возвращает треугольник. Нужно написать JUnit тест, который будет проверять является ли треугольник прямоугольным по координатам вершин. Тест должен быть проваленным, если треугольник не является прямоугольным, и проходить без ошибок и комментариев, если треугольник - прямоугольный. Проверяю то, что никакие две точки не совпадают, и то, что какие-то два вектора ортогональны, но решение неправильное. На каких именно данных не работает неизвестно. Может кто подскажет, что я делаю не так? http://pastebin.com/XUPhWzzf
Как же нам узнать, что в классе System есть что‐то с именем out? Eclipse помогала мне с этим. После того, как напечатаю слово System и поставлю точку, Eclipse показывала мне все, что есть в этом классе. А как быть с IJStudio?
>>689163 перепиши тест с assertTrue на assertEquals, добавь побольше проверок в методе вместо одной на конце. Тот факт что ты столкнулся с этой проблемой, сам по себе говорит что тест написан безолаберно. Включи мозг и залей, в следующем ночном билде будет у тебя причина.
>>689170 Пишешь System. и нажимаешь Ctrl+Space для автодополнения. Пишешь System и нажимешь Ctrl+ЛКМ - тебя перекидывает в исходники System и ты спокойно ищёшь всё, что надо.
>>689187 Приведение к лонгу потому что может быть 210е9 и -210е9, разность в инт не помещается. Биг интеджер нужен, потому что надо перемножать два больших лонга, в лонг может не поместиться.
>>689191 один хуй не понимаю вашу систему тестирования. Обычно ты хардкодишь ну или запихиваешь в какую-то структуру входные данные и ожидаемые данные. Ты же входные данные получаешь из провайдера, а выходные считаешь сам. Т.о. у тебя в проекте два дублирующихся участка кода. Первый вычисляет что-то, а второй проверяет что первый вычислил правильно. Бред. Скопипасти из первого во второй и вот тебе будет вечнозеленый тест. По уму так мне бы пришло в голову вытаскивать ожидаемый ответ из провайдера и с ним сверять. Но никак не проверять код кодом.
>>689199 Так это тест провайдера. Что он действительно выдает, что надо.
>>689191 Ну так что, если не вспоминать про ортогональность, а пойти влоб с теоремой Пифагора как-то так http://pastebin.com/gPBZKepZ - тест твой проходится?
>>689222 У меня там ограниченное количество попыток, не хочется лишний раз посылать. Просто хотелось узнать нет ли какой-то дурацкой ошибки, которую я упустил в своем коде. Но все равно спасибо, если ничего другого не надумаю, попробую через Пифагора. Хотя разницы не должно быть по идее.
>>689272 Чтобы когда ты запускал свой файл, JVM не искала, какой из методов ей запускать. Должен быть один публичный класс, если ты собираешься запускать свой проект, а не использовать его как библиотеку .По крайней мере я так понял из Эккеля.
есть такая штука как hot swap, идейка заебись удобно это делает. Зависит конечно какие изменения ты делаешь, в большинстве случаев hot swap отрабатывает.
Ну и + нахуя тебе оракловый стек? EJB? вот это все Занимайся спрингом лучше. И то и другое ссанина, но со спрингом все же привкус говна не такой сильный :3
>>689120 Как тебе уже сказали, Идея это может сделать за тебя. Чтобы можно было менять на лету html/js/css, артефакт должен быть exploded. Потом просто нажимаешь апдейт ресурсес или типа того.
Меня послали из "си" треда сюда >>689271 Суть вопроса: Учу джаву что бы стать программистом на джаве а не парнем который пишет забавные скрипты, один вроде как понимающий в вопросе человек сказал учить ещё и Си так как си+джава это очень круто. Вопрос насколько эта связка актуальна и востребована?
>>689314 А кроме того, что это очень круто, понимающий в вопросе человек больше ничего не сказал? Так-то можно дохуя чего выучить, так как это очень круто.
Хочу сказать, что Java охуенна. Хоть некоторые вещи мне сейчас непонятны, но это намного лучше, чем другие языки, ориентированные на веб. Я получаю удовольствие, когда пишу на Java. Это просто с ума сойти.
>>689319 Ещё он интересовался почему я не работаю работу, а читаю на рабочем месте. >>689318 Свитер не носит, почти не бородат. Но работает в должности "технического директора" средненькой конторы.
>>689328 Короче, связка не слишком популярная. Обычно с таким багажом нужны системные программисты под оптимизации кастомных JVM, разработка и поддержка софта с embedded Java, ну и просто разносторонний специалист, ибо в конторе Java может являться лишь одной из используемых технологий. Сегодня в рассылке (вроде с линкедина) видел вакансию от Ignite Technologies (Москва) на Java Chief Software Architect with C++ на 100k$ annual. Но это редкая вакансия. На чисто джаву больше, так что и с ней одной будешь сыт и одет, если не даун. А если ради интереса изучать, то почему бы и нет. Мне вот нравится системное программирование и байтоёбство, иногда с удовольствием почитываю всякие статьи на эту тему.
>>689332 Цели? Любые. Ты выбираешь джаву и знаешь, что все пути для тебя открыты. От ссаного веба до разработки программного обеспечения для банков, от разработки приложений на Ведре до написания своего собственного плеера для винды с сортировкой и эквалайзерами/скинами. И все это - Java. Она как математика - очень обширна. И чтобы выучить все ее примудрости нужно потратить много лет. Да это и не нужно никому, лол. В общем, в ОП-посте есть ссылочки для определения твои технологий, отталкиваясь от области разработки. Мандмап и еще что-то под ней.
>>689156 nonZero=((ax1!=0||ay1!=0)&&(ax2!=0||ay2!=0)&&(ax3!=0||ay3!=0)) Тут ты перепутал || и &&. Забота о возможном переполнении это вообще похвально, понимаю твою логику. Но не уверен, что от тебя ждут биг интеджеров. Хотя хз что у них в голове. Достаточно проверить две пары сторон. Как-то так https://ideone.com/SoOjgd
Поясните, зачем создавать интерфейсную переменную и ссылать её на объект класса LinkedList, который реализует этот интерфейс? можно же написать LinkedList<String> list = new LinkedList<>();
>>689380 Где именно перепутал? Мы для каждого вектора проверяем, что хотя бы одна сторона не равна нулю, поэтому внутри ||. Это должно выполняться для всех векторов, поэтому между скобками &&. Конечно я не сразу про биг интеждер подумал, но чисто теоретически есть варианты, где лонга не хватает. И да, нужно проверять все три пары.
>>689418 Я тут попробовал сравнить найти корректный набор данных, на которых твой тест фейлится (и наоборот) в диапазоне байта, ничего не получилось. Я думаю, что тест твоего теста - говно.
>>689437 Не смог таких найти. Тот тест, который я набросал, ни разу не разошелся во мнении с исходным тестом. (хотя я вру: он еще перебирает, но я не думаю, что там _внезапно_ что-то найдется).
>>689443 Ну очевидно, что если стороны нулевые - это вообще не треугольник. Сам текст задания: Вам дан интерфейс public interface Rtriangle { int getApexX1(); int getApexY1(); int getApexX2(); int getApexY2(); int getApexX3(); int getApexY3(); }
Методы возвращают 6 целых чисел, которые являются координатами трех вершин прямоугольного треугольника в декартовой системе координат
Есть метод, возвращающий прямоугольный треугольник: public final class RtriangleProvider { public static Rtriangle getRtriangle() { ... } }
Требуется: написать код одного junit (http://junit.org/) теста, проверяющего метод getRtriangle на то, что он действительно возвращает прямоугольный треугольник.
Формат ввода В тестирующую систему отправьте файл, содержащий ваш юниттест. Не описывайте в решении никакой package, имя основного класса должно быть Testtriangle.
Ниже приведен пример кода, получающего от обёртки треугольник: import org.junit.Before; import org.junit.Test;
public class Testtriangle {
@Before public void setUp() { Rtriangle triangle = RtriangleProvider.getRtriangle(); }
@Test public void test() { } }
Формат вывода Тест должен быть проваленным, если треугольник не является прямоугольным, и проходить без ошибок и комментариев, если треугольник - прямоугольный.
>>689464 Javafx пока ещё жив, swt тоже. Но пользоваться этим говном после qt не очень хочется. Ну и awt со свингом тоже как бы никто не собирается выпиливать.
>>689465 А чем все-таки конкретно так ужасен JavaFx по сравнению QT ? QT наверное памяти жрет меньше раз он на С++, а чем еще? мне небольшое приложение нужно сделать - несколько кнопок, полей, простая анимация какая-нить. С++ не знаю
Привет, джависты. Нужна ваша Профессиональная™ помощь. Вопрос вкратце звучит так: как можно в рантайме переопределить метод класса? Чтоб примерно в таком виде:
MyClass myInstance = new MyClass(); myInstance.getFive(); // возвращает 5 MyPatcher.reimplement(MyClass.class, "getFive", 8); // или что-то в этом роде, вместо 8 например можно какой-нибудь Runnable, возвращающий 8 myInstance.getFive(); // теперь возвращает 8 MyClass myNewInstance = new MyClass(); myNewInstance.getFive(); // тоже теперь возвращает 8
с помощью java.lang.reflect.Field можно примерно таким макаром переопределить в рантайме значения полей. А мне нужно то же самое, но уже для методов. (И почему в java.lang.reflect.Method нет метода set или reimplement?..)
про ООП прошу не напоминать -- речь идет о рантайм-патче для одного приложения, исходный код которого править нельзя.
Невероятно заебал спринг и всякое говно типа AspectJ. Сижу в свободное время клепаю всякую хуиту. Например, пишу понемногу проект обширного веб приложения на Spark + Freemarker. Без говноспринга и без EE. Данных немного, все в памяти. Сохраняются в CSV подобное месиво и маппятся при загрузке на сущности с помощью хитровыебанного парсера (без рефлекшена вовсе).
>>689499 просто приложение пользуется именно оригинальным классом, если я там отнаследуюсь - приложение этим наследником пользоваться явно не будет. Или я немного не понял?
>>689501 они там помногу штук создаются. В общем, легких путей нет, я так понимаю. А может можно с ClassLoader поиграться? Ну чтобы при попытке создать com.x.y.z.Original он выдавал мой класс, а все остальное - как раньше?
>>689150 >>689300 >>689309 Спасибо аноны, смог настроить артефакты. Более менее норм, но если делать изменения например на сигнатуру методов (имя, параметры и пр.), то все равно приходится редеплоить весь проект.
> нахуя тебе оракловый стек? EJB? вот это все Дали тестовое задание в конторке. Как начал в это вникать прихуел от количества лишней хуиты проекте. До этого делал пару проектиков на спринге обмазанный модными фраемворками в 4 строчки, тут же, нужно создавать какой то ЙобаБизнесМодуль модуль, создавать к нему дескрипторы и прочий нагроможденый кал мех
>>689609 >создавать к нему дескрипторы и прочий нагроможденый кал мех Ты ебанутый? В последних версиях EJB просто ставишь аннотацию @Stateless или @Singleton и все.
Итак, вопрос уровня laba1: Нужно реализовать систему персональных сообщений. Как это делают белые люди? Знаю про JMS, ActiveMQ и няшнописечные спринговые обвязочки, но знаю крайне поверхностно. Допустим, оно позволяет слать сообщения в каналы вида allo:eba:etoti, можно всю эту радость гонять на вебморду через STOMP. Но, бля, в туториалах захардкожены имена каналов в аннотациях, а мне надо слать конкретным юзерам. Что мне делать? Обзывать каналы айдишниками юзеров(ок, ок, какими-то токенами, генерёнными из айдишников, чтобы типа секурно)? Или подскажете какую-то модную-молодёжную технологию для таких вещей?
Разумеется, я могу это за двадцать минут навелосипедить, чтобы мессаги тупо писались в базу, а потом не менее тупо выгребались селектом по айдишнику юзера, но мне кажется, что это хуита, и в индустрии есть более правильные способы написания таких вещей.
Часто встречаю упоминания о том, что Scanner лучше не импользовать, чому так? Если мне нужно тупо прочитать файл построчно, нахуй мне ебаться с BufferedReader?
>>689783 JavaME - кастрированная хуитка под холодильники. Не нужна. JavaSE - собственно джава, JVM там, JCL, все дела. JaveEE - набор спецификаций для ЭНТЕРПРАЙЗНЫХ СЕРВЕРОВ. Вариантов реализации овердохуя. В современном джавамирке ты скорее всего ЭНТЕРПРАЙЗНЫЙ СЕРВЕР не увидишь, но используемые в проекте фреймворки будут реализовывать куски J2EE
А вообще, это всё была сановская маркетинговая хуитка, забудь про неё.
Что не так? Отказывается сравнивать ссылку с нулём, так как она может быть не инициализирована, но, блять, я же для того и сравниваю, чтобы понять, инициализирована она или нет.
Вопрос на засыпку, кто-нибудь пользуется типа byte, short, чтобы сэкономить несколько бит памяти, или это все нужно было делать в старые времена, когда машины были слабые?
>>689820 Нормальные дженерики, более удобные лямбды, куча сахара, null-safety. Отлично сочетается в одном проекте с самой джавой и позволяет переписывать громоздкие куски в небольшие и читабельные.
>>689802 Кстати, стоит ли в таких ситуациях использовать do while? С одной стороны, это логично, с другой - он мне вообще не особо нравится, какой-то он, кхм, не интуитивный что ли.
>>689834 В таких ситуациях следует подумать, не написал ли ты хуйню. У тебя цикл бесконечный. Если line изначально не было null, то оно будет, не меняясь, бесконечно печататься. Ты же не считываешь следующую строку.
>>689896 А что ты хочешь?, в C# есть поддержка дженериков на уровне байт-кода, в отличие от java.
Тут и получается что нужные сделанные с нуля свои (несовместимые с java) дженерики. Но от этого появилась бы куча лишних багов в компиляторе и огромный рантайм. Они так и планировали, но потому передумали и оставили только в inline.
>К сожалению, мы пока не готовы сделать Вам предложение. Мы могли бы взять Вас на позицию Junior-разработчика, но пока у нас таких позиций нет - на прошлой неделе закрылась последняя. >Если таковые появятся, я буду держать Вас в курсе. Мде, программирование в блокноте и определение длины поезда не взлетело. Пиздец, конечно, хочется уже человеком себя почувствовать, когда тебе поступает оффер и ты думаешь, стоит ли идти в эту контору или нет. А на деле на тебя смотрят как на говно и даже если собеседование проходит в стиле "дрочи мой код себе в рот, я знаю, ты любишь отсасывать" ты всё равно думаешь, мол, бля, ну может они меня хоть за еду возьмут, а? Впрочем, это не имеет значения, потому что в конце тебе всё равно проводят вялым по губам. Пойду вскроюсь нахуй тестовое задание в RoI пилить.
>>689912 Ну так зачем говорить о нормальных дженериках? Хотя вообще не понимаю прелести сишарповских, кроме того что можно без проблем сделать new T[100500]; Это же можно сделать через class, только и нужно его выхватить. А вообще такая зависимость от дженериков - от плохих решений.
>>689941 В том, что джуны не нужны. Зачем брать человека, учить его и платить за это деньги, если можно взять сразу с опытом. Ну и, очевидно, мало знаю. А вообще - мистика. Аж на позапрошлой неделе был в одной конторе, дали 3 даунские задачи в стиле "сделайте вставку в начало списка", которые я очевидно решил верно хотя бы из-за того, что ошибиться в них нереально. И что? И нихуя, даже не перезвонили. Самому им позвонить, что ли.
>>689965 А что в этом прайзе вообще есть? Чем вы там занимаетесь все? Я просто себе слово "энтерпрайз" ассоциирую с высокими небоскребами и офисами, которые заполоняют куча одинаковых людей.
>>690020 >тырпрайз считай фреймворк для высоконагруженных приложений. С горой опыта приходит ощущение, что нет никаких джуниоров, миддлов и сеньйоров, нет никаких лоу-лоад и хай-лоад, есть только твое отношение ко всему этому.
Sup, зкач. Прочитал почти половину Эккеля, башка уже не переваривает RTTI. Думаю потом вернусь. Что можно почитать о фреймворкам, какие фреймворки для чего нужны, какие уже устарелы и т.п. Менять буквы в строках на codingbat уже заебало. Хочется начать что-нибудь реальное и учиться уже по ходу. Или надо все-таки сначала Эккеля дочитать?
>>689765 AMQ позволяет очереди динамически создавать, я думаю. Обратиться к конкретной ты сможешь по селектору. Хотя зачем тебе именно очереди сообщений я не представляю. Я бы просто при отправке клиентом мессаги скидывал серверу, а другие клиенты периодически опрашивали бы сервак на наличие новых сообщений. KISS bro!
>>690114 Двачую этого ПОЗНАВШЕГО ИСТИНУ. В приличных местах за баззворды опыт хайлоад разработки обычно бьют в морду. А некоторые синиоры с 5 годами на деле макаки которые круды ебашили 5 лет или на багфиксе сидели.
Класс TraceHandler - это обработчик вызова, который определяет, какой метод вызывается + какие-то параметры.
Object proxy = Proxy.newProxyInstance(null, new Class[] { Comparable.class } , handler); Собственно здесь и создается эта прокси(Класс который она определяет - Comparable, но это же интерфейс, или сюда помещается какой-то рандомный класс, который реализует Comparable? ???).
elements = proxy; Здесь элементу массива(Object) присваивается объект прокси. Но происходит ли при это cast в Comparable? Или в какой-то абстрактный класс, который реализует Comparable?
Где вообще эти прокси применяются? Сам Хорстманн вот что пишет: You can use a proxy to create, at runtime, new classes that implement a given set of interfaces. Но когда в рантайме может понадобиться прокси и что вообще такое рантайм в джаве?
>>690404 http://griffon-framework.org/ Есть какой-то гриффон, на котором можно писать графические приложения, попробуй его, потом скажешь норм он или не норм.
>>687417 (OP) Сап двощ, нужно запилить очередь, в которую накидываются входные данные. Когда входные данные помещены в очередь, она возвращает уникальный айди. и 4 потока их асинхронно вытягивает, вычисляет результат и кладет в бд. Можно проверять состояние операции, и если она завершена успешно, вытащить результат из бд по уникальному айдишнику. Сам уже придумал реализацию, но интересно твое мнение. Какие паттерны/классы из стандартной библиотеки ты бы использовал? Java 1.6
>>690360 JavaFX >>690371 sql-ex.ru достаточно >>690376 Вся суть описана в той цитате из Хорстмана, что ты привел. Подаешь на вход список интерфейсов - на выходе получаешь объект, который реализует все их (просто кастишь к любому из них и все сработает). Рантайм - время, когда программа работает. В компилируемых языках, как Джава, есть ещё compile time (время компиляции).
>>690531 Все просто. Описываешь сборку проекта в maven/gradle/ant/sbt. Делаешь git/mercurial/svn/perforce репозиторий для своего проекта. Сетапишь nexus/artifactory для хранения сбилдженных артефактов. Настраиваешь jenkins/teamcity, чтоб они автоматически билдили проект по пушу в репозиторий и заливали артефакт в несксус/артифактори. Если веб-приложение - то еще и деплоить само может. Итого, делаешь изменение, пушишь, а через несколько минут получаешь готовое приложение. Красота!
Котоны, расскажите что Ява умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы. Знаю, что одно из последних достижений - это сбор статистики вызова методов и их автоматический инлайнинг в рантайме. Нужно провести исследование и составить заявку в комитет, чтобы в плюсы добавили реальные фичи, а не уродских клонов буст::асио и буст::файлсистэм. Иначе в скором будущем упадут и наши зарплаты и ваши, т.к. крестобляди перекатятся в Яву и составят вам неслабую конкуренцию.
>>690572 > одно из последних достижений - это сбор статистики вызова методов и их автоматический инлайнинг в рантайме. JIT в сановской джаве с 98-го года.
> расскажите что ложка умеет делать по-настоящему крутого, что в перспективе сможет полностью убить вилки. Подправил немношк.
>>690579 >Ахаха. Чё, памятью управлять не надо. С битами, байтами и перформансом трахаться не надо. Да и кому нужна оптимизация производительности на современных и7... Ну а интрерфейсы 2-3 сотен классов любой зазубрить может.
Что такого есть в Яве, чего не сможет осилить среднестатистический советский проектировщик самолётов инженер или школьник, умеющий решать квадратные уравнения?
>>690669 > Чё, памятью управлять не надо. С битами, байтами и перформансом трахаться не надо. Да и кому нужна оптимизация производительности на современных и7... Вот потому крестобляди и не перекатятся на яву.
>>690675 >>690680 То есть вы не можете привести внятных аргументов почему средненький крестопетушок не сможет осилисть Яву? И вы не боитесь, что тысячи плюсошлюх отнимут у вас работу?
>и будут тут байтоебством заниматься, а не по делать такого петушка уволят быстро, на его место придёт другой, а первый пойдёт в соседнюю контору и уже не будет заниматься байтоеблей
>потому крестобляди и не перекатятся на яву Значит они пойдут таксистами амфетамины и шлюх клиентам вдувать?
>>690689 Кресты используются там где джава не может, так что крестовикам очевидно не нужна джава, а если крестовику захочется вкатится в джаву, ну окей пусть вкатывается, но это явно не хороший крестовик, а просто макака которая не сразу попала в болото джавы.
>>690915 Что за непристойности на пике, лол? Ответь-ка мне лучше на вопрос.
Есть такой-то код: Calculator(){ winContent = new JPanel(); GridBagLayout gb = new GridBagLayout(); this.setLayout(gb);
Идея ругается на this, не может решить метод. Хотя в книжке для бегиннеров именно так написано. Хочу как можно лучше понять этот момент. В прошлых штуках тоже рукался, но я их как-то фиксил. Юзаю 8 версию джавы.
>>691041 Под что пишешь? Телефоны или что-то другое? У нас в бодишопе еще год назад был проект на J2ME для автомобильных хед-юнитов, ты не в этой же сфере?
>>691146 Рано или поздно вывалится OutOfMemoryError. Утечкой, конечно, это сложно назвать, т.к. тут намеренно происходит наполнение коллекции без удаления. Утечка -- это когда ресурс, от которого по наступлению некоторого условия, ожидают освобождения занятой памяти, не освобождает её.
Работаю неделю на джуниорской должности, еще не оформляли трудовую книжку, даже еще паспорт не спрашивали, каков шанс что меня пидорнут и не заплатят? И как вообще происходит устройство на работу? Когда начнет бежать этот мифический "опыт"?
>>691249 Формально их нет, если это чистая Java без вызова нативного кода или не баг JVM. Ты говоришь о Resurce Leak, частный случай которго - Memory Leak. Утечку ресурсов я тебе легко нарисую.
Как подтвердить свою профпригодность по java, если ты зелень? Слышал, есть какие-то сертификаты. Java ведь промышленно-ориентированный язык, значит, точно должно быть что-то официальное.
>>691394 Это понятно, я для себя программы тоже пишу на Джаве, а вот чтобы деньги на этом зарабатывать в промышленных масштабах есть сисярп. А Джава-то для чего? Для ведроида? Для сокетов ебаных? Холодильнички прошивать?
При помощи свинга можно реализовать выпадающий заполняемый список? То есть, вот, я кликаю по нему, а мне выдает определенное количество полей для заполнения.
Помогите разобраться с оператором контроля assert.
Вот что пишет Хорстманн:
• Assertion failures are intended to be fatal, unrecoverable errors. • Assertion checks are turned on only during development and testing.
Что он подразумевает под фатальными, неисправными ошибками? Во втором пункте он говорит про разработку, то есть код выходит в продакшн без использования assert?
Часто ли вы используете assert в своих программах?
>>691524 Двачую вопрос, сам не использую, но интересно не настолько что бы гуглить: 1) как это выглядит в байт-коде 2) как включаются/отключаются эти ассеты (флаг какой для HostSpot или как)? 3) что там в Android?
>>691524 > Во втором пункте он говорит про разработку, то есть код выходит в продакшн без использования assert? Да. Код для компилится с флагом, отключающим ассерты, так что их даже в байткоде не будет.
> Часто ли вы используете assert в своих программах? Ни разу не видел.
Пиздец, позвонил в контору, где собеседование проходил, говорю, я у вас был две недели назад, делал тестовое задание, когда какой-нибудь фидбек будет уже. ОЙ, А ЕЩЁ НЕ ПРОВЕРИЛИ, Я ВОТ ИМ ГОВОРИЛА, ЧТО ЛЮДИ ЗВОНЯТ ПОСТОЯННО, СПРАШИВАЮТ, НО ВРЕМЕНИ НА ПРОВЕРКУ НЕТ, ПОСТАРАЮТСЯ В БЛИЖАЙШЕЕ ВРЕМЯ. Нахуй так жить, там же на проверку одного задания от 2 до 5 минут нужно.
>>691586 Спасибо, ананас. Пиздец, я думал, что перекатившись на Java, я перестану лицезреть лица мерзких людей, как это было в PHP, но не тут-то было, опять какие-то жиробасы уродливые, но все-таки лучше сальноволосых девственных истеричных школьников на пыхе.
Нужно в соснольном приложении постоянно проверять фолдер на появление новых файлов. Это нормально, что я делаю бесконечный цикл, sleep на 5 секунд, а потом сканирую фолдер на наличие новых файлов? Или у белых людей такие задачи решаются как-то иначе?
>>691414 >некрасиво В каком смысле? Сажа - такой инструмент, позволяющий не бампать тред, когда это не нужно. Я никакой негативный подтекст в эту галочку не закладываю.
>>691745 Если "сюда" - всмысле на борды, то я со времён Педалика тут. Если - в pr - таки да, я тут почти не бывал. У вас тут какие то свои традиции по этому поводу? Или у вас тут такая скорость постинга, что треды с сажей тонут до бамплимита?
Раньше читал книгу в которой автор на состой странице пояснял за наследование и виртуальные методы всегда используя класс box. У него были параметры он создавал объекты разные и в действии показал как наследование меняет размер коробки. Эта книга была первая в гугле. Напомните название.
Хм, подучиваю тут немного awt+swing, объясните чайнику, что означают термины "компонент" и "контейнер". Как я это понимаю: контейнер это оболочка для компонента, а компонентом может быть все, что угодно: от кнопки до поля ввода. Правильно?
>>691937 На собеседовании у тебя этого не будет. если всё-таки будет, то вряд ли. Главное чтобы ты понимал истинное назначение. я просто уточнил для тебя. контейнер может оборачивать как один компонент, так и несколько. насчёт контейнер в контейнере хз. мои познания свинга ограничиваются универскими лабами
чет прочитал главу про программирование графики на Swing первого тома Хорстманна и нихуя не понял про двумерные формы, где он рисовал эллипсы, прямоугольники, линии, окружности про окрашивание в разные цвета несколько страниц, и про вывод изображения 1.5 страницы, на этом глава закончилась, можно перечитать и попытаться понять ещё раз скажите, это ведь не критично?
>>691964 Если хочешь лучше понимать Swing, палю годноту быдлу: Иван Портянкин - Swing. Эффектные пользовательские интерфейсы. Там все: от истории разработки до форм любой сложности. Автора хотя бы читать приятно, в сравнении с этим вашим Эккелем.
Хорстман годный для нуба, ящитаю. Получше Шилдта намного. Но трудновато все укладывается. Я из Хорстмана дочитывал по некоторым темам. Есть еще годная у него книжка: Java concepts, вроде, называется. Лучшие книги, чтобы читать, как по мне - Head First начал читать нулевым нубасом, хотел узнать, что такое класс)), охуел от картинок и ебанутых сравнений\объяснений, многабукаф, чтобы добраться до определения чего-то-там. Но потом дочитывал, все разжевано, схематизировано, объяснено. Если тему прочитал с этими комиксами и долбоебскими картинками - понял охуительно все. А примеры кода - просто супер. И очень интересные примеры. Их хочется набрать только затем, чтобы посмотреть, как такая охуительная прога будет работать. В общем, я эту книжку читать начинал, но не стал продолжать. (Потому, что у меня уже был Харви Дейтель DD) Хотя, очень годно. Рекомендую всем стремящимся, кому необходимо, чтобы ему на пальцах объяснили, и Harvey Deytel - "Java, how to program" По ней занимался. На английском, но язык простой. (Хотя, я могу в английский, в словарь далеко не каждый день заглядываю.) Охуенно все объясняется. Примеры кода - супер. Каждая строчка кода, по-сути, объясняется дальше. Понимаешь все, перенимаешь стиль автора. А он охуенный препод, ящитаю. В конце каждой главы - резюме по теории, читаешь, повторяешь. Потом упражнения - это самая охуительная фишка. Сначала теорию проверяешь, как освоил. Потом задания делаешь, кодишь сидишь. Охуенно! Практически закрепляешь все. В общем, по-большей части по Дейтелю я и освоил кор. Чего стремящимся анонам и советую. Желаю тому анону, который рекомендовал Харви Дейтеля итт, многие перекаты назад, тонны добра, счастья, здоровья!
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
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: В списке книг одно старье. Новее ничего нет?
A: Годноту быдлу не палим. Джава 5 вышла больше десяти лет назад. В шестой и седьмой изменений в синтаксисе минимум. В восьмой было довольно значительное обновление, но а) многие проекты все еще сидят на шестой или седьмой; б) там не такие фундаментальные изменения, чтоб нужно было переучиваться: за пару вечеров лямбды и стримы вполне можно осилить.
Q: Я не могу в книги, но нашел крутую штуку - javarush. Что скажете?
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/
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/
В качестве чтива рекомендую: http://oreilly.com/catalog/sqlhks/chapter/
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/
Предыдущий тред тонет здесь: