Не подскажете где найти Java FX? Скачал Java 14 JDK, там его нет, хотя на сайте Оракла говорится, что теперь JavaFX составная часть Java SE. У меня стоят Java 12 и Java 14, нигде JavaАЧ найти не смог. Смотрел в файле "modules". Пишу в блокноте.
Да я то тоже гуглил. Иначе бы не писал потом сюда. Нет, бы по-человечески Ораклу написать что с Java 11 FX больше не поддерживается. Нет, блин, все чики поки идите и скачивайте, мы нигде вас не предупредим что нихера ничего нет и страничку и инфу не обновим. А я просто хочу пройти пару туториалов с их же сайта.
>>1644054 Удивительно, но я пишу код на джаве. С использованием типичных для энтерпрайза фреймворков типа того же спринга. Шокирующими откровениями и срывом покровов порадовать не могу.
>>1644054 Пишу по пару методов за спринт, это примерно 8 часов в 10 дней. Остальное время сижу на митингах, ревьюю код, даю советы, тусуюсь на кухне, смотрю видосики.
>>1644099 Вообще не убедительный доклад. То, что он это использует с бородатых годов, и что у него в браузере фх не тормозит, ну молодец, чо. Дальше что? Плюс его в конце парировали вопросом, что его приложение просто тестируется на только одной платформе, и он просто надеется, что оно так же будет работать на всех остальных, мобайле и в вебе. Кроссплатформенный софт так и не взлетел со времен взлета джавы и ее апплетов (~1995) Веб-морды на реакте это все-таки не кроссплатформа, у них одна платформа - 2 браузера, и желательно свежие версии. Поэтому у них меньше проблем.
>>1644111 Я там вообще не увидел попыток "продать" кому-то JavaFX/Swing. Скорее это рассказ про текушее положение дел. И я с ним согласен в том смысле что хайп вокруг технологии часто затмевает реальное положение дел.
Я знаю много inhouse разработок на Swing - просто потому что бек на Яве и Ява програмистам проще освоить Swing чем JS+Electron. Но эти разработки не распространяются за пределами компаний и потому о них никто не знает.
>>1643731 JavaFX легко подключается мавеном на любой версии, и не нужны никакие ждк, где он прибит гвоздями. Я бы и свинг вынес в отдельную библиотеку, и JDBC, и коллекции, и конкаренси, и стримы. Чтобы ты сам с нуля собирал и конфигурировал единый организм только из нужных частей. Таков смысл священного мавена.
>>1644246 Охуеваю от таких выпадов. Что там ставить в убунте? "Далее" нажимать? Учу то, что требуют от джунов. Приложение на спринге разворачиваю из встроенного томката. Обычный веб-сервер мне не нужен был, встроенного томката хватало. Да и думал, что джаве хватает только App Server и то необязательно весь, обычные веб-сервера как апач для пхп не нужны.
>>1644259 > Приложение на спринге разворачиваю из встроенного томката. Спринг бут, конечно, хорошо, но на работе всё же может понадобиться потыкать сервер приложений хотя бы на уровне заливания war-ника через веб-морду.
> думал, что джаве хватает только App Server Нгинкс не даёт ничего такого, что можно было бы сделать без него, только перформанс.
>>1644054 Энтерпрайз - 95%+ Software Engineering Ты должен в идеальное знание языка, полное понимание SOLID, экстенсивные знания в системах и архитектурах, понимание CI/CD, осведомленность о подходах продукт менеджмента
>>1644402 Что-то я не понял, чего там учить? Я сейчас открыл, просто какой-то сильно модифицированный TODO-list для управления проектом. Нужно как шизик самому себе задачи назначать и выполнять? Или я в глаза долблюсь и какого-то функционала не вижу? И интеграция с гитхабом что-то не работает. install Jira сделал, даже дал доступ ко всем репам, но все равно не заработало.
>>1644472 >Что-то я не понял, чего там учить? Ничего не надо там учить, конечно. Но вон тот булшит о "подходах продукт менеджмента" напомнил, что среди нанимателей встречаются долбоящеры, которые реально любят упоминать даже джиру.
>>1644085 >>1644097 >>1644109 >>1644328 Аноны, я примерно знаю, что делают разрабы на работе и как примерно копроративный процесс налажен сам немного стажировался на дотнет + жс CRM Мне интересно конкретика, вот над какими, к примеру, конкретными задачами вы работаете в течении рабочего дня. Какие технологии используете. Например, хуярите там данные какие-то из базы, потом их в XMLину заправляете, а затем оно должно за н-ое количество миллисекунд улететь в какой-то модуль говна чего-то. Продумываете какие-то модули архитектуры взаимодействия сервисов, или это может только синьоры-архитекторы делают раз в месяц. Просто хотелось бы какой-то конкретики, потому что у меня только какое-то сильно абстрактное и отдаленное представление об этом.
>>1644472 В жире, вроде, только аналитики, тимлиды и прожект-менеджеры что-то серьезное делают, ты просто хуяришь там таски и пишешь микроотчеты, с пометками пакетов в SVN/git. Хотя мб подход везде сильно разный.
Вот, я, допустим, представляю, что делает мобильный разраб. Типичная таска, например, пофиксить отображение какого-то выпадающего списка, переделать верстку какой-нибудь хуйни, жизненные циклы этих экранов/контроллеров, переделать логику нетворкинга. Как бы у всех есть смарты, и это попроще представить. А что конкретно делают на бэке - я хуй представляю. Я лично только какое-то говно прокси-классом доставал в бизнес-логику хуйни с 100500 слоями абстракций, которую я вообще не понимал с хуевыми знаниями ООП, на тот момент
>>1644579 Из последнего есть система в которую приходят транзакции их другой системы, она их обрабатывает и отправляет в другие системы. Надо было добавить способ на основе данных во входящей транзакции присвоить ей некий тип выходной системы. Ну и сделать так чтобы правила классификации можно было менять в процессе работы.
Ты хочешь, чтобы все тут забили на NDA и разгласили служебную инфу о внутренней кухне что ли??? Даже если такие найдутся, придётся вникать в предметную область, и без этого хуй ты что поймёшь.
Вот что говорит автор: >Хотя ни один метод явно не захватывает две блокировки, объекты, вызывающие методы setLocation и getImage могут всё же попытаться захватить две одинаковые блокировки. Если поток вызывает метод setLocation в ответ на обновление, пришедшее от приемника GPS, он сначала обновляет местоположение такси, а затем проверяет, достигло ли оно места назначения. Если это так, он сообщает диспетчеру, что ему нужен новый пункт назначения. Так как оба метода - setLocation и notifyAvailable – объявлены как synchronized, поток, вызывающий метод setLocation, захватывает блокировку экземпляра Taxi и затем блокировку экземпляра Dispatcher. Аналогично, поток, вызывающий метод getImage, захватывает блокировку экземпляра Dispatcher, а затем блокировку на каждом экземпляре Taxi (по одному). Две блокировки будут захвачены двумя потоками в различном порядке, что приводит к риску возникновения взаимоблокировки.
Но я все равно не понимаю, ну захватил поток метод setLocation(), потом захватил блокировку Такси, ну и что? setLocation() всего лишь вызывает жалкий методик из Диспетчера, который добавляет данное такси в коллекцию, и все. Что может пойти не по плану?
>>1644692 Просили же рассказать что делаешь на работе, а не для чего. Как архитектура согласовывается, строго по заданиям от умных дядь или ты пилишь интерфейсы, классы и паттерны, какие в голову придут? Сколько в среднем строк в методе? Есть ли демократия в выборе библиотек или заставляют писать на чем дают? И т.д.
>>1644702 Описание не читал, многа букаф. Код почитал. Смысл в том что нельзя захватывать два лока в разной последовательности, а тут происходит именно это: 1) setLocation (лок taxi), dispatcher.notifyAvailable (лок dispatcher) 2) getImage (лок dispatcher), t.getLocation (лок taxi) Если нужно захватывать два лока, то все ветки исполнения должны делать это в одном порядке.
Что делать, когда более менее изучен Джавакор, чтобы устроиться джуном энтерпрайзером? Учить ЕЕ и Спринг, это понятно. Но как систематизированно подойти к дальнейшему процессу обучения, на чем практиковаться? Может видео, книжек посоветуете?
>>1644739 Ах, вот оно что. А я думал, каждый поток будет спокойно брать свое, а потом отдавать блокировки, ведь в самих методах ничего блокирующего не происходит. Спасибо.
>Как архитектура согласовывается, строго по заданиям от умных дядь >Есть ли демократия в выборе библиотек Сам уже достаточно умный дядя (сеньор), архитекторов надо мной нет. Демократия ограничена только здравым смыслом и устоявшейся инфраструктурой. Грубо говоря, сменить завтра СУБД по велению левой пятки нам не дадут, а вот выкорчевать спринг, возникни вдруг у меня такое желание, я бы мог.
Анчоусы, как самостоятельно разобраца в джаве и не искать в интернете код всяких индусов?
надо сделать прогу, которая по айди запрашивает в БД и печатает на сетевом принтере. в нете нашёл несоклько примеров этого, только один сработал(другие просто выкидывают что принт фэилд или вообще ничего). оказалось что рабочий пример генерит только картинку и печатает её, оказываеца есть ДокПринтДжоб и ПринтДжоб и они принимают вроде бы разные типы, а те типы ещё другие типы. И в общем пойдёшь по этом типам и хуй чё поймёшь, и с чего начинать не поймёшь.
>>1644054 Мимо мидл бекенд, 70% скучные задачи по типу настрой какой нить новый рест апи, или какая нибудь бизнесс логика слава богу сбежал с энтерпрайз поддержки, там 100% это скучные задачи, 25% веселые задачи по типу написание оптимизированного кода, либо изобрести какой нибудь хитрый алгоритм и 5% практически нерешаемая фигня которую ты пишешь 5 недель а по итогу она уже нахер никому не нужна, либо ты уже сам не понимаешь как этот говнокод работает
Есть задача: взять большой XML, выделить из него ровно один элемент и произвести над этим элементом манипуляцию. Манипуляция довольно сложная, и легче реализовать ее при помощи XSLT. Но XSLT предполагает, что вход будет в виде DOM, а держать в памяти всё дерево XML наверное будет не разумно.
Будет ли хорошей практикой выделить этот элемент при помощи легковесного SAX, чтобы потом только для него построить DOM и отправить в XSLT?
>>1645481 >Но XSLT предполагает, что вход будет в виде DOM, а держать в памяти всё дерево XML наверное будет не разумно. Вовсе нет, вполне возможно использовать StreamSource или SAXSource. А потом transformer.transform(streamSource, outputTarget)
>>1645578 Спрашиваю потому, что когда нечего делать, смотрю видосы как делают сайты на ютубе всякими веб технологиями и, по-моему, ни разу не видел, чтобы кто-то воспользовался concurrent пакетом или синхронайздом. Почему так?
Слушайте, а нормально ли не уметь складывать двузначные числа? Ну, в смысле, тупить секунд 5-10. Такое ощущение, что пока неплохо учу джаву, тупею во всем остальном неистово.
>>1645684 >5 интегралов Да мне бы хоть одну дробь решить.. Но делать этого не особо хочется, так как читаю книгу и пишу код безостановочно, а потом уже голова и подавно не варит что-то там решать.
>>1644761 Я другой анон, прочитал Шилда и Блоха, тоже собрался изучать спринг уже, думал кор хорошо знаю, а оказалось пикрил. Даже не знаю что делать теперь. Тест хороший, затрагивает много тонкостей языка, разбор правильных решений было интересно почитать, много нового узнал.
>>1645762 Все равно есть вещи, которые надо помнить. О которых компилятор ничего не скажет. Например string pool, Кэш целочисленных wrapper классов и Boolean.
>>1645780 Я уже прочитал, она всего 250 страниц была, и то я все deprecated пропускал. А IntegerCache в 1.5 появился. Просто в джаве так много старых классов и хотелось узнать, что чему и когда пришло на замену.
>>1645809 Заебись код. Минимум 3 ошибки (семиколон, инта в аргументе, перекрытие), не учитывая модификаторы доступа, т.к. непонятно где будет psvm. "Обожаю" такие задачи. Кстати, если кому интересно: на тестах OCA/OCP вопросов с ответом "не компилится" очень мало, по ощущениям около 5-10 вопросов из 80, т.е. там так не нужно ломать глаза и представлять себя компилятором, выискивая лишние закрывающие скобки и прочую синтаксическую чухню. Да и те вопросы про компиляцию что есть они обычно "высокоуровневые", типа скастится ли stream.mapToInt() в LongStream. Лично я был удивлен этому обстоятельству, потому что подготовительная книжка долбила вопросами на внимательность синтаксиса процентов 50% времени. Основные вопросы про "что выведет код" без варианта о компайл эррор, но местами с эксепшенами.
>>1645859 У меня нет статистики. Часто вижу что компании предлагают своим сотрудникам сдавать за счет компании, как повышение квалификации. Но я для себя сдавал, на свои кровные. Типа челлендж на знание sdk и умение быстро соображать - в среднем по 1,5 минуте на вопрос, а там нередко пара одностраничных классов прилагается к прочтению; спойлер: читать их обычно детально не требуется для ответа на вопрос, тут нужно быстро-быстро уловить суть и найти что спрашивают.
>>1645880 > все равно Нет, не всё равно. Компилятору похуй, что там за необязательные рекомендации, и ебать за них не должен. Вдруг завтра рекомендации изменятся, и теперь методы нужно писать в snake_case. И что, весь существующий код должен перестать компилиться, если имена констант и методов совпадут посте привеления из к одному регистру?
>>1645880 >Было бы меньше эксепшенов при valueOf(String str) В правильно написанной программе таких эксепшенов в принципе не должно происходить. Как по мне, использовать valueOf для чего-то, кроме store/load -- плохой тон, как и ручное вбивание строковых представлений enum-ов. >Посмотрел исходники Исходники хуйня. Это детали реализации, которые тебя вообще ебать не должны никак. Мало того, что это нарушает programming against interfaces (хотя я бы этот принцип назвал programming against API, чтобы некоторые болезные не думали, что весь API должен состоять исключительно из жабьих интерфейсов), так ещё и реализация может быть совершенно разная в зависимости от вендора.
Чем дольше изучаю Java, тем больше понимаю какой у неё высокий порог входа. Реально советую новичкам, что-то другое для старта в IT. Столько всякого устаревшего говна нужно перелопатить. В какой-то момент начинаешь делать проект тупо копипастом, каких то классов с разных библиотек и других проектов. Самое удивительное, что в итоге вся эта куча гавна ещё и умудряется работать. Хотя, может я просто представлял себе программирование немного по другому. Решение каких-что весёлых задач и придумывание необычных фич, а в итоге просто ебашишь какую-то архаичную срань.
>>1646070 Эта параша мало того, что без SSL, так ещё и фейковые мейлодомены не принимает. Ору с клоуна, который серьезно думает, что ради его ссаного тестика кто-то будет палить свое реальное мыло, чтобы потом получать рекламу от педрильного клуба любителей пощекотать очко.
>>1646126 > Ору с клоуна, который серьезно думает, что ради его ссаного тестика кто-то будет палить свое реальное мыло Ору с клоуна, который думает что не будут. Будут еще как. 90% людей идиоты, которые ставят свое реальное мыло на все говносайты, да еще и пароль один и тот же везде.
>>1643468 (OP) Сап /pr/ Почитал я тут эти ваши местные треды, и встретил такую мысль "Spring чуть-чуть быстрее, чем Django". Это правда? Где об этом можно что-то почитать?
>>1646401 Спасибо. Мда уж, какой же уебищный у оркала сайт. На каждой странице разное оформление, тупая навигация.. Не то что у мелкомягких, там все аккуратно и выглажено. Эх.
Какие у гитхаба используются настройки для идентиконов?
Запрос проверки по URLАнонимно30/03/20 Пнд 21:00:40#225№1646507
Сап двач, работаю в Android Studio. Нужно сделать запрос с помощью url и по результатам открыть нужную активность. Как это реализовать? Я знаю библиотеку retrofit2, но не могу разобраться с ней.
На каком фреймворка пилить кроссплатформенный гуй в 2020? Причем, очень хочется, что бы по крайней мере, у меня самого глаза не вытекали от дизайна 90 и можно было добиться native look&feel под мак. Или так не бывает?
>>1646294 А ты как думал, мань? Ты должен доказать, что ты достоин того, чтобы тебе платили деньги — просто так их никто не даст :) Поэтому извольте поработать несколько месяцев бесплатно. Ну а если несогласен, то вали в пятёрочку работать на кассу, ибо у нас таких как ты по несколько десятков человек на место :)
Да, я сначала погуглил. Свинг считается устаревшим. Javafx вроде и жив. Но тоже вырвиглазный. Я нашел тему AquaFX, мимикрируюшую под мак, но хрен там плавал, уже давно заброшено, и под современным маком выглядит как нового.
Стоит признать, что используя js можно меньше задрачивать оформление. Много всего готового. На свинге/фх добиться приемлимого внешнего вида в разы сложнее, и все самому.
Кто-то отстал от жизни, сидя с заболоченным интернетом в банке? В js так же есть готовые библиотеки компонентов, и простую формочку накидать быстрее, чем jvm будет разогреваться.
>>1646598 Скоро PWA всех убъёт. Они кросс-платформенны из коробки и пишутся на привычных всем технологиях. Вот дадут им больше разрешений, тогда и заживём.
>>1647031 И что? Там много архаичных деталей. Например при создании класса альт таб нажми, и у тебя панель с его названием поверх всего экрана останется перед лицом. Они даже свой layout сделали, потому что ни один свинговый их не устраивал.
Есть ли смысл продолжать лернить жаву? Ведь сейчас, например, даже если пройдет короновирусная истерия, и все начнет возвращаться на место, джуновские вакансии будут занимать орды тех кто сейчас остался без работы. Весь малый бизнес, весь сервис, вся эта хуйня будет ломиться в джуны. Вчера только 10 000 безработных прибавилось и так каждый день будет.
>>1647126 >поддерживает многие аннотации из EE Ну да, на том основании, что спринг умеет распознавать @Inject в добавок к своим аннотациям, давайте все теперь бросимся штудировать CDI, EJB, JSF, поставим гласфиш...
>>1646598 >добиться native look&feel под мак >Или так не бывает? Нет. Натив на маке в принципе ничем не скопируешь, тупо потому что он выходят на голову выше всего остального. Открой какой-нибудь клинмаймак или хотя бы телеграмм на маке, поизучай. Все на других ОС на голову ниже.
>>1647530 Ну что тебе непонятно, блядь? Что ты в режиме с прозрачностью делаешь рандом всего лишь младших 8 бит, оставляя альфу в нуле? Или что ты не можешь ревалидейт вручную сделать?
>>1647551 Ептить, прям школьные годы вспоминаются канвас в дельфи/VCL. Какой нахуй спринг, теперь это тред про рисование на канвасе джпанели. Спасибо, анончик, за ностальжи.
Народ, скажите? как правильно создать jar файл и добавить его в другой проект в gradle?
В общем, создал через плагин shadow jar-файл и даже добавил все, но ИДЕЯ не видит импорты. Добавил так: dependencies { implementation files("d:/path/file.jar") }
>>1648024 Судя по закрывающим фигурным скобкам у тебя метод max() объяслен внутри метода main(). Это не джаваскрипт, так делать нельзя. Методы в методах могут быть только в виде лямбд или внутри анонимных классов. Вынеси свой метод на уровень выше.
>>1648031 Не туда смотришь. Смотреть надо на самое первое "красное" вхождение, остальное это побочные эффекты парсинга. Первое вхождение это скобка после max. И тебе идея говорит, что в данном месте нужен statement (выражение). А объявление метода стейтментом не является. В общем вот сюда смотри: >>1648056
Жив еще кто? У меня такой вопрос, как вообще происходит сборка jar со сторонними зависимостями?
Вот у меня есть набор своих инструментов в jar, все бы ничего, но я бы хотел добавить внешние зависимости еще. Как это вообще делается? Помещаются все зависимости в этот jar или какими-то манифестами прописываются для gradle(maven) зависимости, которые потом пакетный менеджер докачивает?
Можно просто базис объяснить, как это устроенно, без особых деталей, мне просто понять общую картину.
>>1648289 У тебя вопрос тупой, точнее комплексный. Каша какая-то, нихера непонятно. Тебя интересует сама сборка или результат сборки? Если со стороны результата, то существует минимум три способа:
1) Самый простой способ: положить либы отдельно в папочку рядом с твоим джарником и подключать их в команде запуска параметром cp. Так твой джарник остается девственно чистым, и соблюдаются лицензии либ, если в них прописан запрет на перепаковку.
2) Перепаковка. Открываем все либы, достаем классы, упаковываем в свой джарник. Еще раз: достаем class файлы, кладем к себе. В этом отличие от способа 3.
3) Лоадер джарников. Либы как есть, не доставая class файлы, кладем к себе в джарник. Для запуска такой конструкции нужно специальным образом генерить свой джарник, подключать туда джарлоадер. На выходе получается тоже толстый джарник, но либы нетронуты, лицензии сохранены.
Очевидно, что для каждого из способов настройка билд системы будет уникальной. Какой именно способ использовать зависит от обстоятельств, некоторые плюсы и минусы я перечислил.
>>1648289 >>1648361 Тебе может показаться что первый способ он такой неудобный, типа че ваще, либы отдельно, все так просто и топорно? Поэтому вот небольшой пример из жизни. Такая вот хуйня: в параметрах запуска килобайты, блядь, текста. И это считается норм. Второй и третий способ тут просто нежизнеспособны - все это в один джарник тащить. Но для мелких домашних проектов можно и перепаковать, не страшно. Даже иногда насрав на лицензии. А вот есть еще такая хуйня как спринг бут. Вот там генерится джарник и с class файлами, и с джарниками, и с лоадерами. Как видишь, все три способа имеют применение.
Сап, ананасы. Раз уж у нас карантин, решил апнуть свои скиллы до миддла, а че учить - хз. Наверное, больше надо прочитать про устройство самой жабы/спринга внутри, подрочить алгоритмы и структуры данных, а посему, есть ли у анона волшебные книжки, которые расскажут обо всем этом? По одной на каждую тему.
Сайты/курсы/другие шаманские методы обучения приветствуются
>>1648407 >>1635313 → >>1635318 → Вот я книжки кидал. Pro Spring бери, Pro Spring Boot и Pro Scalability. Concurrency еще желательно бы хорошо знать. Алгоритмы по Седжвику и Вейну. Ну и экзамен само сабой рекомендую, дает просраться.
>>1648361 >>1648366 Еще вопрос, у меня сейчас есть сорцы, я через гредл подключаю стороннюю библиотеку compile files("d:/path/my.jar"), которая лежит вообще в другой внешней папке (даже другом диске). Как мне это все это организовать и опубликовать на гитхабе? (как правильно вообще)
1) Создать подобие папки vendor в проекте и кинуть туда все эти джарники и прям так залить на гитхаб? 2) Или как-то оформить их и залить уже в репозиторий maven и потом оттуда уже подключать как все остальные либы? (Я даже не знаю, могу ли я, простой колхозный парень, залить в репу мавена что-то свое?).
2.1) Если я могу заливать в maven, и у меня вдруг появиться свой jar-ник с внешними зависимостями (например подключу логгер), как нужно будет тогда правильно этот мой джарник организовать? Прописывать какой-то лоадер, или же maven/gradle что-то указывать дополнительно?
Если опять туплю - ссори, я просто общей картины не до конца понимаю, но хочется делать сразу правильно.
>>1648432 Казань брал В npm заливал, в центальный мавен - не заливал. В мавене использую локальный репозиторий, который ~/user/.m2. С машины на машину пересаживаюсь не часто, но когда такое происходит, то скачиваю репо с кодом своей библиотеки, и mvn install устанавливаю в опять же локальный репо на новой машине. В pom файле по id артифакта подхватывается зависимость из локального репо. Кстати в градле тоже можно pom файл, все дила.
Насчет гитхаба, по разному делают в зависимости от вероисповедания и других примет. В т.ч. закидывают бинарные ресурсы в репо и ничего такого в этом нет (твой вариант 1). Но мне больше нравится следующий вариант: в репозитории только код, импорты там на либы в коде. А сами либы поставлять отдельно, в зависимости насколько они самостоятельные. Если прям большие красивые, то можно отдельный репозиторий для них создать на гитхабе, и на первом указать, что используется либа вот оттуда. Если либа маленькая или их много - часто эксплуатируют механизм релизов - прикладывают к коммиту полный архив программы, готовый к запуску, т.е в комплекте с либами.
>>1649464 Внимательно почитай. У меня есть хеш-функция, которая возвращает подпись длиной 32 байта, а мне надо 64. Можно просто склеить, но это не очень подходит. Может есть какие-то специальные алгоритмы?
>>1649466 Ты тупой или прикалываешься? >У меня есть хеш-функция Хеш-функция возвращает результат всегда одного размера вне зависимости от входных данных, в этом ее смысл. Нужен результат другого размера? Берешь другую хеш-функцию.
Нет таких алгоритмов, только юзать другую хеш-функцию. Если пытаться растянуть существующий хеш, даже на 64 битах будет 2^32 значений. По коллизиям это то же самое, что > склеить , только биты в другом порядке будут.
>>1649474 Как вариант, в зависимости от задачи можно не растягивать хеши до максимального, а наоборот, усекать большие хеши до 32, или сколько там у тебя.
>>1649370 >нужно Кто сказал? Это темочка для холивара. Можно и так, и так. А можно еще и через instance initializer, самый редкий способ, но он есть. Всего получается три способа. Как удобно так и делай. Может быть какие-то гайдлайны и рекомендуют что-то одно, но я не помню/не читал. Предпочтительнее конечно в конструкторе, он именно для того и предназначен, чтобы конструировать класс, т.е. инициализировать переменные-зависимости. Однако если класс маленький проще и удобнее по-быстрому нахуячить напрямую в полях. Мне кажется основное здесь - не размазывать чать туда, часть сюда, делать все консистентно. И если инициализация сложная, все-таки предпочитать конструктор. В твоем случае поле инициализируется новым объектом с кучей параметров, это можно назвать случаем "сложной" инициализации.
Однако, если ты продвинутый пользователь: Буква D в слове SOLID говорит нам о том, что сам класс вообще не должен создавать объекты, а должен получать их извне (DI), например ссылкой в конструктор. Коллекции обычно исключение.
>>1649611 Я не он, я тот кто картинки кинул. Но я поддержу, всю айти инфу проще гуглить на англ. Ответ прост - эти технологии там изобрели, поэтому там больше коммьюнити. И запрос проще составить. На русском можно гуглить только 1С, у меня так подруга гуглит. Тут опять же работает правило - где изобрели, там больше коммьюнити, там больше инфы. Так что учи англ, это реально необходимо в нашей профессии.
>>1649474 >И мне надо работать с результатами разных размеров. Ну ты уж опиши поподробней, что значит "работать" и откуда вообще эти хэши приходят.
В нормальной ситуации хэш используется для проверки целостности данных, у тебя же получается могут кинуть любую последовательность байт и ебитесь как хотите.
>>1649525 >А можно еще и через instance initializer, самый редкий способ, но он есть. Это просто синтаксический сахер, его компилятор вкорячивает в каждый конструктор.
>>1649525 >Однако, если ты продвинутый пользователь: А вот это категорически верно, не дело UI компонента заморачиваться созданием таймеров, будте добры передать при создании.
>>1649647 Понимаю, что ты провоцируешь, но я все равно попытаюсь. Создавать должен клиент этого класса. Не говоря уже про DI фреймворки, если рассматривать простой пример: метод мейн и должен создавать, например, передавая все это глубже. Loose coupling не просто так придумали, в этом же есть зерно смысла: если классы мало цепляются друг за друга, с ними проще работать, поддерживать, тестировать в конце концов, передавая фейковые объекты внутрь тестируемого класса. >фанат егора бугаенко, борца за чистоту ООП SOLID и есть ООП, но у этого человека, и многих других, свое трактование. Принципиальная позиция что класс должен быть самодостаточным и уметь создавать свои ресурсы сам тоже имеет право на жизнь. Это очередной холивар, но пока выигрывают лузекопульщики. Руководствоваться нужно здравым смыслом и брать лучшее из обоих миров.
if(Pattern.matches("[a-zA-Z0-9]", usrMessage)){ System.out.println("this is balls."); continue; }
Если соответствует, то пропускает итерацию. По идеи. Проблема в том, что если напечатать " ;%*(( " или какой-либо отдельный неальфанумерной символ, то всёравно проходит проверку(возвращает тру и делает континью).
>>1649702 Ну очевидно оттого что ты не умеешь пользоваться инструментом. Ты написал, буквально: "если в строке есть один символ a-zA-Z0-9, то ок". А хотел написать видимо так: "если вся строка состоит лишь из символов a-zA-Z0-9, то ок".
>>1649714 Тут дело в том, что matches() проверяет строку на соответствие полностью, т.е. целиком. Данный паттерн работает только если строка состоит из одного символа и этот символ не цифробуква.
>>1649709 Правильный ответ написан вот здесь. Нужно составлять паттерн, который проверяет всю строку целиком: ^[a-zA-Z0-9]++$
Вариант с отрицанием тоже возможен, но не с методом matches() у строки, а с методом Matcher.find(). Тогда это то что нужно: "ищем первый символ не из класса". Матчер получается из Pattern.compile("").matcher(). Сам паттерн можно и нужно кешировать, и из него делать матчеры каждый раз, либо ресетить матчер новым инпутом.
Ещё вопрос по этой теме >>1649370 Если уж пошло на то что как бы хорошо объявлять timer в конструкторе, это относится к другим переменным и объектам? То есть так лучше чем я бы объявил всё в классе? Нихуя не понятно, так же больше писать, легче запутаться.
>>1650348 А как лучше? switch case в for выглядит конечно так себе, но если я сделаю отдельную функцию для возвращения картинки то программа будет 2 раза проезжаться по массиву - получается медленней
Суп, программачик, помоги страждущему разобраться. Волею судеб мне нужно отладить jar, который исполняется на удаленном сервереwebsphere. Внутри у джара всего один класс, в импортах которого прописаны классы из компонента сервера, на котором jar исполняется. Класс я изменил и собрал новый jar, который должен работать заместо прежнего. Вопрос: какого хуя сервер, при вызове уже моего измененного jar'а, пиздит, что не может найти эти классы из импортапри том, что оригинальный jar запускается без проблем? Дело, насколько мне позволяют мои хуевые знания джавы, может быть в classpath? В .classpath оригинального jar'а есть такие записи: <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/VMM API"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="src" path=".apt_generated"> <attributes> <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.ibm.ws.ast.st.runtime.runtimeTarget.v85.bi/wps.v85"> <attributes> <attribute name="owner.project.facets" value="jst.utility"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/IBM Process Server v8.5 JRE"> <attributes> <attribute name="owner.project.facets" value="java"/> </attributes> </classpathentry> <classpathentry kind="output" path="bin"/> </classpath> Я попробовал подложить этот файл .classpath в свой jar и нихуя не изменилось - ошибка та же. ЧЯДНТ?
>>1650463 Подложил, ошибки те же: >CWTBG0019E: Неожиданная исключительная ситуация во время выполнения. Информация об исключительной ситуации: 'com.lombardisoftware.component.common.workflow.WorkflowProcessItemException: Unresolved compilation problems: The import javax.ejb cannot be resolved The import org.eclipse cannot be resolved... Причем, если обращаться к тому классу, что лежал в джаре изначально, никаких ошибок нет.
>>1650627 Что-то ты нам недоговариваешь. Что он там вообще компилирует если ты ему класс файл подкладываешь? На лету там только JSP компилируются. Давай уж полный стекртейс ошибки.
Дальше .classpath - это настройки Эклиспа к тому что деплоиться на сервер он напрямую не относится. Рассказывай чем собирается проект и во что war или ear.
>>1650776 Нужно было начинать с начала, наверное, пардон. В общем: есть система, которая крутится на Websphere Application Server, этой системе нужно получить атрибуты пользователя из репозитория самого WAS. Известно, что сделать это можно при помощи компонента, встроенного в WAS - Virtual Member Manager, у которого есть свой апи, который лежит где-то в каталогах самого WAS. Есть работающий jar, который мне нужно изменить - https://us-south.git.cloud.ibm.com/ryancox/BPM.VMM_LDAP_Toolkit/blob/master/source/VMMUtil.jar. Я заливаю этот jar на сервер через веб-морду, дальше WAS неизвестным мне образом этот jar подхватывает и в этой же веб-морде дает мне выполнить любой его метод с указанием входных параметорв. Тот jar, что по ссылке, запускается и работает, я могу его дебажить удаленно. Я хочу добавить в jar еще один класс, исользующий тот же апи, что есть в импортах у работающего класса import com.ibm.websphere.wim.*. Для этого я импортирую рабочий jar в Eclipse, добавляю новый класс и экспортирую это как новый jar с тем же .classpath, что и у исходного jar'а. После выкладки на сервер пробую: вызываю метод из класса, который лежал в jar изначально - все работает, вызываю метод из своего класса - валится с ошибками импорта. Доступа к серверу, а соответственно, и к полному стектрейсу, у меня, увы, нет. Как-то так.
Где подробно и понятно описана работа лямбда-операторов в джаве? Во всех источниках, что мне попадались очень скудное описание, плюс от силы один легкий пример и никаких упражнений для самостоятельной работы.
>>1650342 НЕ НАДО! У нас уже и так логгеров дохуя.
По хорошему надо из jul сделать интерфейс для логгеров типа sl4j и пусть logback, log4j и остальные делают реализации.
Там на самом деле не так много надо переделать, повыкидывать часть методов, чтобы API стало полегче (всякие resource bundle и кастомные уровни). И договориться с ребятами из log4j чтобы они своц логгере поддержали новое API.
>>1651179 > HATEOAS Загуглил эту хуйню. Предлагается добавлять ссылки для навигации ("действий") к возвращаемым в виде json данных? Складывается ощущение, будто они заново хтмл изобретают, но только в виде json. А xml-версия так вообще почти один в один хтмл.
>>1650994 >Я хочу добавить в jar еще один класс, исользующий тот же апи, что есть в импортах у работающего класса import com.ibm.websphere.wim.*. Для этого я импортирую рабочий jar в Eclipse, добавляю новый класс и экспортирую это как новый jar с тем же .classpath, что и у исходного jar'а. Тебе надо импортировать не jar а проект. В jar есть исходный код и файлы проект Эклипс - тебея надо для начала распаковать эту всю фигню и добиться чтобы проект компилировался (там надо будет какие-то библиотеки добавить). Потому уже в этот проект добавляешь свой класс и собираешь jar-ку.
>>1651417 Ещё, принтер джава неспособна отсылать на принтр простой текст? Видны только маймы типа: image/gif, image/jpeg, png и application/octet-stream. Как отправить обычный текст, только сделав картинку?
>>1651246 Так и сделал: Исходный jar распаковал, импортировал как проект в Eclipse, добавил один класс, экспортировал jar. При экспорте поставил галку "Export class files with compile errors". В итоге не работает нифига. На скриншоте build path проекта. Почему исходный jar на сервере работает, а новый нет?
Сап, аноны. Работаю над небольшим личным проектиком и столкнулся с проблемой сбора жарки. Использую идею в качестве ИДЕ и в ней собирается, запускается, работает все нормально. А при попытке запуска жарки она выдает ошибку, что не хватает Bean в конфигах для интерфейса который наследует JPARepository. Может кто сталкивался с таким и знает что гуглить или уже само решение. Жарку собираю через иде, через Build Artifacts. Пробовал добавлять Bean в конфиг, но он тогда требует реализации методов JPARepository и я хуй знает будет ли оно доставать нормальную реализацию или пустую из конфига. За любую помощь спасибо.
>>1643468 (OP) Как прокачать знания в базах данных? Все эти уровни изоляции транзакций, написание сложных SQL запросов, тюнинг SQL запросов, индексы и как их правильно создавать, администрирование и тюнинг СУБД.
Анонче, скажи, ты пользуешься дженериками, когда описываешь свою бизнес логику? Или у тебя каст на касте и кастом погоняет? Просто я как не берусь в новом проекте начать все грамотно на дженериках делать -- неизменно выходит пикрил и тимлид говорит, что все плохо и нахуй не надо (кровавый тырпрайз если че). В итоге мы продолжаем кастить. Скажи, может мы что - то не так делаем или оно бесполезно пытаться бизнес - логику на дженериках делать? То, что я вкинул -- это еще ничего. У меня бывало в классах по 30 переменных типа и это был полный пездец.
>>1652161 Обычно без дженериков обходимся, почти всегда хватает интерфейсов и Object. А кастить плохо, типобезопасность идёт нахуй. Делается это обычно от нехватки времени на рефакторинг, либо тупо не хочется лезть в код, который страшно сломать.
>>1652174 Наследования-то и нету почти. Обычно приходится интерфейсы кастить. И никакое агрегирование тут не поможет, ибо нужны только данные, а не методы с логикой, которые выносятся в сервисы.
>>1652161 Дженерик это узконаправленный инструмент для обобщенного кода Там где нужен обобщенный код там и дженерики. У меня в текущем проекте это например классы используемые в цепочке обработки различных документов, имеющих общий интерфейс. Где такой код не нужен там их нет. Твой вопрос как минимум странный.
Насколько я понял, надпись unbound означает, что у тебя нет jar (вернее они не найдены) в этой библиотеке. Попробуй или поискать их в интернетах или взять IBM Rational Application Developer for WebSphere там они по идее уже должны идти в комплекте.
>>1652195 Допустим, есть интерфейс Animal, у него есть реализации Cat и Dog. Далее, какой-нибудь метод принимает Animal, а какой-нибудь другой метод передаёт ему конкретный объект Cat или Dog. Первый метод должен по-разному работать в зависимости от конкретного типа. Понятно, что интерфейсы создавались не для этого, и что здесь подошёл бы какой-нибудь паттерн типа стратегии, но ведь куда проще наговнокодить цепочку instanceof-ов и забить.
>>1652161 Им в 1.4 дан кастинг из Object и instanceof, не хочу, хочу жрать жава 5.0 с дженериками. Что такое? Это джаверы ?! Пидоры, блядь. Говно жрут.
>>1652223 Ничем не лучше. Вместо цепочки instanceof будет свич по списку типов (это скорее будет enum, а не int). И всё равно придётся править код в нескольких местах вместо одного.
>>1652408 >Не понял. Есть два (или больше) томката и есть перед ними, например, nginx, который проксирует на них запросы. Переключаешь nginx на один томкат, в это время обновляешь второй.
>>1652411 Накатил миграцию на базы, переключил томкаты. Пользователи понасоздавали новых данных и запороли какую-нибудь хертушку. Тут же подрывается менеджер и кричит чтобы все возвращали взад! Но не тут-то было - миграцию накатили, пользователи уже понасоздавали говнеца в базе и простой откат просто запорет запуск приложения, т.к. поля объектов уже не мапятся на таблицы.
>>1652423 В большинстве случаев ничего не мешает делать миграции базы так, чтобы не ломать старую версию и иметь возможность быстро откатиться. Грубо говоря, достаточно не удалять сразу старые колонки и таблицы, даже если они как бы не нужны в новой версии.
>>1643468 (OP) Привет всем, есть система в спринге, нужно чтобы эта система при запросе создавала дополнительный процесс/субпроцесс и продолжала работать дальше, не ожидая ответа/завершения процесса. При этом нужно чтобы данные об этом процессе (прогресс и тд) записывались в БД.
Существует ли какая нибудь библиотека для таких вещей? Смотрел в сторону Flowable и Activiti, но неуверен если это то, что мне нужно. В целом не ебу в какую сторону копать
Ох блять... Спрашиваю за библиотеку, когда же читать научитесь Было бы время сделал бы все вручную, а так накидал все что нужно в Activiti а затем и вам за щеку, проверяйте
Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate (default-cli) on project standalone-pom: The defined artifact is not an archetype Че делать
>>1652934 Хз. Ну, есть Spring Initializr. Я читал про архетипы, когда изучал мавен, но больше нигде никогда про них не слышал. Да и редко есть необходимость быстро создавать проект, их один раз только создают, а затем долго пишут.
анон, нужно реализовать метод в DAO классе, который будет изменять данные в БД опираясь на ID обьекта, но я не ебу как манипулировать данными в БД при помоши Java кода; помоги
>>1653259 ой я на флудил,safari ебучее анон огромное спасибо; понял в чем ошибка была, я там где value ставил двойные ковычки одинарные ковычки это синтаксис sql чи шо?
Меня тут посетил вопрос: а нахрена код компилить в байт-код, если его все равно jvm перепиливает в процессорные инструкции? Зачем нужна эта лишняя прослойка, и почему не запилить просто интерпретатор? не ссыте на меня - джаву не юзаю, просто интересно стало
>>1653394 Сложно было заскриншотить с номерами строк? Падает на первом обращении к резалт сету - первый вызов getString(). Курсор в резалт сете не передвинут на первую позицию. Обычно делают if (rs.next()) или while (rs.next()).
>>1653394 >>1653423 Проебался, 86 это вообще не в этом файле, ладно не суть. Проблему решил. Кстати, текст ошибки прямым текстом говорит что у курсор before start резалт сета, т.е. на позиции перед первой.
>>1653395 Так а почему напрямую бы не переводить код, как любой интерпретируемый язык это делает. Зачем делать лишний шаг, в виде байткода? >>1653419 Гляну, спасибо
>>1653427 Ну ты поидее должен знать, что в резалт сете есть некий вируальный курсор, указывающий на записи. В твоем случае как на скрине без единово вызова next или другого метода позиционирования курсора rs.isBeforeFirst() вернет true.
>>1653429 Байт-код, в теории, работает быстрее интерпретации - парсить меньше, исполнять легче. Но в реальности это не всегда так, джава вот иногда медленнее ноды. И всё же есть куча интерпретируемых языков, намного медленнее джавы, тот же питон.
Крестоёбил три года, предлагают перекатиться в Java EE. Вообще не имел дела с языком. Поясните за карьерные перспективы (я и так бомж ебаный, 300k/ns не особо интересует).
>>1653768 Что, совсем хуёво? Я так понимаю, мне предстоит копаться в хуйне, которая старше, чем мой дед? Плюс в целом информации не особо много, сплошной кровавый энтерпрайз с весьма специфическими вещами.
>>1653767 > Перекатиться с охуенных крестов на джаву Это называется скатиться. Я вот кресты недоосилил и вкатился в жабу. Но да неважно. Именно EE (сервлеты, jsp, ejb, jms, jax-rs) в далёкой перспективе так себе, новое в основном на спринге пишут. Но перекатиться с одного на другое несложно. Джава вполне востребована, скучновато, правда, но без работы не останешься.
>>1653767 Перестанешь бороться с языком - ну там всякие UB и забытый деструктор. И начнешь бороться со всякими дикими бизнес требованиями сделайте кнопку синей, если поле А равно тому-то, а поле ХУЙ не заданно или равно значению поля ПИЗДА и багами фреймворков.
>>1653822 Если это не написать то при закрытии окна программа остается запущенной. Ее не видно (нет больше окон) и никак ее не закроешь если в процессах не убить.
>>1654239 Специалист по телеграм ботам на связи. Опишите вашу проблему. Держу ферму ботов и собственную жаба библиотеку (потому что могу себе позволить).
>>1654524 Иннер нестатик классы нужны чтобы обращаться к полям внешнего класса. Нет обращений к полям внешнего класса значит внутренний класс может быть беспроблемно превращен в статик.
>>1653769 Как вариант, выделить общие сущности, утилиты и т.п. в отдельный проект-библиотеку, сделать мавен репозиторий, разместить библиотеку в репозиторий, подключить артефакт через помник в нужные микросервисы
Суп, джавач. Помоги разобраться с сертификатами. Делаю post-запрос из веб-сервиса и получаю ошибку: [10.04.20 17:13:02:010 GMT+05:00] 00000100 com.ibm.ws.ssl.core.WSX509TrustManager E CWPKI0823E: Ошибка согласования SSL: подписант с SubjectDN [CN=xxx, OU=xxx, OU=xxx, O=IBM, C=US] был отправлен с хоста [xxx:9443]. Может потребоваться добавление подписанта в локальное хранилище доверенных сертификатов [C:/Users/user/WASLiberty/usr/servers/mytestserver/resources/security/key.p12], расположенное в псевдониме конфигурации SSL [defaultSSLConfig]. Сижу уже три часа - хуй пойми как этот сертификат добавить в это хранилище. Экспортировал сертификат из браузера - дает экспортировать только в формате p7b, чтобы его преобразовать в p12 нужны ключи какие-то. Как достать ключ этот?
Привет, антоны, я тот мудак, что долго разбирался с принтом. Javax не смог воспользоваться потому, что поиск подходящих принтеров не выдаёт ничего подходящего.
Я нашёл рабочий кусок кода, который подправил. Печатаю лэйблы на принтере Brother QL-820NWB с ленточным питанием, но они не печатаются если указываю длину этикетки меньше 15 см:
Line 26: double height = fromCMToPPI(15);
Если меньше(line 14), принтер говорит, что выбран/указан не тот тип медиа. В настройках принтера указываю длину хоть 15 мм хоть 280 - всёравно только больше 15ти печатает. В некоторых случаях печатает на этикетке длиной указаной в настройках принтера(хоть 40мм, хоть 50), но я не смог отследить в каких. Хотя, это не важно т.к. надо что бы из джавы указывало длину. Может быть из джавы можно изменять настройки принтера и указывать там длину этикетки?
>>1654919 Тебе следовало указать сертификат этого сервиса выдан ли партнерами одного из корневых CA или речь о самоподписанном сертификате? Проверить легко: в браузере открываешь и если зеленый замочек то первое, если класная хуйня то второе. Соответственно и пути решения разные. Если первое, то тебе повезло, просто апдейт JRE сделай, т.к. в файле jre/lib/security/cacerts отсутствует нужный корневой сертификат. Если JRE < 2017, то такое очень вероятно, т.к. в 2018 у комодо и геотраст появились новые сертификаты. Проверить, есть ли корневой CA в хранилище помогает тулза jre/bin/keytool, точную команду не помню, но эта утилита решает вообще все вопросы с этими серификатами. И вот если сертификат самоподписанный, необходимо ее использовать чтобы добавить этот сертификат к себе в хранилище. В свое время я очень хорошо разобрался в вопросе, знал команды и даже написал консользую хуйню для определения корректности сертификатов удаленно, по урлу. Так что ты просто плохо гуглил.
>>1655418 >>1655444 letsCode, если уж рузке надо. Ещё помню смотрел видос негра Amigoscode с freecodecamp, он там за 2 часа круд писал и пояснял за всю хуйню.
Сап, анон. Подскажи, как нынче правильно генерить ID для объектов.
Суть такова: у меня есть объекты, которые будут сохраняться в базе (хибернейтом), у них есть поле ID. Допустим, я создаю объект в приложении, даю ему какой-то ID (для этого использую статическое поле Atomic Integer, которое инкрементится каждый раз). ID уникальны, всё хорошо.
Потом мне нужно этот объект сохранить в базу. Для этого помечаю поле ID аннотацией @Id.
А потом я перезапускаю приложение, и мой AtomicInteger (последний ID) идёт на хуй. То есть, обнуляется. Получается, что нужно либо сохранять куда-то текущее значение и поднимать его на старте, либо держать в базе агрегатную функцию или как-то иначе дёргать базу для получения каждого нового ID. В-общем, какие-то решения приходят в голову, но явно есть best practice на эту тему.
>>1656073 Текущее значение никуда сохранять не надо т.к. оно уже есть - это id последней записи. Просто подгружаешь его при инициализации SELECT max(id)+1 FROM table. Но это ручной метод. Есть же аннотация @GeneratedValue и стратегии к ней, а еще можно собственный генератор имплементировать интерфейсом IdentifierGenerator.
>>1655924 Значит так. 3 этапа. 1. Пишешь крад сервлетами. Авторизацию/аутентификацию/ фильтрами. Без жпа. Только сессии, только конекшн, только нативный скл. Минимальные стили . Пушишь в репу. Важно понимать, как это работает на низком уровне. Только jsp эта вот хуииа тебе ещё понадобится в жизни. Обязательно миграции бд - самое лёгкое - флайвей. Реализовать минимальные релейшены между таблицами.
2. Крад на том же спринг буте, но уже с жпа, нормальными стилями, с бутстрапом, с нормальной спринг секьюой. Таймлиф или фримаркер. Миграция - ликвбейс. Реализовать все виды релейшенов между таблицами.
3. Фул рест крады, с джаваскриптом и норм стилями. С рассылкой почты, с рекапчами, с полным логированием, миграция на выбор.
1) выведи список товаров в таблице с его ценой в доларах, каждая товар привязан к определенной группе (овощи, фрукты) 2) товары можно редактировать, добавлять и удалять 3) сверху сайта делаешь 2 кнопки, 1 меняет язык интерфейса, 2 валюту в таблице 4) сделать агрегацию данных в таблице, группировку по группе, сортировку и хуйню с фильтрацией по цене. 5) по клику на товар отображаешь координату на карте гугла и рисуешь кастомную точку на карте, это должно работать в 2 стороны 6) всю эту хуйню(Данные) отображаешь в hightchart, в идеале если нарисуешь сам на d3.js 7) в footer рисуешь кота, по клику на которого выскакивает бочка и переворачивается, HR сразу ахуеет
>>1656230 >Что у тебя в резюме Корзина без опыта. Вышка есть. >Гит зелёный Не особо. >Пили стори про собесы и отклики Для этого есть другие треды >>1640071 → Может запилю когда-нибудь фулл-стори, но зачем? Всем похуй же. Ты в интернетах миллион подобных историй найдёшь.
>>1656085 >>1656099 >>1656100 Спасибо, вот это мне и нужно было. Получается, в конструкторе можно любую хуйню вместо ID подставлять: User newUser = new User(12345, "Петя"); ... а правильный ID потом запишет база/хибернейт?
> Или ID нужен на уровне логики? Задумался, нужен ли он мне кроме как для работы с базой. Наверное, нет. В веб-приложении все новые объекты должны сохраняться в базу. А я просто на десктопном проекте работаю, там всё по-другому.
>>1656318 Нахуя? Чтобы руками конвертировать входящие данные в DTO вместо того, чтобы это делал спринг? А профит какой? И всё равно это бесполезно - структура DTO и сущностей почти никогда не совпадает.
У меня есть знакомый 3д-моделлер и вот он в свободное от работы время накидывает просто ради интереса какие-то модельки для себя и выкладывает на свой сайт, чтобы общество пользовалось или хотя бы просто заценило. Вот у меня вопрос, что можно делать подобного на Джаве в свободное время, чтобы с одной стороны и себя занять, и общество поддержать?
Неплохо знаю Кор Джаву и последний месяц изучаю Spring Boot что бы вкатиться в энтерпрайз. Вот чему успел научиться: -понимаю как работают аннотации. -принципы mvc - как добавлять новые зависимости через pom.xml - знаю для чего нужны контроллеры и сервисы, как их писать, какие аннотации добавлять и т.д. -Как брать данные из http запроса и его тела - как связать два класса с помощью @AutoWired - как подключить Базу Данных и работать с нею с помощью интерфейса CrudRepository
Куда двигаться дальше? Что я упустил? Как углубить свои знания? Что ещё обязательно нужно знать для вката? Направь меня Анонче
>>1656977 теперь нужно спрингдату изучить, спринг секурити, ангуляр и как дружить его с спринг секурити и всякое такое. чуваки со знанием только жабы не нужны или скилы и опыт должны быть на охуительном уровне.
>>1656446 Сделал конструктор без id. Успех. Сущности сохраняются, id подставляется.
Но меня смутил тот момент, что id это маленький int, а не Integer (и не может быть null). Провёл небольшой эксперимент, выяснилось, что hibernate нормально съедает объекты со значением id по умолчанию, которое равно 0. Вручную подставленный 0 в конструкторе тоже работает, а вот всё остальное (-1, 1, 10 пробовал) порождает ошибку detached entity passed to persist. Так-то.
>>1656977 Spring Data, Spring Security React/Angular и вся хуйня что с ними в пачку идет (redux, material ui, typescript) Pub/Sub + немного девопса непомешает (AWS/Google Cloud, Kubernetes, Terraform).
Хэлп, двощ. Нужно сделать POST-запрос с параметрами пикрелейтед. Делаю через HttpURLConnection - получаю статус 400 Bad request. Через swagger и soapUi работает без проблем. ЧЯДНТ?
>>1657422 > 2D Скучно. Для любого языка каждый день появляются десятки новых либ для 2D-графики. 3D, конечно, сложнее, но почему либ для неё единицы, и ни одна из них не > simple and lightweight , а все задротские?
У меня есть класс Button в котором создаётся кнопка. В 1 варианте функция рисования так же возвращает наведена ли мышь на кнопку. Во 2 варианте эти функции разделены, но приходится отдельно создавать экземпляр или как это называется класса. Какой вариант лучше, помогите пожалуйста.
аноны у меня есть готовый код и картинки для него ка кэто запускается? хочу посмотреть как работает - в джаве 0 если что https://github.com/Elco-/NaturalSelec... вот ссылка откуда скачал
Как в maven/gradle для зависимости (джарника) указывают другие зависимости (джарники)?
Ну вот например есть логгер в джарнике "A.jar", как при подключение в свой проект он мне скажет (или не скажет), что ему нужен логгер для работы? Или у него логгер будет уже внутри в своем каком-то classpath?
>>1658826 Установи JDK. Версия здесь, думаю, не важна, так что можно взять последнюю. Добавь в PATH, чтобы в командной строке команды java и javac выполнялись. Дальше скопируй папку img в папку src. В этой папке запусти из командной строки > javac Bacterium.java Food.java Form.java Main.java Это скомпилирует исходники, получится набор class-файлов. Дальше пиши > java Main И всё запустится.
>>1658836 >как при подключение в свой проект он мне скажет (или не скажет), что ему нужен логгер для работы? В репе рядом с сами джарником будет лежать pom.xml, где указаны его зависимости
>>1658147 Во-первых у тебя первый способ не рисует кнопку а второй рисует Во-вторых гугли Fluent Api, можно все в одну строку засунуть если хочется В-третьих isClicked срабатывает один раз сразу после создания кнопки, тебе нужна работа с событиями, если хочешь обработчик кнопки написать.
>>1658976 >>1658985 >>1658987 Как уже озвучил товарищ выше, основная "проблема" тут это получение "общего параметра". Если два разных типа можно привести к одному, например параметр вынести в интерфейс, то проблем нет (test31), если же два типа никак не связаны, то твое решение будет с ручными кастами (test32), а это плохо, это признак code smell.
>>1659021 Ну сразу было понятно что тут какие-то архитектурные проблемы. В принципе если нужное поле называется одинаково и имеет одинаковый тип, то можно вместо кастов доставать его по имени поля через рефлекшн апи, но это тоже какая-то кодовая проктология
>>1659122 Вот этого я уже не вывожу и впринципе уже ничего практически ,солнышко,ты можешь мне помочь задачу решить?Мне осталось только в алфавитном порядке отсортировать и вывести
Суть такая,Array Лист из 2 классов,у обоих классов есть общий параметр(строка),так вот уже обьедененный массив нужно вывести в алфавитном порядке(т.е. по параметру),помоги,пожалуйста,у меня дедлайн скоро
>>1659148 У тебя List<Object> чтоли? Общего родителя/интерфейса нету? Тогда будет что-то типа такого
list.sort(Comparators.comparing(a -> { if (a instance of A){ return ((A) a).getStringFromA(); } else if (a instance of B){ return ((B) a).getStringFromB(); } throw new RuntimeException(); }))
"instance" моя Идея ваще не распознает Попробуй сюда как нить вписать в самом первом методе,если можешь ,пожалуйста Чел,прошу не думай что это наглость,я просто отчаился уже и мне срочно нужна спасительная рука
ананасы, объясните паттерн mvc. игра "морской бой": модели - игрок, корабль, игровое поле, а вью, контроллеры чего такое, не отстреливаю нихуя, как написать игру консольную? Анон, помоги и воздаться тебе на пасху православную.
>>1659231 Создаю новый лист для объектов которые наследуют класс Person и имплементят интерфейс Grantable. В следующих строках сваливаю туда студентов/учеников. >>1659234 В синтаксисе могут быть косяки, т.к. писал в блокноте по памяти, а так по дизайну классов и логике - все должно быть норм вроде
>>1659220 Модель - это не только данные, но и логика. Здесь кроме корабликов будут ещё и правила игры, проверки и прочее. Вью - то как данные видит пользователь, то есть формочка с квадратиками либо консольный интерфейс. Контроллер - прослойка между моделями и вью, например, при нажатии на кнопки на форме дёргается специальная функция, которая запускает логику и возвращает данные, эта функция контроллер и есть. Вот только mvc не особо тебе поможет в разработке игр, это всего лишь концепция разделения кода проекта на 3 логических части.
>>1659361 Я бы сказал что зашафли цифры, затем раздели надвое и половину отсортируй по возрастанию, половину по убыванию, потом склей обратно. Но это всеравно выглядит как дичь, как задача поставлена?
>>1659370 Если посмотришт интерфейс компаратора то увидишь метод int compare(T o1, T o2) Компаратор всегда сравнивает 2 объекта, возвращает 1 если первый больше второго, 0 если равны, -1 если первый меньше второго. В случае инта я написал sort((a,b) -> Integer.compare(a,b)) функция sort принимает на вход компаратор, но поскольку интерфейс Comparator помечен как @FunctionalInterface - я могу заменить его на лямбда-выражение (a,b) -> Integer.compare(a,b) котрое эквивалентно компаратору с методом int compare(Integer a, Integer b){ return Integer.compare(a.b); }
Какие проекты посоветуете реализовать чтобы вкатиться в жаву? До этого активно писал на C# (джун, пара проектов с командой, для различных компаний), но вакансий на Java всяко больше. Слышал, что Spring используют, что еще популярно в вашем кофейном котле?
>>1659443 Конечно, сколько раз я открывал ютуб и попадал в обьятия индуса с милым акцентом, подробно объясняющего все тонкости проблемы. Кстати какой долбоеб придумал пикрил и почему остальные считают это нормой?
>>1659452 А ты и не должен с объектами как с примитивами работать. Все верно же проверяет - в первом случае объект один, во втором - разные, что не так? Раз такой умный, сможешь сам открыть сурс и посмотреть @author.
>>1659452 Оптимизация времен царя гороха. Integer - класс-обертка над примитивным типом, объекты через == сравниваются по инстантсу, но для интов придумали впихнуть кеш, который по умолчанию инициализируется кажется 128 значениями (не помню, есть ли там еще отрицательные значения или нет). Соотвтетственно когда ты используешь число до 128 оно не создает новый объект а достается из кеша в отличие от чисел больше 128. Кажется, если порыться то можно даже найти флаг жвм который определяет сколько интов туда запихивать.
>>1659458 С этой проблемой справился легко (удивительно, но достаточно загуглить), просто я представляю сколько еще подобного спрятано в этом чудесном языке
>>1659467 У жавы все более-менее с совместимостью пока используется публичное апи. Проблемы как правило возникают из-за какой-нибудь рефлекшн проктологии или использования Unsafe
>>1659462 Нюансы есть в любом языке. Я переодически забываю что в пхп и луа другой оператор конкатенации и неистово плюсую, пока не доходит до компиляции (раз в полгода требуется в эти языки втыкать). А если на js пойти, там строки можно через == сравнивать и никакого equals(), кто бы мог подумать. А еще недавно криптографию в js делал и узнал что их Number поддерживает всего 52 бита в целочисленных, и банально long туда не запишешь, нужна библиотека (или новый тип там придумали в новой спеке).
>>1659467 А тут-то что не так? Достаешь из одного списка, достаешь из другого.
>>1659452 Придумал Гослинг, ну тут надо понимать, что там все постепенно эволюционировало. Вначале разделение на типы, потом автобоксинг с неумелыми попытками оптимизации, потом еще дженерики на уровне компилятора.
Конкретно по этому коду Шипилёв уже показывал что этот кэш местами бъет по производительсности, но ничего сделать нельзя он уже в JLS. Есть такой трюк -Djava.lang.Integer.IntegerCache.high=2000 можно удивить индуса там кстати нет ограничения сверху, можно затормозить старт программы и отожрать 4 гига в никуда.
Всем привет, пробую gradle. Пытаюсь добавить gradle:propdeps-plugin. Просит сконфигурировать metadataSources{} в объявлении repository. Пробовал гуглить, пишут про добавление jcenter() в repositories. Пробовал, не вышло
Лучше бы в джаву завезли перегрузку операторов через имплементацию интерфейсов и @SneakyThrows на уровне язык. А не всратые рекорды, которые даже не Java Beans.
>>1659503 Скорее чтобы не переусложнять язык, чтобы побольше людей могло осилить. Наверное, когда жабу создавали, на фоне крестов, перла и бейсика она казался нынешним питоном.
Привет всем. У меня есть некий рест, который должен отдавать только изменения в базе данных по запросу пользователя. Что то вроде long pooling или вебхуков. Мне кажется что я делаю велосипеды, когда навешиваю на бд триггеры или каждую минуту отправляю селекты. Для этого существует ORM или это как-то по-другому проще можно сделать? Типа контроля версий бд?
>>1659585 Cheked exceptions делаются на уровне компилятора, в байткоде таких проверок нет, поэтому: 1. В Котлине/Груви - нет checked exceptions 2. В Яве их можно легко отключить слегка поправив компилятор. При этом полностью сохранится обратная совместимость.
>>1659615 >>1659619 Речь шла про отключить с помощью изменения самого компилятора, а не его хака хотя хак компилятора есть и известен с JDK 1.5 Т.е. начиная с JDK XX может появиться ключ -XunchecledExceptions а потом вообще станет дефолтным.
>>1659645 1)Spring в помощь, по нему много гайдов и официальной документации. 2)Или вдариться в более чистый и старый вариант через сервлеты и JSP. Но лично для меня он неприятнее.
Поясните пожалуйста ньюфагу, где и как применяется восходящее и нисходящее приведение объектов класса? Я не до конца понимаю профитность этого, ведь можно сразу объявить объект нужного конкретного класса.
>>1658963 >В 1 варианте функция рисования так же возвращает наведена ли мышь на кнопку. Рисует. Кнопка у меня то работает хорошо, мне именно интересует какой вариант из предложенных лучше.
>>1659678 Сейчас тебе скажут, что наследование устарело.
Приводить тип потомка к предку не нужно в лучших традициях полиморфизма. Наоборот - нужно, но если пришлось, то лучше переписать по-другому.
Профитность, в теории, в том, что ты, используя интерфейс или базовый класс, абстрагируешься от деталей реализации, и потом легко можно заменить одну реализацию на другую. Но на практике реализаций больше одной бывает далеко не всегда, и только в тех случаях, когда их всё же много, можно это использовать. Например - много разных драйвером для баз данных, но интерфейс DataSource у них общий, и можно писать многие методы без привязки к конкретной СУБД.
Вопрос, я сейчас на первом курсе универа, тыкался в кресты, ооп, многопоточность, немного алгоритмы - вот это все. Сейчас внезапно понял, что пора бы задумываться о том, куда идти работать, а то родители не вечные. Собственно посмотрел вакансии на хх по крестам - в большей части из них требуют знание Qt, mfc - в общем разработка под десктопики. Остальная часть это какие-то йоба проекты с компьютерным зрением и дата саенсом, нужно знать матан, тервер, матстат - в общем сложно для меня, у нас в шараге математику так себе преподают.
Решил задуматься над тем, чтобы стать джава рабом, платят больше, проекты вроде бы интереснее (по крайней мере нет умирающих десктопиков). Как вам план? Нахожусь сейчас в ДС если что.
>>1659990 >проекты вроде бы интереснее спорное утверждение, процентов 80 жавы - унылый ентерпрайз со всякой лапшеобразной бизнес-логикой. А там уж от твоих личных предпочтений зависит понравится тебе или нет. В целом жава нормальный язык чтобы на еду себе зарабатывать - есть куча вакансий жавистов на рынке и вполне понятный роадмап для вкатывальщика
>>1660005 >В целом жава нормальный язык чтобы на еду себе зарабатывать - есть куча вакансий жавистов на рынке и вполне понятный роадмап для вкатывальщика
Ну вот это меня и привлекает. Сейчас смотрю хх по плюсам в дс - вакансии естественно есть (хоть их и в 2.5 раза меньше чем по джаве), но непонятно как развиваться. Где-то нужно знать сетевой стек, WinAPI и делфи. Где-то нужно жоско уметь в байтоебство под линукс и алгоритмы (это в HFT). Сами зп явно меньше чем у джавистов в среднем. Так-то я умом не сильно одарен, чтобы заниматься крутым ресерчем или просто разработкой в йоба компаниях типа яндекса или хуавея, к сожалению.
А собственно какой на данный момент есть роадмап для вкатывальщика? Нашел в шапке диаграмму со стрелочками, но там как-то много всего и сразу
>>1660015 да в общемто для джуна достаточно нормально разбираться в core жаве (ооп, базовые типы, коллекциии, базовая теория по многопоточке), немного бд (знать как из приложения подключаться и мочь в простейшие crud операции), немного спринга (понимать что такое IoC, DI и мочь в какое-нибудь простенькое mvc приложение), если к этому еще и про паттерны будешь знать то хорошо. Тут в принципе не так много знаний требуется, главное хоть както уметь их применять. Хорошо если найдешь какого-нибудь жависта который сможет тебя поменторить во время обучения.
>>1660015 Задрочи полностью Java Core, научись писать ООП код. Скорее всего, надо будет еще и со Spring ознакомиться. Но мне хватило только Java core и основ Sql, html, css для устройства джуном. Задрочил с нуля за 3 месяца
>>1659990 Проекты тут говно, особенно если как ты написал, ты не сильно умом одарен. В лучшем случае будешь писать очередную ентерпрайз систему с респ апи и микросервисами, ни о каких алгоритмах и ресерчах там речи нет и не будет. Будешь перелопатывать тонны документации специфичной для конкретной области, и переносить ето в код. Так што пока молодой, лучше задрочи как можно сильнее алгоритмы и компьютер сайенс, чтобы тебя взяли в НОРМАЛЬНУЮ контору. Но платят енивей хорошо, я недоучка из первой категории, $190k/год, но всегда жалею что недостаточно изучал алгоритмы или какой нибудь машин лернинг чтобы попасть в нормальные проекты.
>>1660062 >лучше задрочи как можно сильнее алгоритмы и компьютер сайенс Легко сказать задрочи. Я бы может быть и вкатился в машин лернинг и прочие вещи, но там где нужен ресерч, нужна и сильная математика. А сам я не особо в ней силен, да и к тому же в вузе она у меня очень слабая - рассказывают только самое основное. До уровня топовых вузов типа мфти очень далеко.
>>1660065 Топтал, удаленка. Заблуждение, что таких зарплат нет, я пока не вкатился тоже думал так. Первый раз вкатился на $50/h, потом пока молодой был брал сразу два проекта по $50/h и задрачивал по 80 часов в неделю, ведь комьютить не надо, и вот тебе сразу $200K в год. Сейчас правда ленивый стал и уже так делать не буду (30 лвл).
>>1660062 >Проекты тут говно, особенно если как ты написал, ты не сильно умом одарен Так в том-то и дело, что раз он умом не сильно одарен, то какой ему ресерч и разные крутые проекты которые кстати где? в 1.5 конторах в рф?, на которые кстати очень часто требуют MSc и PhD в области математики или cs. Тут дело в том, на каких технологиях будет не так мерзко заниматься софтвер инжинирингом - на джаве с ее неплохой экосистемой, инструментами и большим количеством вакансий, или на крестах, с которыми уже все далеко не так однозначно?
>>1660087 >что раз он умом не сильно одарен, Ну может это и плюс, что он не считает себя умным. Я вообще ему говорю с перспективы того что может быть через 10 лет. Я вот жалею, что не послушал когда мне говорили лет в 20 не иди на работу и не забрасывай универ, но тогда интересовали тяночки и клубы. В итоге закончил с 2.2 средним лол. Какой там MSc и PhD после этого, сейчас конечно очень жаль что был таким долбоебом.
>>1660093 >Что вообще за проекты у жава-фрилансеров? Из последних: 1) сорт оф клон слака с небольшими переделками под конкретную область 2) медицинский софт типа обработка XRAY-сканов 3) всякие интеграции с платежными системами - таких много последнее время чому-то 4) SaaS обработка видео (типа юзер загружает видео и с ним надо че-то сделать)
>>1660116 Ну так, обычно 3-10 разработчиков, чтобы было больше че-то не припомню. Бывает есть продукт овнер или типа скрам-мастера, но это редкость. Где-то 70% компаний делают спринты и регулярные коллы почти каждый день, а остальным вообще похуй чем ты там занимаешься, обычно это крупные компании типа говернмент сектора. Контракты длинные, меньше года не помню чтобы было, и то потом я сам уходил.
Но я обычный девелопер, а так там есть и супер крутые ребята, и даже суб контракты от гугла, наверное мне говно скидывают лол.
>>1660131 Какие там требования чтобы зайти на рейт 50+$/h ? Ниже мне не интересно, потому что нету достаточного стимула отказаться от ненапряжного посиживания в офисе.
>>1660015 Если ты первокурсник то ебаш java core, sql, ну и фронта чуток, ближе к осени смотри нынче банки набирают постоянно стажеров, пойдешь на стажировку поймешь что к чему. После стажировки уже будешь иметь какой никакой опыт и главное поймешь нравится/нужно ли тебе все это
Как реализовать стратегию наследования MappedSuperclass, если в родительском классе у меня есть связи многие-ко-многим и на него еще ссылается другой класс через многие-к-одному? Получается, что придется сделать как-то ассоциации к каждому ребенку? В гугле рассматриваются только примитивные примеры, где у родителя нет ассоциаций.
>>1660247 Я с хибернейтом уже пару лет не связывался, тык что могу ошибаться. Но кажется что если если указать InheritanceType.SINGLE_TABLE вместо использования отдельных таблиц, то все должно работать
>>1660257 Ну в теории можно было бы использовать один sequence генератор на две таблицы, а затем джоинить с их юнионом, но я хз умеет ли так хибернейт. Кажется что это не тот кейс где стоит использовать table_per_class, ты уверен что тебе именно сюда его нужно натянуть?
>>1660247 >2.11.2 Mapped Superclasses .... A mapped superclass, unlike an entity, is not queryable and must not be passed as an argument to EntityManager or Query operations. Persistent relationships defined by a mapped superclass must be unidirectional. ....
>>1660268 >>1660269 При стратегии JoinedTable у меня все красиво. releases заправляет всем. А в MappedSuperclass, получается, что таблицы covers, release_genre и concert_track должны дублироваться для каждого наследника. Хайбернет так далеко не думает и не создает их. >>1660276 Получается, что это невозможно сделать в такой стратегии?
>>1660285 MappedSuperclass не для этого вообще, он не про взаимоотношения альбомов с релизами. Это такой способ вынести в один класс общие поля, которые в разных (может и не связанных) сущностях используются. Например, если ты для всех делаешь один базовый класс с полем id.
>>1660310 CREDITCARD и BANKACCOUNT между собой никак не связаны на уровне реляционной модели, у них просто есть общая (одинаковая) колонка owner, которую ты на уровне кода можешь вынести в общий базовый класс. Допустим даже только ради того, чтобы не дублировать ее описание.
>>1660317 Так получается, что в моей объектной модели это и сделано. Общие поля в классе Release. Но как это правильно аннотировать, чтобы создались нужные таблицы?
>>1659555 Ну например, я удаляю из таблицы запись с primary key = 5, мне бин, который слушает бд отправляет post запрос с Json {table: tablename, primary key: 5, status: deleted} Или добавляю новую запись, мне «бин» шлёт Json {table: tablename, primary key: 5, status: added} Или меняю запись, мне «бин» шлёт Json {table: tablename, primary key: 5, column_changed: new_value, status: changed} Что-то типа того, только не опрашивать бд каждую %period_time, а чтобы непрерывный мониторинг был и не нагружать бд кучей запросов. И не писать велосипедов самому.
>>1660561 >они в разных пакетах и друг друга не увидит Ну так jm и mypack - тоже два разных пакета, но друг друга видят. Ну ладно, не суть. Стало быть, мне надо поместить безпакетные библиотечные классы в пакет, не подскажешь как это сделать? Идея доступ не дает.
>>1660563 > два разных пакета, но друг друга видят Безымянный пакет отличается от остальных тем, что из него ничего нельзя импортировать в другие пакеты. По крайней мере, нормального способа для этого нет. Возможно, это можно сделать через рефлексию, класслоадеров и прочую магию, но хз.
> как это сделать Без изменения исходников - никак. А эти классы точно предполагается юзать за пределами либы? Может, они хоть в идее и отображаются, но по факту доступа к ним нет. Что документация говорит?
>>1660578 >Безымянный пакет отличается от остальных тем, что из него ничего нельзя импортировать в другие пакеты. По крайней мере, нормального способа для этого нет. Возможно, это можно сделать через рефлексию, класслоадеров и прочую магию, но хз. Понял.
>А эти классы точно предполагается юзать за пределами либы? Может, они хоть в идее и отображаются, но по факту доступа к ним нет. Что документация говорит? Это обычные классы, как "бонусная часть библиотеки", дополнительные инструменты. На официальном сайте вообще их можно только по отдельности скачать. Не понимаю, зачем так по дебильному сделали.
>>1660719 Если у тебя мутабельный объект, то для тебя нету особой разницы, но мутабельность это плохо. А у иммутабельных объектов нету сеттеров потому что состояние фиксируется на момент создания.
>>1660778 Зачем деконструктор, когда за тобой мусор GC подбирает
>>1661056 ОК, попробую перевести на человеческий, 99% что ты скачал содержимое master бранча. Тогда там 100% должна быть какая-то система сборки, скорее всего или Maven или Gradle. Смотришь в корне что там есть: README.md - описание проекта, открываешь его и смотришь есть ли инструкция по сборке. Если инструкции нет ищешь в корне pom.xml или build.gradle Если pom.xml - ставишь Мавен и билдишь им. Если build.gradle - ищешь gradlew.bat и билдишь им если gradlew отсутвует то ставишь грейдл сам
> деконструктор > распаковка > деструктуризация > декомпозиция В каждом языке решили выебнуться, называя одно и то же разными терминами? Прям как структуры, рекорды и дата-классы. Интересно, в жабе 16 тоже придумают новый термин?
>>1661219 Что не так? Ссылки sb1 и sb2 указывают на один и тот же объект, соответственно, они равны. Значение одной ссылки ты заменил на null, и теперь она не равна другой.
Вчера ебался со стратегиями, сегодня ебусь с отношениями. Отображаю List через one-to-many. При этом, хайбернет создает соответствующие таблицы: Hibernate: create table Artist (id integer not null, artist varchar(255), country varchar(255), rise integer, primary key (id)) Hibernate: create table Artist_Comment (Artist_id integer not null, comments_id integer not null) Hibernate: create table Comment (id integer not null, comment varchar(255), primary key (id))
Но при записи полностью игнорируется Comment: Hibernate: insert into Artist (artist, country, rise, id) values (?, ?, ?, ?) Hibernate: insert into Artist_Comment (Artist_id, comments_id) values (?, ?)
>>1661226 >>1661228 В джаве нет ссылок на ссылки. При присваивании значение одной ссылки присваивается другой. Изменить одну ссылку через другую не выйдет, это не указатели как в C/C++. Ссылка работает похоже на примитив: int a = 1; int b = a; b = 0; // значение a не изменяется.
>>1661241 Ссылка сама по себе, можно сказать, передаётся по значению. В ссылке содержится адрес объекта, и это просто число, которое скопируется при передаче в другой метод, как обычный примитив. Но говорят, что объекты передаётся по ссылке, а не по значению, потому что сам объект не скопируется, а просто передастся его адрес.
>>1661230 Ну так блять, у тебя хибернейт, когда сохраняет, тупо не знает, что таблица Comment существует и поэтому создаёт дополнительную. Чтобы он это узнал, нужно в Comment сделать поле Artist с аннотацией ManyToOne.
>>1661816 >>1661823 Всё, забей, я хуйню сказал. >>1661230 Ты точно ничего не пропустил по логу? Вообще, странная ситуация: как оно вставляет в Artist_Comment, если для вставки нужно сгенерировать id у коммента, а для того, чтобы его сгенерировать, нужно сначала вставить коммент в таблицу с ними.
Эц самое, у вас в шапке написано шо хиперскил от жидбрейн хуйня, но если ты совсем зеленый, то тоже хуйня? Чиво делот? Извините за ошибки, я специально, а где-то и нет.
>>1662359 >если ты совсем зеленый, то тоже хуйня Хуйня. >начал проходить - вроде нравится Это и есть доказательство хуйни! Нравиться читать стори про героев твоего любимого мультика? Настоящие погроммирование даже за сраные 30к в мес это ежедневная боль и страдание. БОЛЬ И СТРАДАНИЕ!!11 За 100к тоже БОЛЬ И СТРАДАНИЕ и за 300к/нсек БОЛЬ И СТРАДАНИЕ. Чем раньше ты это поймёшь, чем раньше начнёшь жить с этой болью, тем проще тебе будет вкатиться. Поэтому слушай старый мудрых анонов. Если говорят хуйня, значит хуйня!
>>1662406 >Настоящие погроммирование даже за сраные 30к в мес это ежедневная боль и страдание. БОЛЬ И СТРАДАНИЕ!!11
Так а где их взять, боль и страдание? Я бы с радостью пошел на какую-нибудь стажировку где мне давали бы жопораздирающие задачи, но я пока что вообще нихуя не знаю из джавы чтобы туда попасть и сейчас стажировок мало (нет), так как карантин.
Понятно, что нужно писать свои проекты, но я пока даже не знаю что такое полиморфизм, лол.
>Если говорят хуйня, значит хуйня! Твердо и четко, даже и не поспоришь.
>>1662406 >Нравиться читать стори про героев твоего любимого мультика? И какой тут мультик лол, я так и не понял тебя, анон. Может ты с чем-то другим перепутал, я не знаю.
>>1662418 >the student should be an experienced programmer with Java. This Quest requires prior hands-on experience with GCP computing and storage services. It is recommended that the student have at least earned a Badge by completing the hands-on labs in the Cloud Architecture and/or the Baseline: Deploy and Develop Quests before beginning
Вроде интересные, но джаву кор хотя бы знать думаю надо. Вот месяц-два позанимаюсь хуетой и наверное сюда залезу
Знаю, что программы бывают многопоточными. Но ещё знаю, что любой современный сервер задает пул потоков, который позволяет также программе выполняться в несколько потоков. Например в spring-boot можно задать параметр server.tomcat.max-threads, который будет определять, во сколько потоков максимум сможет работать встроенный Томкат.
Но зачем тогда в Джаве вообще многопоточность, как часть языка, если можно всю многопоточность в одну строку задать на сервере приложений? Скорее всего я чего-то не понимаю. Объясните, пожалуйста.
>>1662536 Многопоточность должна поддерживаться на уровне бизнес логики приложения. Т.е. это программист определяет будет ли его приложение однопоточным или многопоточным. В случае с томкетом программисты сказали: у нас будут листенеры входящих запросов, и каждый листенер будет обрабатываться в отдельном потоке, а юзеры смогут задавать количество этих потоков, т.е. соответственно листенеров. Вот и всё. Утверждение, что "во столько потоков будет работать томкет" неверно, потому что всего потоков в нем гораздо больше, просто некоторую часть из них можно задавать пользователю, а остальные нельзя, они регулируются там внутри самостоятельно.
>>1643468 (OP) Анон, у меня вопрос. Работаю несколько месяцев джуном, пишу свой первый проект. Но я вообще нихуя не могу написать без гугла, вот прям каждый шаг приходится гуглить и искать уже написанный код, чтобы адаптировать его под свой. Это нормальный путь джуна, и каждый через это проходит, а в дальнейшем САМ пишет код?
>>1662542 >В случае с томкетом программисты сказали: у нас будут листенеры входящих запросов, и каждый листенер будет обрабатываться в отдельном потоке
Я правильно понял, что количество потоков на томкате это грубо говоря количество юзеров, которые смогу одновременно работать с сервисом (при условии, что они действительно работают одновременно) и количество "копий" работающей программы на серваке?
>>1662623 Да, всё норм. Главное - не копируй код из гугла бездумно, а старайся понять суть решения и если это стаковерфлоу, то не останавливайся на первом же решении, а изучи остальные и попытайся понять, какое бы лучше подошло в твоём случае.
Аноны, вот смотрите. В джаве есть пакеты для работы с музыкой. Эту музыку можно проиграть. Подскажите, пожалуйста, откуда эта музыка идет? Это же какой-то аудиопоток, его можно перенаправить в файл как-то?
>>1662893 Да я вот ничего путного не могу найти. Мне надо обработать midi последовательность через синтезатор и записать в файл. А синтезатор может только через каналы ее проиграть..
>>1662669 >количество потоков на томкате это грубо говоря количество юзеров, которые смогу одновременно работать с сервисом Грубо - да. Детально: один юзер может выполнить два запроса сразу и займет два листенера, либо наоборот, 10 юзеров последовательно выполняют по запросу каждый и всех их может обработать один листенер (даже если это в пределах одной секунды). >и количество "копий" работающей программы на серваке Нет. Так можно сказать только если вся программа и состоит только из одного обработчика разпроса, тогда да, одна программа работает параллельно, но это слишком специфичные условия. Поэтому так: копия программы одна, а куски программы, где поддерживается многопоточность, исполняются одновременно параллельно.
>>1662665 > Да, более или менее нормальный >>1662674 > Да, всё норм. Главное - не копируй код из гугла бездумно, а старайся понять суть решения и если это стаковерфлоу, то не останавливайся на первом же решении, а изучи остальные и попытайся понять, какое бы лучше подошло в твоём случае. Спасибо, буду иметь в виду
>>1663193 Есть система, где только \r, но вероятность, что жаба попадёт туда, близка к нулю. Нужно это не только чтобы принтить, но и чтобы парсить уже существующие строки с \r\n. Да бывают редакторы, где без \r переносы не отображаются вообще.
>>1661987 В августе скачал джава для чайников, весной устроился на работу. До этого учил другой язык, но там не прокатило. Можно и быстрее, у меня большую часть времени занимала прокрастинация.
Господа крудошлепы, хотели интересных задач? Вот вам такая.
У нас есть паровозик А и паровозик Б, которые едут в одном направлении. Паровозик А движется со скоростью 1 км/ч, а паровозик Б - 1.037 км /ч. За сколько паровозик Б догонит паровозик А если сказано что Б проебал 86 часов на старте?
Легко могу решить эту задачу рекурсией (больше трех месяцев, сближаемся до < 1 часа). Вопрос: правильный ли это подход, рекурсия? Наверняка этот тип задач уже разобран, имеет название и другие алгоритмы решения. Паровозики конечно это не настоящая задача, это я уже упростил, дальше не могу, помогайте.
>>1663838 Пасибо, это похоже на правду. В реальной задаче у меня 2309, но как я уже сказал, я остановил рекурсию на условии сближения меньше часа. Получается да, ебу дал, в школьную математику разучился. Еще раз спасибо!
>>1663838 Слушай, вернись на секундочку. Я конечно ебу дал, но почему твой ответ немного не сходится? Пустил два возрастающих курсора, на пике переломный момент.
>>1663849 А, я понял. У тебя вычисляется не время, а расстояние в момент сближения. Чтобы получить что надо мне надо еще вычесть начальные 86 км (2410 - 86 = 2325).
>>1663891 Посмотри в доках, что они умеют. У сканнера есть пачка методов для чтения строк, слов, интов, булеаонов и прочего. Удобно, когда парсишь какой-нибудь поток. Буффередреадер не умеет почти ничего из этого, но он может буферизировать поток, чтобы эффективнее читать. А кошернее вообще в джаве не юзать ввод-вывод, его какие-то ООПшнутые создавали нахуй.
Анонасы, есть вопрос по Спрингу. Есть 2 таблицы в БД, к примеру "Офис и "Кабинет". Написал CRUD приложение. На стартовой странице создаются офисы, при переходе в офис можно создать необходимое количество кабинетов. Столкнулся с проблемой редиректа на страницу кабинетов при удалении и редактировании этих самых кабинетов. Редирект работает только на страницу index, а необходимо на kabinet/{office.id} Как запомнить значение office.id? Если я просто напишу return "redirect:/kabinet/{office.id}";, у меня будет ошибка Model has no value for key 'office.id' Выручайте, аноны!
>>1664327 Сам метод: @GetMapping("/deliteKabinet/{kabinet}") public String remove(@PathVariable Kabinet kabinet, Model model) { kabinetRepo.delete(kabinet);
>>1664327 >>1664328 Честно не знаю как это делается средствами MVC, но всегда есть ResponseEntity для гибкого ручного ответа. Пусть гуру MVC уточнят где тут best practices, а ты пока так сделай, работает же.
>>1664328 >public String remove(@PathVariable Kabinet kabinet, Model model) >kabinetRepo.delete(kabinet); А где у тебя вообще этот office.id, в кабинете? Тебя не устроит просто вытащить его, типа kabinet.getOffice().getId(), до того, как ты удаляешь кабинет, и вручную дописать в строку редиректа?
>>1664855 Ты не тот анон с проблемой пикселей? С него все началось. В любом случае, твое приложение с квадратиками "удачно" появилось аккурат после моих скринов с кодом, на которых квадратики поменьше и можно задавать их размер. Не переживай, няша, ты когда-нибудь тоже сможешь самостоятельно что-то написать. А вот помогать другим с таким настроем вряд ли...
>>1664881 Извини, конфузия вышла, обознался. Мир? Кстати, у тебя там ошибка: 250px на 7 нацело не делится, тяжело было 252px сделать? А так одни блоки 36x36, другие 35x35, округляешь ты там чтоли?
Вот есть строка. Большая. В ней есть символы форматирования: табуляция, новая строка. Мне надо в этой строке заменить подстроку. Но так, чтобы в процессе поиска места замены эти символы форматирования не учитывались. Можно это как-то сделать? Есть методы string.replace(target, replacement). Но для этого метода присутствие символа табуляции например уже сделает подсторку другой и это не сработает. В большой строке, например есть подстрока ...жопа\nчлен... Но если я в методе .replace("жопачлен", "член") напишу, то он не сработает, а надо чтобы сработал. Надеюсь понятно объяснил.
>>1664959 Легко так сказать. Как-будто переключиться с явы на сишарп как просто. Сам-тт язык похож, а вот с библиотеками, фреймворками всякими охуеешь разбираться.
>>1665111 Ты совсем зеленый? На каждом углу об этом пишут для новичков, даже в русском интернете. Одно - интерфейс, другое - класс, реализующий этот интерфейс. По правилу наследования класс (потомок, субскласс) можно присвоить переменной типа суперкласса (предка).
>>1665111 >>1665115 Для продвинутых пользователей: Это принцип подстановки Барбары Лисков, буква L из пяти принципов SOLID; записывайте, понадобится вам для интервью.
>>1665119 Почему все так уверены что если ты увлекаешься программированием то для тебя это работа? Я вечерком просто люблю на джаве пописать всякие простенькие игры и всё. Не дай боже работать программистом.
>>1665117 Это относится только к JDK от оракла, и только к современным версиям > 2018-2019, не помню точно. Типа у них там наиебовейшие инструменты профайлеры-хуяйлеры которые их жавба задавила бесплатно давать использовать.
>>1665123 А как они меня искать будут? Вот получаю я деньги за своё приложение, они мне на почту напишут "дай денег". Я отвечу им что в живу в Магнитогорске пусть приезжают.
>>1665122 Ты это мне уже говорил, возможно даже в этом самом треде. Что тебя смутило? Что я отправил тебя читать о такой простой вещи? Так это же логично, там больше инфы, и понятнее изложено чем тебе рандом-хуй объяснит. Ну а т.к. это форум и читают вопросы/ответы все, то я для максимально широкой аудитории и пишу. Если тебе про SOLID не надо, то просто пропускай мимо.
>>1665124 Такая же проблема у нас с налоговой: больше вероятности что к тебе придут если ты держишь кафешку, а не частным репетиторством на дому занимаешься. В джаве так же: они подождут пока твое приложение вырастет до уровня яндекса-хуяндекса, и тогда уже постучат. А бекэнд аппликухи можно вообще безболезненно хостить за nginx'ом пожизненно, главное настроить чтобы лишние хедеры не возвращал, и все, как можно узнать что ты там юзаешь на беке?
>>1665113 Это не то немного. Суть в том, что там эти символы форматирования могут стоят где угодно. И мне бы какой+то вариант, чтобы они игнорировались совсем. Ну т.е. чтобы строка с этими символами и без них была как-будто equals
>>1665133 Нет, это все равно как раз то. Регулярное выражение можно так составить чтобы оно хоть после каждой буквы проверяло "левые" символы, т.е. маска "жопа", где - это допустим только \n и пробел.
>>1665227 Более того. Сейчас обрисую. Есть изначальная строка и в ней случайным образом нахуячены символы переноса строки. Я вызываю метод replace() на ней, а вот таргет дл реплейса приходит без символов переноса строки. И в итоге метод не заменяет в изначальной строке нихуя, потому что строки с символом /n и без считаются разными. Сразу говорю, что в изначальной строке удалить символы /n нельзя. Ну и как сделать так. чтобы метод replace() думал, что строки с и без /n одинаковые?
Посоветуйте курс по springАноним23/04/20 Чтв 14:07:02#964№1665384
Как основательно подойти к изучению spring? Туториалы с их сайта, кажется, недостаточно различные детали раскрывают и подход не комплексный получается. Может есть какой-нибудь курс годный или книга или нужно просто доки читать? (Последнее тоже, кажется, не совсем подходящим вариантом для того, чтобы с нуля постигать что-то новое)
>>1665248 После замены что должно получиться? Просто вставить новую чистую подстроку без \n? Легко. Или заменить все символы старой подстроки на новую, сохраняя между ними \n? Это ебань, но тоже выполнимо если подстроки одинаковой длины.
>>1665248 Тут я вижу 2 варианта: 1. Первым делом из обоих строк удалить все переносы строк тем же replace(), а потом уже вызвать replace() с нужным текстом. 2. В той строке которую нужно заменить надо пробелы между символами заменить на группу \s - тогда туда и переносы строк попадут.
>>1665387 >>1665407 Первый вариант не идет потому что изначальная строка должна сохранить форматирование в целом. Если удалить там все переносы, то потом обратно их никак не расставить. Второе. > В той строке которую нужно заменить Там большая строка внутри нее есть куски, которые надо заменить. И эти куски имеют форматирование. Когда вызываем реплейс, то туда передаем таргет-строку, но она уже без форматирования И в этом проблема.
Куда еще кроме бэка можно вкатиться на джаве? Бэк нравится, джава нравится. Не нравится то, что я терпеть не могу фронтенд. А чтобы потом из бэка подняться в фуллстек, надо фронт таки терпеть. То есть я уже ставлю себе барьер в карьерном росте.
>>1665429 >>1665387 Мне кажется ты не понял. Легче было бы если бы ты хотя бы тестовые данные предоставил. В первом случае я имелл ввиду такое, это легко сделать регулярками: Дано: --a-b---c-de--f Замена: bcd -> hello Результат: --a-helloe--f
Во втором я имел ввиду такое (очевидно, что для этого нужно чтобы подстроки были одной длины): Дано: --a-b---c-de--f Замена: bcd -> 123 Результат: --a-1---2-3e--f
Как я и сказал, со вторым придется ебаться. Ничего готового на это нет и быть не может, слишком специфично. В таком случае делают токенизацию, ищут по токенам с нужным типом, заменяют и в итоге собирают строку обратно со всеми типами токенов.
>>1665429 Приведи уже пример, потому что из этих "куски имеют форматирование" нифига не ясно. И что с заменой - там известно заранее что на что надо менять, или это в рантайме станет ясно?
А так у тебя есть: 1. Группы в исходном тексте. Например чтобы сохранить переносы в моем примере регулярку надо поменять: JSON.replaceAll("\"\\w+\"(\\s+):(\\s+)\"\\w+\"", "\"foo\"$1:$2\"bar\"") туктс тегов поменяется, а форматирование останется.
2. Если этого мало, можно использовать функцию которая будет делать замену.
>>1665480 Уточнение про второе: просто найти строку для реплейсмента (b---c-d) можно легко и как в первом примере, ебанина будет именно на моменте замены. И если по условию у нас каждый символ исходной строки мапится в каждый символ замены, именно один-к-одному, то тут легко будет в один проход циклом пройтись и позаменять, без токенизации.
Когда вы только начинали работать джуном, как оно было? Столько дрочился, чтобы устроиться, а по итогу какой-то хуйнёй страдаю, ей богу тестовые на неделю были сложнее. По полдня ловлю баги, думаю, почему это не работает, как должно, другую половину пишу 2.5 строчки кода и хуяк - таск выполнен! Так и должно быть?
>>1665569 >>1665535 >быстрее >стыдно Как понять вообще, когда должно быть стыдно? И с каким темпом надо работать? Это ж не завод, тут нет нормы в 100 деталей. Не хочется ведь, чтоб думали, что я проёбываюсь половину времени.
>>1665528 > Когда вы только начинали работать джуном, как оно было? > Столько дрочился, чтобы устроиться, а по итогу какой-то хуйнёй страдаю, ей богу тестовые на неделю были сложнее. > По полдня ловлю баги, думаю, почему это не работает, как должно, другую половину пишу 2.5 строчки кода и хуяк - таск выполнен! Так и должно быть? Хз, мне сходу дали писать полноценное приложение на спринге
>>1665657 В одно рыло? Я думал на каждую подзадачу свой работник. Один например только по бд, другой только по контроллером, третий по сервис layer и т.д.
>>1665658 > В одно рыло? Я думал на каждую подзадачу свой работник. Один например только по бд, другой только по контроллером, третий по сервис layer и т.д. Нет, еще двое джунов со мной. Между собой договариваемся, кто что делает
>>1665698 Да. Работа есть, в целом пока интересная. Гайдов тьма, каких-то диких глюков и багов я пока не встречал. Хороший инструмент, на мой взгляд. Но я пиздец ньюфаг.
>>1665733 Оверхед от JVM статический: запускаешь Hello world, отжирает 200мб, запускаешь Tomcat с 20ю хелловорлдами, отжирает 205мб. Понимаешь как оно должно быть? Нужны хелловорлды на 500кб добро пожаловать в делфи, на 20кб - динамическая линковка, и т.д. Итог: если тебе не подходит Java по памяти стоит задуматься правильный ли ты выбрал инструмент.
>>1665737 То же самое с Electron vs PWA, хочешь чтобы работало в standalone без зависимостей, выбираешь первое, хочешь чтобы работало под единой средой исполнения, берешь PWA (если фич хватает для задачи).
>>1665733 Я хз сколько хеллоуворлд надо. Щас есть приложуха со спрингом, там несколько разных бд, 9000тысяч контролёров, ещё какие-то свистопирделки. И вот эта хуйня отжирает 500 мегабайт.
>>1665744 Рассмотрим на примере виндоус. В джаве библиотеки это не dll-ки. Библиотеки в джаве подгружаются в каждое приложение отдельно, обособленно, изолированно друг от друга. DLL-ки же (особенно системные) это разделяемая область памяти (гугли "верхние 2 гб виртуальной памяти процесса в виндоус"), т.е. единственная копия DLL в памяти может быть использована всеми приложениями которые работают.
>>1665766 Восьмая. Я хз что ты хочешь тут услышать? Это не такая лагучая хуйня, как её описывают. Хочешь томозное говно - попробуй чуток скалы, например. Когда хеллоуворлд запускается дольше спринг приложения с сотней контролёров. Выше тебе уже описали, что у тебя один хеллоуворлд отожрёт Х памяти, но 20 отожрёт уже не 20Х. Если гонишься за скоростью - ну ебашь на низкоуровневых языка, они быстрее. Но не удивляйся потом, что пока ты пишешь базовые сущности Вася уже запускает своё говно на спринге в прод. Бизнесу будешь объяснять, где ты гигабайт памяти сэкономил. Мне не надо.
>>1665783 Постоянно какую-то хуйню оптимизируют. У джавы огромный минус это её обратная совместимость, это же и её плюс. Т.е. просто выкинуть какую-то хуйню старую они не могут, всегда стараются сделать так, чтоб ничего не сломалось от их нововведений. >скорость Она нахуй не всралась, железо улучшается быстрее, чем ты такой же прирост производительности получишь от маня-оптимизаций.
>>1665781 Джава довольно сносно работает с памятью и не тормозит, а иногда даже работает быстрее нативных программ (я серьёзно, jit творит чудеса). Но программы на ней очень часто пишут упоротые фанаты ооп и паттернов gof и, где можно обойтись двумя-тремя классами, они городят десяток с разными абстрактными фабриками, билдерами и прочей байдой, подключая в мавеновском проекте библитоеки на каждый чих и получается чрезмерно раздутый проект.
>>1665783 Ты вообще плохо представляешь предметную область, если у тебя кореллирует версия ЯП со скоростью исполнения в какой-то JVM в вакууме. Имплементаций JVM много, от разных вендоров, разных по скорости и фичам (некоторые не сразу или не совсем поддерживают полную спецификацию). И потом, как новые фичи языка влияют на существующие фичи? Т.е. есть код, он уже отлажен, покрыт тестами и работает. Делают новую фичу, не трогая старый код, и если правильно соблюден SOLID, в частности loose coupling, то в скорости исполнения старого кода вообще ничего не меняется. Есть фичи JVM, которые коречно же влияют на скорость всего, например это GC. Если мы рассмотрим какую-то конкретную JVM, например от оракла, то там уже пятая или шестая версия GC.
>>1665860 В джаве подобие этого уже есть - это аппликейшен сервера и веб контейнеры. Технически реализовано по-другому, но суть та же - множество приложений, среда исполнения одна - "расширивание системных библиотек". Насчет расшаривания пользовательских библиотек не уверен, зависит от контейнера, может быть некоторые подгружают только один экземпляр либ, а может и каждому приложению свою копию либы, тут я не знаю.
>>1665866 >В джаве подобие этого уже есть - это аппликейшен сервера и веб контейнеры Ну это наверное не только в джаве. А сейчас везде докер и контейнеры, так что мимо.
>>1665860 Уже есть, называется class data sharing - разные инстансы JVM шарят загруженные классы. Не знаю когда впервые вышло в прод версию, но в 14 включено по умолчанию.
Есть Open J9 там шарятся не только классы, но еще и JIT кеши и вообще есть JIT as a service. Чтобы уменьшить потребление памяти одное VM.
Двач, делаю лабу. На ввод подается строка, и надо проверить строка ли она, если нет то сказать юзеру попробовать еще раз. Сделал вроде через try-catch (через Scanner) но этот try-catch пришлось обернуть в do-while. Звучит как очень хуйовый способ. Нагуглил в джаве лейблы, но все еще не уверен. Вообщем как лучше, залупить try-catch или использовать лейблы?
Двачи помоги. Делаю лабу на джаве, и у меня в коде непонятная каша. Собственно надо проверить просто ввод юзера в консоли чтобы была строка. Ввод осуществляю через Scanner и ловлю исключение оного. (если на вводе не строка). И вот в чем дело. Я поместил try-catch в do-while. Но выглядет это так себе. Нагуглив узнал что способ действительно хуйовый. А из решений в джаве только лейблы. это правда? tl;dr что лучше поместить try-catch в луп или использовать метки?
>>1666265 Как пользовательский ввод может быть не строкой? Любые символы, вводимые пользователем - это строка, и nextLine() всегда их будет возвращать, будь там хоть знаки препинания или цифры.
>>1666311 >2 это же 10, значит должно быть 01 Совершенно верно! Однако ты не учел, что там не просто 10, а 000000000000000010, соответственно это все превращается в 11111111111111111111111101, а не просто в 01 (количество цифр там в зависимости от типа - байт 8, шорт 16, инт 32, лонг 64). Ну а т.к. знак это самый старший бит, то и получается отрицательное число, а не огромное положительное. А то что ты хотел сделать изначально - выделить два бита - делается бинарной маской: 11111111111111111111111101 & 00000000000000000000000011 (маска) == 00000000000000000000000001 Ну тока у тебя тут проблема как размер маски подобрать, это уже в зависимости от задачи.
>>1666388 Забыл добавить: по условиям комплиментарности -1 у нас это 11111111111111111111111111, а не 10000000000000000000000001 как ты бы мог предположить.
>>1666544 Сложная тех часть или мат часть тебе нравится? С математикой много не работаю поэтому и не сообразил сразу выразить одно через другое (автор поста про паровозики). Но бекенд часто полон челленджинг тасками, например помню задачу когда мы ловили rtmp с клиентов на мобилках, конвертили вручную по спецификациям (обожаю байтоебство), и пересылали по вебсокету в хранилище на сохранение, генерируя при этом плейлисты.
>>1666556 >Сложная тех часть Именно тех часть. Мат часть всегда из-под палки делал в школе/универе. Хотя вроде не полный долбаеб в математике, но и не скажу, что хорош в ней. Просто видел, что часто на бэке всякие выпускники мех матов сидят, в серьезных конторах подготовку по алгоритмам и структурам дрочат серьезно. Меня даже какой-нибудь нетривиальный вложенный цикл разобрать не особо удовольствия доставляет. Само собой, я в этом разберусь, но сидеть и думать, куда какая итерация идет и куда элементы переходят как-то удовольствия не доставляет.
>обожаю байтоебство Ну вот это мне тоже нравиться, всегда была интересная какая-то низкоуровеннвая фигня. Вообще люблю докапываться до истины и понимать, как работают вещи.
>>1666566 А вообще кровавый ынтерпрайз это часто про сообщения, миллионы миллионов сообщений, очереди сообщений. Технически конечно тоже челлендж есть, но тут уже сторонние примеси какие-то, кафки там, раббиты, твой код за этим всем уже не так заметен.
Я что то совсем запутался в этих версиях java. Появились такие вопросы и проблемы: 1. Последняя сборка java 11 попадет под новую лицензию? 2. Почему то .jar собранный при использовании OpenJDK не хочет запускаться, выдаёт ошибку типа проверьте установку Java. 3. Что за ебанутая система версий. Как я понял: есть через что запускается(JRE) и есть инструмент разработчика(JDK). Почему JDK версии по типу 8, 11, 14, а JRE 1.8.0_251. Какая версия JRE нужна что бы запустить программу использующую JDK 14? Есть ли обратная совместимость?
3) 1.8 и 8 тождественны. Раньше нумеровали первым типом версий, сейчас перешли на второй. >Почему JDK версии по типу 8, 11, 14, а JRE 1.8.0_251 Неправда, см. пикрил. >Какая версия JRE нужна что бы запустить программу использующую JDK 14? Для JDK 14 нужна JRE 14. Обратная совместимость не так работает: JDK 9 запустится на JRE 14, а не наоборот.
>>1666582 >1. Последняя сборка java 11 попадет под новую лицензию? Тебе это зачем? >2. Почему то .jar собранный при использовании OpenJDK не хочет запускаться, выдаёт ошибку типа проверьте установку Java. Скрин сюда. >3. Что за ебанутая система версий. Как я понял: есть через что запускается(JRE) и есть инструмент разработчика(JDK). Почему JDK версии по типу 8, 11, 14, а JRE 1.8.0_251. Какая версия JRE нужна что бы запустить программу использующую JDK 14? Есть ли обратная совместимость? Хуйня полная, есть версия и апдейт как 1.8u251 Начиная с джава 11, JRE уже не делают, теперь везде JDK. Чтоб запустить, нужно 14 и выше. Обратная совместимость - это когда ты программу для ждк 14 запустишь через 10 лет на ждк 22
>>1666587 > Неправда, см. пикрил. Так потому что у тебя JDK 8
>Для JDK 14 нужна JRE 14. Обратная совместимость не так работает: JDK 9 запустится на JRE 14, а не наоборот. А где скачать JRE 14? И как понять что у тебя она установлена? Я вот скачал последнюю версию java с офф сайта. Версию показывает пик2
>Начиная с джава 11, JRE уже не делают, теперь везде JDK. Чтоб запустить, нужно 14 и выше. Обратная совместимость - это когда ты программу для ждк 14 запустишь через 10 лет на ждк 22 Чтооооооооооооооооооооооооооо. То есть что? Я даже в голове не могу вопрос сформулировать, нихуя не понятно.
>>1666594 В натуре пиздец какой то. Ладно, попробую так: Я хочу что бы моя программа была максимально доступна. Какую версию использовать при разработке?
>>1666599 С каким "моим"? Если ты про Хеллоу Ворлд это я для теста вывел, что бы проверить вновь установленный JDK. И в чём проблемма написать если знаешь? Это же не код за меня написать а просто сказать "jdk11 не попадает под новую лицензию" или обратное.
>>1666598 Блин там нету files.readString который очень желательно нужен, так как удобный.
>>1666594 >А где скачать JRE 14 JRE 14 идет в комплекте с JDK 14 в папке bin. С новой политикой лицензий JRE от оракла теперь отдельно не распространяется. Они хотят чтобы ты со своей программой - джарником-хелловорлдом - поставлял весь JRE сам платя за лицензию, т.е. чтобы конечному пользователю не нужно было ничего больше скачивать. Если честно это пиздец. Я там выше рассматривал ситуацию Electron vs PWA, и где весь мир идет по пути уменьшения лишних избыточных библиотек, оракл идет им навстречу заставляя JRE паковать к себе в приложение. И ладно если ты в JetBrains работаешь, а если ты пишешь хелловорлды?
>>1666613 >пользователю который просто скачал с java.com джаву Именно от этого они хотят уйти - пользователь не хочет никуда ходить и что-то скачивать. А если всё-таки скачал, то java -version подскажет что он может запустить, а что нет. >Но 11 сможет? Вопрос без контекста - какую именно версию он скачал с java.com? Выше уже все расписали несколько раз.
>>1666650 tldr: у одного из создателей-кодеров клаудфлары обнаружили разжижение мозгов, обусловленное генетически. астральная атака на этих монополистов таки сработала!
обновил идею до 2020.1 и за день дважды просила увеличить выделяемую ей память.. до этого 2 года работала с дефолтной настройкой на 750мб и не ворчала, а тут захотелось ей побольше памяти.. это что они такого сделали, что памяти теперь требуется много больше? или это только у меня так?
Есть такой код(пик1). Создаётся окно размером 1280 на 720, но как я прочитал из за стиля окна реальное поле рисование получается меньше. Ширина вместо 1280 равна 1262 к примеру. Для решения этого нужно указать размер JPanel в ручную. Если в конструктор пишу this.setBounds(0, 0, 1280, 720) это не даёт никакого эффекта. В интернете все примеры создают сами JPanel, но как тогда там рисовать я не понимаю. Помогите пожалуйста. Если даже создаю ещё один JPanel, указываю setBounds и уже на него добавлю Main с JPanel то отображается только маленький квадратик посреди окна.
>>1666680 Только сегодня тоже перешёл на 2020.01, у меня такого не было
>>1666740 >However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work.
>>1666765 Уже лучше, спасибо. Но размер внутренней клиентской области (без учета 1px бордера и 30px заголовка окна) - 120x100, даже если задавать setBounds(0,0...), в чем причина, что за отступы дополнительные? И все-таки надо бы понимать почему просто setSize() или w,h внутри setBounds() не работают?
> нахуя Мне самому эта хуита не нравится, они идёт вразрез с "There should be one-- and preferably only one --obvious way to do it". В PEP8 нет жёсткой рекомендации использовать что-то конкретное.
А в идее есть функция "вынести из проекта только сорцы в отдельную папку"? Какой-нибудь export... Ну как в гит, где мы лишнее не закидываем благодаря gitignore.
>>1665526 Не мог ты подсказать почему не работает? Че-то я вообще не догоняю как это работает. Вот пример, ошибка. Ну вроде бы виноваты скобки {}, но если убрать деление и подставновку символов /n , то на скобки похую, оно сработает. Если оставить деление и подставновку символов /n, но из таргета удалить эти скобки {}, то ошибки не будет, но и подставновка не сработает.
>>1666902 Ты не можешь проще примеры делать? Как у меня? Если у тебя что-то не работает - упрощай, а не пытайся разгрести это говно нахрапом всё, там же ошибка на ошибку настакивается. Я вот навскидку не могу сказать в чем проблема, я глаз сломал минуту разглядывая этот пример. Выкинь для начала кавычки двойные, они сильно усложняют тебе всё. Какая ваще разница, пример же? Далее, когда заработает минимальный пример тогда уже наращивай. Щас забью твой пример, посмотрю что можно сделать
И еще за правило возьми скрины делать с номерами строк, и ошибку тоже постить со стактрейсом. Я вот конечно догадался что в ошибка возникает методе replaceFirst() потому что в тексте ошибки фигурирует pattern, но все равно это время. Это все в твоих интересах же, чтоб тебе быстрее помогли.
>>1666904 >Почему эта строка вторая выглядит не как первая? Почему не синим цветом кавычки? Почему черным уветом скобки? В чем разница? Это из-за того что IDE догадывается что testTarget используется как regexp и пытается его подсвечивать соответственно. Ты потом немного редактируешь, причем неправильно, паттерн, и передаешь в функцию. Но паттерн в результате выглядит как говно: на первом месте фигурная скобка, хотя это начало квантификатора и просто так идти не может. В общем у тебя паттерн составлен неправильно, щас исправлю.
>>1667282 Это гиперскил который? Видел там ищут трейни без опыта задачки писать. Тот же жавараш без картинок/кодварс. Как по мне пустая трата времени. Имеет смысл немного попердолиться только если хочется получить лицензию на пару месяцев на все продукты жидбрейнс.
Сейчас изучаю жаву по жопараш и хортсманну. Первое планирую скоро бросить, тк не стоит того прошел почти 20лвлов Так вот, куда идти дальше? Многопоточность, спринг или бд? Как лучше расписать дальнейший план обучения, что бы посоветовали добавить и на что сделать особый упор?
>>1667338 > Многопоточность На уровне Хорстманна более чем достаточно, прям глубинно задрачивать потоки смысла нет. В спринге они не понадобятся, действительно заморачиваться с ними придётся очень редко.
> спринг или бд Лучше сначала БД, без этого далеко не уедешь. На уровне создания таблиц, юзания джоинов и транзакций. Поначалу задрачивать смысла тоже нет, хватит базового курса.
Ну а затем спринг и можно EE чуток. Понять, что такое DI, дальше потыкать несколько туториалов по MVC/REST/JDBC/Data JPA.
>>1667506 Так работают преобразования типов. Если хоть один из операндов - вещественное число, результат будет вещественным, иначе - целое. 5 / 9 = 0 5.0 / 9 = 0.55555...
Операции умножения/деления выполняются слева направо, и если где-то встретился промежуточный вещественный результат, дальше вычисления будут с вещественным типом. degreesF-32 в результате даёт вещественное число. При умножении на 5 получаем вещественное число и т.д.
>>1667509 Бля от души спасибо. Однако если я переставляю вперед и делаю как ты сказал,то у меня в результате единица после нулей появляется,а если не переставлять то не появляется.Почему так?
>>1667532 То есть если оставить рабочую версию,кторую я в посте сначала указал,то результат 38.0,а если деление вынести вперед и сделать 5.0/9 то получается 38.000000000001
>>1667530 Да, только в первом случае у него сначала 5/9 вычисляется в 0 и умножается на остальное, а наоборот нуля не будет.
>>1667535 На ЭВМ не все числа можно представить точно, есть ограничения. Для double, если повезёт, можно рассчитывать на точность в 14 знаков, дальше идёт мусор. Для float вдвое меньше.
>>1667560 Это не столько недоработка, сколько аппаратное ограничение. В 64 бита тупо не вместить больше. Да и точность нужная не настолько часто, но если нужна, можно взять программную реализацию арифметики, например, BigDecimal, там храни хоть тыщу знаков.
>>1668009 1) Это никогда не станет бутылочным горлышком в твоем приложении 2) Код приведи, непонятно что в твоем понимании "перебор в цикле" 3) Сделай простейший бенчмарк, это тебе по силам: long start = System.currentTimeMillis(); // или nanoTime() for (int i = 0; i < 10000000; i++) { / code here / } long time = System.currentTimeMillis() - start; 4) Изучи скомпиленный байт-код
>>1668017 Оффтопом хочу сказать что не всегда так можно померять так как в jvm есть такая хуйня как dead code elimination из-за которой jvm просто проскипает команды если там будут бесполезные вычисления
>>1668455 Копайся в декомпилированном коде. Рано или поздно наткнёшься на native-метод и увидишь, что дёргается некая dll-ка. Дальше дизассемблируй эту dll-ку и копайся уже там. И однажды найдёшь, откуда эта строчка.
Аноны, доброго времени суток. Прошу пояснить за GeekBrains. Я гуманитарий до мозга костей, но начальные знания по программированию, благодаря приличному преподаванию информатики в универе, присутствуют. У меня есть достаточно времени и баблишка, чтобы пройти полный курс по Джаве. Да-да, хочу ВКАТИТЬСЯ В АЙТИ, господа гусары. Стать разработчиком, открыть для себя новую сферу развития, как хотите называйте. И нет, Дудя я не смотрел. Мне просто это пиздец как интересно. Однако, меня много чего смущает. Есть ли тут товарищи, которые на этом "факультете" учились, чтобы на мои вопросы ответить?
1. На GB много задвигается про трудоустройство. Послушайте, реально после успешного прохождения годичного курса трудоустроиться хотя бы джуном? Они хоть какие-то вакансии предлагают, или это просто КАРЬЕРНАЯ КОНСУЛЬТАЦИЯ?
2. Насколько котируется сертификация GB у работодателей? Я много слышал о том, что в разработке в принципе важен опыт и реализованные проекты, а не сертификаты и дипломы - тем не менее, я считаю, что необходимо показать какой-то бэкграунд.
3. Что, по вашему мнению, лучше? Курсы в GB или полноценный очный курс в вузике? Есть возможность проплатить и пойти в Бауманку поучиться. Цена одна и та же примерно, но я работаю и хочу таки дистанционку.
Есть книги на русском по 9 и по 8 версии. Какую выбрать для начала? Выше по треду читал, что 9 устарела, а 8 нет и на ней работает большинство. Но 9 таки свежее. Посоветуйте.
Не могу установить в нетбинс JavaFX,библиотеку скачал и добавил,но все равно выдает
Failed to automatically set-up a JavaFX Platform. Please go to Platform Manager, create a non-default Java SE platform, then go to the JavaFX tab, enable JavaFX and fill in the paths to valid JavaFX SDK and JavaFX Runtime. Note: JavaFX SDK can be downloaded from JavaFX website.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Вкатиться нелья, ты должен был родиться программистом.
https://github.com/random76/Java-Thread/wiki
https://github.com/qqqlll/Java-Thread/wiki