24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>861952 Ппц. Какой этот тред безысходный. А твой вопрос, анон, меня вообще расстроил. Вот правильный ответ: for (Iterator<Type> iterator = hashSet.iterator(); iterator.hasNext();) { Type element = iterator.next(); if (condition) { iterator.remove(); } } Да, можно через while, как в твоем говнокоде, но в этом случае скоуп у переменной итератора будет шире, что не всегда нужно. мимо кун из киева
>>861977 Пздц. Вопрос был: > Как правильно удалить из сета ненужное? Я ответил на него. Но, так и быть, я отвечу и на второй твой капро-вопрос. Цикл for в фоне создает итератор для итерации по коллекции. Итераторы у коллекций java.util.* являются fail-fast (они бросают сразу же исключение если во время итерации по коллекции, кто-то пытается изменить коллекцию, зачастую из другого потока). Например, если бы ты заюзал CopyOnWriteArraySet, у которого итераторы fail-safe, то такого исключения не было бы.
Пытаюсь делать так: productHashSet.removeIf(el -> charSet.contains(el.леваяЧасть)) Идея тут ругается и говорит, что в лямбдах должны быть лишь final.
Если я допишу final HashSet buffer = charSet, норм будет? Я вроде так ссылку передаю, как здесь final работает? (если работает). Или лучше писать final HashSet buffer = (HashSet) charSet.clone()? Или как такое лучше сделать? И еще. Можно по массивам или строкам пробегать с помощью лямбд? Готовых интерфейсов не вижу, самому нужно реализовывать?
>>862367 Лучше учи Джаваскрипт. Тут раньше кто-то форсил джаваскрипт в джава-треде, я все смеялся, думал, он шутит. А сейчас, когда я понял, что в моей мухосрани всего одна вакансия на джаве, и то там нужно иметь глубокие знания- я перекатываюсь в верстку и веб, ибо на это есть спрос хотя бы в городе, да и фрилансить можно. Так что учи то, что нужно рыночку вокруг тебя. Если ты в Сомали живешь - то выгоднее учить сборку-разборку автомата Калашникова и стрельбу из него, чем Джаву.
>>862254 Тред вышел с ошибкой в названии, попросил модера исправить (первый пост треда), чего он в ближайшие два часа (пока я мониторил доску) не сделал, ну я подумал утонет и все. А модер, оказывается, живой, да поможет ему Аллах. Сорь.
Заметил тенденцию: 1. Вопросы по программированию( во всех тредах ) делятся на: 1.1. Вопросы от полных нулей, которые начали изучать язык. 1.2. Редкие вопросы от тех, кто уже хорошо шарит, но имеет мало опыта То есть вопросов от людей, которые промежуточное от новичков до мидлов просто нет. Такое чувство, что если новичок начал понимать что-то, то он мгновенно все схватывает на лету и становится мидлом.
>>862531 Это понятно, мне синтаксис нужно хорошо понимать, тк я не знаю например что значит скобки() и как с ними работать, вроде понятно что туда вписуют доп параметры, но я не могу понять что происходит например если оставить их пустыми или не оставлять как оно работает ект BufferedReader reader = new BufferedReader(System.in); Cat cat = new Cat();
>>862840 Прошел курсы джава. Взяли джуном в стартап. Пилил там ентити, даохи, сервисы около полугода. Потом друзяшки позвали в свое веб агенство на PHP писать,на зп в два раза больше. ушел на 2 года, с агенством не задалось, переехал в новый город свапнулся в Java обратно, обмазываюсб уже второй год. enterprise - полет нормальный.
>>862772 Потому что у вручную созданного сета у внутреннего map capacity=16, а у десериализованного - 1. Попробуй HashSet<Object> set = new HashSet<>(1);
Как быть в такой ситуации: есть базовый класс "Такси" с методом вычисления стоимости поездки по таксе и расстоянию. И есть производный от него "ГрузовоеТакси" с методом вычисления стоимости поездки по (таксе и рассоянию) + (весу и расстоянию). Но в грузовом такси остается метод вычисления поездки от базового класса - он там нахуй не нужен, в грузовом такси возят только грузы. Переопределить нельзя - разные списки аргументов. Создавать абстрактный класс без метода и определять для каждого свой? Такое случается постоянно что оказывается лишний метод/атрибут.
>>862686 >То есть вопросов от людей, которые промежуточное от новичков до мидлов просто нет. Такое чувство, что если новичок начал понимать что-то, то он мгновенно все схватывает на лету и становится мидлом. Ну да, если ты не даун шестимесячный, то вопросов про хеллоуворлд ты задавать не будешь, а по общим случаям есть куча документации и советов на уже упомянутом sof.
>>863093 Смотри, есть такое дело. Абстрактный класс нужен в одном из двух случаев: 1. У тебя есть куча кода, который не хочется копипастить. 2. У тебя есть случай, когда ты получаешь абстрактный класс и работаешь по его интерфейсу. Если у тебя нет общего кода и ты не обращаешься по интерфейсу, то может быть тебе не нужно связывать эти классы наследованием?
>>863099 Сами структуры почти одинаковые: у грузового такси есть еще атрибут вес и этот метод другой - всё остальное одинаковое. Явное наследование только не понятно как реализовать. Теперь передаю объект вместо списка параметров - не знаю костыль это или нет.
>>863145 Мы же тут за наследование интерфейсов, а не реализации. Все, что не паблик - реализация. Вот скажи: что общего в интерфейсе этих двух классов? Используешь ты абстракцию, вместо конкретных классов? Есть ли в этих классах общая логика, которую тебе необходимо было бы унаследовать?
>>863180 Сам метод паблик. Сами объекты тоже почти одинаковые - кто угодно согласится что авто с багажником на крыше подкласс авто без багажника. Это тупо упражнение так что одинаковые методы не писал, но можно добавить: открыть двери, бибикнуть, ехать итп. Логика в том что грузовая машина та же машина только еще может возить грузы. Можно создать отдельно некоторую машину и от нее пассажирскую и грузовую - но зачем?
>>863192 Вот блять читаешь весь этот бред и в очередной раз убеждаешься, что вместо ооп обучают какому-то говну. Не моделируй, блять, реальные объекты. Моделируй, сука, бизнес сущности. Бибикать и двери открывать он собрался, пиздец. И выкинь тот пример к хуям. Иди лучше борду напиши. Стек всё тот-же: спринг-бут + ангуляр1.
>>863192 >Это тупо упражнение так что одинаковые методы не писал, но можно добавить: открыть двери, бибикнуть, ехать итп. Классическое ООП с обилием наследование и инкапсуляции - говнище.
В реальности твой код будет выглядеть примерно так, у тебя будут plain-data объекты, и сервисы, которые уже будут управлять этими самыми объектами. http://pastebin.com/SzfWxxQU
>>862979 У меня система в read-only транзакции при вызове getVariables падает т.к. детектит изменение этих переменных (они хранятся в сериализованном виде). И сделать с этим я ничего не могу (система - Alfresco Activiti). Так вот КАКОГО ХУЯ? Я реализовал все сменив HashSet на TreeSet, но там ебучий компаратор нужен или все падает нахер (я сделал "тупой" компаратор возвращающий всегда 0, но это какой-то костыль). Есть еще альтернативы HashSet'у у которых с сериализацией все ок и они не требуют лишнего говна для своей работы?
>>863376 Ну так не используй лишние фишки, попроси кого-нить опытного по тимвиверу настроить идею: спрятать лишние панели, удалить плагины, да и английский подучи, чтобы ориентироваться в интерфейсе.
>>863368 Как будто у тебя выбор есть eclipse/netbeans. По факту все java иде дают одинаковый функционал для новичка (подсветка синтаксиса / рефакторинг).
Если хочешь писать в чем-то без иде, то смени язык на JS.
>>863376 >большая часть фишек IDEA мне пока ненужна, ибо я только учусь. Не нужна, так не используй - в чем проблема? "Create New Project" -> "Java/CommandLineApp" и пошел херачить laba1
>>863376 Используй любой наколеночный блокнот (notepad++) и командную строку, как и все начинающие программисты. Когда разберёшься что к чему, садись за IDE. Универсальный вариант.
>>863449 Понаслушаются этих даунов потом весь блять тред вопросами уровня "бля мой хеллоу ворлд в консоли не компилится что делать!1111" забит. Иди блять сам в консоли компиль, дебил.
>>863528 >Не все так ужасно на самом деле Именно так ужасно. Я работал с альфреской с полгода где-то. Полный ад и пиздец. И полный форум индусов, блять.
>>863528 Если речь о порядке, то, очевидно, тот наркоман частично прав - Treeset + comparator решают проблему. Или попробуй выкрутиться с LinkedhashSet
>>863602 Интерефейсы не нужны для галочки, но ты хорошенько подумай не появится ли в них необходимость в связи расширением/тестами. лучше перекланяться, чем недокланяться.
Привет Антон! Начал осваивать джаву, делаю упражнения с кодингбата. Решил в целях практики как можно более лаконично решать задания. Но у меня нет друзей прогеров и не кому похвастаться кодом. Может кто присоединится? А пока просто оставлю это здесь.
>>863313 В дебаггере, где еще. >>863244 Запили своего потомка HashSet, который будет правильно сериализоваться и десериализоваться (ну или используй простой ArrayList, если можно)
>>863846 Нативный интерфейс без тормозов (у брейнсов он настолько "зеленый", что нельзя копировать в буфер сообщения из компонент), без сомнительных решений в области UX. В IDEA нет ничего нового, чего не было бы у Eclipse, наоборот, некоторые аналоги отсутствуют.
Наконец, я опытный разработчик и не страдаю криворукостью, как блогиры, описывающие 17 причин, по которым IDEA лучше Увы не нашел пост этого ебантея.
>>863894 >В IDEA нет ничего нового, чего не было бы у Eclipse Language injection, например. И человеческий детектор артефактов в проекте.
>нельзя копировать в буфер сообщения из компонент >я опытный разработчик и не страдаю криворукостью Эклипсодауны такие эклипсодауны. Проекты все еще антом собираешь?
>>863900 Годится для студентов из-за простоты интерфейса, достаточно продвинутым возможностям и его отзывчивости. ВНИМАНИЕ: она действительно шустрее Idea! По известным причинам не годится для промышленной разработки.
>>863913 >Собираю gradle-ом, следующие проекты - maven. Эклипс же не может ни в первый, ни во второй. Он же только с антом работает, как и все дауны, которые им пользуются.
>Language injection - поощрение сомнительных практик. Конечно, у тебя же в коде ни sql, ни xpath, ни регулярок нет.
> детектор артефактов в проекте - агага Ну а что. Наш проект эклипс даже не открывает - тупо валится с эксепшном, а идея вон все аккуратно разрулила. Бтв, идея умеет при сборке артефактов лезть не в локальный мавен репозиторий, а билдить депенденси, если они в том же проекте. Эклипс так умеет?
>>863938 будущий проект будет на них завязан. суть проекта - бот, но что конкретно он будет делать заказчик еще не сказал, пока сказал только разобраться с сетями и потом уже будет конкретное задание.
Очевидно заказчику виднее что он хочет использовать. Всегда хотел поработать с сетями доверия (наверное больше по части моделирования - хотя, очевидно, это не простое дело, считай отдельная специализация).
Насчет курса от Дафни Кёлер - он из трех частей и первая уже близится к завершению (прохожу повторно). У неё очевидно есть опыт и знания, но манера говорить ужасная - речь путанная, иногда вместо двух последующих слов она произносит их странный гибрид, как будто мысль работает быстрее речи.
>>863957 >но интерфейс у него пиздец вырвиглазный Интерфейс хер с ним, цветовая схема - боль. И нет их нормальных. У всех блять розовый на белом фоне и тому подобная хрень.
>>863591 Не нужен порядок. Нужно единое байтовое представление одинаковых (по equals()) сетов. С LinkedHashSet та же херня. http://ideone.com/lDbNXe >>863577 Варюсь в этом котле уже год и ~2 месяца. Пока живой. И даже понимать начал как и что устроено под капотом. С информацией беда, да.
>>864018 >>864002 Писал же уже, внутри там разный capacity получается. Equals возвращает true, а байтовое представление разное. Непонятно, за каким хером фреймворк смотрит на байтовое представление при проверке изменений, но можно его обмануть, сделав свою сериализацию (см. readObject, writeObject).
>>864002 Может кстати кто-нибудь еще воспроизведет такую же лажу с HashMap'ом? В исходниках я вижу writeObject: s.writeInt(buckets); readObject: s.readInt(); // Read and ignore number of buckets Очевидно, что это должно в определенных случаях тоже приводить к рассинхрону и вроде как даже такое в системе случалось. Но воспроизвести пока не получилось.
>>863273 Аргументируй. >>863198 Бизнес сущность это что как работает? Ну так машина бибикает и ездит. Везде ООП объясняется на подобных примерах. Как я борду напишу если такой пример не осилил?
>>864262 >Ну так машина бибикает и ездит В рамках твоей задачи она блять должна ездить и бибикать? >Везде ООП объясняется на подобных примерах И это плохо. Очень плохо. >Как я борду напишу если такой пример не осилил? Руками. Класс за классом. Начинаешь с ентитей, продолжаешь дао и сервисами и закрываешь контроллерами с фронт ендом. Будет хоть какой-то полезный опыт, а не каша про бибикание в голове. Читай похуй какого года спринг ин экшн, за советами приходи хоть сюда. Ну это если ты хочешь научиться кодить, а если хочешь бибикать и хлопать дверьми то продолжай, конечно же.
Конечно спрашивать в жаба треде бесполезно, но есть такой вопрос. Почему при прописывании метода в Scene Buildere т.е. в FXML, и реализации его в контроллере - на мышке все робит just:
Что после джавы бы выучить модное? Коклин, скалу? Алсо, какого хуя одни ejb можно инвочить удаленно, получая контекст с сервака, а другие - нет (no ejb reciever выскакивает)? Оба имплементят remote-интерфейсы.
>>864220 Нахуй ты это написал? Меня не ебут твои фокусы и о заговорах никаких речи не идет. Просто поделился своей болью и спросил есть ли альтернативы.
Почему в официальной документации по подлючениям к SQL нет ничего про Class.forName("org.sqlite.JDBC") ? Кроме Note that your application must manually load any JDBC drivers prior to version 4.0 При этом, эта строка есть в любом таториале.
Если эту строку закомментировать, все будет работать.
sqlite-jdbc-3.8.6 использую, но ведь он не 4.0 версии и не должен загружаться сам. WTF?
Good answer. It's also worth noting that the Class.forName(...) mechanism is no longer the preferred one. "Modernized" JDBC drivers have a file at "META-INF/java.sql.Driver" in the jar that DriverManager looks for to auto-discover driver implementations. Unfortunately, SQLLite doesn't have this file.
Таки, протухшие таториалы, выходит. Даже на сайте sqlite-jdbc-3.8.6. META-INF/java.sql.Driver ведь имеется.
>>864367 > Когда я вызываю filter() или map() у stream(), он изменяет этот самый стрим по определённому правилу Скорее в стриме фиксируется, что его надо отфильтровать, преобразовать, отсортировать и т.п. Только при вызове терминальной операции все эти действия реально начнут выполняться. Это как паттерн Builder.
> Стрим вообще хранится как-то для объекта, или создаётся в момент вызова метода stream()? Создается конечно. Впрочем создание - операция легкая, почти ничего не делающая.
Сап, аноны. У меня есть класс, в котором далжна быть дата с датой рождения. Как мне записать эту переменную? Мне же не стоит писать private String birthdayDate, потому что как мне дальше с ней тогда работать? Или мне создать переменную класса, как какой -то Calendar или Date, я вообще не въезжаю, просто. Мне нужно будет потом считать количество дней между двумя датами в методе.
Дайте нормальные javaEE тюториалы или книги. В тытрубе одни индусы или латиносы, начинают специфические темы начинать. Да, я,возможно, осознаю, что ЕЕ умирает, но я некрофоб
Имеется задача написать компилятор в байткод скриптового языка, одно из обязательных условий - использование BigDecimal для числовых значений. Вот тут незадача - выражение вида: a + b / c d^e Интерпретируется как: a b + d e ^ c / При этом в стек вычислений каждый раз попадает новый экземпляр BigDecimal, полученный из медлительной кучи, со своим новым массивом внутри и т.д. Возможно ли получить доступ к Immutable BigDecimal без велосипедов, чтобы оптимизировать, или хелловорлд почти не тормозит?
Допустим у меня есть стрим с какой-то хуйнёй, и я хочу проверить предикат p относительно хотя бы одного элемента. Полагаю, можно сделать так: [code]stream.reduce(false, (a, acc) -> p(a) || acc)[/code] Не уверен что правильный синтаксис, но надеюсь понятно. Проблема в том, что если такой элемент найдётся, то весь процесс не прервётся моментально. Есть ли такая функция над стримами чтобы возвращала значение как только становится очевидным что дальше можно не искать? Помнится в Racket были orMap и andMap или что-то в этом роде.
Блять, програмач, выручай. Есть 3 класса, все обьекты классов хранятся в соответственных Arraylist`ах. У каждого класса\ обьекта есть переменная возраст. Все они унаследованы от четвертого класса(класс человек). Остальные классы, это школьник, студент и взрослый. По заданию нужно их всех отсортировать по возрасту, как это сделать? Я создавал 4 Arraylist<Human> и скидываю туда всех Student, Child, Adult пытаюсь отсортировать выходит гавно какое-то, алгоритм сортировки вроде правильный, оно их сортирует но точно не повозростанию. Что я не так делаю? Хелп
>>865223 для добавлении в коллекцию всей коллекции используй addAll. для сортировки листа используй Collections.sort() вместе с классом Comparator. всё гуглится и на следующий раз, код кидай с помощью сервисов, например gist.github
>>865290 1) Созданием слишком большого числа Immutable-объектов при вычислениях. 2) Есть код: i = 1000 while i>0 i = i - 1 + 2 * 6 end Каждую итерацию создаётся три новых BigDecimal. Всё бы ничего, но если i дать больше, то GC просыпается. 3) А теперь представь как этот скрипт ведёт себя на хайлоуде.
>>866033 Во-первых, это код не на джаве. Во-вторых, в JIT компиляторе есть escape analysis, который может создавать объект на стеке, если видит, что он никуда за пределы метода не утекает.
>>866033 Так вот, твоему скрипту до тудова, как до Китая раком. Далее, промежуточные BigDecimal безболезненно подчистятся в минорных сборках. Про escape analysis анон вон выше упомянул.
сап двач, есть одна мапа<String, ExpiringSession>, в которой, как ты уже наверно догадался, лежат сессии. по поводу активных сессий все ясненько (isExpired()), а как вытащить оттуда сессии авторизованных через спринг сесуриту юзеров?
Я правильно понимаю, что если класс Object является глобальным суперклассом, то с помощью ссылки типа obj типа Object я могу вызвать абсолютно любой метод.
>>866512 Дочерний класс наследует все методы супер класса, и если ты добавляешь новые методы в этом дочернем классе, то супер класс о них ничего не знает. Это значит когда ты имеешь экземпляр суперкласса, то не сможешь вызвать методы его наследников, при том имея экземпляр дочернего класса, можно вызвать и его методы и его родителя. Лучше прочитай как работает наследование в жаве, это самая база.
>>866512 Сможешь если скастуешь свой obj на более конкретный класс. Но если в obj будет лежать неподходящий тип, то ты обосрешься и все упадет нахуй. Поэтому надо в таких случаях всегда делать проверку на принадлежность к классу/интерфейсу перед кастом (instanceof). И все же хранение объектов в переменных типа Object должно быть обосновано. В 90% случаев эта необходимость свидетельствует о кривой архитектуре приложения.
Вкатываюсь из джавараша, я там подписан на стажировку, новый набор заканчивается через недели три, надо написать тестовое задание. Само задание несложное, там два на выбор, хочу написать - TODO list Реализовать простенькое приложение todolist, для отображения списка дел. Нужно показывать список уже созданных дел. Каждое из них можно редактировать, добавлять новые, отмечать как «Выполнено», удалять. Список можно фильтровать как «Все дела», «Только невыполненные», «Выполненные». Дела хранить в базе. Схему таблички для хранения нужно придумать самому (можно ограничиться одной таблицей, можно разбить на несколько)
Это все реализуемо и вроде как не сложно, но там есть требование к списку технологий которые необходимо использовать
• Maven (для сборки проекта) • Spring • Hibernate (для маппинга сущностей приложения на БД, и работы с БД) • Tomcat 7,8 (для тестирования своего приложения) • Mysql (база данных). Для упрощения тестирования называйте все свою базу test, с логином и паролем root (нам не нужно будет для тестирования создавать кучу лишних и ненужных баз) • Frontend: angular.js or Vaadin (можно и GWT, но будут сложности) or ZK framework or Spring MVC
Я учил только кор и с этими технологиями не знаком, разве что только с базами данных, подскажите что бы такого почитать или посмотреть, что бы по максимуму быстро вкатиться в эти технологии, полностью технологию на данном этапе мне осваивать не нужно, только использовать что бы все работало, в самой стажировке эти технологии будут используются более глубоко.
Намучался с тем, что не могу заинъектить EJB в jax-rs @Path anotated класс. Сервер wildfly 10. http://stackoverflow.com/questions/3027834/inject-an-ejb-into-jax-rs-restful-service всё в принципе как здесь. 1ый метод не пробовал 1ого ответа не пробовал, остальные что-то не работают. Короче захотел повнимательнее почитать про EJB и инъекцию, но вот нормальной книги/тюториала нет. Помогите
Что не читаю про обобщенные типы всегда натыкаюсь на одно и то же. Вот раньше был ArrayList, который жрал все, что под руку попадалось, а вот теперь ArrayList<Integer> жрет только int. Это единственное назначение что ли?
>>867465 Не легче ле сразу на пзп писать? Или там старый код на джаве, а ты хочешь все заново написать? Ну тогда http://lmgtfy.com/?q=java+to+php А вообще все это хуйня.
Пацаны, в гитхабовской шапке есть вот такая рулетка. Поясните что в ней нужно делать? Например мне выпал Telnet Server, что я должен сделать то? И еще в догонку надо ли на начальном этапе учить Сервлеты и JSP, их спросят при трудоустройстве на джуна? спасибо.
>>867486 Блеать, я не знаю жабакода, мне впадлу разбираться в той лапше, которая у меня есть в качестве базы для разработки, там не особо много, но она уёбищная максимально. Хочу перевести на знакомый мне язык >>867436 Бамп найух
>>866861 https://www.udemy.com/javaspring Сам вчера буквально закончил курс. Стек технологий один-в-один под твои требования. Если нормально заниматься (фуллтайм) - за полторы недели пройдёшь, у меня ушло две недели в ненапряжном режиме 5-6 часов в день (параллельно отвлекался на гуглёж возникающих по ходу дела вопросов). Полностью конечно технологии так не освоишь, но некоторое понимание будет. Плюс будет сразу заготовка для твоего тестового задания на стажировку.
Алсо, у кого-нибудь есть пресловутый джаварашовский проект со стажировки? Интересует больше не код, а функциональные требования - сейчас собираюсь делать подобный учебный проект "из головы", но интересно было бы посмотреть на реальные требования.
>>867673 Очевидное дерьмо: - папка lib - папка dataForTests - папки src и tests - файл NumbersToWords.iml - файл triads.txt - файл Новый текстовый документ.txt И это я еще код не открывал.
>>867673 Значит так Юра, давай разберем по частям тобою написанное. >>public static void main(String args[]){ code conventions >> Мап для хранения наименования чисел состоящих из латинского имени степени тысячи . За русский текст в коде в приличном обществе пошлют нахуй >>if (hundreds != 0) >> words += nameTriad.get(hundreds 100) + " "; code conventions >>if (dozens == 1 && units <= 9 && units >= 0) //Для чисел от 10 до 19 ключи для >>мапа считаются отдельно >> words += nameTriad.get(dozens * 10 + units) + " "; >> else { >>...} code conventions >>for (int i = 0; i < numberStr.length() % 3; i++) >> numberStr = '0' + numberStr; за такую конкатенацию в цикле убивают нахуй
Посоны, можно ли где то в рашке заказать книгу Effective Java на англюсики? На озоне есть на русском, но судя по отзывам качество перевода на уровне дна.
>>867853 Я хуй знает что ты там имел ввиду. Я не читал код. Если анон намекал что конкатенация через плюс это плохо - можешь положить на это хуй. Но вот только ты учти что '0' это по сути int, а "0" уже строка. Не хуй складывать чары и строки, сильно глаза мозолит.
>>867870 Читал о том, что concat() показывает большую производительность чем +, в соединении строк. Но мне кажется, что если везде использовать первый вариант код станет менее читабелен.
>>867875 Вообще в джаве есть такое правило - что ты не должен задумываться о производительности пока тебя не прижмет. Вот когда ты увидишь что проблема перфоманса реально в том что написан + вместо стрингбилдера, тогда и будешь менять. Но в 95% случаев у тебя такого не будет.
Суп, анон, пришел вот пожаловаться на жизнь. Меня дико раздражает то, что я пиздец какой медленный. Там, где проблему можно решить за 15 минут, я начинаю ковыряться и детально выяснять, как что работает, чтобы случайно ничего не сломать (даже там, где и ломать нечего) и трачу несколько часов. С одной стороны, я точно знаю, что не налажаю, с другой - заказчик в рот ебал такой комплексный подход, а если где-то что-то сломается - меня в это носом ткнут тестировщики. На первом своем проекте это не беспокоило, я писал с нуля и было норм. А сейчас временно поставили на проект с предрелизном состоянии, где в основном доработка и багфиксы, и я охуеваю от происходящего. Чего только стоит здоровый кусок функционала, в котором происходит чтение из бд, запись в вордовские файлы и их сохранение, который тупо обернут в try и на любое исключение кидает одно и то же сообщение. И вот в этом дерьме у заказчика на некой выборке (которую он, естественно, нихуя не предоставил) вылетает сообщение об ошибке, хотя вроде как не должно. Как я, блять, должен фиксить баг, который даже воспроизвести не могу? полгода_опыта-кун
Если конечно пациент не из превозмогателей, которые сидят в своих замшелых конторах, на старых JVM и компенсируют тем, что дрочат кандидатов на собесах такой хуйнёй.
>>868004 >На первом своем проекте это не беспокоило, я писал с нуля и было норм. Сумасшедшая у тебя карьера, полгода_опыта-кун. Если переборешь внутренний перфекционизм, и погрузишься в говна промышленной разработки, то при следующей нашей встрече, честь отдавать буду я.
>>868044 Нет. Положняк такой - пишешь под андроид, sbt/leiningen - понятно когда. В остальном - по выбору, я например, поигрался с gradle и, в общем, планирую обратно на mvn, если что новое будем писать.
>>868034 Да какая карьера, хуесос он обычный, который сидит копается в легаси и думает, что у него _структурный_подход_. А на деле он просто тормоз, который не может вкатиться в существующий проект. Знаем таких.
В природе существуют Java to JS/PHP трансляторы/конверторы? Очень нннада переписать код с жабки на пыхо-жс, а жабки-то я и не знаю. >GWT, Vaadin, JSweet Что из этого действительно может сгенерить код в js + node или в js + php из джава-кода, использующего JPA и JSP?
Анончики, умоляю помогите, залёрнил Java SE, но кода почти никакого не писал, подскажите что делать дальше? Понимаю что одного чтения мало, нужно написать что-нибудь, есть какие-нибудь простые проекты, может вы вспомните с чего в сосачестве начинали, а? Помните что помощь неофиту, это огромный плюс к карме!!
>>868034 Я не совсем верно выразился, первые несколько месяцев я работал в другой конторе, устраивался разработчиком, но по факту внезапно оказалось, что там был один саппорт. В итоге 3 месяца я созванивался и переписывался с индусами, пытаясь понять их дикий акцент, а потом съебал. Ну а тут уже сразу была разработка, в итоге я за первые пару недель узнал больше, чем там за 3 месяца.
>>868055 Ну, я правда тормоз, на это и жалуюсь, а не на кривой код.
>>868172 На каком уровне залернил? Если реально неплохо знаешь SE, то вот пример тестового на интерна, там никакого EE, должен осилить без проблем. Там основная часть и три дополнительные задания, делай всё. Будут вопросы - задавай. http://rgho.st/855SBxthp
>>868195 >На каком уровне залернил? прочитал Шилда книжку >вот пример тестового на интерна файл не открывается, он судя по всему поврежден, нет другой ссылки?
Кто-нибудь проходил Oracle Java SE 8 Associate? Есть какие-нибудь материалы для подготовки? На работе задали сдать до апреля, а я даже не ебу с чего начать, в инете нашёл только билеты по 6-й версии.
Average в Output'е - целое число, если при расчёте получается нецелое - округляем?
В XML формат вывода может быть произвольным (например, тупо список outputEntries с данными date-userId-url-average, без вот этого вот выноса даты в отдельную строчку/узел)?
Сторонние библиотеки чуть-чуть юзать можно? Например, commons-cli для разбора командной строки.
JDBC task - All data should be stored in relevant table structure Источник данных всё же файлы, как в основном задании, или таблица в БД?
>>868574 > Average в Output'е - целое число, если при расчёте получается нецелое - округляем? Совершенно не принципиально, в задаче не прописано, так что ориентируйся на своё чувство прекрасного. > В XML формат вывода может быть произвольным (например, тупо список outputEntries с данными date-userId-url-average, без вот этого вот выноса даты в отдельную строчку/узел)? Я бы сделал каждую дату отдельной нодой, а в ней отдельно поле с датой и список полей с данными. > Сторонние библиотеки чуть-чуть юзать можно? Например, commons-cli для разбора командной строки. Не понял, что ты собрался разбирать? Разве что есть смысл что-то для UI прикрутить. > JDBC task - All data should be stored in relevant table structure > Источник данных всё же файлы, как в основном задании, или таблица в БД? Входные данные из файлов, выход пихать в БД. > мимо-другой-анон-тоже-залёрнил-SE-и-немного-EE Так это, раз у тебя немного EE - запили лучше вместо UI нормальное веб-приложение на том же спринге.
Аноны, я тут решил продолжить своё обучения джаве путем написания примитивного рогалика и встретился с необходимостью включения двух библотек: libjcsi и jcurses , может кто подсказать зачем они нужны и что делают?
>>868661 Ты не пробовал посмотреть в интернете зачем они нужны? >jcurses >https://github.com/ctrueden/jcurses-maven >The Java Curses Library is a library, that makes is possible to create text based terminal applications with Java programming language, like curses under Unix. For this purpose a windowing toolkit is implemented, that, like AWT, consists of many classes for text based windows and GUI elements, that are layouted within these windows. An application,that bases on the library, creates one or more of this windows and reacts on events coming by user interactions with GUI elements.
да даже просто Yoba которая реализует паттерн Итератор или как там твой LinkedHashMap используется. У этой Йобы очевидно есть поле типа UberYobaSequence. Смекаешь?
Посоны, кто может пояснить по хардкору как делать приложения на Angular 2? Как я понял люди делают тупо два приложения, поднимают их и они общаются через REST. Всякие там богомерзкие mvc паттерны не нужны, нужен только REST API? Полез блять в этот ангуляр, после уютного Jquery и не понимаю нихуя. Хелп
>>869035 Вот мне что и интересно. Фронт и бэк теперь вообще два никак не связаных приложения, или всеже принято изъебываться и пихать это все в один вэб контейнер?
>>869040 >Фронт и бэк теперь вообще два никак не связаных приложения Ну как бы да.
>или всеже принято изъебываться и пихать это все в один вэб контейнер? И это как бы да.
Многие типо фуллстек девелоперы используют webjars для менеджмента фронтенд зависимостей, и тогда удобно это всё раздавать через тот же томкат. Плюс ты можешь использовать jsp для генерации какого-то js кода и его соответственно тоже раздает контейнер сервлетов.
Но, конечно же, лучше всё это дело разделить и отдавать nginx'ом.
>>869045 Хочу знать какой датафлоу у всего этого дела. Скажем есть у меня приложение. Стартует томкэт, поднимается спринг, тот отправляет нас в дефолтный сервлет, сервлет форвардит меня на index.html ииии, что дальше то? Как мне заставить подняться фронтенд?
>>869048 Да как организуешь, так и будет. Это тебе лучше в жизненный цикл фронтенд фреймворка смотреть.
>>869064 Книгу всю можно свести к "юзай Collections, сука; не пиши свои велосипеды, пидор". Охуенное чтиво. Очень полезно, если у тебя месяц опыта программирования на джаве.
К чему ты этот высер написал, если я могу ткнуть тебя в оглавление? Вот, к примеру, из первого издания http://catdir.loc.gov/catdir/toc/fy0805/2008926278.html 78 эссе на различные темы, от LSP до особенностей jvm платформы.
Нужно написать клиент-серверное приложение на Java Клиент ввиде HTML страницы а сервер "Приложение должно запускаться из командной строки без использования Tomcat , JBoss или каких-либо дополнительных приложений. Т.е. через public static void main." Какие мысли ?
Аноны, подскажите что-нибудь или покажите, где почитать. Такая проблема. Есть один апплет, исходников нет. Исходники восстановил с помощью одной из утилит, но не понятно, как всё работает. Нужно подсмотреть, как идёт выполнение этого апплета, что передаётся и что возвращается. Что-то типа удалённой отладки с помощью eclipse? В java понимаю только то, что язык внешне похож на C#.
сап, есть алгоритм шифрования. вопрос: создать два класса - один для алгоритма, другой для его тестирования или же писать всё в одном классе?(не бейте лучше обоссыте)
>>869776 За всех не скажу, но у меня получается так, что "просто" прочитанное довольно быстро выветривается из головы. Поэтому, чтобы прочитать книжку, нужно, собственно, прочитать книжку, но параллельно с этим - разобрать примеры кода из неё (т.е. как минимум скопировать код, который идёт в комплекте, покрутить его, пару раз поломать/починить и т.п., как максимум - написать что-то своё "по мотивам"). С другой стороны, я знаю одного человека, который может тупо запомнить прочитанное с первого раза и потом "доставать" эту информацию из головы. У меня так не получается, приходится нарабатывать навык и запоминать "руками", через практику. другой анон
Вечер в хату,антуаны. Я Ruby+js макака,в данный момент сижу на мамкиной шее . Работал полгода в вэбе,после чего понял,что это нихуя не мое и хочется чего то ВЗРОСЛОГО. Решил посмотреть в сторону связки Java+python+typescript ,питон для автоматизации. Как я понял,в этот ваш тырпрайз хуй вкатишься без миллиона лет опыта ,трех вышек и знания суоми. Тащемто реквестирую годного практического учбеного материала без размусоливания на 100 страниц того,что такое переменная,желательно ,что бы разрабатывали на примере хуйню,с которой можно идти к работодателю
Анончики, хочу написать приложение, которое бы считало задачу Линейного Программирования графическим методом, симплекс-методом и методом двойственной задачи.
Поэтому посоветуйте инструменты для рисования графиков в Java, которые норм бы прикрутить к приложению.
Мне нужно будет по двум точкам строить прямые, находить на их пересечении подходящую область, и находить нужную точку.
Джависты не из ДС, ДС-2, в каком году вы начали работать java junior'ом и с какой зарплатой на старте? Какие задачи вы выполняли первые 3-6 месяцев? Ебашили перед тем, как ходить на собесы, или пытались тремя строчками из википедии убедить работодателя в том, что вы всё можете и на практике а потом жопу рвали, чтобы не уволили по началу? Вам было интересно на уровне оплачиваемого хобби или цель в деньгах? Не посылайте на хуй только.
Хочу сделать парсер картинок из вк. Буду использовать либу jsoup и сделаю выборку картинок из документа через набор параметров для селектора. Есть ли вариант лучше?
Учу spring. В базе есть таблица с полем id. На странице показывается список элементов из таблицы. Нужно что-нибудь сделать после выбора элемента. Я узнал, что светить внутренний id нехорошо с точки зрения безопасности. Сейчас я значение id записываю у тега tr в id (таблицу заполняет javascript), и его передаю по клику &id=1 . Какие есть best practice по этому вопросу? Думал в качестве id использовать хэш дтошки.
>>870371 Начал в прошлом. На старте было 23(испытательный), 33(после) сейчас 60к. 3-6 месяцев сидел на техподдержке и правил баги (нет, с клиентами не общался почти). в резюме написал, что есть 5 лет опыта в джаве (посчитал срок с момента когда взял первую книжку) и написал про свои пет прожекты (для вуза писал несколько и для своих нужд пару штук). Работадатель помоему подумал сначала, что 5 лет не домашнего опыта и удивился немного на собеседовании. Жопу особо не равал, но поахуевать пришлось по началу т.к. система очень сложная досталась. Интерес штука такая, что его можно к чему угодно испытывать, главное твой настрой. Поэтому да, интересно
>>870850 Ну, если ты такой параноик - можешь, например, подменять внутренний id на фэйковый для фронта. Но вообще, если тебя волнует разграничение доступа к данным - нужно его и делать, а не страдать хернёй с маскировкой id.
>>870752 Ну дык перекодируй в юникод в отдельном коммите. За перверсию вроде исходников в KOI, CP1251 или мандаринской кодировки, всё равно никто спасибо не скажет.
>>870850 >перебирать И что с того? Пользователь запросит сущность, которую не должен видеть? Так это решается с помощью прав доступа и всего такого >и в все такое Что, например?
>>871083 Ну не наезжай ты так на ребят. Могут быть требования со стороны бизнеса. Может быть клиент не хочет, чтобы весь его паблик контент можно было в одном цикле запарсить.
>>871351 >It looks like Bill Pugh is not interested in the FindBugs project anymore, and we can't reach them. >I say "it looks like" because we requested his help for the project many times (via direct mails, postings to the list and to the github issues) but haven't received any sign of life from him since a year.
И вот из таких ребят, как старина Пью, опенсорс состоит чуть более, чем полностью.
помогите спасите, почему не работает: Predicate<? extends Integer> var = (par) -> true; var.test(new Integer(0)); но почему работает с <? super Integer>, а просто с <?> вообще не работает? знаю, что подобные ограничения накладываются на изменение коллекции, но тут ведь мы ничего не изменяем
>>871853 >>871853 Подобные ограничения накладываются на принимаемый и возвращаемый тип функции. На коллекции это разнообразие перепало в том смысле что, они могут быть in, in-out и out параметрами функции. В общем же случае дело в отношении подтипа, применённом по отношению к функции и ко/контравариативности, см: https://en.wikipedia.org/wiki/Liskov_substitution_principle
>>871900 вопрос не про интегер, можешь подставить любой класс, вопрос почему накладываются такие ограничения в данном случае и почему используется ссылка с super параметром, хотя разница с голым параметром никакой
>>871853 На, не поленился и откопал Generics and Collections в файлопомойке: The Get and Put Principle: use an extends wildcard when you only get values out of a structure, use a super wildcard when you only put values into a structure, and don’t use a wildcard when you both get and put.
>>871910 я понимаю, почему в коллекцию нельзя добавлять неизвестные типы по wildcard, я не понимаю почему накладываются такие ограничения в данном случае, мы ведь просто возвращаем true, или тут принцип в том, что компилятор не знает тип объекта и какие методы к нему можно применять? но почему тогда вообще используется ограничение вместо голого <Integer>?
>>871923 Ну это же предикат - его можно куда - то передавать в какую-нибудь функцию высшего порядка, и в контексте этой функции могут быть свои ограничения на дженерик тип => это все надо согласовывать по законам композиции. Вот такая попытка обосновать использование wildcard.
Поскольку в системе Java динамический поиск методов во время выполнения сопряжен со значительными накладными расходами по сравнению с обычным вызовом методов, в коде, для которого важна производительность, интерфейсы следует использовать только тогда, когда это действительно необходимо. Это не устаревшая информация?
Джаваны, а принято у нас разрабатывать использую вагрант? Ну типо берем и запускаем виртуалку, туда наш проект кладем, а код пишем через IDE на хост машине?
>>872789 Ну они кодят на двух языках , инфа 100% 50-50 . Да и сам хочу изучить сначало джаву что-бы продумать пути маня-отступления в другие конторы которых немало , если меня забракуют
Аноны, возможно ли изучить java, если я полный ноль в программировании и быдло незнающее английский? Сейчас постигаю основы языка по курсу new headway, но параллельно хотел занялся программированием, благо свободного времени много.
import java.io.FileInputStream; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.; import java.io.InputStream; / Самые частые байты Ввести с консоли имя файла Найти байт или байты с максимальным количеством повторов Вывести их на экран через пробел Закрыть поток ввода-вывода */
public class Solution { public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); FileInputStream fis = new FileInputStream(br.readLine()); List<Integer> bits = new ArrayList<Integer>(); List<Integer> numbers = new ArrayList<Integer>(); int count = 0; int max = 0;
while (fis.available() > 0) { int data = fis.read(); bits.add(data); numbers.add(count, 1); count++; }
for (int i = 0; i < bits.size() - 1; i++) { for (int j = 1; j < bits.size(); j++) { if (bits.get(i) == bits.get(j)) { numbers.set(i, numbers.get(i) + 1); } } }
for (int x = 0; x < numbers.size(); x++) { if (numbers.get(x) > max) max = numbers.get(x); }
for (int f = 0; f < numbers.size(); f++) { if (numbers.get(f) == max) System.out.print(bits.get(f) + " "); } fis.close(); } }
Не буду спрашивать вас, почему эта хуйня хоть и компилируется, но проверку не проходит, а спрошу, насколько хуевый код с точки зрения логики?
>>872868 Я бы хотел, но у меня уровень знания ангельского ниже C1, какой там технический английский, учитывая нулевые знания по IT. Вот как подкачаюсь до B2 хотя бы, так сразу.
>>872911 Это я так ненавязчиво намекаю, что твой код говно эту простыню можно переписать в несколько строчек - сложить байты в мапу (ключ) по мере чтения файла, увеличивая счётчик (значение), найти максимальное значение в мапе и вывести по нему ключи.
>>872935 С одной стороны не совсем так, а с другой - вообще нет. Для поддержки EE (а конкретно - JPA) тебе нужна ломаная ultimate версия Идеи, но "пихать говно" в БД можно и без неё.
>>872949 Да ты не понял. Парень писал на c++ в борланд билдере шестой версии. И там ты в иде компонент должен был вытащить для бд. Вот он и тут так хочет.
Начинаю завтра ходить на курсы при одной компании, для учебы нужен ноутбук, единственный который нашел у своих знакомых нетбук - 1гб озу и 2 ядровый 1.6 проц. Какую винду на него поставить что-бы он не сдох от перенапряжения? И что-бы на нем нормально работала IDE?
public static void main(String[] args) { String x = "Four"; for (int i = 1; i <= 5; i++) { if (i == 4) { System.out.println(x); } else { System.out.println(i); } } }
public static void main(String[] args) { String x = "Four"; for (int i = 1; i <= 5; i++) { if (i == 4) { System.out.println(x); } else { System.out.println(i); } } }
Вот такой появился вопрос - как в кровавом ынтерпрайзе документируют код? Сам попытался загуглить и в результате только ещё больше запутался. Одни говорят - пиши джавадок, другие говорят - не пиши джавадок, пиши executable documentation, третьи говорят - документация вообще не нужна, код должен быть self-explanatory. И вдогонку - какой подход лучше выбрать применительно к учебному проекту "для резюме" (конкретно - по заданию из >>868195). Пока склоняюсь всё-таки к написанию джавадока, для практики.
>>872889 Юзать надо очевидную мапу - ключ байт, значение количество повторов. Потом еще раз прогнать и найти максимальные значения. Потом вывести эти значения. А ты тут что то сочиняешь.
Как лучше всего ограничить параметры метода, чтобы они принимали только заранее известные из ограниченного перечня, допустим, "Am", "Ap", "Ax", и в зависимости от них поведение было разное? Использовать enum? Или просто проверять через if?
>>873569 Причем, эти примерные "Am", "Ap", "Ax" используются в классе в нескольких методах.
Как лучше всего это стандартизировать и ошлифовать инкапсуляцией, чтобы никакой хуйни кроме этого не могло передаваться и в случае чего не нужно было в каждом методе ручками править?
>>873577 Но тогда придется дополнительно делать import static MyEnum, чтобы не передавать аргумент с длииинным именем уровня HuiDlyaJopi.MyEnum.FIRSTARG, если вызывать метод извне. Хотя, я не библиотеку для масс пишу же.
>>873574 Ну не знаю, ничего лучше я не придумал, чем написать вот такую хурму
LinkedList<String> result = new LinkedList<>(); for (int i = 0; i < openIndex.size() - 1; i++) { for (int j = 0; j < openIndex.get(i).size(); j++) { result.add(i + j, html.substring(openIndex.get(i).get(j), closeIndex.get(i).get(j))); } } Ну и потом обойти это и вывести так как мне надо.
сильно требуется математическое образование, алгоритмы, уровнения, вот это вот байтоебство? сисадмину с 10 летним стажем (*NIX) сложно перекатиться? хочу стать энерпрайз девелопером
>>861772 (OP) Жабисты, обьясните мне как написать приложение по отслеживанию эвентов в системе? Тоесть чтобы приложение не отработало 1 раз и закрылось, а висело в программах и работало пока не произойдёт событие. Это впринципе возможно написать на Java?
Я создаю ArrayList, и каждую строку делаю объектом с 4-мя параметрами все String. Мне надо над каждым значением производить определенные действия. например сравнить URL второго и 4-го объекта, конвертировать значения timestamp в дату, итд. Как это сделать? И как правильно приводить стринги к интам? так хорошо?
int y = Integer.parseInt(str);
Весь код который пока смог придумать:
public class UserData { private String UserTimestamp; private String UserName; private String UserURL; private String UserTimeOnPage;
public void show (){ System.out.println(UserTimestamp+" "+UserName+" "+UserURL+" "+UserTimeOnPage); }
UserData(String UT, String UN, String UU, String UTOP){
Анон, я тебя очень прошу, не используй бекслеши в джаве для указания пути никогда. Все java.io и nio заменяют твои "/" на "\" при работе с виндой. А вот бекслеши приводят к кривой работе на macOS и Linux. Ну и про регистрозависимость файловой системы на своём сервере тоже не забывай.