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
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко обьявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять сраз скопипасти этот кусок кода". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Моя кулстори, отвечающая на вопросы в духе "легко ли вкатиться с нуля" и "реально ли начинать, если тебе за 25". Автор не претендует на абсолютную истину, если вы сможете ПРОСТО ВЗЯТЬ И УСТРОИТЬСЯ - буду за вас только рад.
Здравствуй, ночной. Знаю, что на двоще всегда было дохуя желающих вкатиться в погроммирование, так что я решил, что моя история может быть кому-то полезна. Сам я долбоёб 26 лет от роду, пару раз повернувший не туда. Дело в том, что после института (сам я у мамы инженер-математик) мне предложили работу быдлоадмина. Я легко согласился и, разобравшись со своим кругом обязанностей, начал заниматься тем, чем заниматься явно не стоило - играть в игры на рабочем месте, двачевать капчу и смотреть сериалы. Перспектив особых не было, да я и не стремился, наслаждаясь тем, что я нихуя не делаю, а мне за это ещё и платят. Через пару лет до меня дошло, что зп нихуя не растёт, новые обязанности мне никто не предлагает, сам я ничего не делаю и вообще я хуй и дальше так нельзя. Тут я решил, что развиваться именно в администрировании у меня нет никакого желания, вспомнил о том, что в институте мне нравилось кодить и решил пойти в погроммисты. В качестве языка я довольно быстро выбрал джаву: освоить проще, чем плюсы, платят больше, чем за пыху или жабаскрипт, вакансий вроде бы достаточно. От нехуй делать я даже записался на какие-то курсы, не то, чтобы в этом была реальная необходимость, но я подумал, что корочка каких-то курсов лучше, чем ничего. Выучив кор за несколько месяцев я пошёл искать работу и тут оказалось, что никому я нахуй не нужен в качестве младшего разработчика. Были варианты неоплачиваемых стажировок, но я тогда рассудил лашара, что не хочу бросать стабильную работу ради нестабильных перспектив. В конце концов, я просто забил хуй и отложил поиски в долгий ящик. Ящик оказался не таким уж долгим: в начале прошлого года контору начало колбасит, массовые увольнения стали регулярными, а в середине лета начальство сообразило, что им уже нахуй не нужно столько сисадминов, и в итоге большую часть повыгоняли нахуй. Так, 1 августа прошлого года я оказался в свободном плавании. Тогда я сообразил, что если сейчас снова устроюсь быдлоадмином - могу так и остаться на этой работе навсегда, время идёт, а моложе я с годами не становлюсь. Отдельная квартира уже была, тянке я наобещал "да норм, пару месяцев поживём на твою зп, а потом и подвернётся что-то". Достаточно понял, что нихуя ничего не подворачивается, никаких стажировок не видно, а брать к себе за еду никто не хочет, видать кризис сказался. Спустя пару месяцев я познакомился с аноном из /pr/, который оказался настоящим няшей: добавился в скайпике и стал отвечать на разные мои идиотские вопросы по трудоустройству, по резюме, не ленился заглядывать в мой говнокод и говорить, что стоит поправить. Он же подсказал, чтов ДС2 можно устроиться в джава-школу при компании T-Systems, которые готовы около 3 месяцев обучать людей бесплатно и с некоторой вероятностью трудоустраивать после обучения. Я дождался ближайшей школы, набор в которую начался только в конце октября. Отбор был достаточно жёсткий, тестики, разговорный английский, очень доёбистое техническое собеседование, но я оказался не совсем хуем и поступил. Занятия начались в ноябре и продлились до середины января. Всё это время я пиздец как въёбывал (пожалуй, за эти пару месяцев я потратил на учёбу столько же, сколько за 5 лет в институте), но результаты были неплохими: я освоил Spring (достаточно распространённый фреймворк), Hibernate (либа для ORM), тестирование, логгирование, веб-сервисы, немного EJB, написал небольшой проект (примерно 3к строк кода) - рабочее веб-приложение, сорт оф интернет-магазин. Потом получилось не особо удачно: в T-Systems меня так и не взяли, как и ещё половину обучавшихся. Я не особо расстроился и решил, что всё это хуйня и что теперь-то я без проблем найду себе работу, но внезапно оказалось, что нихуя подобного. Выяснилось, что на весь ДС2 буквально 3-4 конторы готовы брать людей без опыта и конкуренция к ним, надо думать, нихуёвая. В общем, со всеми этими спрингами и хибернейтами я оказался нинужен. Спустя месяца полтора я ощутил максимум безысходности: шёл 8 месяц без работы, с момента окончания джава-школы меня позвали буквально на 2 собеседования, и оба раза отказали, мол, эх, ты няша, но нам бы мидла с опытом. Ну и тян меня ни разу не упрекнула в том, что я безработное хуйло, но я уже и сам начал гореть, да и вряд ли её сильно радовало столько времени кормить меня и оплачивать жильё а уж её мамка, должно быть, и вовсе сгорела, хотя ни разу ничего мне говорила. В общем, я уже был готов искать работу админом. но тут мне наконец (наконец!) улыбнулась удача. Дело в том, что с месяц назад одна знакомая тянка (которую тоже не взяли в Т, к слову) позвала меня за компанию на ярмарку вакансий, но в итоге сама заболела и не поехала. Я приехал, побродил среди стендов, позаполнял анкетки, подоёбывался до представителей разных компаний, послушал лекции, да и съебал. Пару недель спустя обо мне внезапно вспомнили и из одной конторы прислали тестовое задание, которое я, разумеется, благополучно сделал. Потом меня позвали на собеседование, которое было, прямо скажем, странным. Собеседовался я на стажёра, требованиями к которому писали буквально базовые навыки, но ебали меня джва с половиной часа, не считая предварительных минут двадцати болтовни с HR, которая заодно проверила английский. Спрашивали вообще всё, начиная с базовых принципов ООП (не на уровне "перечислите", как это обычно бывает, а именно подробно), продолжая кучей примеров на наследование, перегрузку, переопределение, порядок инициализации, многопоточность, коллекции, итераторы, вебсервисы, скопы спринговых бинов, принципы работы хибера, задачки на логику, куда же без них. Ушёл я чувствую себя в край заёбаным и разбитым, но внезапно взлетело и через несколько дней я получил оффер. Интерновская зп, прямо скажем, далеко не предел мечтаний 24, но хули делать. Через пару месяцев обещают перевод в джуны и увеличение зп в два раза, ну и вообще контора выглядит достаточно перспективной, условия работы приятные, впрочем, там будет видно.
>>703821 Работаю четвертый день, пью чай, заполняю документацию о себе, пью кофе, хожу на стендапы, пью чай, заебываю окружающих вопросами типа "чому soapUI опять какую-то хуйню выдал", хожу на тесты по английскому и семинары на тему того, как охуенно строить карьеру в нашей компании, обедаю, играю с пасанами в кикер, пью чай с печеньками, ковыряю очередной вебсервис, пытаюсь понять, хули я не могу его запустить, читаю /pr/, кофе пью. Разного чая дохуя, кофеварка с кофемолкой, сиропы разные, сливки, печеньки. Сам код еще ни разу не видел, на просьбу его показать отвечают, что потом.
>>703836 Лучше б свою кулстори написал. Заходят в тред ньюфаги и каждый второй с вопросами о том, насколько легко вкатиться, что делать, куда идти. А в ответ истории разной степени охуительности, от "проходишь первые 10 уроков джавараша, а потом просто идёшь и устраиваешься" до "даже и не пытайся".
Хочу написать интернет магазин на спринге и хибернейте. Сам только джаву кор осилил. Нашел пару книжек по этой теме, подскажите с какой лучше начать: Java persistence with hibernate Beginning hibernate Spring in action.
спрошу в этом треде, так как в предыдущем продинамили. в контору одну хочу устроится, местные джависты сказали что юзают jersey, guice, jpa и мне неплохо бы понимать что это когда буду устраиваться к ним. Вроде бы уже со всем познакомился немного, но посоветуйте что можно написать чтобы продемонстрировать что я как бы на минимальном уровне шарю. Сейчас написан только пример работы guice, и jersey+guice.
>>703904 Спасибо анон, а можешь еще с одним вопросом помочь? Я очень много читаю, но слишком мало пишу код. Просто не понимаю что писать, все примеры в книжках слишком абстрактные, а когда доходит дело до реальных задач, то я просто теряюсь. Как заставить
Двач, в документации написано, что int read(byte[] b) возращает количество считанных байт или -1, если достигнут конец потока. Не проще ли возвращать 0? Или есть случаи, когда возвращается 0, а конец потока не достигнут?
Двач, в документации написано, что int read(byte[] b) возращает количество считанных байт или -1, если достигнут конец потока. Не проще ли возвращать 0? Или есть случаи, когда возвращается 0, а конец потока не достигнут?
Двач, в документации написано, что int read(byte[] b) возращает количество считанных байт или -1, если достигнут конец потока. Не проще ли возвращать 0? Или есть случаи, когда возвращается 0, а конец потока не достигнут?
Блять, ебусь как гусь чтобы сделать исполняемый .jar в IDEA. Манифест в /src/ создал, в настройках проектах артефакты настроил, файл строится, но при запуске через консоль пишет поебень типу не нашло главного класса. Что делать, котаны?
Спрошу ещё раз, пока начал читать спринг для профессионалов
Аноны, прочитал эккеля, смотрел видяшки/читал хабр - разобрался с сервлетами, jsp, jsf, хибером. Думал смогу устроиться джуном, но че то нихуя. 13 просмотров за 2 недели, и ни одного звонка. Думаю че пока учить дальше: jee или spring? Посмотрел hh и вроде как jee никому не высралось, правильно? Что лучше начать читать spring в действии или spring для профессионалов? Или ещё что посоветуете?
Привет, господа. Объясните, когда лучше использовать ElasticSearch? Один парень на работе говорит, что es лучше юзать при поиске по нескольким полям. Но ведь много кто юзает es и не парится. И ещё, в некоторых примерах говорится "индексирование записей занимает X часов". Индексирование, насколько я понимаю, это и есть запись?
>Посмотрел hh и вроде как jee никому не высралось, правильно? Да. Даже на собеседованиях, когда говорят про J2EE, спрашивают только сервлеты.
>spring в действии Лучше написана, лучше читается, лучше воспринимается, говняная обложка боюсь её читать чтобы не лопнула. >spring для профессионалов Хреновый перевод, написана сложно, божественная обложка. Один парень говорит, что разбирается много тонкостей, но это непроверенная инфа.
>>704045 >Аноны, прочитал эккеля, смотрел видяшки/читал хабр - разобрался с сервлетами, jsp, jsf, хибером. Думал смогу устроиться джуном, но че то нихуя. 13 просмотров за 2 недели, и ни одного звонка. Тебя это удивляет?
>>704083 И, кстати, когда дойдёшь до рестов, советую прочитать в обеих книгах если будешь читать для профессионалов. В in aciton разбирается пара сервисов, с которыми обычно взаимодействуют энтерпрайзные прилаги.
Помогите разобраться с записью в файл. FileOutputStream ведь может только либо дописывать в конец, либо совсем очищать файл перед началом записи. А что делать, если мне надо, например, изменить пару байт в середине файла или удалить кусок? Записывать весь файл в byte[] и потом работать уже с ним не хочется, особенно если файл довольно большой. Есть ли встроенные средства для решения подобных задач?
Анон, вопросик. Мне надо продумать один момент в динамической гуишке. JavaFX. Сначала пользователь вводит одно число - размерность квадратной матрицы. Вопрос в том, что мне надо вывести диалог ввода каждой из несколько матриц, и количество TextField-ов зависит от количества элементов. Как это все отобразить? То есть как сделать определенное количество TextField и потом пройтись по них?
Аноны, начинаю писать свой "твиттер", но конечно это нихуя не твиттер и там нужен хороший интерактивный фронтенд(от jsp блюю не переставая). Практическую и теоретическую базу для написания бекенда имею(spring, hiber). Бабка с лавки нашептала что жавка неплохо заходит с ангуляром, так вот есть ли какие-нибудь годные книги по интеграции ангуляра и жава. Я прост вообще слабо представляю как происходит взаимодействие(httpRequest\response?). jsp как я понял герерятся на сервере, jstl и прочие штуковины преобразуются в html и выплевываются юзеру. В общем посоветуй хорошего чтива анон.
Аноны, я тут изучаю Java по книге Хорстаманна и Корнелла и вот дошел до главы "Апплеты". Где-то читал, что сами апплеты уже давно нахер не всрались. Так ли это? Стоит ли забивать себе мозг этими апплетами? Или всё это пиздёж и апплеты ахуенная вещь?
>>705118 Если хочешь одностраничник на angular, то jsp вообще не нужно. Голый html-каркас со скриптами, которые дергают твой REST на джаве. Вот туториал по ресту на спринге: https://spring.io/guides/gs/rest-service/ С ангуляром разберешься сам.
>>705196 Не нужны вообще никому. Историческая справка: апплеты создавались для того, чтоб занять нишу, позже полностью занятую флешем. Вот уже и флеш умер, а апплеты за каким-то хуем до сих пор в книги пихают.
>>705203 Понятно, спасибо за ответ, а то я совсем зелёный :) Спросил на "авось пригодятся", ну или может быть потом знание этих апплетов поможет в дальнейшем изучения Java. Пойду-ка я учить потоки и исключительные ситуации.
>>704052 >Привет, господа. Объясните, когда лучше использовать ElasticSearch? Один парень на работе говорит, что es лучше юзать при поиске по нескольким полям. Но ведь много кто юзает es и не парится. И ещё, в некоторых примерах говорится "индексирование записей занимает X часов". Индексирование, насколько я понимаю, это и есть запись? Бамп.
>>703819 Рад что у тебя наконец-то получилось, надеюсь, ты теперь съебешь из моего треда. Пару месяцев назад из моей команды уволился коллека, перешел на удаленку в спб. Сегодня мне досталась участь мержить его наработки в основную ветку, я там чуть не повесился с его дрисни, откуда такие вообще берутся блять, и как убеждают других что они что-то умеют? 1. Каждый второй файлик отформатирован, даже если в нем нет изменений. 2. При этом длины строк > 150 символов как бы норма у него, главное что спереди пробельчиками выровняно. 3. То, что средой не отформатировано (видать забыл парень) написано как в приходе - нет единого стиля, переносы не используются. 4. Код лапшевидный и непродуманный, какие-то псевдо-глобальные переменные размазанные по проекту, костыльные решения тривиальных задач. Метод doWork() { ..try { ....init(); ....prepare(); ....doJob(); ....finish(); ..} (catch Exception e) { ..logger.error(e); } Это просто вершина долбоебизма, просто блять прыгай по этим методам и смотри что они там делают, ломай голову нахуя были приняты какие-то промежуточные решения и запоминай состояние глобальных переменных которые эта ересь меняет. 5. Знание английского - полный ноль, не умеет даже образовывать множественную форму существительных. Но не стесняется этого и активно срет своим суржиком в коментах и коде. 6. При перемещении файлов удаляет их и пересоздает с нуля (абсолютное непонимание принципов работы систем контроля версий) 7. Закоммичены файлы среды разработки и даже билд директори. 8. Но ни одна таска не закоммичена атомарно, нехватающие файлы лежат где-то на 5 ревизий впереди, ни один срез в итоге не компиляется, даже последний. 9. Скрипты сборки написаны явно на СО, некоторые скомпиленные классы оказываются продублированы до трех раз. Либы лежат в корне war а не в WEB-INF/lib, при этом лежат неиспользуемые либы, при этом либы вообще не должны быть внутри war-ника, когда продукт поставляется в ear. 10. Хотел заюзать StringUtils из apache commons, но заюзал из springframework - даже не заметил.
Эта тварь все еще в моем городе, если ты читаешь это строки, падла, знай, что при встрече я тебя на смех подниму за все твои грешки, мразь, так что в офис тебе ообратная дорога закрыта.
Обращаюсь к батькам с советом. Сейчас прохожу обучение в одной весьма неплохой компании. После обучения, планирую там работать в качестве джуна. Есть варианты идти во фронтенд и работать там с gwt и прочим вебом, либо пойти в бекэнд и прогать серверную часть в связке java+oracle. И вот тут я не знаю, что выбрать. Что будет востребованней, если я решу спустя пару лет сменить место работы? Какое направление интереснее? Буду благодарен за разъяснение.
Поцаны, поцаны - посоветуйте легковесный жава фреймворк со встроенными спринг хибер или подобие. Хочу сделать мм..что-то вроде бота в Eve online - собирает статистику аномалек и смотрит статистику игроков в локали (zkillboard). Уже сделал бот автопилот на uoPilot - полностью поведением похож на человека - все движения/кликания рандомные, не дерганые. Есть опыт >2 лет жавы. Spring hibernate. Сейчас сижу без работы. Как мне видится - в окне приложения какая-то сторонняя программа считывает текст в нужном прямоугольнике -скидывает это в жаву(хз как пока). Жава ебала -в принципе я приебался к ней зря конечно - но хочется углублять свой навык именно в жаве - обращается к БД. Также работа с api евы - тут не гуглил.
Отображение - идеально конечно в маленьком окошке рямо поверх игры - ну на худой конец через браузер.
В общем требование - легковесность. Как по системным требованиям, так и по коду.
Делаю это ибо нравится и пришел в еву именно ради этого.
>>705667 > spring hibernate > требование - легковесность Does not compute. Посмотри Spark framework или vert.x если надо легковесное решение. А если хочешь спринг и хибер - то чем spring boot не подходит?
>>705698 Не обязательно spring hibernate. Благодарю за ответ. Сам участвовал только в 1 проекте, а дополнительно что-то изучать без практической необходимости не было желания. Ленивый.
>>705698 Так погуглил - spring boot позволяет меньше настраивать вначале, ибо он сам настраивается исходя из депенденси в пом. Но по сути - это то же самое что и своими руками, только ты хз что происходит.
Чет планирую написать вначале как умею на spring hibernate maven wildfly spring data - максимально тяжеловесно. А потом переписать на jdbc, возможно EJB(как раз поизучаю) и еще что-нибудь - и охуеть от полученной легковесности. Я ведь охуею, не?
>>705804 Ты долбоеб? >Объясните, когда лучше использовать компьютер? Один парень на работе говорит, что компьютер лучше юзать при поиске в интернете. Но ведь много кто юзает компьютер и не парится.
Как сделать, чтобы консоль ждала ввода данных? Суть в том, что при вводе put, get, dump, state - выполняются некоторые методы, после их завершения консоль опять ждет ввода данных, пока не введется команда quit.
Привет анон. Играюсь с libgdx, столкнулся с негуглимой(для меня) проблемой: При отрисовке TiledMap двигающейся камерой карту начинает рвать на части между тайлами, пикрелейтед.
Двач, расскажи за HOUR_OF_DAY Что это такое? Пример кода из книги хэд фёрст. Всё остальное ясно как божий день, а вот почему HOUR OF DAY равняется 16 не могу понять http://pastebin.com/dVaJ0eeJ
>>706130 >>706125 >>706124 Блять, простите долбоёба. Я так понял, что 11 он выдаёт по умолчанию, а я, долбоёб, забыл использовать get(HOUR_OF_DAY) через него врде всё верно выдает
Почему в оп-посте написано что "На джаве фриланса нет"?
Куча предложений для андроид приложений, например вот тут https://www.weblancer.net/jobs/?category_id=2 треть всех проектов из категории "прикладное программирование" это андроид. Андроид => Java => Фриланс есть При этом заявок от фрилансеров оче мало, работать некому.
Ну, блять, познай себя, вначале, ёба. Что тебе ближе: формы клепать, кнопочки, со страницами работать, юзер интерфейс придумывать. И вообще, можешь ли ты в красоту, любишь ли. Если это тебе в кайф - иди во фронтэнд. Если не любишь это, не можешь - тогда в бэкэнд. Или просто нахуй. Все просто.
>>705763 Удаленка мимо. Это исключение. В бодишопах, которых большинство из контор нашей реальности, такое очень редко практикуется. К тому же, прежде чем дохуя независимым стать, надо поработать ударно несколько лет, стать годным мидлом, хотя бы. Самостоятельно, а особенно хиккуя, таким не стать. А тут один загуглил "фриланс", и теперь пиздит, что фриланс на джаве есть. Другой - "удаленка", и тоже кудахчет. Я нагуглил, как мамку твою ебали. Коммандная работа, общение со стороной заказчика, офис, овертаймы, митинги - это реальность джава тырпрайза. Дохуя хекка тут не сможет работать. Но умеренный интроверт - возможно. Если может в общение. Если ты хочешь сидеть дома, быть дохуя независимым и закрытым - иди в другие технологии\языки. Хуле тут непонятного? Что вы все к джаве прицепились? Джавараша начитались? Есть же то, что идеально подходит под ваши желания. Языки выбираются под проекты. Джава - для другого. А андроид - это андроид. Он не только на джаве, к тому же.
>>706379 >Коммандная работа, общение со стороной заказчика, офис, овертаймы, митинги - это реальность джава тырпрайза. Кстати, не понимаю, почему постоянно говорят так, словно это что-то плохое?
>>706418 Это для обычно-куна норма. А для дру-хикки - ад. Большинство из них, во фриланс хочет же. Это другая среда. Ну дык и подбирай инструмент под нее. Учи php, ruby, javaScript хотя бы. Нет же, давай им именно джаву и именно во фрилансе. Принимайте реальность, блеать! Хватит фантазировать.
>>706586 Кстати, никогда не понимал стремления хикканов во фриланс. Там же даже чтоб заказ получить, нужно порядочно посоциоблядствовать, не говоря уж о том, что с клиентом на связи надо быть постоянно и клещами вытаскивать требования. Лучше уж сидеть тихо в углу офиса, пиля очередную интеграцию по четко описанному ТЗ.
Есть несколько вопросов, по архитектуре наверное: 1) Репозиторий использует класс маппер, чтобы конвертировать бизнес-логика-классы в entity-классы. Например repository.save(mapper.mapUserFomEntity(userEntity)); Это нормально? Иначе бизнес-классы или энтити должны знать друг о друге, что недопустимо. 2) Для конверсии маппер вручную инстанциирует классы бизнес логики и энтити, например User user = new UserImpl(); Это нормально, или использовать внедрение зависимостей? Если да, то внедрять класс, являющийся имплементацией а потом вызывать implClass.newInstance()? Либо делать через context.getBean() и настроить контекст возвращать бин, являющийся уже инстанциированным пустым объектом класса implClass? Стоит ли абсолютно везде избегать ручной инстанциации и использовать внедрение? 3) Делать для каждого энтити свой репозитарий? UserRepository, AccountRepository и т.д.? 4) Если на уровне сервиса нужно создать пользователя и создать счет для нового пользователя, нормально ли если UserService обращается к AccountService или лучше избегать такой межсервисной зависимости? 5) Хорошо ли бины-сервисы внедрять как статические объекты? 6) Какие книги почитать про вопросы такого рода?
>>703806 (OP) Привет аноны. Помогите мне додуматься как пройтись по ArrayList вида <Abonnent>. У абоннента есть куча параметров: фио, телефон, адрес и все они предствалены как String. Хочу сделать чтобы можно было искать по имени (допустим что они все уникальные) и выводить к примеру нужный адрес. Понятно, что нужен цикл for, но все равно ничего не понятно. Как выудить параметр имя из абонента, чтобы сравнить его с тем что ищем и как потом отобразить адрес.
>>706620 >Как выудить параметр имя из абонента, чтобы сравнить его с тем что ищем и как потом отобразить адрес. Что мешает запилить методы getName() и getAddress() и использовать их в цикле?
>>706620 У твоего класса должны быть либо геттеры либо паблик поля с параметрами(что не гуд). Вот в цикле извлекай и сравнивай через equals. Abonent findPhone(ArrayList<Abonent> abonents, String phone){ for(Abonent abonent: abonents) if(abonent.getPhone().equals(phone)) return abonent; return null; } Джавагои, освоившие джаву 8 конечно обосрут, но идите нахуй.
Блядь, есть в этом мире нормальный справочник по алгоритмам и структурам данных? Мне не нужен учебник, нужен именно справочник с основными характеристиками и коротким примером реализации, а также оценкой временной сложности. Подскажите, пожалуйста.
>>706656 Спасибо, но немного не то. Нужны только основные алгоритмы и СД, а тут, за исключением нескольких разделов, интересные и нетривиальные для меня штуки, которые не нужны в абсолютном большинстве случаев.
Привет, Аноны! Месяца два назад я втянулся в программирование. Всегда хотел это делать, ну вот на 22-м году жизни стал как-то реализовывать свою мечту. В что-то въезжаю уже, в что-то нет: это явление нормальное, со временем разберусь. Всё равно это хобби, причём без привязки к языку. Просто начал с джавы, не знаю даже почему. В общем, вкатываюсь сюда со своим будильником. Может, костыли(уверен, что точно есть) или велосипеды. Но всё-таки.
В общем, что добавить хочу: время реализовал в AM-PM, так что если будете вводить время, например, 5 часов 00 минут, то пишите в первое окошечко 5, во второе 00. перед 5 ноль не ставьте. с минутами также, если 5 минут - то пишите 5. Не исправлял эту штуку, всё-таки проект не для реализации какой-то и даже не для личного пользования. Будильник реагирует на файлы формата .wav Нормальный wav, настоящий, а не удаленный ,mp3 и дописанный .wav(знаю умельцев, которые считают, что они так этот файл конвертируют). А, ну и да, где заметите пустые методы мэйн - не обращайте внимания, они были нужны для теста во время написания этой штуки.
Нормальных фалообменников не знаю, а заводить гитхабы и другие вещи, удобные программистам, с моим уровнем ещё рановато. Кто не подозревает меня в коварстве, для вас часы-будильник лежат тут: http://rghost.ru/7FxwfYZxN
Самое сложное в программировании - это придумывание имён переменных и классов. Почитай стандарты по оформлению кода. Не используй однобуквенные имена переменных, за исключением счётчика цикла. Ну и координаты x, y может быть ещё.
Используй возвращаемые значения. Вместо "xxx.ChooseFile();", "File selectedFile = xxx.selecFile();", например.
Про велосипеды. Почитай про DateFormatter. JOptionPane может возвращать введённые текстовые значения, например. Ну и в Java есть стандартный класс таймера, ага.
Ребят, есть игорь, написанный на джаве, и он летает на моей пекарне и на большинстве пекарен. Но хотелось бы оптимизировать ее, чтобы летала и на нищепека, но последнего у меня нет, чтобы проверить. Есть ли способ симулировать нищепека, кроме виртуальной машины? И какие есть норм профайлеры? Попробовал VisualVM, чет хуйню напрофайлило, не нашел боттлнек.
Братцы, помогите. Чувствую себя полным дебилом. Как работает InitialContext()? На данный момент у меня есть файл context.xml в META-INF, но из него не считывается вообще ничего. Объект с предполагаемым контекстом после InitialContext() вообще пуст.
Ананасы, помогите. Пишу сервер-клиент. На сервер посылаю число и пытаюсь считать с помощью сканера. Если я пишу double a = in.nextDouble(), то выкидывается java.util.InputMismatchException. Но если пишу double a = new Double(in.nextLine()), то все работает. В чем причина?
>>707755 Лезь в сурцы и дебажь, если пользуешься идеей то для этого делать ничего не надо: 1. Ставишь курсор на метод который у тебя фейлится (nextDouble()), и нажимаешь F4 2. Дальше ставишь бряку на строчке которая по видимому фейлится (CTRL+F8). 3. запускаешь прогу в отладке (ALT+SHIFT+F9) 4. Воспроизводишь проблему. Когда дойдет бряки, программа встанет на паузу. В это время ты можешь посмотреть значения переменных. Тебе нужно посмотреть что возвращает processFloatToken(next(floatPattern())) 5. Нажимаешь ALT+F8, в верхнее поле вставляешь processFloatToken(next(floatPattern())). 6. Нажимаешь ALT+V или Evaluate 7. Смотришь результат, делаешь выводы.
Короче хотел попробовать подключить впихнуть dao в элементарный веб-сервер, пробовал работать по примерам, но в классе Main ошибка когда указываю на класс StuffDao. может кто пояснить что не так сделал? https://github.com/imbaclearic/webexam.git
>>708142 говорят, что всё чтиво под заголовком "for dummies" - говно. несколько книг из этой серий(не по кодингу), которые были в моих руках, действительно были унылыми. хотя какие-то представления давали, это да.
Анон, есть ли какие-нибудь фреймворки для работы с сигналами? Что-нибудь аналогичное функциям матлаба для вычисления спектра сигнала, его фильтрования и прочей мишуры.
Аноны, подскажите как сгенерировать рандомное появление юнитов на линии? Допустим, есть 2 параметра: длина length и плотность density. Из них надо расставить юнитов, то есть при плотности 10 и длине 40 будет 4 юнита. Я не могу понять как рандомно раскидать их по линии.
>>708819 не понимаю нахуя смотреть эти курсы, ты читать не умеешь? Во всех курсах, которые я листал и которые хотя бы можно смотреть и не вытекали глаза с ушами (головач к таким не относится, наверное, это самые уебанские видео) было 80% воды, тупо тратится больше времени, чем на книгу.
>>708989 не понимаю нахуя читать эти книги, ты гуглить не умеешь? Во всех книгах, которые я листал и которые хотя бы можно читать и не вытекали глаза (хорстманн к таким не относится, наверное, это самые уебанские книги) было 80% воды, тупо тратится больше времени, чем на статью. кому-то удобнее воспринимать видео и аудио, кому-то книги, кто-то сразу смотрит код и статьилекции почему-то в универах ОК, а видео сразу делают их хуевыми, лол
У меня бомбит с жабовской документации. В половине случаев приходится или в сорцы лезть, или на сторонних ресурсах смотреть примеры, чтобы понять, что вообще происходит с тем или иным методом.
>>709062 А если это какой-нибудь Дэн Абрамов или Мейерс? Или гомология групп? наверное забавно быть ограниченным дебилом который судить информацию по формату, а не по её качеству, кек
Как лучше хранить большие объемы данных в актуальном состоянии к которым постоянном будут обращаться для поиска? Каждые 1 минуту я получаю дохуя данных до млн строк. Они представляют из себя просто строку на 3-20 символов. Паршу->обрабатываю и добавляю каждую строку в лист. Через минуту операция повторяется и лист обновляется новыми данными добавляет/удаляет (не)имеющиеся. Подход in-memory хранения является обоснованным с точки зрения частого изменения больших объемов данных и поиска, который может происходить когда угодно. Но есть одна большая проблема - вся эта хуйня занимает больше 500мб озу да, это критично и я не знаю как это исправить. Думал насчет БД, но там будет очень медленная обработка данных (поддержание актуальной инфы), которая будет происходить каждую минуту. А больше способов я и не знаю... Ананасы, помогите советом.
>>709795 Попробуй эту библиотечку, может подойдет. https://habrahabr.ru/post/187234/ Можешь еще попробовать ограничить объем озу jvm сверху, ток будь готов что гц с ума будет сходить. Если ничего не катит >>683573 (OP)
>>709795 Расскажи подробнее про данные. Какого вида строки? Почему такой маленький размер (до 20 символов) и всегда ли выполняется это условие? По чему идет поиск - по всей строке, случайному куску, началу строки? Нужны все результаты поиска, или n первых, или n случайных? Что известно про поисковые запросы - может их только фиксированное множество? Почему ограничение 500 мегабайт, это же мелочь?
Анон решил запилить запиленное за сто лет до его рождения примитивное мировое время и запилил. тот же анон, что пилил будильник постами выше Зачем я это делаю? я просто познаю API. В данном случае - календарь. Ну и пытаюсь использовать Thread, хотя не всегда получается как надо. В любом случае нарабатываю опыт. Кто хочет что-то посоветовать, показываю код: С этого класса всё началось, в нём же сам механизм часиков: http://pastebin.com/mCt4d812 А вот и главный класс, в котором сам фрэйм и Actions: http://pastebin.com/hhyZrqdG Ну и последний класс, в котором я долгое время тщетно пытался реализовать появление JLabel текста через Thread, но каждый раз получал что-то типа: сначала выводило верно - Нью-Йорк. Когда кликал на другую кнопку получалось анджелесЛос-. Так и не понял в чём шутка юмора, видать не реализуют "анимацию текста" через Thread. Гугланул уже по завершении, узнал про AnimatedText. В любом случае класс остался, через него делаю Label с городом, хотя без него было легче обойтись(возможно). Вот он: http://pastebin.com/uPn8NxEN
Те, кто хочет посмотреть на уже готовый проект(а готовый он работает, честно и исправно!) скачать его можно тут:http://rghost.ru/75MLkvQnp Не бойся, там ничего нет. Разве не видишь по моему коду, что я и простые вещи с трудом пишу, не говоря уже о вирусах?;)
В общем, кто хочет - комменьте, кто не хочет - проходите мимо.
Спасибо за мнение, Аноны, и за возможность публиковать свои первые шаги тут.
Анон теперь задумал сделать стрелочные часы, чтобы двигалась стрелка секундная и минутная. Файлы циферблата и стрелок будут в png. Текущие представление о том, как это должно будет работать: рисуем круг(наверное через графикс, верно? не работал ещё с ним). Рисуем углы в этот круг. ставим anchor point в середину круга, к нему привязываем эти палочки-углы. Если прибавляется секунда - угол наклоняется на один градус. Минута - тоже. Час - тоже. поверх этих палочек-углов привязать png файлы. верный план?
>>710212 кстати, извините за флуд, но почему в наше время все придираются к ";)" или к "))" или к "=)" ?
Я это даже среди взрослых замечал. ладно школьники это не любят, мол, олдскул и не комильфо. но взрослые люди-то почему? разве нет сразу осознания, что перед тобой человек твоего поколения?(аськи, агенты etc) Я так годов с 7х-5х пишу, наверное. привычка. хотя даже в те годы это были единственные смайлы, которые я использовал(хД терпеть не мог).
Джаваны, такой вопрос: выходила ли эта книга на русском? OReilly_Java_Cookbook_3rd_Edition курю на ингрише без переводчика, но всё же выполнять 2 задачи разом(понимать+переводить) слегка утомляет
>>710231 Здесь так не принято, сразу видно ньюфага. Появляются ассоциации с вконтактиком, одноклассниками и прочими бытлятниками, и отпадает желание отвечать.
>>710240 Ох, ну пиздец ты зануда. То есть он написал вполне себе нормальный пост, и тут ПИЗДЕЦ СУКА СКОБОЧКА ГЛАЗА КРОВЬЮ НАЛИЛИСЬ ВКОНТАКТИКИ ОДНОКЛАССНИКИ ПИЗДЕЦ БЫДЛО ЕБАНОЕ. Лучше б ты на содержание смотрел, а не на смайлики. момоолдфаг
>>710244 Пост и не читается, если в зону видимости попадают скобки. Мне-то похуй, я читаю, если по теме. Но в твоих же интересах повысить рейтинг своего поста. В чужой монастырь со своим уставом не принято входить.
Алсо, если вконтактите НЕ ставить скобки, завершать предложения точкой и начинать их с большой буквы, тебя посчитают злым и обиженным. Надо понимать, когда уместно, а когда нет. Это как с пердежом.
>>710231 Смайлик твой просто очень мило выглядит, если мысленно поменять окончания и закрыть глаза, то можно представить, что это тяночка написала тот пост. Тяночки очень любят такие wink смайлики, как бы такое кокетливое подмигивание. Короче, смайлик к месту это хорошо.
вот единственный минус АИБ - это всё-таки анонимность. Какой-то анон начинает срач за другого анона, и все думают, что это один и тот же анон, хотя анонов может уже быть и 3 и 5 и более, а со стороны похоже на срач двух.
>>703806 (OP) сеньоры помидоры, ответьте джуниору на тупой вопрос, я что-то читаю-читаю и не понимаю.
Если у нас есть HashMap myMap;
и мы пытаемся в каком-то куске сделать что-то вроде syncronized(myMap)
То как это вообще сработает ? Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс, то есть кто-то кто занял синхронайзед не выйдет оттуда? Кроме того, я так и не понял, везде пишут что HashMap это не потокобезопасный и все дела? Но правильно я понимаю, если сделать в куске кода syncronized(myMap) то все будет окей и типа все будет потокобезопасно ?
Сап, гайз. Подскажите как мне тут инициализировать Graphics, чтобы в окошке написалась строчка. На деле выводится просто окошко. Http://pastebin.com/4HH2nHp4 (неделяжавануб).
>>710699 > Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс Нет. Несинхронайзед код сможет делать с мамой что угодно и когда угодно независимо от того, есть ли кто-то в синхронайзед блоке.
> если сделать в куске кода syncronized(myMap) то все будет окей и типа все будет потокобезопасно ? Нет. Потокобезопасно будет только если все места, где производится чтение и запись, сделать синхронайзед по одному объекту.
Кстати, слово synсhrоnized - в спамлисте, а ты пропускаешь в нем h
Анасы, нужно вывести двумерный массив в javaFx, который в процессе работы проги будет меняться. Как такое реализовать? Читал экзамплы со gripPane, но там везде используют статику, как потом обратиться к нужному элементу?
За що? Неужели нельзя было во второй кусочек передать "" Кто этот сплит писал? Почему не предупредил меня об возможном эксепшене?
<code> public class My2 { public static void main(String[] args) { String s="name="; String[] y = new String[2]; y=s.split("="); System.out.println(y[0] + y[1]); } } </code>
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
>>711149 Ты даун, блять. >String[] y = new String[2]; >y=s.split("="); >System.out.println(y[0] + y[1]); Ты сначала пишешь в y ссылку на пустой массив из 2 элементов, на второй строчке присваиваешь этой переменной тот массив, который вернул метод сплит (он из 1 элемента), а в третьей строке пытаешься вывести второй элемент массива, состоящего из 1 элемента. Естественно ты ошибку получаешь. Схуяли ты вообще решил, что ты можешь одним "=" сделать поэлементное присваивание?
>>711170 >y[0]=""; >y[1]=""; >y=s.split("="); >System.out.println(y[0] + y[1]); >результат будет тот же Ну конечно он будет тот же. Ты в строке >y=s.split("=") Присваиваешь у ссылку на массив из одного элемента, а в следующей хочешь получить первый и второй элементы. Но второго элемента у массива нет, поэтому ты и получаешь исключение. Так понятнее?
>>710699 >Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс, то есть кто-то кто занял синхронайзед не выйдет оттуда? Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то проблемы у него будут только в случае если он делает операцию вида read-write. Например, код if(ref == null) { ref = "something"; } -- это read-write. Допустим, два треда имеют этот участок кода, только во втором треде присваивается "something_more". Без синхронизации этот код -- источник т.н. race condition, т.е. ситуации, когда состояние данных в результате выполнения конкурентной операции всякий раз определяется практически случайно, исходя из того, какой поток изменил данные последним. Дальнейший код обоих потоков работает, по сути, с неопределённым значением: в этот раз оно то что нужно, а в другой раз -- какая-то хуйня "блядь, какого хуя тут 3, когда я присвоил 2?! ... Сука, ну а щас-то почему 2, а не 3?!!". Поэтому поток выполнения программы становится недетерминированным. Всё concurrency, в общем-то, вертится вокруг задачи атомизации цепочки read-write. syncronized -- это блокирующий вид атомизации: потоки выстраиваются в очередь и ждут, пока освободится лок; атомизация достигается за счёт того, что read-write происходит во временных границах лока, и никакой код, синхронизированный этим локом, не может изменить состояние данных в промежутке между этими границами. Есть неблокирующая атомизация -- алгоритмы и структуры данных, основанные на инструкции Compare And Set (CAS). Её смысл в том, что код, желающий изменить данные, сначала запоминает состояние этих данных, изменяет данные, и пытается записать изменения, вызвав CAS с двумя аргументами: первый -- запомненное состояние данных, второй -- изменённое (обновлённое) состояние данных, которое необходимо записать. Если запомненное состояние совпадает с текущим, то изменения записываются. В противном случае попытка записи считается неудачной, и записывающему предлагается пойти нахуй попытаться ещё раз, если очень нужно. Неблокирующими данный вид алгоритмов назван потому, что при такой организации никого не заставляют принудительно пассивно ждать доступа к данным: вместо этого ожидание активное, вида "do - check (всегда быстро) - do - check ...", вместо "do - wait (потенциально долго) - do - wait ..." Подробнее и академичнее на эту тему можно прочитать, например, в Википедии: https://en.wikipedia.org/wiki/Non-blocking_algorithm Я мб где-то утрировал, конечно, но как-то так оно мне видится.
>>711260 Внесу правки, заодно извиняюсь за неточности. К первому абзацу хочу добавить, что проблема там будет не только при совмещении read+write. На самом деле, если в одном потоке менять структуру данных, а в другом читать её, и всё это не синхронизировать, то если операция write не атомарна, то читающий поток может получить inconsistent read, т.е. такое состояние структуры данных, над которой уже началась, но ещё не закончилась операция изменения. Так что в этом случае операции read и write нужно синхронизировать / атомизировать.
Анон, если ли какие - то туториалы, где мудрость постигается через маленькие проекты? для начального уровня на кодакадеми задания для совсем даунов, я уже не могу
Посоны, поясните по хардкору за RESTful. Что это за говно и как его писать? Понял, что меня просят написать апи, используя сервер wildfly. Как его настроить? Как парсить XML? Бляя и это задание на джуниора
Я тут немного балуюсь с формами и вот хочу вставить одну форму в другую, ну тип окошечко в окошечке, но ничего не выходит. Подскажите, ЧЯДНТ. Мысли насчет .add() были, но тоже зафейлил. http://pastebin.com/3yXTBUiK
>>712302 >>712294 Хотя... Вопрос сохраняется. Тут открывается два приложения параллельно. Можно ли сделать так, чтобы вторая форма работала в первой, но не запускалась параллельным окном.
>>713347 Че ж ты раньше не сказал? Пацаны то и не знали. Сам по себе критерий времени самоокупаемости говно, так еще и срок какой - пол года! Вложения уровня /pr/ просто.
начинаю изучать все это дерьмо и вот с чего в недоумении читал про j2ee и все пропитано "ну все щас усё модульное и быстра и проста мжно сделать все!" читаю про спринг то же самое римерно ток еще плюсом "и быстрее чем j2ee!" глазом задел про play и там опять сука обещают скорость разраотки так какого хуя тогда на джаве с ее развитием все такое все равно долгое ебаный стыд
>>713496 Как создать поток, как проследить что он завершился, как подождать его завершения, зачем нужны wait, notify, notifyAll. Если на все ответишь начнут копать про потокобезопасные коллекции, семафоры, иммутабельность, тредпуллы, FutureTask. Это уже эдвенсед, на будущее.
>>713549 что долгое? Разработка долгая? Всякие методики ведения проектов для того и придуманы чтобы растянуть процесс разработки и срубить побольше бабла с заказчика. Это не относится к фреймворкам вообще никак.
>>713558 ну бля почему используют EE а не play или spring? Когда-то была причина и выбрали свинг. Не прыгать со старых наработок на новое молодежное у них ума хватило. Фх тоже говно, кстати.
Аноны, объясните пожалуйста в чем разница между static методами и обычными? Изначально понял, что статический употребляется вначале, т.е staticMethod(variable). Но как оказалось нестатические употребляется так же. Ещё почему считается хорошим тоном использовать статические методы вместо обычных?
>>713590 А там где ты это вычитал, не объясняется, чтоли? Статические методы это аналоги функций в си, они не привязаны к объекту, а значит, из них нельзя обратиться к экземпляру класса, в котором они описаны. Хорошим тоном считается использовать статические методы там, где не нужна привязка к объекту и обычные методы там, где нужна работа с объектом класса, в котором метод описан.
>>713590 Если метод не зависит от состояния экземпляров класса (т.е. в методе не используются нестатические свойства и методы класса) и не нужен в иерархии наследования -- делай его статическим.
>>713596 Вообще там где я читал, пишут довольно пространственно. То есть static для методов которые не собираешься переписывать, которые не нуждаются в инстансе класса... Вообще часто ли они используются в настоящих проектах, много ли занимают памяти, может ещё какие-то детали связанные с ними есть?
Господа офицеры, на связи погромист с вышкой, который решил вкатиться в жабу-веб/любую жабу. размышлял над идеями для примитивного говнопроекта, который покажет в резюмехе, что я не просто хуй с горы. планировалось использовать html css js hibernate jsf sql ajax и немного еще всякого. пикрил запилил недодизайн. суть проста как число 3 - юзернейм логинится/регистрируется, видит список комнат, в каждую из которых может войти. слева показаны члены онлайн (members online) в текущей комнате. на одном скрине окошко авторизации, на втором как будет выглядеть комната внутри. анон, нормально ли это для говнопроекта к резюме? подумой, дай советов по реализации или обоссы
>>713630 >нормально ли это для говнопроекта к резюме? Нормально. На самом деле по себе могу сказать, что тебе охуенно повезет, если кто-то вообще откроет твой проект: HRы в этом нихуя не понимают, тем людям, на которых тебя спихнут, скорее всего будет лень. >подумой, дай советов по реализации Запили всё это на спринге, охуенно будет, базарю.
>>713642 Открываешь последнюю ссылку оп поста и ищешь пункт - подкасты. Смотришь если нравится, там две ссылки. Я хотел их включить в оп пост, но передумал, потому что у многих проблемы с инглишем и они как дауны дрочат джавараш.
>>713615 Затем, что сигнатура функции служит подсказкой другим программистам, как она себя ведет и должна использоваться. Так что, блять, пиши информативные, корректные сигнатуры; если функция де-факто статическая - то пусть она будет статическая, это ж несложно. Менее важно, конечно, если ты для себя говнокодишь, только приличным людям не показывай.
>>713813 > Классу необходим метод для работы которого не нужны данные конкретного инстанса > Не буду делать его статическим чтобы не плодить костылей))) а вызывать буду (new YobaClass()).staticheskiiMetod() или синглтонн ебну типа про))))
>>713808 Статик методы полезны, когда есть стэйтлесс код. Например можно сделать интерфейс который будет давать возможность делать универсальный nullчек или сортировку чере статки метод, очень удобно.
>>713839 Нет, не про классы. Есть некий набор классов который реализуют один интерфейс, у них есть общий метод по умолчанию, он выполняет некую логику, но перед выполнением, проводит внутренние проверки переменных например. Так вот, статическим методом интерфейса можно скрыть эту логику проверки и для всех, кто реализует этот интерфейс она будет не видна . Ну не охуенно ли?
>>713873 > но перед выполнением, проводит внутренние проверки переменных например Под этим ты подразумеваешь, что но вызывает другие методы интерфейса (других "переменных" в интерфейсе нет (static поля еще конечно)).
Ну честно, делать "шаблонный метод" на дефолтных методах - это изврат. И ты даже не сможешь запретить его переопределение (final там запрещен).
>>713847 > Ну не охуенно ли? Нет, нихуя не охуенно. 1) Напомню, что разговор о статических методах. Какие переменные ты там проверять собрался? У тебя состояние в статических переменных хранится? Пиздец тебе случится сразу же, как только твое приложение придется заскейлить больше чем на одну машину. 2) "статическим методом интерфейса можно скрыть эту логику проверки и для всех, кто реализует этот интерфейс она будет не видна". Переопределил (случайно) этот дефолтный метод - и снова пиздец тебе, нет больше никакой проверки. 3) Один из классов имплементит еще и другой интерфейс с точно таким же методом. И тебе снова пиздец, потому что ты должен сам реализовать этот же метод и не забыть добавить все проверки из своего интерфейса.
Поясняю по хардкору за сорта [говна] статик методов. 1) main, utils, вся хуйня. 2) Иммутабельность и простота понимания кода. Когда внутри метода вызывается статик метод, то ты понимаешь, что, скорее всего, там нет никаких сайд-эффектов и состояние самого объекта не изменилось. Конечно, это не относится к изменению статических полей (читай глобальных переменных), но такие методы должны быть очевидны, либо за это нужно несчадно пиздить арматурой. 3) Статический метод, который возвращает объект анонимного класса. Нужно, чтобы у объекта анонимного класа не было ссылки на объект объемлющего класса.
>>714071 Ру это попытка скопипиздить джейбос фордж. По мне так кривая. Спринг бут - говно. Яваобьявления бинов - говно. Только хмл только хардкор. Вилдфлай сварм или просто внедренный андертоу - сила.
>>714390 Спрингбутодебилам неприятно, что нужно помнить о дескрипторах развертывания, о конфигах персистентности и прочем типа настроек сервлетов, фильтров и рилмов секурити, что помимо контекста конфигурится в хмл. Спрингбутодебилам проще перекомпилить свой хеловорд. О том что хмл + аннотации рулят знают лишь труспрингодрочеры. В ЕЕ особо альтернативы хмл и нет лол. Хотя cdi работает на аннотацияз и beam.xml уже скорее флажок. Персистентности в хмл, что удобно, ибо датасорсы один фиг лучше делать контейнероуправляемые. Транзакционность в контейнере и на аннотациях везде. Jms в контейнере.
>>714707 Непонятно на кого рассчитано: для нуба слишком коротко, для перекатывающихся - слишком поверхностно. Азы синтаксиса освоить можно, но программить там не научишься.
>>714803 Ну, меня на интерна спрашивали всякие нюансы вроде организации HashMap, устройство памяти и принципы работы gc, порядок инициализации и всё такое, на подобных сайтах ты ничего такого не узнаешь.
>>706597 1) Репозитории прячешь внутри сервисов, 2) Во-первых в контексте хранятся компоненты системы, энтити и модели туда просто незачем складывать. Во-вторых есть специальные конвертеры, которые за тебя всю рутину сделают - Dozer, Orika. 3) Да 4) Наоборот, так и нужно делать. https://en.wikipedia.org/wiki/SOLID_(object-oriented_design) 5) Нет, в этом просто нет смысла, spring по умолчанию все бины-сервисы создает как синглтоны. К тому же статики очень хреново покрываются тестами. 6) Да хотя бы Spring in Action осиль.
>>714916 Пукнул на дауна. Ебанько ты как вообще учил ее?
Слушай папу уебок. Jpa само по себе подразумевает что ему требуется провайдер. Опенджпа, эклипслинк, хибернейт. В спринге хибернейт по дефолту. И в частности spring-data-jpa работает именно поверх спринга.
Алсо расскажу тебе про датасорсы и персистенс юниты. Они бывают контейнерные и аппликешен уровня. Например. Если ты постоянно работаешь с одной базой, и деплоишь свои бины в сервер приложений, например жбосс или вилдфлай. То можно на уровне самого жбоса подключить драйвер субд как модуль и создать контейнерный датасорс. Затем в апликухе, создаешь персистенс юнит, который ссылается на дждни ссылку датасорса внутри контейнера. И при деплое персистенс юниты создадутся контейнером. Но тут надо помнить ято отдавая персистенс юниты и датасорсы контейнеру ты так же передаешь управление транзакциями им м Потому если ты будешь пытаться в инжекченом энтитиманагере вручную управлять транзакциями то получишь по ебалу эксепшеном.
Захотите узнать про распределеные кеши на кластерах. Чем различаются и когда применятьрепликацию или дистрибьюцию кеша. А вот куй вас. И гуглите сами лол.
пчему ентерпрайз-парашу не пишут на петоне и тд? было бы быстро и дешега - как раз для бизнесача на последующие костыли похуй тк все равно займет меньше времени чем джаба-интерпраз кто им продал эту идею что все надо лопатить десятилетиями?
>>703806 (OP) помогите пожалуйста есть сжатая строка вида "h3jv2sf" например, нужно её распаковать в строку вида "hhhjvvsf", или же например строка "fe2rt2w", её нужно распаковать в строку вида "feerttt"; подскажите как это сделать, тут нужно использовать регулярные выражения? хотя бы алгоритм подскажите
>>715630 Нетбинс норм. Хеловордов писать можно. Джавафх умеет рисовать. Ее умеет хорошо. Спринг не особо. Осги не особо. Груви умеет. Интеграцию с серверами умеет. Если нужно легкое иде вполне сойдет. Эклипс мощнее конечно. Идеядебилы идут нахуй
А ну да. Там есть минус один. Но он скорее идет из прошлого. Основная система сборки там ант. И основные типы проектов генерятся под ант. Но с мавеном и архетипами работает тоже нарм
Двач-помогач, спасай, епты бля. Бьюсь уже ждва часа. Собсно проблема на пиках. Невидимые баттоны, наводишь мышкой - появляются. Вангую, что проблема из-за paint(Graphics g), но я слишком тупой. С меня как всегда нихуя нефть. http://pastebin.com/8nzWPzcw
Вот эта хуйня в main. JFrame frame = new JFrame(); frame.setSize(600, 800); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.add(panel); //Тот самый класс frame.setVisible(true);
>>715550 Бери NetBeans, та же Idea, только без привлечения сотен евангиелистов и тысяч рекламы. И даже не думай смотреть в сторону блядского Eclipse, а всем, кто им пользуется, сразу же плюй в лицо.
Аноны, вторая попытка вката в яву. Меня вот что смущает, языку уже более 20 лет. Есть ли смысл вкладываться? Не помрет он к 20му году? Может в долгосрочной перспективе питон или руби получше будет? Какова вообще вероятность, что компании начнут массовую миграцию с Явы? Насколько это вообще реально? От чего зависит? Вот сидит банк на приложении java, что то (что?) случилось и давай переезжать на питон.
К примеру (только лишь ПРИМЕРУ) пользуется компания windows, хуякс и только платная подписка работает для обновлений - поехали на линукс, хули.
>>716161 Что за хипстерские бредни? 20 лет - это плюс, а не минус. Причём, охуенный плюс.
Сейчас джава единственный язык для разработки бизнес-приложений. И ничего другого не предвидится. Да и нужды нет. Хочется экзотики - есть Скала, Кложура и Груви.
Скала не займёт большую долю рынка, как я думаю, особенно, после появления 8-й джавы. Котлин - вообще хуета, призванная почесать самолюбие парней из джетбрейнс.
Питон - практически закончился, несовместимость 2-й и 3-й версий была большой стратегической ошибкой. Не говоря уже о том, что это динамика, и для серьёзных промышленных применений не годится. Руби - это вообще несерьёзно.
>>716174 Scala на самом деле очень хороша, но в полной мере познать ее можно только после 3 лет на Java, обмазавшись функциональной теорией (академическими знаниями). В свете этого она гарантированно не займет большую долю рынка, но "JVM-специалист" использовать ее вместо Java время от времени просто обязан.
У Python есть жизнь в Data и прочих Science. Ruby и Kotlin - игрушки без будущего для модных ребят.
>>716220 Чем же в этом плане Java отличается от другого языка? Ну кроме того, что разработчики Java хотя бы пытаются в дизайн API, в отличии от джсников, пыхарей, пистонщиков, крестоблядей и прочих.
>>716221 Объемом. Сейчас с 0 проще взять какой-нибудь JS: учишь Angular, Node.js и Lodash - ты в шоколаде, высокооплачиваемый full-stack разработчик, котирующийся на биржах и в офисах.
>>716223 > Объемом Зависит от задач. В JS нужно знать хуеву тучу инструментов - npm, bower, gulp, require.js и прочую парашу. В Java - Maven и Gradle, которые в свою очередь лучше всех этих инструментов вместе и каждого в отдельности. Априори качество JS кода хуже Java. Поэтому вместо небольшого количества хорошо сдизайненных либ мы получаем миллион велосипедных микрозависимостей уровня leftpad без перформанса, тестов и документации. Вертикально масштабировать Node.JS вообще невозможно - у тебя всегда будет один процесс, один поток и лапша из промайзов. Чтобы вертикально масштабировать контейнеры сервлетов, http-akka/play, vert.x нужно приблизительно нихуя. Поэтому Java+JS фуллстек разработчик > просто Node+JS фуллстек разработчик.
>>716228 Знать кучу однокнопочных инструментов труда не составляет совершенно, 15 минут на документацию и ты можешь других учить (при наличии мозга ofc).
Качество JS кода покрывается озвученным Lodash, умеешь пользовать - количество факапа стремится к нулю. Ну и Моча всегда на месте, можно даже пьяным свое парное экстремальное программирование применять.
Node не про вертикальное масштабирование, используй микросервисы.
>>716254 ща в процессе спрингоосвоения внезапно охуел от простоты IoC и не понял почему об этом все так пиздят будто это рокет саенс в ее немного все пугает, но думаю все равно неизебжно надо будет изучать это дело проблемс в том что я остро чувствую собственную диванность проводя вечера читая про очередную йобу
>>716259 Сложность в больших проектах. Когда hot deploy через жопу. Когда ты не знаешь в каком из десятков BeanPostProcessor какие проперти вставляются и в каком порядке. Когда имплементишь свой ApplicationContext. Когда тасуешь бины из профиля в профиль, пытаясь минимизировать граф зависимостей.
Но вот когда пытаешься закастомайзить Spring Security, Spring Data или Spring Boot - вот это реально индусоподелия.
>>716421 Уходи в рор тред. Тут жаба. Рор наверно говно, никогда не видел на рор что-то серьезнее хипсторских перделок. Но возможно за пределами моего мирка что то есть. Короче спроси у хипсторов
>>716298 Даже если допустить, что ты действительно пилишь что-то высоконагруженное, оно совсем не означает, что основная задача Java - хайлоад. Олсо, оно тем более не означает, что весь web - это хайлоад, и для Node.js там места нет.
Для справки, хайлоад - это когда для тебя критичны мелкие оптимизации, а не какая-то абстрактная баззвордщина в твоей голове.
>>716161 Банки и прочая хуйня долго не слезут, потомучто им нет смысла внедрять плющки что сть в новомодных темах, их сраное гавно на джаве будет хаватся бизнессом еще долго не зависимо от того насколько он отсталое и не гибкое. Онм сами то нихуя не понимают как можно сделать лучше. Поэтому пили и не грусти.
>>716600 Основное контингент разрабов там это сраные дедки под 40 лет, которые не то что открыть и почитать о новых технологиях не могут, они бля посрасть то сходить без посторонней помощи не в состоянии.
>>716298 Куда там мля хайлоад, пару лямов вьебали, купили сраное гавно от IBM скейлить инстансы примитивным способом, сами, то энтерпрайз макаки нихуя сделать не могут.
>>716608 По кадрам , джава хуже джаваскрипта, зомби армия, которая вроде делала хайлоад судя по резюме, а в итоге городила костыли на безнадежных платформах и писала доки, которые потом выкинули, всеравно нихуя не понять.
>>716613 По кадрам IT сфера в беспросветном анальном отверстии, все не могут нихуя, но специалисты на рынке присутствуют, просто они хороших условий и соблазнительной зарплаты хотят. Не можете обеспечить - чья тут вина-то?
>>716617 Смотря на резюме джаваскриптера, и увидев там хайлоад, шанс встреить человека, который реально разбирается в этом, намного выше, чем в ситуации с резюме джава разработчика.
>>716641 Ты же наверное опять про платформы говоришь, в которых все за тебя сделали, но факт остается фактом, их покупают а используют на 10-20 процентов? и как вообще их интегрировать в общкю систему никто не знает, но они сильны и написаный на джаве.
>>716644 Лол. Погугли что такое сервер приложений. Про человеческое горизонтальное и вертикальное масштабирование. Про девопс в мире jvm. Это тебе не ссаная нода. >>716645 Потому что я считаю что у явы всего 2 нишы. ЕЕ и ведроид. Остальное ее применение - не оптимально. Есть более быстрые языки и вм, которым не нужен прогрев для максимальной производительности
>>716653 Ой только не говори про интеграцию. ,jvm самая развитая в плане интеграции платформа. Тут и камел, и рест, и ws, и orb и куча иных стандартизированых технологий. И ключевое слово тут стандарт. Ява промышленный стандарт в интеграции.
>>716663 это да, но только когда покупаешь платформу, они почему-то самое вкусное, как на зло, не поддерживают(платите еще денег, может всучим гавно решение), а свои джава обезьяны кладут на стандарт, что же такое? на бумаге хорошо а на практике гавно какое-то получается.
>>716672 Удачи, если у вас все так просто со сменой стандартов, то я вам могу только пособолезновать, что вы выбрали не самый легкий путь. Везде, где разрещено что-то еще, моментально от джавы уходят, можешь тролить дальше.
>>716694 не, не наркоман в отлтичии от тебя практик, а не теоретик, все это говно я уже прошел, были у меня ПМы, кто тоде эти гафики сувал, и пробовали это все, но это уже другая история.
Сап. Анон, поясни за StackOverflowException в Gson, что я не так делаю? Выкидывает при вызове toJson(), в выходной файл закидывается только открывающая фигурная скобка.
>>716891 Ну анон, ну ни траль. Path переопределяет Object'овский toString, который и используется в String.valueOf, единственное предназначение которого - null-safety. Шо я так пишу, шо Path#toString, хотя считывать строку "null" как файловый путь - плохая идея, это надо переделать
>>716953 Вот оно, анон! Спасибо! Видимо, registerTypeAdapter работает только для инстансов выбранного класса, но не для подклассов. Поэтому Gson брал не мой TypeAdapter, а пытался сам засериализовать муть с циклическими ссылками.
>>716963 Вкатывайся. Вот только начинать сразу со спринга плохая идея. Там подразумевается что ты уже в курсе что такое сервлеты, персистентность, транзакционность да и вообще много чего. Начни с ЕЕ чистого. Лучше со стека редхата.
>>716995 Для курсача сделай красиво. С использованием jpa. Сначала спроектируй базу. Тутесть 2 подхода. 1. База уже готовая. 2. Делаешь с нуля. Если первое то реверсом генеришь энтити классы , по ним генеришь контроллеры и пилишь дао, ну и работаешь с базой. Во втором случае сначала создаешь ентити классы вручную.
>>717018 На бакенде у тебя 2 пути. 1 простой. Проектируешь базу в графическом редакторе субд. Ну там мусклворкбенч или мссклстудио. Затем в нетбинсе создаешь проект ынтерпрайз придожения. Затем реверсом генеришь энтити из таблиц. Затем добавляешь в проект веб приложение. Тип jsf2.2 с primefaces. Генеришь себе странички. В принципе уже будет работать. Потом правишь примафейсовские странички под себя. Добавляешь функционала к уровню бизнеслогики и отображения. Деплоишь в вилдфай. Профит.
2. Посложнее. Вместо веб приложения на jsf генеришь рест контролеры. Затем обмазываешься js и рисуешь формочки.
3. Вариант для любителей. Вместо ЕЕ используешь спринг. Спрингруу нагенерит тебе всего говна что я выше описал. Даже сервер прилодений не нужен будет
>>717049 Да. Ебашу на ЕЕ под джейбосы. Если честно то все там просто. Если долго этим заниматься, то деплой и генерация бойлерплейта - почти на автомате. Основное время занимает как раз таки бизнеслогика
>>717257 Бины пошли из ejb. Причем в ejb3 они стали попроще. С sfsb slsb mbean все равно придется работать. Хотя с аннотациями проще. Хмл в виде дескрипторов развертывания есть и в ее. Но многое уже больше дань традиции. Bean.xml сейчас скорее флаг для активации подсистемы, а используют аннотации. Persistence.xml остается. Web.xml для описания настройки сервлетов/маппинга и фильтров остался. Ну и отдельные компоненты еще используют хмл файлы. Возможно в ее8 их выкинут из стандарта, возможно сделают жабаконфиг как в спринге
>>716707 Это все великолепно, сфеерический конь в вакуме. Тест пустоты. А самое интересное, это оверхед часть, отличный показатель. Ваш фреймворк гавно, потомучто хелоу ворлд печатает медленно.
Надо красиво спиздеть в резюме про основные ачивменты и решенные сложности в разработке приложения на сервлетах+jdbc+mysql, которое я еще нихуя не разрабатывал. Мордой, по легенде, не занимался.
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
Видео:
https://habrahabr.ru/company/golovachcourses/blog/215275/ : 1000+ часов видео по Java на русском.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
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/
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-interview-questions-java-developer/
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 тематику?
A: В этом ITT треде
https://www.reddit.com/r/java : reddit
http://stackoverflow.com/questions/tagged/java : платформа для вопросов и ответов
Список java фреймворков, библиотек и по на любой вкус:
https://github.com/akullpp/awesome-java
Предыдущий тред тонет тут