Вы видите копию треда, сохраненную 8 марта 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
System.out.println("Счет:" + addTea);
Вместо значения переменной addTea у меня выходит Счет: order.drink.Tea@27973e9b
но дискач
Может знаете годные открытые репы с годными проектами.
Анонанасы, покидайте пожалуйста идей для каких-нибудь проектов, которые потом будет не стыдно залить на гитхаб. Пытаюсь вкатиться в джуна
Перекатываете тред до 1000 постов. Впрочем, судя по активности треда в последнее полмесяца, всем похуй. Ну и ладно.
> Java #15 thread /java/ /java/ /java/
/java/ не нужно копипастить, это добавляется автоматически при добавлении тега. Это я в прошлый раз проебался и скопипастил
> >>1537764 (OP) (OP) (OP)
Ну и с этим всё понятно, (OP) добавляется автоматически, поэтому хватит только циферок.
В общем, продолжаем исследовать макабу.
Проблема только сверстать вот эти всплывающие посты при наведении. Хотя в некоторых старых этого эффекта нет, можно первое время без этого.
Делать много чего придётся. Прикрутить markdown, просмотр картинок, подписку на треды и т.д.
Да и пусть ещё тег [pre] будет, который не съедал бы отступы и разметку.
В смысле блядь модно?
А вместо метанита читать высер «Хед фёрст жаба»?
Кто эту моду задаёт? Моча?
Для тех, кто не любит читать книги, есть соседний тред, его название по чистой случайности тоже начинается на "Java".
Это все порождение смузихлебских фич джавы и фреймоврков для идиотов.
Хочу перепилить на Spring Boot (шоб модно, современно), причём так, чтобы вынести модель с логикой внутри в отдельный веб-сервис, так как логика, которая написана в классах модели мне понадобилась для ещё одной поделки. И типа из одного веб-сервиса буду обращаться в другой.
Как вам вообще идея?
Как правильно пишутся такие приложения?
Если бы это не было веб-, я бы наверное сделал либу .jar, куда запихал бы классы модели с логикой внутри и подключал бы этот jar и в сервисе и в другой поделке. Но тут веб и я не особо понимаю как вся эта херовина явовская работает.
И второй вопрос к Ява господам. Если я работаю с чужой базой, где не пахнет нормализацией, внешними ключами и прочим, на сколько безопасно с такой базой пользоваться какими-то ORM-ками? Мало ли что там эти ORM-ки по-умолчанию наделают, я как-то очкую.
Норм идея. Попробуй.
ORM пользоваться вообще небезопасно, в них дохуя подводных. Если и будешь юзать, тестируй каждый случай.
Сервера на джаве ахуенны(нет)
>я бы наверное сделал либу .jar, куда запихал бы классы модели с логикой внутри и подключал бы этот jar и в сервисе и в другой поделке
Вот так, скорее всего, лучше и сделать. Веб это не запрещает. А дробить на отдельные сервисы, просто потому что можешь, это так себе идея. Только когда будешь сам хорошо понимать, зачем тебе это нужно и чего это будет стоить.
>Если я работаю с чужой базой, где не пахнет нормализацией, внешними ключами и прочим, на сколько безопасно с такой базой пользоваться какими-то ORM-ками?
Не важно чья база. В любом случае с ORM надо работать так, чтобы никакой непонятной магии без твоего ведома к БД не применялось. ORM позволяет не писать запросы руками, но при этом ты должен все равно сам понимать, какие запросы в какой момент выполняются. Если пока не понимаешь, лучше сначала изучи инструмент получше, чья бы там ни была БД.
Мне нужно нейронке скормить изображение с камеры смартфона, а она принимает только массив чисел 28х28.
пишу свой
https://developers.google.com/android/reference/com/google/android/gms/vision/Detector
а если точнее метод detect(Frame frame), где фрейм -
https://developers.google.com/android/reference/com/google/android/gms/vision/Frame.html
Что делать, если каждая вакансия для моего стека это настраивание маппингов в хибернейте (буэээ), ковыряние ебанутых багов энтепрайзных фреймворков (вуэээ) и клепание фабрик одиноких весенних бобов СервисЫМПЛ экстендс Сервис?
Платят за разгребание этих помоев - хуй да нихуя. На собеседованиях ебут задачками с литкод, а после заставляют пахать по 14 часов в день.
спасибо
Ты просто вакансии не умеешь искать. На жабе тоже много чего интересного поделать можно. Конкретно смотри в сторону хайлоада (например). Хадуп вот это все
Полистал сегодня книжки. Какой же кайф читать. Особенно когда понимаешь мелочи.
Ни каких тебе опечаток или перепутанных глав.
Есть вообще советы по хорошему методу чтения книг по языку? кроме как писать больше кода
Это как размышлять как правильно подметать комнату - от себя или к себе.
Но вообще смотри спринг бут, по нему чисто визуально больше вакансий можно найти для жуна.
Переписывать и ковырять каждый листинг кода в книге.
1. Насколько легко вкатиться джуном.
2. Перспективы (Не сдохнет ли кто-то из них и не выльется ли работа со стеком в пердолинье с легаси говном лет. Наверное на Enterpise мужики еще под 4 или 5 джаву пишут чтобы поддерживать старые проекты.)
3. Интересность (лично для вас). Расскажите какие проекты у вас были, чем именно занимались и т.д.
Допустим вы могли бы написать самому себе в начале обучения языку куда идти и что делать. Что бы вы написали? Помимо "купи биткойн, не иди в джаву" и т.п.
Пожалуйста, прошу отнестись к этому максимально серьезно, ведь я не просто так позволяю анонимам с оранжевого сайта решать свою судьбу. Скажите что андройд заебись, пойду туда, нет, так буду на спринге приложеньки писать. Добра.
я думаю, что стоит хотя бы год поработать там или там. Так или иначе опыт наберешь в реальном программировании, если ты до этого не работал.
пруф
Прочитал и заплакал.
Мысль дельная, но не хотелось бы убить кучу времени в обучение Spring + Hibernate чтобы джуном вкатиться, а потом понять что это не моё. Как мне кажется в Android порог всё же ниже (так как там меньше всяких фреймворков да и старые версии тупо не поддерживаются), наверное стоит начать с андройда, если не понравится, то идти в энтерпрайз. Хотя, возможно, я заблуждаюсь.
>>возможно я заблуждаюсь
У тебя трипл, жопой смотришь? Не знаешь древних законов двача?
трипл не пиздит
Не заметил трипл, тебе суждено в андроид идти.
Недавно создавал почти такой же тред. Аноны убедили, что андроид дев все же лучше, и я уже был готов вкатываться, но потом передумал из-за формошлепства и привязанности к ос, да и вообще программирование мышкой не по душе пришлось. В итоге, вкатываюсь в java ee.
По твоему вопросу:
1. В ад порог намного ниже;
2. Никто не сдохнет, в ee легаси много, но в этом ничего страшного нет;
3. Лично я думал, что ад будет для меня интереснее, но оказалось наоборот. Серьезных проектов пока не имею.
Ну а вообще, что то, что это - сорта говна.
Тоже интересен этот вопрос. Так же стартую в java, и думаю в андроид вкатиться, поэтому очень интересно ваши мнения.
Для джуна нормально.
Вкатился в кровавый прошлым летом. До этого был опыт преимущественно в байтоёбстве 7 мес. + 6 лет учёбы. Как результат, на момент ухода из байтоёбства з/п была 37к, сейчас 90к. Не утверждаю, что в дроид дев такое невозможно, просто факт. Сорта-не сорта, но денег тут хватает. Работа в целом интересная и пока не надоела. Многое, конечно, зависит и от проекта, и от коллектива в целом, и от технологий на проекте. Верно сказали, что пока не попробуешь - не узнаешь. Я и в гей-деве был пару месяцев, и байты ксорил на железе, и на питоне скриптики писал. Java + Spring пока самое интересное, что со мною случалось. Не бойся "проебать" год на другие фреймворки, бд, языки. В ИТ любые знания важны, чем шире кругозор - тем больше ты ценен как специалист. Мне недавно на работе сказали - "О, ты ещё и верстать умеешь?!?" ... как-будто это что-то капец сложное и невероятное для джавера нашего времени.
По поводу "насколько легко вкатиться" - просто не сцы. Я залетел со схожестью стека ~1% (Git) и ничего, потянул. Всё равно твои первые задачи будут а-ля "иди подотри говно за тем мидлом, а то у него чёт сломалось" или "напиши эту монотонную повторяющуюся херню, которая сбилдит всю нужную конфигу, т.к. всем остальным лень". И так будет ровно до того момента, пока ты сам не скажешь "Так, блять, я вообще-то программировать сюда пришёл. Дайте норм задачу, желательно сложную." Главное не делай этого на самом старте, т.к. говно энивей кто-то должен поубирать. С этого момента тебя начнут уважать, если справишься конечно. Далее можно уже просить надбавки/повышения и прочее-прочее.
В общем как-то так, немножко своего жизненного опыта тебе для размышлений.
Может, мне просто так хотят ненавязчиво показать эти механизмы обработки, чтобы я просто знал, что такие есть?
>Ты просто вакансии не умеешь искать.
99% всех вакансий на HH - это помойный энтерпрайз или андроид разработка. Остальной 1% - это конторы с зубодробительными собеседованиями по типу Дойче, Яндекс и прочих ГридГейн. Туда берут исключительно олимпиадников и прочих умненьких школотронов.
Ещё есть метод читать несколько разных книг на одну и ту же тему. Если из прочитанной книги в голове остаётся только малая часть, то каждая следующая дополняет твои знания.
Ну хуй знает. Я осенью подавался в пяток хороших продуктовых контор, не "компаний мечты", но интересных и с плюшками. Интервью были вполне человеческие, почти без кодинга на бумажке и олимпиадных задач уровня хард.
>Интервью были вполне человеческие, почти без кодинга на бумажке и олимпиадных задач уровня хард.
Звучит как фантастика. Что хоть за компании были?
Ищите да обрящете. Все как одна "западные" компании, созданные выходцами из России, где и сидит вся разработка. Используя Glassdoor, Хоху и интуицию, можно за вечер подобрать с десяток хороших мест в моём городе (ДС2), без тырпрайза, бинарных опционов и ИП Ерохин И.А.
>Все как одна "западные" компании, созданные выходцами из России
Ну так сюда как и попадают ДжетБрейнс (Чехия), Яндекс (Нидерланды), ГридГейн (США). Видимо я просто не правильно ищу. Ладно, проехали...
Для начала скажи, разные ли сущности используются для успешного ответа и ошибки?
Вряд ли ты найдёшь "не говнокод". От сырых сервлетов и JSP отказались не от хорошей жизни.
Ну да, жсп же в него компилируется.
А если JSP с кастом тегами? Классика энтерпрайза, говорят. Я другой анон, но двачую реквест. Для спринга, к примеру, есть эталонный проект Pet Clinic.
Так оно вам нафига, именно на голых сервлетах и jsp? Но если очень надо, берете какой-то спринговый пример и переделывайте в лоб контроллеры на сервлеты. jsp используйте тоже как в спринге - только для отображения данных, которые уже в подготовлены в сервлете.
Без jstl и подобного говнища неизбежно придётся в подготавливаемые данные включать разметку. Без этого таблицы/списки тупо не вывести.
Пишут. Не стоит.
Это уже геймдев, а не десктоп гуй.
толсто нахуй
Хочется не бездумно бобы гонять по инструкции, а, как ты, понимать суть происходящих внутри процессов. Тот же спринг лично для меня всё ещё похож на какую-то магию: "дети, это невозможно понять, это нужно запомнить". Что такое DI и IoC вроде в общих чертах понятно, но на простых примерах всё это выглядит избыточным.
Точно так же, как и все остальные - ставятся через менеджер пакетов твоего лялеха. Другой вопрос, что таких приложений в принципе мало.
Я не только про линукс. Как будет выглядеть то, что будет ставиться через менеджер пакетов, и как это собрать?
По архитектуре советую почитать Patterns of Enterprise Application Architecture Фаулера. Там он поясняет про типовые архитектурные решения, что такое эти контроллеры, сервисы и прочие репозитории, и зачем они нужны.
Абу, похоже, не разрешает прикладывать pdf, так что вот тебе ссылка на яндекс:
https://yadi.sk/i/2FaPbYC6Sdx-rQ
Иди нахуй, гандон.
Ставиться будут, скорее всего, жарники. Почти наверняка с ними будет идти какой-нибудь запускатор на баше/cmd со строчкой типа "java -jar /path/to/awesome-package.jar". На линуксе этот запускатор ляжет куда-нибудь в /usr/bin.
Ну или, если source-based дистр, докачается jdk, а вместо жарников будет архив с сорцами, который тупо соберётся в жарники, а дальше предыдущий пункт.
В этом всём нет ничего удивительного, многие утилиты вот на питоне пишут, и они тоже ставятся почти аналогично.
Все прекрасно, но при чем тут конкретно сервлеты и jsp? Если хочется разобраться со спрингом, нужно использовать спринг. Хочешь сделать веб-приложение на джаве, но без избыточного спринга? Возьми, например, javalin.
Пардон, не тот файл выложил. У меня их несколько на диске лежит. Вот правильная книга:
https://yadi.sk/i/Ql3vmDweZY9KQg
Вирус на джаве, который просит пойти на сайт оракла при отсутствии жвм на компе.
Ну там, есть сколько то чисел. Если хоть одно из них такое-то - верните true.
И вместо того, чтобы ставить бесконечное || просто суммировать, мол "true - это единица, а значит её можно приплюсовать".
Ну и в варианте, если нужно вернуть количество подходящих чисел, чтобы лишним не ебаться.
>хотя мне похуй
И правильно. Нет большого смысла в этой защите от инстанциации. Но вообще абстрактный класс позволит создать экземпляр производного класса.
Да, abstract final нельзя сделать. Так что похуй.
Я с 25-ти. Сейчас 29. Уже смог подняться с уровня "о, погромирование! че-то далекое, но можно попробовать. а что такое ООП?", до "пожалуй, вэбом больше заниматься не хочу".
Возможно я не так выразился: у меня нет дизайнерской жилки, чтобы заниматься html/css/js, И Я КЛЯНУСЬ БОГОМ ЧТО УБЬЮ СЛЕДУЮЩЕГО ЧЕЛОВЕКА КОТОРЫЙ МНЕ СКАЖЕТ, ЧТО ВСЕ ДОЛЖНО ВЫГЛЯДЕТЬ "ВКУСНО"!
В теории - да. На практике, нужно мириться с цыганским вкусом незнакомых людей, которым желтым по зеленому - ебать, какая цветастая красота.
Короче, мне это просто не понравилось. Пусть другие люди на этом зашибают по 300к в наносек.
Сейчас на работе ковыряю автотесты на Питоне, но хочу попробовать вкатиться в погромирование по-настоящему.
Странно, ведь в энтерпрайзе жабник не должен париться над вкусной версткой, максимум - сверстать пару дефолтных кнопочек. Или я чего-то не знаю? Мне так-то тоже верстка не по душе.
Надо знать, чтобы переделывать в нормальный код после смузихлебов.
По идее, обычно возвращаться должен JSON и код 200, а при ошибке - код ошибки и её причина в теле ответа.
Охуеть критерий, давайте тогда писать всё на жопаскрипте, там вообще ничего перекомпилировать не надо, блеать.
Malbolge.
Делаю пет проект на Spring Boot - Web. Хочу сделать REST api, и к нему клиент на React. Имею вот такую структуру проекта - пикрил. Тоесть файлы фронтэнда лежат в ./main/src/webapp/ . При попытке собрать проект мавен добавляет все файлы из webapp/ в target/classes. Я же хочу, чтобы в target пошел только бандл, собранный вебпаком, а не исходные файлы вместе с npm модулями. Из за всех этих файлов время билда просто огромное.
Пик 2 - что получается при компиляции
Подскажите, плиз, как исключить из target все не нужное?
>ОРМ нет, билдера запросов нет, запросы через обычный стринг, возможно даже с помощью конкатенации
https://govnokod.ru/26204
Можно через maven-frontend-plugin собрать в какой-нибудь произвольной папке, из которой мавен сам ничего не копирует, а затем через maven-resources-plugin скопировать содержимое build в target/classes/public.
КАКОЙ БАГОР)))
>ORM
Не нужно.
> билдера запросов нет
Билдить-то и нечего. Тупо выбираются все записи из таблицы. Ни опциональных блокировок, ни десятка меняющихся фильтров, ни подзапросов, ничего нет.
> возможно даже с помощью конкатенации
Пиздец. Даже в низкоуровневом JDBC есть тривиальный PreparedStatement, но кто-то и его не осилил.
>Билдить-то и нечего. Тупо выбираются все записи из таблицы. Ни опциональных блокировок, ни десятка меняющихся фильтров, ни подзапросов, ничего нет.
Ну это только в данном куске кода. Это же не вся картина
>Билдера нет. На сколько мне известно, в Java есть несколько специальных методов в java.sql.Statement для этой задачи (экранирование). Только вот какие - не знаю.
Хз, одни какие-то озлобленные уебаны, судя по комментариям. Всегда неприятное чувство после посещения остается, как будто в обосранный толчок пришлось сходить.
У нас несколько тредов назад также было. Даже забанили кого-то, потому что посты пропали резко.
В /b/ ещё хуже.
Расскажешь подробнее, пожалуйста?
Тоесть фронтенд будет лежать в папке с остальным проектом, на том же уровне, что и pom.xml, в какой то папке, к примеру /frontend/, затем frontend-maven-plugin собирает его, используя вебпак, а maven-resources-plugin включает нужній мне бандл в билд, так?
Я так делаю. Мне не нравится этот способ, но ничего лучше я не нашёл.
>именно поэтому сам перекатился из джавы в ios
Анон, расскажи, пожалуйста, как оно? Что больше нравится?
Сам сейчас стою на пути выбора: либо энтерпрайз жаба в зеленом банке, либо идти в iOS разработку (благо друг крепкий мидл, сможет держать по нужному курсу).
вкат довольно тяжелый, как мне показалось, но благо были задачи, которые мне предложили сделать (допилить приложуху для бизнеса, до этого пилил на джаве как раз серверную часть)
как по мне, джунам вкатиться реально сложно,но, если у тебя есть знакомый, то однозначно рекомендовал бы
тусуюсь во въетнамах, таях, бали и мне доставляет намного больше
в джаве получал 130, сейчас около 200-250 - сколько задач успею сделать
Благодарю за ответы!
Ну а конкретно о самих задачах хотел узнать:
Понимаю, что я, наверное, могу бредовый вопрос задать, но даже тут часто вижу споры о том, что якобы есть программирование серьезное (типа того же бэка на яве для бизнеса), а есть формашлепство на фронте (те же мобилки, как я понимаю, это тоже фронт по большей части, в эпоху веб-сервисов). Мне, на самом деле, важна не только предполагаемая возможная ЗП, но интерес к самой предметной области задачи, отсюда и вопрос. Так вот, не ощущаешь ли ты какого-то даунгрейда в интересе к самим задачам, а также их значимости? Я вот, например, уже эплоёб со стажем, хорошо знаю и имею интерес к самим системам iOS/macOS, хорошие решения в UI/UX уже как-то осознаю на интуитивном уровне, применительно к этим ОСям. Но в то же время понимаю, что, наверное, весь самый "сок" и весь "бизнес" идет в бэке, где проектируют и пилят сами веб-сервисы, их логику. Да и общий тренд на услуги как it-сервисы сейчас актуален во всём мире. Вроде пока с изучением программирования сложностей не имею, но всегда так же был интересен и сам бизнес, а не только сухая тех часть хотя это тоже достаточно интересно всё. Почему то для себя думаю, что в бэке ты к нему как-то поближе, что ли. Поэтому хотелось бы услышать твоё мнение, как уже опытного прогера.
В общих чертах, именно мои задачи действительно сводятся к тому, чтобы пользователь видел удобный интерфейс. Но как раз у меня получается полный цикл от сбора требований у пользователей, до написания с последующей визуализацией.
Интерес не пропал, потому что мне доставляет то, что пользователи (коих больше 8 тысяч в компании, ключевых-около тысячи) пользуются приложухой повседневно для решения проблем. Поэтому, как понимаешь, у меня работа и аналитика и разработчика и поддержки и всего сразу.
Вообще, не могу назвать себя ОПЫТНЫМ, просто мне дохуя повезло, что есть богатый заказчик и знакомая рп, которая как раз тащит заказчика, предложила мне перейти в ios, поучить дома пару месяцев азы и начать допиливать приложуху
> WORA
Который можно отнести не только к жабе, но и к питону/пхп/руби/etc.
> в век докера
Раньше приходилось везде тащить виртуальную машину, теперь приходится тащить докер. Кроме того, что на десктопе докер неприменим, а на винде ещё и работает через жопу, мало что изменилось.
> Кроме того, что на десктопе докер неприменим, а на винде ещё и работает через жопу
У меня есть рабочий комп, не важно на какой системе.
На рабочем компе стоит виртуалка Linux.
В эту виртуалку проброшена (замонтирована) shared папка, где у меня лежат исходники
На виртуалке работает докер, где я запускаю всё что мне надо
А на рабочем компе у меня открыта IDE через которую я редактирую код
Я отредактировал код и тут же посмотрел как он работает, выполнив команды на виртуалке
При этом мне:
1) Без разницы какая система у меня на рабочем компе
2) Без разницы какой дистр и софт на виртуалке, от неё мне нужен только докер и проброс папки
Что скажешь?
Скажу, что пытался у себя сделать то же самое, но столкнулся на семёрке со следующим:
- нужно качать легаси-версию, современная есть только для десяточки.
- проброс портов приходится делать вручную через настройки виртуалбокса, флажок -p сам ничего не делает вопреки тому, что сказано в мануалах;
- тома отваливаются, и ничего с этим не сделать. На хосте кидаешь файл, на виртуалке он не появляется. Или иногда появляется. Или передача файлов может работать в одну сторону. В общем, нестабильно. Когда гуглил, видел на гитхабе задизлайканый пост от разрабов, которые отказались это чинить.
Может, на десятке всё работает. Но нахуй мне это всё тогда нужно, если JVM работает и без этого даже на XP?
Может, винда вообще не нужна, потому что нужно использовать лялех. Но тогда не надо гнать на "WORA в эпоху докера".
Как ты дебажишь? Ремоут дебаг и пробрасываешь порт через докер и через виртуалку?
Понял, еще раз спасибо за ответы
Давно уже исправлен, когда придумали снап. Следующим шагом будет тащить по докер-контейнеру на каждое приложение.
а нельзя просто в папочку копировать приложение и запускать, как во всех нормальных системах?
Можно, конечно. Но в лялехе так не принято.
Открой гитхаб и поищи по тегам, там много всего.
>>569827
А этому есть какое-то объяснение? Я просто помню как-то видел несколько штук вакансий именно классический стек а-ля java + spring + postgres УДАЛЁННО! И видел так же на го и пайтонах удалённые вакансии на бэк. Но при этом часто слышал мнение, что удалёнку на жаву бэк хуй найдёшь, а вот когда разговор идёт о го\пайтоне\любом_другом_яп - эт пожалуйста. Бля и чё теперь го начать активнее изучать?! Хочу удалёнку + бэк!
+ хх.сру показывает след. статистику
6 396 вакансий «java»
1 374 вакансии «go»
—
315 вакансий «java» удалённо
293 вакансии «go» удалённо
Когда в go появятся дженерики, будет наоборот. Вы еще придете к нам перекатываться.
>6 396 вакансий «java»
>1 374 вакансии «go»
>—
>315 вакансий «java» удалённо
>293 вакансии «go» удалённо
Ты пропорцию не можешь составить? Раздели кол-во удаленки на все ваки, проценты найдешь.
Пичот из-за срача в пщ-треде?))0
В общем суть. Может кто сможет подсказать.
Есть два файла. Один в zip архиве, другой просто лежит рядом. Надо сравнить одинаковые они или нет.
В данный момент я читаю файлы побайтово и сравниваю полученные строки. Получается очень долго. Если файл весит пару мегабайт, может получится несколько минут.
Я вижу два варианта.
1. Пробовать читать буфером. Но я не могу найти как читать ZipEntry в буффере. Во всех примерах дают чтение по битам.
2. Как-то быстро сгенерировать хэш. Но я так понимаю для этого всеравно необходимо сначала прочитать весь файл.
Есть идеи?
ZipInputStresm в Buffered InputStream заверни. И сравнивай сразу блоками по несколько байт, Arrays.compare или вроде того.
> хеш
Да, всё равно нужно считать, но тут ты сразу читаешь блоками, ибо так удобнее и при этом сравниваешь только хеш-сумму в конце. Возьми sha256. Тот crc, что уже есть в zip, плохо подходит для сравнения файлов.
Ты имеешь ввиду ZipOutputStream в BufferedInputStream наверное? Главное чтобы можно было взять конкретное entry. Файлов может быть несколько. Попробую. Спасибо.
Осталось ещё найти способ магически влиять на часть от которой процент берется, а пока тебе придется смотреть на конечные цифры, а не абстрактную пропорцию.
Просто идет укрупнение рыночка и стопицот велосипедных крудов востребованы всё меньше и меньше, поскольку всё меньше и меньше клиентов с нестандартными бизнес-задачами, которых бы не покрываел условный 1C.
Кто успел вкатился во первой половине десятых в сап нетвивер и хану и завел трактор.
>Ремоут дебаг и пробрасываешь порт через докер и через виртуалку
У меня такой конфиг, да. Очень удобно было до тех пор, пока ресурсов хватало на запуск нашего проекта на локальной машине, а потом он неприлично разжирел.
salesforce как вендор хорош
есть еще и sap облачный
только тут привязка к специфике бизнеса и языкам, которые только в этих платформах (за исключением всяких груви, джав и жсов в сап)
да и не так уж дохуя же вакансий по этой crm, не?
Господа, 2 года работаю Го девом полет нормальный, но я понял что жаба, например перспективнее го.
Ну вот например:
1/ жаба сложнее
2/ на жабу больше вакансий
Есть у кого кейсы смены стека в таком виде ?
Или придется с самого начала подниматься ?
Жаба несложная, но вот стек у неё при взгляде со стороны ебанутый.
Троллишь? На го с руками отрывают и кучу денег дают. Разве что ты считаешь джаву более "серьёзным" языком и переживаешь по этому поводу (см. комплекс фронтендера). Готовься ощутимо понизить себе зарплату на ближайшие пару лет.
maven.apache.org
или oca/ocp
hyperskill.org попробуй. интерактивный туториал от jetbrains. я щитаю, что если совсем нулячий, то книги читать - это такое. но, если очень хочется читать, то хорсмана core java первый тома потом второй
>она вообще нормальная?
От head first не может быть ничего нормального.
мимо не читал их высер про жаву
Head First была моей первой книгой по Java в частности и по программированию в целом. Не советую. Тоже порекомендую hyperskill.org.
Точно, совсем забыл о ней, читал книгу по Скале из этой серии. Спасибо.
>>573476
>java puzzlers
Бегло посмотрел - выглядит весьма интересно, благодарю.
>>573483
>head first java
Ищи то, что подойдет именно тебе, чтобы не забить на неё после прочтения первых нескольких страниц. Полистай разные варианты, чтобы примерно прикинуть стиль изложения материала. Но не трать слишком уж много времени на поиск, идеальную книгу не найдешь - просто обращай внимание на достоинства и недостатки.
>2012 год это не слишком старая?
Нет, не слишком, особенно при отсутствии базовых знаний.
Почему у них practice задания долго грузят? У них же сайт на спринге, наверное.
ебан штоле? нах тебе массив отрицательной длины?
В ней нет многих элементарных вещей. Например, нет перегруженного Random метода, который бы возвращал рандомное число из диапазона, вместо этого приходится писать random.nextInt(max - min) + min.
На жабе пишут, потому что платят, а не потому что это такой охуенный язык.
Слышал про этот класс, но не знал про метод. Ну все равно как-то странно, чтобы выполнить такое же по смыслу действие, надо обращаться к совершенно другому классу.
>явно лучше плюсов
Ну это сильное заявление. Если ты умненький, любишь копание в кишочках и погромирование, то плюсы - идеальный инструмент.
хуяст.
1C решает свои задачи, а не течет памятью, в отличие от.
Последний раз я видел эту шутейку во времена джавы 5. Эх, вот бы джава была написана на джаве
PyPy.
> Любой микрофреймворк мне кажется диким оверхедом для этой задачи
В джаве о таком не задумываются, расслабься и возьми спринг бут. Или возьми другой язык, к примеру, Python+Bottle.
Если именно фреймворк не нужен, есть вариант взять лёгкий сервер типа jetty или undertow и использовать напрямую его api
Видимо на нем и остановлюсь, у jetty апи выглядит менее симпатично.
Вычищаешь спринг из каждого бина,
new Object obj;
Object hui;
hui = obj;
obj.setHuita(12);
То ведь будет существовать только 1 объект и 2 ссылки на него. В каком месте это передача "по значению"?
В жабе все передается по ссылке, кроме примитивов.
Да, ещё минут 20 пораскидывал мозгами и сообразил сам, но спасибо за ответ.
backend круды и микросервисы, биг дата, а клауд почему забыли в пикче?
list.forEach(x -> x instanceof HalfOfCivic ? дейстие 1 : действие 2);
В итоге на все после ? срет "ожидается выражение" list - ArrayList содержащий объекты родителя и наследника.
Пытаюсь вызвать метод HalfOfCivic в первой части, а второй его суперкаласса.
Ясно.
В довесок, что именно я пытаюсь привести к лямбде
for(Civic civic : list){
if(civic instanceof HalfOfCivic){
((HalfOfCivic) civic).casting();
} else {
civic.getWheels();
}
}
ну так сделай шоб без проверки ёпта.
ебани в супер метод типа
doStuff(){
действие 1
}
переопредели его в подклассе
и ебашь
list.forEach(item -> item.doStuff())
Дальше - больше!
public class QuarterOfCivic extends HalfOfCivic{
public void kukareku(){
super.kukareku();
}
}
>>574480
Как сделать с полиморфизмом мне более чем ясно, а без него никак?
>>574481
Не совсем понял, но я же не смогу вызывать у Civic.casting(), .т.к. метод есть только у наследника? Как без условия?
щас бы юзать наследование и не юзать полиморфизм, а проверять на принадлежность к классу и кастовать. это
ПИЗДЕЦ
И
З
Д
Е
Ц
Условие обычным if пиши, как в варианте без лямбды
Чел, я не пытаюсь выставить это как бест практис, я пытаюсь понять как в конкретном приведенном примере это сделать. С пиздецом - пройдись к Хорстману на 220 страницу.
хуй с ним, если это дядя конечеловек просит.
list.forEach(item -> {
if(condition) {
....
} else {
.....
}
})
В варианте с лямбой и тернарником у тебя проебался каст. А вообще ты какую-то хуйню делаешь.
> -> {
Ах ты ж сука, не додумался блок открыть, спасибо.
>>574501
Не сомневаюсь, что с точки зрения ирл приложения оно так и есть. Я пытаюсь всеми способами извратиться, чтобы закрепить. Но просто для примера, пусть у тебя будет родитель Х и наследник Y, у Y есть свой уникальный метод, при этом есть коллекция обоих классов. Как тогда ты предлагаешь вызывать уникальный метод Y при обходе коллекции?
Вот же хорстман сука! Но книга же по 8 жаве уже, что же он падла ножи то в спину пихает?
>Как тогда
ну смотри. половинку цивика ты льёшь, а к целой цепляешь колеса. всё это отлично абстрагируется в build().
Ты предлагаешь сделать переопределнный билд метод для обоих классов? Да это я понимаю и могу, вопрос был как сделать в описанных условиях. Я так-то говнокожу эпизодически с пару лет, но вот дошли руки засесть за учебник и пробую всякое. Так-то я в жизни бы сам не дошел к вышеописанному решению, но не уверен, что это потому что я такой охуенный, а не вопреки незнанию что можно делать иначе чем полиморфизмом.
Это часть языка, и не важно, устарела она или нет. На джаве придётся не только писать новый код с нуля, но и поддерживать старый, с instanceof, Checked Exceptions, StringBuffer, Vector, Enumeration, List из обжектов и EJB.
Нахуя в верхний регистр переводить? И сравнивать надо с Ebaklak.class.getSimpleName().
А нахуй ты diamond оператор сделал при создании листа? Спалился, дженерикосектант.
А почему не с instanceof?
Ну скажем так, подходы к многопоточности и масштабированию со времен актуальности RMI успели уже больше 10 раз поменяться.
Уже и EJB успели и похудеть и сдохнуть, вместе с самим EE стандартом, уступив место весенней велосипедной хуитке про то же самое, успели сдохнуть и вебсервисы, и JMS, и даже сами сервера приложений. Успело попасть в относительно не модный мейнстрим и REST API, сейчас там уже GraphQL в моде.
Пропускай эту главу.
На жабке не только новые проекты пишут. У нас вместе со спрингом используются и ежб, и вебсервисы, и жмс.
Есть и потихоньку переписывается.
главное не с помощю какого метода реализованы апдейт и делит, а как они реализованы. за идемпотентность погромист отвечает сам.
Смотря когда был написан проект и кем. Я видел такое, когда API писалось людьми, которые оч давно в джаве, еще до повального рестоебства. Логика простая - нужно тело - post, не нужно - get.
Если ты задумал переписать, упаси тебя Гослинг, перекраивать существующий API. Пиши рядом новый.
>>575147
У нас юзается, потому что когда-то под это был написан удобный и простой фреймворк. Хотя при этом проекты современные и хайп-поебени там достаточно. Просто это настолько просто конфигурится с этим фреймворком, что никому особо в голову не приходит от этого отказываться
Допустим у меня есть сет объектов у каждого из которых есть поле name и метод getName(). Как мне эффективнее всего создать сет имён всех этих объектов?
>эффективнее всего
пройтись итератором по сету и добавлять результат вызова getName() в новый сет
Прочти документацию, чтобы не было подводных камней и попробуй поменять.
как что-то плохое
STREAM API
Потому что Шилдт не джавист по духу, а всеядный автор справочников по разным языкам.
Ты откуда такой смешной?
А туда ли ты зашёл?
В котлине
Если у тебя чисто отдельный сервис и дальше никуда этот респонс никуда не проксируется, и не обрабатывается, то тебе в принципе можно положить болт и просто слать json со статус кодом. Типа, зачем пилить ради того, чтобы пилить. А вот если это прокси, то тогда нужно. Потому как у тебя и метрики будет проще получать каким-то micrometer да и гибкость обработки ошибок увеличится в целом.
public void insertAtPos(int val , int pos)
{
Node nptr = new Node(val, null, null);
if (pos == 1)
{
insertAtStart(val);
return;
}
Node ptr = start;
for (int i = 2; i <= size; i++)
{
if (i == pos)
{
Node tmp = ptr.getLinkNext();
ptr.setLinkNext(nptr);
nptr.setLinkPrev(ptr);
nptr.setLinkNext(tmp);
tmp.setLinkPrev(nptr);
}
ptr = ptr.getLinkNext();
}
size++ ;
}
Возню с реализацией списков обычно вижу только в сишке, из коробки их только там нет.
бля, ебани ты ноду приватным нестед классом с свой лист и не еби голову вот этой хуйней
Node tmp = ptr.getLinkNext();
ptr.setLinkNext(nptr);
nptr.setLinkPrev(ptr);
nptr.setLinkNext(tmp);
tmp.setLinkPrev(nptr);
Согласен, хуйню выдаст.
переполнение и че?
Судя по тому, что я половину слов в принципе не понял - буду пока
>просто слать json со статус кодом
Спасибо!
Просто у тебя не джава-стайл код, нужно так:
import java.math.BigDecimal;
...
System.out.println(new BigDecimal(Integer.MIN_VALUE).abs());
@Autowired
private BigDecimalService bigDecimalService = ServiceFactory.resolve(BigDecimalService.class);
Пиздец я обосрался, это всё недосып.
Как я думал сделать:
1. читаю файл №1 в стрим, перебираю построчно сплитю по запятой и дальше уже привожу к единой форме, чтобы порядок полей был всегда префикс + значение и пишу в лист тот же. Затем делаю аналогичную операцию для файла №2 и затем перепопределенным компаратором сравниваю вхождения элемента одного аррея в другой(или делаю ремув алл чтобы найти остаток). Где проебался?
Или эффективнее будет сначала оба файла привести к единому виду и сравнивать чисто линиями? Листы же в памяти будут.
555155, Хуйловская область, Куколдский район, с. Белое Озеро, ул. Озерская, д. 1666
У 2 файла например может не быть ни индекса ни области, вместо "д. 1666" может быть просто "1666", вместо "ул. Озерская", "Озерская ул.". + бывают разные префиксы кроме ул. всякие там пер. прзд. но они хотя бы между двумя файлами совпадают, но могу быть как и в примере выше\до после.
Да, мой бэд, читаю ексельки сохраненной в csv.
Каких-то риал лайф примеров подкиньте, пожалуйста.
Что пишем? Например, систему какого-нибудь учёта банковских ценностей. Тётенька вводит в программке, что такой-то хуй принёс столько-то налички и жмакает "сохранить", а на сервере выполняются какие-нибудь проверки, что-то сохраняется, что-то отправляется в другие системы, что-то логгируется и т.д.
У тетеньки в браузере программа? А на рабочем столе ярлык в браузер?
Тебя это ебать не должно.
у тётеньки ie 6, а в нем апплет
Там что угодно может быть. Отдельный экзешник, написанный на чём угодно, хоть на либах, умерших 20 лет назад. Ужас в духе Web 1.0, с минимумом стилей и JS, но почему-то работающий только в IE. Современное красивенькое веб-приложение на реакте. Чего только не бывает.
Тогда найди JRE 11.
потому что с 9 жабы ты можешь ручками собрать нужный рантайм энвайромент и не тянуть лишнее говно для прилаги, которая всё это говно не юзает.
Хоть кто-то этим занимается?
Потихоньку вкатываюсь. Уже нарисовал себе картину как в опенспейсе на кровавом энтерпрайзе удивляю всех эклипсом выключенным клиртайпом в интеллиж, но вот никак не додумаю: знающие аноны, чем ещё можно заняться с жабой, если не ёблей с энтерпрайзом? Геймдев не в счёт.
Пиздуй спринг вычищать, а то сейчас на аннотации перепишу.
Ыыы, больше фреймваркав, позволяющих писать вообще всё в одно длинное выражение, чтобы максимально приблизиться к макакаскриптному callback hell.
У меня тоже красивые картиночки есть.
Не ржи.
вот кста тоже нипанятна, хуле это все одобряют/смиряются, это жи хуета какая-то, и в плане логическом, и в плане возможной оптимизации
мимо вкатывальщик
>обычный бекенд
Интересно, в чем, по-твоему, разница между энтерпрайзом и обычным бэкэндом на джаве
Если большинство что-то называет энтерпрайзом, то это, видимо, энтерпрайз. Я ни разу не слышал, чтобы тупой сайт-визитку на пхп называли энтерпрайзом, и вряд ли он таковым станет, если будет написан на жабе. Но бекендом это назвать вполне можно.
Что значит картинка, из котлина в джаву?
А поскольку сайты-визитки на жабе не делают, не энтерпрайза на ней, можно считать, нет
качай ультимейс с жидбрейнса и поищи в сети скриптик на сброс триалки
Бамп вопросу.
Подскажите, Аноны
где скачать/спиратить книгу
"Java для начинающих. Объектно ориентированный подход"
авторы: Барт Бэзинс, Эйми Бэкил, Зеппе ванден Бруке
Энтерпрайз это софтина, которая автоматизирует работу какой-то большой компании. А не всякие социальные сети.
1. Если компания не очень большая, это уже не энтерпрайз?
2. Если это не софтина для автоматизации труда тёти Клавы, а, к примеру, сервис вроде яндекс-денег, это не энтерпрайз?
Бамп
саси
Зачем мне читать заголовки, когда я могу читать фабрики!
Предлагаю напилить простенький REST-Api с помощью plumber.
Ну или поебаться с http://www.rforge.net/JRI/
ну это и сделал, но тут понимаешь,контроллер получается должен парсить каждый адрес из запроса, иначе он не узнает на какую страницу перенаправить, и еще он должен действия обрабатывать, а это уже 2 функциональности разные, я вот думал форвардить в фильтрах (тогда они в сессию будут лазить, форвардить и ток часть запросов пропускать), крч я могу ток говно сделать
Блять, мы на внешних курсах ерата точно такой же хуйней занимались. Ты часом не оттуда?
"current.previous.next = current.next"
current.getNext().getPrev() = newItemList; же нельзя.
Понятно что сеттеры, но вот так же неправильно, никак не пойму что тут надо
current.setNext(setPrev(newItemList));
Сними сажу, додик.
э бля хуле она включена была?
Хочу запилить небольшую библиотеку, а тут надо отдельно ставить R, как я понял, это не то.
>>577413
Какой-то стремный синтакс у него. Я пробовал Renjin, он подключается как джавовский ScriptEngine, что гораздо удобнее. Но тянет за собой многовато зависимостей, плюс для него не все R-овские пакеты доступны.
Двощ, подскажи, как поставить intellij idea без мокрых писек? Нигде не могу найти ключи, только этот сомнительный crack суют.
Как активировать "идею"?
Делай синхронизацию! Будь мужиком!
Ну BitSet на 10^10 элементов должен занимать ~1 гигабайт всего и 10^10 уже не помещается в int.
А он правда столько занимает? Наверняка там не всё так просто, и имеется какой-нибудь оверхед. А с листом - так подавно.
Так сервера с терабайтами оперативы это как раз про джаву, у сишкоразработки таких денег нет, чтобы такие сервера покупать где массивы больше 32 гигов
Я проверял. Массив из 10 BitSet-ов на 10^9 элементов занимает 1.2 гигабайта.
Там внутри массив long-ов, в каждом long-е хранится по 64 битовых элемента. Значения устанавливаются и читаются через побитовые операции. Так что оверхеда нет.
В long 64 бита. Если рассматривать каждый бит как булевское значение, то long это компактный аналог массива boolean[64].
Если ты захочешь установить значение 5-ому биту long-а, то сделать ты это сможешь только через побитовые операции с маской.
boolean[64] arr;
long word;
...
long mask = 1 << 5;
word = word | mask; // аналог arr[5] = false
word = word & ~mask; // аналог arr[5] = true
Это идет с уровня процессора. У процессора обычно нет команды "установить i-ый бит", он умеет работать только с ячейками памяти 1 байт или больше. Установить 5-ый бит можно только через побитовые операции с маской.
Ну допустим представлять сет натуральных чисел от 0 до 10^9. Если в таком сете много элементов, то BitSet будет занимать меньше места, чем HashSet<Integer> и операции объеденения, перечечения, добавления, удаления элементов будут работать гораздо быстрее.
А у гослинга в книжке первое же задание написать свой собственный LinkedList в 1.0.2 jdk. Потому что jcf появился в 1.2
мимо
И Dictionary был, и Properties.
Но вектор вроде бы не двусвязный список, его аналог ArrayList.
Сам язык может и на плюсах, но стандартная библиотека почти целиком на джаве, кроме нативных методов.
> асме
Я не шарю во всех этих JIT'ах, с этим пусть плюсовики ебутся, но как я понял по исходникам, они напрямую генерят машинный код и сразу же его исполняют.
Не, нет таких.
И тебе не советуем
Да просто ради интереса имиджборд на них написать попробовать, интересно же. Вдруг есть желающие?
Да. Что такого?
Хочу написать борду как пет-проект, но уж точно не на сервлетах. Но я еще плохо умею во фронтенд, поэтому еще не готов.
Твои вкусы очень специфичны. Мы не поймём.
короч, терминов и понятий можешь вообще не знать, главное понимать, как это говно работает
Достаточно один раз прочитать. На практике что-то используется часто, и придётся не раз перечитывать, что-то не используется вообще. Термины пытайся запомнить, это в дальнейшем поможет гуглить, но не задрачивай.
Представляй, что ты на собеседовании и рассказывай вслух самому себе то, о чем узнал.
Например почему
String str = "foo";
(str == "foo") //true
Потому что начиная с какой-то там версии java уже не надо писать эти даунские equals()
А так же заработал switch по строкам, не прошло и 10 лет
Лол, еще со времен jdk 1.0 можно было сравнивать через '==' если дописать str.intern()
Нет, надо. Через равно сравниваются ссылки на объекты, посимвольное сравнение строк по-прежнему через equals.
А true там по другой причине. Строковой литерал "foo" сохраняется один раз, и везде, где в коде встречается "foo", будет ссылка на один и тот же объект. Поэтому и true. А вот здесь это уже не сработает, потому что объекты разные:
String s1 = new String("foo");
String s2 = new String("foo");
s1 == s2 // false
И поделом ему будет. Значит ни одной книжки не прочитал, а учится по ответам в интернете.
Ой, дристанул маленько. По привычке.
Двачую. А если тебе 25+ но можно даже не пытаться. Хаэрочки твое резюме будут фильтровать.
У них там уже скриптами всё отбрасывается.
1. Легко == отсутствие выбора.
2. Возможности == способы реализции.
3. Сложность == смысл жизни.
Эх, демагог.
В дс1
lombok
Она же крякается с javaagent, он и под питухоси будет работать.
Юному дажава-подавану требуется помощь.
Почему в приведенном на пике коде Scanner не обновляет переменную String word после выполнения блока if();
т.е я ввожу с клавиатуры слово "слово" ->
такой ключ уже имеется ->
выполняется рекурсия ->
ввожу "другое_слово" ->
прохожу проверку ->
метод возвращает "cлово"
ЧЯДНТ
второй месяц вкота
Нахуй ты ответ сразу пишешь, дурак?
Даже найти место, где будешь писать java-игры под кнопочные мобилки, найти легче. При чём это про 2014 год, сейчас, ваще не вариант, делфи поперспективнее будет.
Ну допустим поля size и first будут сериализованы, почему это плохо?
А еще не пойму почему надо было делать вложенный класс Node статическим,
почему нельзя было сделать обычный inner class?
А зачем Node ссылка на внешний класс? Лишняя память.
О, я это смотрел. Только вот большой ли процент компаний сидят сейчас хотя бы на жыдке 11 ?
https://www.jetbrains.com/lp/devecosystem-2019/java/
А нахуя делать внутренний не статический класс?
Пишу пет проект, на беке Spring (Boot), на фронте React. Хочу сделать авторизацию пользователей. В доку Spring Security смотрел, но там очень много вариантов - Oauth, OAuth2, с JWT токенами, с кукисами.
Что хочу - мой сервер хранит данные о пользователях у себя в БД, соответственно и валидирует юзеров сам. Вопрос - какой способ авторизации /аутентификации будет самым простым в имплементации?
Гайдов всяких в инете много, но вот выбрать нужный мне способ - сложновато.
Ничего интересного. Да и вообще со времён 1.4 ничего интересного в джаве не появилось. А некоторые фичи так и вовсе можно считать деградацией.
>какой способ авторизации /аутентификации будет самым простым в имплементации?
Классический вариант с сессией и куки
Если установить какой-нибудь git bash, то такой же.
Я не понимаю по-индийски.
Решил вкатиться в 30 лет, а тут оказывается надо английский. Вкат переносится на 10 лет еще.
Что за кора? Это же тред про яву.
Что создать?
Сделать класс который будет отвечать за запросы в базу с соответствующими методами. Что мешает бизнес логике и валидации обращаться к его методам?
Блять, я Шилдта ебучего полгода читаю, дохожу до главы с методами и пиздец. Хотя переписываю каждый пример по 5 раз.
И все равно как пытаешься написать метод - все красным подчеркивает. Уже раз 10 с начала начинал.
BufferedReader
ну там если кажем psql и csv файл то можно прям средствами psql наебенить. Если тебе еще какая то промежуточная логика нужна и это не на один раз, то можешь попробовать юзнуть FileUtils.lineIterator из апач, более помочь не могу, мб кто из более опытных анонов поможет.
Успехов, дружище
Построчно
Да, я про LineIterator как раз думал, но наверняка есть что-то лучше этого. Мб распараллелить как-то можно, но я читал, что это диск сильно нагружает, хз
Вангую csv.
Читаешь последовательно, тебе этого хватит, но строчки запихиваешь в очередь (с ограниченным размером), N потоков из нее читают и пишут в БД.
package com.company.teach;
public class Stack {
char q[];
private int pushloc, poploc;
Stack(int size) {
q = new char[size + 1];
pushloc = 0;
}
void push(char ch) {
if (pushloc == q.length - 1) {
System.out.println(" - Очередь заполнена");
poploc = pushloc + 1;
return;
}
pushloc++;
q[pushloc] = ch;
System.out.print(ch + " ");
}
char pop() {
if (poploc != 0) {
poploc--;
return q[poploc];
} else return 0;
}
}
package com.company.teach;
public class StackDemo {
public static void main(String[] args) {
Stack ob = new Stack(10);
for (int i = 0; i < ob.q.length; i++) {
ob.push((char) ('A' + i));
}
for (int i = ob.q.length; i >= 0; i--) {
if (ob.pop() != 0) {
System.out.print(ob.pop() + " ");
} else System.out.print(" - Очередь пуста");
}
}
}
Метод поп выводит в консоль через букву и откуда-то берется 12 итераций. Хотя через дебагер вроде все норм получаться должно.
package com.company.teach;
public class Stack {
char q[];
private int pushloc, poploc;
Stack(int size) {
q = new char[size + 1];
pushloc = 0;
}
void push(char ch) {
if (pushloc == q.length - 1) {
System.out.println(" - Очередь заполнена");
poploc = pushloc + 1;
return;
}
pushloc++;
q[pushloc] = ch;
System.out.print(ch + " ");
}
char pop() {
if (poploc != 0) {
poploc--;
return q[poploc];
} else return 0;
}
}
package com.company.teach;
public class StackDemo {
public static void main(String[] args) {
Stack ob = new Stack(10);
for (int i = 0; i < ob.q.length; i++) {
ob.push((char) ('A' + i));
}
for (int i = ob.q.length; i >= 0; i--) {
if (ob.pop() != 0) {
System.out.print(ob.pop() + " ");
} else System.out.print(" - Очередь пуста");
}
}
}
Метод поп выводит в консоль через букву и откуда-то берется 12 итераций. Хотя через дебагер вроде все норм получаться должно.
extends
Первый pop() в if, второй pop() в print(). За первые 6 итераций pop-аем все 12 элементов.
Удали идею.
Нинужно. Модули ваши хуйдули, это всё бесовская чепуха. Господь дал нам швятой OSGi, вот и делай как все, а не выёбуйся. Иш чего надумал блять... Модули-хуёдули у него
Хотел jlink попробовать, но видимо не судьба.
Какие нахуй модули, все на восьмёрке сидят, и модули у них только мавеновские.
>действительно ли в джаву без вышки не вкатиться?
Сейчас как и всегда для вката нужны знания. Если их у тебя не много то вышка как бы говорит что ты в состоянии выучить разную хуиту.
Если у тебя есть знания то всем похуй!
Даже в наше время после профильного вузика не все идут в пограмисты ибо сложно (нужно самостоятельно гуглить / учить технологии а привыкли дрочить по учебникам)
А котлинфаги хвастаются своим val в параметре.
Да, у хорстмана об этом читал на той неделе.
А я только с нее начал. Прочитал книгу по коллекциям - начал делать упражнения отсюда.
>icon of java
Но ведь у жабы есть одна икона и это Mr. Venkat Subramaniam, а не рандомный индус.
Кто увидит разницу между индусом и индусом? Явист?
А есть с переводом или с титрами хотя бы?
Для чнения ввода, например, можно использовать сырой InputStream и читать побайтово.
Прочитать то, что уже было выведено - вообще нетривиальная задача, и нужно это бывает ну очень редко.
res не инициализирована. А так же бесконечная рекурсия на f('A') и бессмысленый конструктор.
Спасибо.
Ты чет вообще не понимаешь, что происходит. Ты решил научиться программировать просто читая код и дописывая свой? Интересный метод, но попробуй хотя бы посмотреть видео Mr. Nagoor Babu, если не хочешь книги читать.
Шилдта читаю, только запары с методами вот этими. Ладно, посмотрю.
Незачем, ни на что не влияет.
Ты предлагаешь вместо генерации на лету хранить тысячи однотипных страниц, постоянно отслеживая изменения на них?
>>индийского не понимаю
как ты собрался учить джаву не зная языка всех гуру? вот заодно и перфектли вель иглиш прокачаешь
Нет, предлагаю хранить один хтмл, перезаписывая при изменениях либо с определённым интервалом. Только там, где это удобно. Всякие поиски с фильтрами, понятно, проще делать на лету.
Получается, имеет смысл только как оптимизация, если тебе это реально надо для производителтности
Ну и никто не мешает при этом использовать нормальный шаблонизатор для построения html, потом уже кэшировать результат
Ты вызываешь ob.fac() и игнорируешь результат. И в следующей строке почему-то пытаешься вывести ссылку ob, а не число. Перепиши, например, так:
int r = ob.fac(5);
System.out.println(r);
А пробел в конце зачем выводить? И вообще, зачем начинать изучать ЯП с рекурсий, если не знаешь основ...
я дошел по книжке шилдта до рекурсий, правда пока шел - все остальное забыл.
А если в методе с помощью рекурсии должен выводиться например алфавит, то метод должен быть void, а в теле метода систем аут принт?
Если ты хочешь написать программу, которая переполняет стек и падает, убери char из этой строки.
То есть символ инкрементируется через ++, но не работает через +1? Ясно, спасибо.
"абвгдеёжзийклмнопрстуфхцчшщъыьэюя".chars().mapToObj(i -> (char) i).forEach(System.out::println);
charAt()
C++, который мы заслужили.
Про питон.
Охуеть важные все такие сидят. Недаром говорят что программист хуже пидораса.
Просто ты задаёшь вопросы уровня питон-треда. Лучше про спринг что-нибудь спроси.
Да как эту ебучую рекурсию написать? Уже месяц на месте торчу.
А деньги можно заработать только вкатыванием в сферу наносеков.
void мул(int и) {
if (и < 0) return;
System.out.println(кью[и]);
мул(и - 1);
}
...
мул(кью.length - 1);
В б одни токсичные неадекваты, не стоит туда заходить.
Т.е. то, что тут происходит, это для тебя нормально? Друг, так ты от /b сам недалеко ушел.
А что тут происходит? Кто-то троллит просто.
Пример из книжки не работает. Не компилируется на строчке (5,7).
Хотя по идее должен отработать третий метод с примитивами. А теперь он видите ли не может выбрать между обжектом и интом.
Книжка на 7 ждк, а у меня 11 amazon corretto.
не путайте мой скрин со 100500 скринами итт, я другой анон
После "обычной" андроид пойдёт легче. Синтаксис одинаковый, большая часть стандартной библиотеки тоже. Но на андроиде ты в первую очередь работаешь с Android API, который нужно изучать отдельно.
Ниверю. В java 7 тоже бы не скомпилировалось. Пример слово в слово как в книге? Либо в книге ошибка, либо ты неправильно переписал, либо ты сам придумал пример и почему-то решил, что должен отработать метод с примитивами.
Рили, как в книге, или опечатка, или авторы обосрались, но тогда объясни плиз, анон, почему тут неопределенность между Object и int?
Вроде overloading resolution происходит примерно так:
1. Сначала ищется метод точно подходящий по сигнатуре
2. Если не нашли, то метод подходящий по сигнатуре, если разрешить расширение типов
3. Иначе разрешаем расширение типов и автобоксинг/автоанбоксинг
4. Иначе разрешаем и расширение типов, и автобоксинг/автоанбоксинг, и варарги.
Если на каком-то этапе нашли несколько подходящих методов - то ошибка компиляции. У тебя на 1-3 этапе не подходит ни один метод, на 4 этапе подходят 2 метода.
В том числе про это. Плюс, если это ссылочный тип, то приведение к родительскому классу или интерфейсу. Например
Integer -> Number,
Integer -> Object,
Integer -> Constable,
Integer -> Comparable<Integer>
Объяви две int переменные и передай в метод.
А я не знаю, создаю бины через абстрактные фабрики и зашибаю 100к в наносекунду.
Гугли java overloading ambiguity. Авторы книги, похоже даже не компилировали свой код и вывод брали из головы.
Если коротко, то просто попрошу объективно расписать где сейчас джава юзается и для каких целей.
Повторю, МАКСИМАЛЬНО ОБЪЕКТИВНО И БЕЗ ВЫЕБОНОВ, а то я вас знаю, набегут ща 300кк/нс и будут пиздеть что жс/жаба НИНУЖНА и как им заебись на ГОЕШЧКЕ!
Короче вы поняли, заранее спасибо.
> объективно
Смешно.
Джава - энтерпрайз, нода - бекенд, сфера ноды примерно как у пхп. Если интересуют зарплаты, полистай хедхантер и не слушай тех, кто заливает, что там всё завышено.
Плюс джавы в том, что на ней ещё долго будет несложно найти работу.
Большинство вакансий на ноде это фуллстак, и в основном небольших фирмах.
ты б рекурсию не упирался, у жвм глубина стека ограничена, про хвостовую она вообще не знает
мимо жую кложу посижу пока тут
Открывай исходники спринга и работай.
Решаю я себе задачки на гиперскиллс, никого не трогаю, чиллю так сказать. Попадается очередная легкая задачка, где надо сделать калькулятор по типу ввода оператора и двух чисел, чтобы все это было как аргументы в мейн. Все легко и спокойно пишется сначала во встроенном редакторе, а потом я думаю, дай-ка еще локально запущу. Пикрелейтед. Причем такая хуита только для чара "*". Гиперскилл предлагает мне свою версию кода, где по сути тоже самое, только результат вынесен в кейс и аргументы парсятся там, запощу след. постом, я пробую его, и локально он мне вообще выдает в итоге "Unknown operator".
Гуглить-гуглил, нихуя не нашел.
ЧЯДНТ?
"Unknown operator" выдает только для чара "*", все остальное работает как надо.
вот тоже хочу. Но единственный свободный час перед сном уходит на английский. Хз когда эту книгу читать и тесты проходить
Как это сделать? Взять тред пул, в цикле насоздавать runnable и засунуть в этот тред-пул, он выдаст Future.
Разве этот процесс создания множества Future не будет расходовать память?
Спасибо.
Возьми какого-нибудь хорстмана и скипни первые несколько глав. Этого хватит для всего. Ты не проаустишь никаких сакральных знаний, как если бы это были кресты.
Забей на сервлеты, учи спринг по туториалам. Затем напиши какой-нибудь простой интернет-магазин с REST API и несколькими крудами.
Ну сервлеты и jsp-ину надо немного поковырять, чтобы хоть какое-то представление иметь.
Поковыряй для общего понимания. А дальше возьми freemarker или thymeleaf.
Спасибо.
из епама
Построить веб-систему, поддерживающую заданную функциональность:
1. На основе сущностей предметной области создать классы их
описывающие.
2. Классы и методы должны иметь отражающую их функциональность
названия и должны быть грамотно структурированы по пакетам.
3. Оформление кода должно соответствовать Java Code Convention.
4. Проект должен работать на сервере приложений – tomcat, база данных –
MySQL.
5. Проект должен передаваться на оценку, поставкой.
6. Поставка представляет собой архив. Название – ваше Ф.И.О (пример:
ИвановИИ.rar)
7. Поставка содержит следующие директории
o src – исходный код проекта
o sql – скрипты создания и наполнения БД
o doc – документация
8. Папка doc поставки должна содержать документ со следующим
содержимым:
o Постановку задачи
o Руководство по установке
o Руководство пользователя
o Описание БД. Какие таблицы и как они связаны, а также описание в
каком поле что лежит. Формат описания не особо важен, но лучше чтобы
схема таблиц была наглядной.
9. Поставка должна содержать скрипт сборки и установки(ant или maven).
После прописывания настроек и запуска bat файл. Проект должен быть
собран из исходников и задеплоен на AS, а также развернута БД.
ВНИМАНИЕ: Данный пункт не является обязательным, но дает
дополнительный бонус при написании скрипта.
10. Приложение должно поддерживать работу с кириллицей, в том числе и
при хранении информации в БД.
11. Архитектура приложения должна соответствовать шаблону Model-View-
Controller.
12. При реализации алгоритмов бизнес-логики использовать шаблоны GoF:
Factory Method, Command, Builder, Strategy, State, Observer etc.
13. Используя сервлеты и JSP, реализовать функциональности,
предложенные в постановке конкретной задачи.
14. В страницах JSP применять библиотеку JSTL и разработать собственные
теги.
15. При разработке бизнес логики использовать сессии и фильтры.
16. Выполнить журналирование событий, то есть информацию о
возникающих исключениях и событиях в системе обрабатывать с
помощью Log4j.
17. Код должен содержать комментарии.
18. Все пункты задания являются обязательными. За каждый пункт
выставляются отдельные оценки.
В-4 Система Библиотека. Читатель имеет возможность осуществлять поиск и
заказ Книг в Каталоге. Библиотекарь выдает Читателю Книгу на абонемент или
в читальный зал. Книга может присутствовать в Библиотеке в одном или
нескольких экземплярах.
из епама
Построить веб-систему, поддерживающую заданную функциональность:
1. На основе сущностей предметной области создать классы их
описывающие.
2. Классы и методы должны иметь отражающую их функциональность
названия и должны быть грамотно структурированы по пакетам.
3. Оформление кода должно соответствовать Java Code Convention.
4. Проект должен работать на сервере приложений – tomcat, база данных –
MySQL.
5. Проект должен передаваться на оценку, поставкой.
6. Поставка представляет собой архив. Название – ваше Ф.И.О (пример:
ИвановИИ.rar)
7. Поставка содержит следующие директории
o src – исходный код проекта
o sql – скрипты создания и наполнения БД
o doc – документация
8. Папка doc поставки должна содержать документ со следующим
содержимым:
o Постановку задачи
o Руководство по установке
o Руководство пользователя
o Описание БД. Какие таблицы и как они связаны, а также описание в
каком поле что лежит. Формат описания не особо важен, но лучше чтобы
схема таблиц была наглядной.
9. Поставка должна содержать скрипт сборки и установки(ant или maven).
После прописывания настроек и запуска bat файл. Проект должен быть
собран из исходников и задеплоен на AS, а также развернута БД.
ВНИМАНИЕ: Данный пункт не является обязательным, но дает
дополнительный бонус при написании скрипта.
10. Приложение должно поддерживать работу с кириллицей, в том числе и
при хранении информации в БД.
11. Архитектура приложения должна соответствовать шаблону Model-View-
Controller.
12. При реализации алгоритмов бизнес-логики использовать шаблоны GoF:
Factory Method, Command, Builder, Strategy, State, Observer etc.
13. Используя сервлеты и JSP, реализовать функциональности,
предложенные в постановке конкретной задачи.
14. В страницах JSP применять библиотеку JSTL и разработать собственные
теги.
15. При разработке бизнес логики использовать сессии и фильтры.
16. Выполнить журналирование событий, то есть информацию о
возникающих исключениях и событиях в системе обрабатывать с
помощью Log4j.
17. Код должен содержать комментарии.
18. Все пункты задания являются обязательными. За каждый пункт
выставляются отдельные оценки.
В-4 Система Библиотека. Читатель имеет возможность осуществлять поиск и
заказ Книг в Каталоге. Библиотекарь выдает Читателю Книгу на абонемент или
в читальный зал. Книга может присутствовать в Библиотеке в одном или
нескольких экземплярах.
не, это у нас в провинции. Сделал, не взяли
Ну справедливости ради такое задание для человека, которые уже раньше делал ни раз такие CRUD-ы, не такой уж сложное. Если человек никогда такого не делал, понятно что для него оно выглядит как ужас-ужас.
жейсон это текстовый формат для обмена между фронтом и беком, читаем людьми, имеет ограничения
Или беком и другим беком.
Вручную парсить ничего не нужно, для всего давно есть либы. Но да, json проще.
Ну во первых ocp без oca ты не сдашь (вернее сдашь как я понял но сертификат не получишь). А во вторых работодателям и ocp то особо не вперлась - вче хотят опыт в джаве от 40 лет
Пиздос. Легаси ебаное
Прочитал в книге, что для явы, как я понимаю, нужно подключить стандартные библиотеки, которые лежат в архиве директории "/home". Так вот, там есть пункт "Создайте каталог javasrc в своем начальном каталоге". Что имеют в виду под "начальным каталогом"? Начальный каталог самого JDK? И где он начинается, фактически?
Где мне нужно создать эту директорию "javasrc", чтобы из неё подтянулись стандартные библиотеки?
Тогда зачем Хорстманн говорит мне, что их нужно установить?
А ничего что внутри сервлетов сокеты? Так давайте в 2к20 вебню на голых сокетах писать, блеать.
1?
Андроид тред в каталоге не нашёлся, спрошу тут. Анонсы, как блядь подключить интернет в приложении? Пермишены в манифесте прописал, а оно всё равно не подключено к сети.
Делаю бота для майнкрафта, потребуется изучать сдекомпиленные .class'ы, и на жабе писать самого бота.
Хорстманн, библиотека.
> паттерн матчингу.
да даже в той же банде четырех говорится используй паттерн когда он нужен, а не пихай его везде
чел...
Нет таких проектов. Все пишут на ноде.
Популярен он в первую очередь в энтерпрайзе, для внутреннего применения. Логично предположить, что бек какого-нибудь Сбербанка Онлайн написан на нём.
Ты совершенно точно регулярно пользуешься сервисами, написанными на спринге. Просто это не "известные проекты", а скучные штуки типа банков или почты.
>может ли знающий анон отписать тут про хотя-бы пару крутых и широко известных проектов, бэк которых был написан с использованием spring.
Linux.org.ru
К андроиду-то изначально прикрутили, а вот к легаси на сервере может и нет.
я тут в кложе ебусь с агентами и потоками вот где боль
Как шарписту вкатится в Джаву? Точнее какую(ие) книги и с какой главы читать(чтобы пропустить базовые вещи).
Ну или дайте видос/курс толковый (а то обычно везде 3/4 - базовые фичи обсасывают, которые почти везде одинаковые)
жаба кор наверно
Переопределяю equals() у наездника так:
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(this.getClass != obj.getClass) return false;
Наездник бобби = (Наездник)obj;
return (this.имя.equals(бобби.имя)) && (this.возраст == бобби.возраст) && (this.быки.equals(бобби.быки));
}
Может быть в этом переопределении я не правильно сравниваю массивы объектов?
Я пробовал ещё так сравнить Arrays.equals(this.быки, бобби.быки); но компилятор принудительно сразу ругается.
Ну, заменю ант на мавен, а jsp на шаблоны. Мне для себя надо, я в мухосранский епам не собираюсь.
это я понимаю. и вот у меня вопрос. как сделать так, чтобы массивы объектов сравнивались поэлементно. Arrays.sort() он либо для примитивов, либо для Object[] юзается.
Вообще, меня терзают определённые сомнения, что дело в чём-то другом, судя по наличию слова constraints. Но больше у меня пока версий нет, потому что я без понятия, что такое constraint в данном контексте, а в книжке это не объяснено.
хуй знает я то жабу на уровне доков знаю
>The UNIQUE constraint ensures that all values in a column are different.
Вот в чём дело. И что тогда значат параметры в аннотации uniqueConstraint? Что она сама вообще делает? Зачем мне её вообще давать и при этом не объяснять ничего...
используй сет вместо массива и не мучайся
>Arrays.sort() он либо для примитивов, либо для Object[] юзается.
Если хочешь сортировать быков, то тебе нужен вот етот sort. Короче, план такой:
1) читаешь, что такое компаратор
2) реализуешь компаратор для быков
3) сортируешь
4) юзаешь Arrays.equals
Двач помоги с архитектурой MVC для приложения про преобразованию изображений.
Не могу понять в каком пакете хранить логику приложения, т.к в всех примерах spring MVC архитектура используется с БД и соответствующими пакетами entity, domain, repo etc и сервисным, как связующим звеном с контроллерами.
Но что если я не использую БД? Правильно ли то, что я назвал пакет сервисом и логику по обработке изображения храню там?
Да, всё норм. Сервис остаётся сервисом, даже если к БД он не обращается.
Ну так сбер - энтерпрайз. У нас бывший сбертех (сейчас взяли в сам сбер), есть и спринг, и джава ее.
Упрощенный пример, в том методе названия классов и переменных куда длиннее были.
Ну покажи, как у тебя это выглядит. Это стандартная тема Darkula, на двух машинах выглядит одинаково.
Не покажу, сейчас она долго включается.
val не подсвечивается.
Только 10 строчек :(
нисколько завяз с макросами
Консалтинговая компания занимается прогнозированием и исследованием рынка, оценкой объектов, оценкой эффективности бизнес-проектов, поиском выходов из кризиса, преобразовывает и создает организационные структуры, создает маркетинговые программы и другими вопросами, которые возникают в процессе деятельности предприятий, организаций, фирм.
Ведь этим всем может заняться какой- нибудь бизнес-тренер, зачем компании создавать, а главное зачем им кодеры?
анализ рынка, консультации и тд.
вот есть у тебя палатка шаурмы, заработал ты мал мала денех и хочешь расширится продавая пирожки с капустой, так вот хочешь ты узнать ситуацию на рынке будет ли спрос на них, а если будет продвинуть, нанимать на постоянку аналитика и маркетолога тебе не упало, ты отдаешь этот вопрос на аутсорс им, они все за тебя делают.
зачем кодеры, ну не вручную же они собирают и обрабатывают всю статистику, рекламу и тд.
че нить найдут
Скорее всего имеется в виду IT-консалтинг. Примерно то же самое, что системные интеграторы, обычные "галеры".
А развернутее? Что такое системный интегратор? Что такое обычные галеры, чем отличаются от необычных?
А, всё, бля
Чекнуть размер списка
removeif
сравнить с новой длиной
вывести сообщение
или
ifcontains
вывести сообщение
remove
removeIf() и remove() возвращают true, если они что-то удалили и false, если нет.
с точки зрения производительности первый, по факту похуй.
Начал я делать эти ваши задачки по яве.
Это просто жесть, столько ошибок я в жизни не видел.
Нихуя не конвертируется, не мутируется, не сравнивается, ебучие блядь типыска кресты проще, одну букву нельзя просто сравнить с куском строки.
Один вопрос: нахуя!? Реально серьезный вопрос.
Писать долго, примитивные вещи которые делаешь на жс за 1 наносекнду пишешь по 5 минут на хуяве.
Зачем она вообще нужна сейчас? Че она может чего не могут остальные языки? Посидев на яве я понял что очень сильно скучаю по динамической типизации.
Пфф наоборот. То что прописивается на хуяве за 5-10 минут английскими словами на крестах пишется за минуту краткой сокращенной символикой.
А, любитель const std::unordered_map<std::type_index, std::pair<std::string, int>> &priorities
Пиздец. То есть из-за кучки сраных олдфаготов из 80ых нужно теперь зубрить это говно потому что они так сказали?
Я хочу знать лучше платформу, для которой делаю приложения(через пердолинг конечно же). Без пердолинга вроде как подразумевается больше возможностей и понимания будет. Но меня расстраивает этот выбор. То, что придется учить херню которую нигде иначе никак использовать не сможешь.
символы они и идут как символы а не как кодировка
а насчет остального поиграй с кодировкой може распознает
У опшинала есть такие прекрасные методы, как мап, фильтр, а обжектс возвращает голый объект.
без разницы, но в продуктовых обычно стабильнее
Да вот хуй знает, от конкретных случаев всё зависит. Даже в одной компании ситуация варьируется от подразделения к подразделению.
в галере количество веслающих прямо зависит от заказов, нет заказов часть на мороз уходит, в продуктовых как то эти качели поменьше.
а внутренний климат это чистый рандом
И до них всех дело не дойдет, если передать в Optional.of null. Короче это хуйня все, of должен вести себя как ofNullable, а второй метод нахуй не нужен.
Бамп.
вот у меня есть проект-java-приложение и я хочу, чтобы оно выводило результаты своей работы в фаел
как это грамотно сделать? в какую директорию писать фаел? надо что-то указывать в build.gradle?
просто вот с ресурсами всё понятно: ты просто засовываешь ресурсные фаелы в src/main/resources и потом можешь их достать через Main.class.getResource("file_name")
а есть ли что-то похожее с аутпутными фаелами?
Впрочем, похоже, вариант есть именно через ресурсы::
https://stackoverflow.com/questions/13000937/read-and-write-to-java-file-via-resource
Хз, какая-нибудь мелкая аппликуха, где не хочется подрубать СУБД, но ебаться с путями файлов тоже не хочется.
Это другой анон спрашивал. Видимо, речь про обычные файлы, которые создаёшь сам программно.
Логично.
Только что это говно его заметило, хотя я ничего не сделал. Просто пиздец.
нахуй тебе этот неудобный комбайн
Да, но эти скобки возможно не нужны вообще, так как у операторов разный порядок выполнения.
Блокнот > Eclipse
Спасибо. Подсветка наверное не нужна, иногда лишние ставят, чтобы повысить читаемость.
Что поделать, акулы бизнеса. В том сегменте не бывает корпораций добра. Как например были эпплы в самом начале в противовес ibm.
Найс проекции.
Собственно сама задача на пике. Если бы можно было ввести слово для сигнализации о том что список для ArrayList закончен... Я пытался создавать список String и для выхода из цикла ловить "\n", но результат тот же.
>>589198
Тебе в System.in приходят две строки. Нужно и сканировать всю строку сразу, чтобы точно знать когда закончилась первая и началась вторая.
public static void main( String[] args )
{
Scanner sc = new Scanner(System.in);
String numbersString = sc.nextLine();
int num = sc.nextInt();
String[] numbersStringArr = numbersString.split(" ");
List<Integer> numbers = new ArrayList<>(numbersStringArr.length);
for(String numStr : numbersStringArr) {
numbers.add(Integer.valueOf(numStr));
}
}
Спасибо. Вот я тупой.
Спасибо
Да ладно тебе, не надо из-за шрифта расстраиваться. Побереги нервы для завтрашнего легаси. га-га-га!
Сначала лучше пройти боевое крещение, создавая нубский проект по getting started на сайте спринга. А уже потом углубленно изучать по книжкам.
durgasoft.com
Спс, чекну. Я для знакомства со спрингом смотрю курс от alishev'а на ютубе. Потом собираюсь читать Spring in action 5th edition, тоже alishev советовал.
Посоветуйте какой-нибудь курс/литаратуру по gradle и что-нибудь по spring, а то я на них пишу уже пару месяцев и тщательно скрываю ото всех что не понимаю толком нихуя.
Хотя можно же использовать буферный writer.
У меня в школе учился Алышев, тупой азербайджанец. Он помню подошел к кабинету английского, а он замкнут был, и он от злости ебнул кулаком по двери, там вмятина осталась. Наверное до сих пор там. Дверь наверное бумажная дешевая.
там ворох проблем может быть, мусорщик будет тупить, система может ограничивать количество открытых потоков, хуета с дескрипторами, лучше закрывать
Надеюсь тебя уволят, жулик.
Ну, я не планирую слишком много потоков кэшировать. Но разве так не делают обычно, когда есть вероятность частых обращений к одному файлу?
а ну да макросов в жабу не привезли
Spring pro 5
>>1591099 (OP)
Вакансий чисто на Котлине не так много, разве что Андроид.
А так подразумевается что ты и Яву знаешь.
Меня одного раздражают люди которые на ровном месте из одного прохода делают n*log(n) ?
C# по массовости все таки проигрывает жабе. Kotlin как приложение к джаве - гуд - сахарок облегчает жизнь, чистый котлин как тебе выше сказали мало где нужен. Typescript - хорошо, но как приложение к js (потому что откроешь ты сорцы, а там js, а node это вообще фреймворк, ты ж не спрашиваешь учить ли тебе спринг). Короче, учи жабу/котлин + джс/тс. Скоро со скрамоебством, чистые бэкендщики и фронтендеры станут наследием прошлого, да и в любом случае в тырпрайзе время от времени приходится чинить фронт.
Иди к нам. И да, котлин - это тоже к нам.
а ну да. ебать я лох
public String getSomeShit()
Я хочу дать возможность классам, реализующим его использовать вместо метода getSomeShit аннотацию @SomeShit над полем String
как это сделать поэлегантнее? делать default метод, в котором через рефлекшн пробегать по массиву полей в классе?
ты еблан?
АННОТАЦИИ
Меня одного раздражают люди которые на ровном месте из константной памяти делают n?
Как ты блядь это подсчитал.
Только все не решай. Эта книга юзается как учебник в каком-то бульбовузе и количество заданий в конце главы рассчитано на группу студентов. Шоб каждому свой вариант выдать, ну ты понял. Решай по 1-2 и норм. Иначе ебанешься головой. Ну и тесты нужно все проходить.
>сложные и многоуровневые
>зашла работа с json в php
Возьми groovy. Это такой способ насыпать себе в джаву немного динамики, туда где она уместна.
> парсить всё в мапу
мне так и нужно, лол, конкретно в данном случае не нужно десериализовывать в какой-то конкретный класс
Jackson, Gson
Я выкачал проект, хочу подправить под себя некоторые вещи.
Так вот, там есть 3 файла : msg properties, msg propertsEng и такой же руснявый. В первых двух полное повторение и там все в виде переменная - значение на англ.
А в русском файле - переменные и им соответствует какие-то биты байты юникоды вида \u0243 и пошло поехало
Оно само как-то автоматом билдится в этом файле ?
Я хочу исправить значения там, а как это делать, если все в этих юникодах, все тупо тереть и руками переписывать?
После правки первых 2 файлов в 3 ничего не меняется в апе установлены енг и ру локаль, но какого-то кода для автоматического такого билда русского файла я не нашел, как оно и откуда появляется ?
Понимает*, блет
1) Попробовал заменить в ру файле тот юникод на славянськи слова - страница в вебе потом отображает вопросы в кружках, вместо того что надо
2) пробовал удалять ру и енг файл и оставить общий - файлы сами заново не появились, удалял с них значения и оставлял только в корневом - тоже ничего .
Как эти ебашифры появились в славянском файле
Это уже уровень сеньоров, тут таких нет особо
Jackson
Многие там пишут com.github.
Отбой нахуй.
if (fileName.matches("\\.txt")) {
System.out.println("Найдено");
} else {
System.out.println("Не найдено");
}
Бля, а почему не найдено то все время? я на regex101 провери, там находит.. чет я не вдупляю
if (fileName.matches(".+[.]txt"))
А что это такое? Полгода в тырпрайзе, ни разу не слышал о них.
А как быть с линуксом, где можно любой файл пометить как текстовый, если не ошибаюсь, первыми несколькими байтами?
За 100 рублей все выложу и разложу по полочкам
ByteArrayInputStream
Это https://code.sololearn.com/cVRUy2BwauK8#java
>>592704
Где ты тут n увидел? Тут только k - количество ответов.
в аргумент функции передается имя файла, и нужно определить, .txt файл или нет, если нет, то хз.. Ошибку наверно выдать, а если *.txt, то заебумба, продолжаем дальше.
Выйди
Есть две транзакции, нужно выполнять их в процентном соотношении 60/40. Как этого добиться?
Допустим
Интерфейс а
Метод а()
Или
класс а
Логгер
Лучше ставить, чем не ставить, но не принципиально. Соглашений на это мало, так что если думаешь, что читаться будет легче, ставь.
Пробежался грепом по нашему проекту, большинство ставит.
Если приложение простое, то используют Express / Fastify. Я бы не назвал это фреймворками, скорее библиотеки для роутинга. Для более сложных используют фреймворки Nest или Adonis. Первый кстати очень на Spring похож.
mysql 8.0.18
драйвер той же версии,
без этого говна ничего не работает:
Class.forName("com.mysql.jdbc.Driver");
Почему?
The DriverManager methods getConnection and getDrivers have been enhanced to support the Java Standard Edition Service Provider mechanism. JDBC 4.0 Drivers must include the file META-INF/services/java.sql.Driver. This file contains the name of the JDBC drivers implementation of java.sql.Driver. For example, to load the my.sql.Driver class, the META-INF/services/java.sql.Driver file would contain the entry:
my.sql.Driver
Applications no longer need to explicitly load JDBC drivers using Class.forName().
https://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html
ну блять у довна с курсов и у тренера работает без проблем больше инфы мол работает/не работает у меня нет
Полезный совет конечно, но у меня сейчас ситуация когда либо жаба либо жс.
Много раз везде читал, что должно заработать само, но у меня никогда это само не работало. Гугл ничего конкретного не сказал. Поэтому просто всегда это пишу.
Нет, мне нужно сделать кодогенерацию. Видимо, придется так же как в ломбоке делать.
Я тоже))
Ты ёбу дал, какой перекат до 1000 постов?
SQLite работает без этого, на счёт других бд не в курсе, я с другими только через спринг дату общался
Если во входном массиве все элементы разные, то добавление последнего элемента будет nlog(n) (там ещё есть добавление предыдущих, но оно не меняет сложность). И памяти там O(n).
Чутка пофиксил.
Держу в курсе.
Да
>добавление последнего элемента будет nlog(n)
Нет, добавление будет log(n). Первый алгоритм вообще неправильный.
Но это не важно, разговор был что анон доебался до O(nlog(n)) а сам написал O(n) по памяти, когда очевиден алгоритм за O(1) по памяти.
Нет, но хотелось бы как можно меньше.
>только на ебнутых тасках, где надо покрутить членом, написать с нулям алгоритм сортировки, не используя библиотек и т.д ..
This.
Бочку делаешь?
Спасибо
Не важно, Светлана.
Не, они крч компилятся, но не до конца, а при запуске докомилятся и запускаются
-Решение принимается в виде исходного кода проекта.
Я чет туплю, шоб не обосраться.. Это значит им переслать архив с проектом? или на гит залить и ссылку на гит?
Че за хуйня?
Да я спросил их вчера, эти дауны молчат, а срок до 12 сделать)) 10/10. Наверн очисла 13 ответят и в догонку. ОЙ ЧЕТ ПОЗДНО УЖЕ, СОРЯН)
Да хуй знает. Вдруг это для них важно. Лан, сделаю и так и так и отправлю им архив, а в догонку ссылку на гит. Пусть открывают че хотят
Шапка нинужна.
var kukarek = new Kukarek<Kokoko>();
В теле класса надо, в теле метода нет. Читай конвенцию.
Но вообще, серьёзно, как тогда поступить, чтобы меньше нагружать файловую систему? Запросы-то могут приходить очень часто. Или этим обычно не заморачиваются и ставят кулдаун у клиента на запросы и ССД на сервер?
doFilter(req, resp) {
filterChain().doFilter(req, resp);
//здесь хоть цирк с конями устраивай
}
Шо за вопрос, блять? Ясен хрен.
Аннотации тоже не нужны, понял-принял. Шизик в треде, все в спрингфреймворк.
И вообще, ты ёбу дал? Томкэт автоматом выдаст клиенту печеньку с JSESSONID. Не нужно ничего ручками в куки писать.
проблема:
1.получаю параметр от пользователя,
2.заношу его в куки
3.цепляю к ответу
4.не имею доступа к этому параметру из других частей приложения, только при следующем запросе имею доступ к кукам
и мне не нравиться их парсить в разных местах приложения
видел способ сделать прокси ответа со списком куков, это вменяемое решение? Есть какие то бест практисы,
>Нет, добавление будет log(n). Первый алгоритм вообще неправильный.
Ок, добавление последнего log(n), но добавление всех n элементов - nlog(n) иначе мы тут изобрели сортировку быстрее nlog(n)
>>595096
>а сам написал O(n) по памяти, когда очевиден алгоритм за O(1) по памяти.
Нет там o(n), протри глаза, там o(k) где k количество найденных элементов. А теперь умник, расскажи как ты вернешь k элементов используя o(1) памяти?
Аноны, подскажите. Я тут прохожу один видеокурс и там для работы с XML используется JAXB. Как я понимаю, его удалили из стандартной SE, поэтому в настройках проекта в идее во вкладке modules я подгрузил джарник с jaxb-api. Все импорты прописались, но ничего не работает, вылезает куча ошибок. Ок, добавил module-info, часть пакетов подкрасилась красным. Добавил require'ы, вроде идея ни на что не жалуется. Запускаю на компиляцию, чтобы проверить как программа отработает тестовые данные и получаю такое сообщение:
"Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.activation not found, required by java.xml.bind".
По идее программка должна создать один файл, он не создан. Не подскажите, как решить данную проблему?
Хорошо, Тигра.
Вы видите копию треда, сохраненную 8 марта 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.