Вы видите копию треда, сохраненную 6 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
Мокать репозиторий или че там у тебя. Использовать какую-нибудь H2 инмемори, на крайняк тестовая база.
testcontainers дефакто стандартом стал для БД микросервисов.
Сейчас пользуюсь 8-кой (JDK 1.8).
9 и 10 больше не поддерживаются, они были временными. А 11-ая будет коммерческой, и вместо неё придется использовать OpenJDK, так?
Смотря для чего, если у тебя коммерческое использование то да, надо башлять говнораклу.
Ну можно и вычислять, но это как-то непраивльноЮ вдруг вы захотите поменять логику, пока приложения/сайты не обновятся будет какая-то фигня. Так что пусть сервер считает.
главное в с проверкой пермишенов на сервере не провтыкать
Стараюсь поднять скорость написания кода и не могу вспомнить как включить автогенирацию кода для конкретного момента.
Вот написал я условно UserRepo.getUsername(), который возвращает list<String>, потом думаю надо бы операции с ним провернуть и пишу слева от него Arrays.stream()UserRepo.getUsername(), курсор стоит в заполнении аргументов stream(), так вот вопрос как мне быстрым сочетанием клавиш добавить UserRepo.getUsername() в аргументы и продолжить писать стрим? Понятнее написать не смог, помоги Анон
Нужно реализовать стек на базе кругового односвязного списка(т.е в котором последний элемент указывает на первый).
Список я реализовал, а как на его основе сделать стек не могу понять.
Со вставкой все понятно, но удалять как? Мы же можем двигаться только вперед, а нам нужно в обратном направлении список проходить чтобы извлекать из элементы стека. Разве что как обосранец пробегать весь список по кругу до последнего элемента, но это уже не О(1) будет.
На помощь, аноны, совсем уже котелок не варит.
Суть задачи в том чтобы использовать односвязный список.
Вставляешь всегда в начало списка. Удаляешь оттуда же. В чем проблема?
Круговой список здесь - лишнее.
Макросом только если, автодополнение так не работает
При очередном собесе может придётся на бумажке FizzBuzz и будет всё как в тех историях.
Привыкнешь вводить sout вместо System.out.println() и пиздец.
Другими словами не забывай и ручками иногда писать код, к примеру в Vim
Хорошо, понял.
Как он вообще лично тобой изучался - тяжело и медленно или нет? И как в сравнении с hibernate?
>медленно
Он же элементарный, значительно проще хибера.
У него есть возможность работы как spring data jpa - пишешь интерфейс, на методы вешаешь аннотации с sql кодом, потом через билдер берешь инстансы - на их сайте очень много примеров и доков, читай.
надо было слать нахуй всех дизайнеров
я так на работе делаю
Делается отдельный рест, возвращающий ассоциативный массив имя объекта/сущности - уровень доступа. Данные реста засовываются в стор и там лежат.
Соответственно с оглядкой на полученные права рендерятся соотвествующие компоненты. При этом это только UI - на бэкенде обязательно должна быть проверка прав доступа на соответствующие объекты / действия.
Использовал стандартное Proxy, там еще тип выставить можно http или сокс. В чем косяк то?
Что нужно:
Две конфигурации, одна действует для /api/, другая - для всех остальных.
Что пробовал:
Классы SecurityConfiguration и ApiSecurityConfiguration, расширяющие WebSecurityConfigurerAdapter и помеченные @Configuration. Оба помечены @Order со значениями 1 и 2, пробовал оба порядка.
configure(HttpSecurity http) перезаписаны подобным образом:
// SecurityConfiguration
http.antMatcher("/")
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS) ...
// ApiSecurityConfiguration
http.antMatcher("/api/")
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) ...
Что происходит:
Куки сессий либо не создаются вообще, либо создаются всегда.
ЧЯДНТ?
А, чёртова макаба. x = звёздочка.
>Две конфигурации, одна действует для /api/, другая - для всех остальных.
/api/xx
>http.antMatcher("/")
/xx
>http.antMatcher("/api/")
/api/xx
>Делается отдельный рест, возвращающий ассоциативный массив имя объекта/сущности - уровень доступа. Данные реста засовываются в стор и там лежат.
То есть для каждого объекта мне надо делать ещё один запрос, чтобы определить права текущего пользователя? Звучит довольно ресурсозатратно, например, у меня будет 100 комментов на странице, не буду же я 100 запросов к API делать?
>свич-кейс
Смысл наверное в том что можешь забыть поставить break и пиздец.
Альтернатива лапша из if-else. хз
>статический классы
Наверное тоже потенциальные проблемы + определённая сложность тестирования.
Ты какой-то хуйней занимаешься. Юзер у тебя на фронте залогинен? Залогинен. Информация у тебя по нему (имя, роли) есть? Есть. Теперь берешь и рендеришь комменты. В чем проблема?
> Посмотрел в rt.jar - хуева туча свичей.
Во-первых, большая часть хуй знает когда была написана, в вторых - то что жабу придумали и пилили сан с ораклом не значит что тамошним мэтрам - говноделам стоит доверять в вопросах правильности кода.
>Есть. Теперь берешь и рендеришь комменты. В чем проблема?
Ну вот попался пользователь дохуя хакер и умеет в браузере Ctrl-Shift-I такой нажимать чтобы такой мою аппликуху пентестануть.
Ну так двойная защита должна быть: одна на фронте, вторая на бэкенде, где прежде чем провести операцию проверяешь есть ли у пользователя нужные права.
А кому стоит?
Мне вот всегда интерестно было, ты тоже гей?
Конечная папка ровно та же, что и в книге. Там 2 файла с .class и .java расширениями. Ошибку гуглил, проблему гуглил, что-то похожее есть, но всё не то((
public class InheritanceInitOrder {
static class A {
String a;
A() {
a = "a";
System.out.println("a initialized");
System.out.println("b=" + ((B)this).b);
}
}
static class B extends A {
String b;
B() {
b = "b";
System.out.println("b initialized");
System.out.println("b=" + b);
}
}
public static void main(String[] args) throws ClassNotFoundException {
new B();
}
}
Проверка на фронте не отменяет проверки на бэке, маня. Но я не сомневаюсь, что существуют сайты слепленные макаками твоего уровня, на которых таких проверок нет.
this в твоем примере указывает на класс B, попробуй вызвать new A у тебя все упадет.
Мда, даже в джава коре постоянно какие-то нюансы всплывают. Спасибо.
>>82674
>>82686
Я на бэкэнде и так проверяю перед тем, как вносить изменения в БД, лол. Вопрос был в том, где лучше производить вычисления разрешённых действий над сущностью для фронт-энда: на клиенте (на основе информации о текущем пользователе, которая загружается каждый раз при старте приложения) или на сервере (в виде полей типа canBeDeleted, canBeEdited в отдаваемых сущностях).
В общем, решил вычислять на клиенте там, где это возможно.
Блядь
Мне всегда казалось, что так правильнее.
У меня есть интерфейс дао, его частичная реализация в дженерикДАО и, собственно, классы дао типа phoneDAO.
Как мне зафиксировать, что все подклассы дженерикДАО должны быть синглтонами?
Заранее сори, если вопрос тупой, в Гугле все очень сложно
640x480, 1:04
спасибо! как раз так и начал делать.
и все таки, блять, есть адекватные ситуации, когда DAO - не синглтон? или это сразу говнокод?
Могу предположить, что если требуется многопоточный доступ к БД, то нужно будет получить несколько экземпляров DAO.
У тебя в application.properties выставлено дропать БД. Или сама БД - H2.
Можешь начинать читать оф доки спринга5, 4й уже год+ как устарел.
Тесты написал к своей хуйне?
Да, БД - H2. Стоит заменить бд и тогда проблема отпадёт?
>application.properties
Такого не создавалось потому хз.
>Тесты написал к своей хуйне
По ходу дела писал.
Погугли БД виды. Поставь себе постгресс какой нибудь.
Файл с пропрети палюбас где то должен быть. Ты же в иде надеюсь все делал? Через спринг-бут-ио?
а зачем нужен именно синглтон?
Там же есть пул соединений. На каждый поток своё соединение. Нет никакого смысла отказываться от пула и заставлять ждать остальные потоки
>Ты же в иде надеюсь все делал? Через спринг-бут-ио?
Да, через идею и бут, на примеры в книге просто оглядывался.
Открой дерево проэкта. Вот в папке ресурсес есть пропрети файл. Там обычно указывают какая ДБ / тип соединения и прочее.
там - это в спринге?
я сейчас свою рукописную хуету говнокодю.
и у меня еще вопрос. Это нормально, что могут разные объекты взятые через один ДАО представлять собой одну и ту же строку в таблице в бд?
я чото заморочился и сделал буфер этого говна, типа если уже брали элемент с таким же id, то он просто берется из буфера, а не из бд. а теперь думаю, нахуя я это делал.
Думаю да, нормально. Если сравниваешь такие объекты, то не забудь переопределить equals и hashCode, чтобы сравнивало по ключу
У меня нет. И в книге тоже нет такого нигде. Посмотрел код примеров на гитхабе. Но спасибо за пояснение, сейчас создам и на постгрес переключу.
720x720, 6:30
блин, точно. спасибо большое!
а для ускорения работы этот буфер стоит оставить? допустим с ограничением по размеру небольшому
ну вообще есть готовые стандартные буферы, например ehcache для спринга.
Но в качестве тренировки можешь оставить
Мои Best Practicles
1) Объекты только в виде POJO, никакой логики внутри. Ибо если внутрь класса класть бизнес-логику, он быстро превращается в god object, внутри появляется очень много зависимостей и зависимостей от вызовов методов. Плюс нарушается принцип инкапсуляции — зона ответственности весь класс и все потомки, нет четких границ. В случае же процедурного-подобного подхода зона ответственности четко ограничена, и четко видны вход и выход.
Плюс объекты с бизнес-логикой внутри сложно тестировать, ибо оно зависит от внутренних состояний
2) Бизнес-логика в виде процедурно-подобных методов в классах-сервисах. Легко тестировать, легко расширять, легко видна зона ответственности, легко делится на слои, легко разделяется на разные классы
3) Наследование только в виде расширения POJO объектов, в соответствии с первым пунктом
4) Делим приложение на слои, минимальное количество: слой записи, слой чистой бизнес-логики и слой взаимодействия с внешним миром
5) Юнит-тестирование только в случае непонятного или страшного кода, в котором я не уверен. Гнаться за 100% покрытием — вредно, ибо увеличивает кодовую базу и затрудняет рефакторинг и правки.
Вместо юнит-тестов по максимуму интеграционные тесты, прогоняющие реальные сценарии работы с начала и до конца
То есть ты не пишешь мок-тесты для всяких банальных котнроллеров? И потом внезапно оказывается что секьюрити не пропускает какую нибудь хуйню, про которую ты забыл.
>То есть ты не пишешь мок-тесты для всяких банальных котнроллеров?
что ты хочешь протестировать? Что сеттер работает? Что твои глаза тебя не обманывают*
Для геттеров/сеттеров мне кажется никто не пишет. Я про банальные вещи когда у тебя метод контролера выдает статичную страничку например. Все просто же.
>Для геттеров/сеттеров мне кажется никто не пишет
что думаешь означает "100% покрытие кода"?
> Я про банальные вещи когда у тебя метод контролера выдает статичную страничку например
Юнит-тестами это не протестировать. Тут как раз надо поднимать весь контекст и слать реальный запрос и смотреть реальный ответ.
И опять же есть шанс, что тест будет работать, а при разворачивании на рабочем - не будет
Просто есть проверка логин/пароль и там я достаю из БД всё, где логин и пароль такой-то.
Так-то я попытался банально вывести пароль в консоль чтобы посмотреть если шифруется, а там получаю вот это core.User@77b3d801 . Я ведь правильно понимаю что накосячил и получаю хуйню?
у меня все такие объекты наследуются от Entity. Придется у каждого отдельно переопределять? или как-то можно красиво переопределить в Entity? пикрил ругается на синтаксис :c
Тебе даже ide подсветила. Вместо == надо использовать equals для id (предварительно проверив на null), поскольку id у тебя хранится в упакованном объекте, а == сравнивает их адреса, а не значения.
Спячку я ещё не изучал, потому и взял jdbc.
да бля, на getClass ругается. но не могу же я написать "instanceOf Entity", ведь тогда два разных элемента из разных таблиц с одинаковыми id будут равны. типа phone с id = 2 и phone_type с id = 2. как мне проверить принадлежность объекта к подклассу?
if (obj == null || obj.getClass() != getClass()) {
return false;
}
Entity e = (Entity) obj;
Long eId = e.getId();
return eId == null ? id == null : eId.equals(id);
Однако Joshua Bloch в Effective Java (кстати, очень рекомендую прочитать) не рекомендует так делать, ибо могут быть странные баги, особенно если эти entity ты будешь совать в мапы или сеты.
> return eId == null ? id == null : eId.equals(id);
Хотя не. Правильно будет так:
return eId != null && id != null && eId.equals(id);
И да, я бы так equals не переопределял вообще, потому что сразу возникнет проблема с согласованностью. Например ты взял объект из БД, потом этот объект внутри БД обновился и ты взял его снова. С точки зрения equals они будут одинаковые, тогда как в реальности в них будут разные данные.
Впрочем эту проблему легко можно решить простым способом: ввести версии и флаг того что entity не была изменена со времени доставания из БД. Версия будет простым int'ом и будет инкрементироваться после каждого успешного сохранения, а флаг будет ставиться после каждого обновления поля (за исключением установки поля после чтения из БД) и сбрасываться при сохранении. Тогда совпадение id, версии и флага будет означать, что объекты одинаковы.
При запуске таска bootRun вне идеи всё работает нормально. При запуске того же самого таска из неё (как обычным запуском, так и дебагом), всё это дело сжирает 2/8 потоков и начинает неистово греть ноутбук. Таск run (из плагина application) даёт тот же эффект. Такое происходило и на линуксе с OpenJDK, и на винде с оракловской. Простой запуск @SpringBootApplication-класса в идее работает абсолютно нормально, но есть таски, которые должны подхватываться грейдлом при запуске, поэтому не вариант. На старом, менее мощном ноутбуке работало нормально, но там и версии софта были другие.
Кто-нибудь встречался с таким? Что виновато? Что обновить/откатить?
Thread thread1 = new Thread(runnable1);
Thread thread2 = new Thread(runnable1);
thread1.start();
thread2.start();
гугли CountDownLatch
Тогда только поставить тредам реалтаймовый приоритет и использовать спинлоки. Правда планировщик ОС всё равно может всё испортить.
Ну так создай его. Потому что в буте есть такая хуйня как автоконфигурация и если у тебя в зависимостях есть H2 скорее всего он его поднял, а конфигурацию сам нашаманил.
Но зачем?
Оф документация. Спринг референс.
> Вместо юнит-тестов по максимуму интеграционные тесты, прогоняющие реальные сценарии работы с начала и до конца
Типичная ошибка джуна / недостаточно опытного мидла. Интеграционный тест на каждый пук и в какой-то момент ты уже успел сходить посрать, поспать и бабу выебать, а тесты все еще идут.
Тесты должны тестировать только тестируемый функционал. Если новый функционал можно протестировать написанием юнит теста, то именно его следует писать. Понятно, что пример утрированный - одного теста никогда не достаточно, но 100% интеграционных тестов такой же антипаттерн как 100% юнит тестов.
>>82923
За вайрмоки контроллеров надо отрывать руки. За пруфами в пазлеры Баруха и Борисова про Шерлока Холмса с крайних джокеров и жпоинтов, где тест работает, а почтовая станция к хуям сгорела.
>>82973
Идея майнит на твоем кудахтере. За удобство надо платить.
>Идея майнит на твоем кудахтере. За удобство надо платить.
Майнит - не майнит, мне без разницы. Я не понимаю, почему грейдловская таска, запущенная именно через идею, жрёт столько при том, что запуск приложения (чем эта таска и занимается) через идею работает как и должен.
Если оно не отличается от общепринятого с долей сарказма, то понимаю. Впустую гоняет процессор. Но опять же, на более слабом ноутбуке (Latitude 5491-i5 против x220-i5) оно работало абсолютно нормально. Идея стояла та же, грейдл тот же.
На торрентах не искал?
Если не нашел, то посмотри четвертое издание. Или на гитхабе посмотри примеры
Возможно памяти не хватает. У меня недавно две планки памяти перестали работать (впрочем починились протиранием контактов спиртом) и вместо 32Гб стало 16, idea тоже начала тормозить на крупных проектах.
Ебать ты говна накатал.
Проект (пока что совсем) не крупный, памяти 16ГБ. Отдельно, правда, я не прописывал выделение памяти ни жвм, ни грейдлу.
В идее не тормозит, в грейдле не тормозит. Стоит обернуть грейдл в идею - кранты. Выделить грейдлу гигабайта 3-4, что ли?
Пасибо, а то я покупал главу за главой с новых акков за токены.
Попробовал выдать грейдлу 4ГБ, идее 2ГБ. Результат один и тот же.
Пробовал JDK 8u181 и 8u192. На JDK 11 билд не завёлся вообще да и хуй с ним.
Хотя по той ссылке меньше одной главы, так что толку мало... а не хочешь ли сыграть в игру? Кидаю архив с полным 5 изданием, но под паролем. Разгадаешь - получишь полную версию уже сейчас. Да и алгоритм у меня совсем не сложный, это тебе не цикада. Удачи :)
Всё, виновник найден. Откат идеи до 2018.1.6 полностью решил проблему.
Пидорасы, блять, в EAP 2018.3 тоже майнит.
Observable obs1 = // ...
Observable obs2 = // ...
BiFunction zipper = // ...
Observable.zip(obs1, obs2, zipper);
Это невозможно из-за принципа неопределённости Гейзенберга.
Джуну нужно что изучать? Спринг или спринг бут?
Учить спринг. С помошью спрингбута ты натыкиваешь какие модули спринга тебе нужны и он подбирает подходящие версии, и создает проект. Со всем добавленным говном.
Опытного мидла видать из далека. Хотя бы по тому как он лихо раздает советы на лево и направо.
Что ты там собрался юнит-тестами покрывать в очередном CRUD?
>Тесты должны тестировать только тестируемый функционал.
А мы то с мужиками нетестируемую функциональность тестируем. В цитатник однозначно!
>В цитатник однозначно
Очевидно же, что он говорил о случае, когда добавляется новая фича, а ты тестируешь все приложение целиком, в чем смысла нет.
Вот допустим взять кусок регистрации юзера - это бд с юзерами + форма регистрации + логин форма + конфиги спринг секьюрити + допустим страницу куда идет перенаправленные после логина.+ может что то еще забыл.
Нет, учи реакт + ноджс там легче.
Тут к вам кресто- блядь заглянула. Поскольку у меня весь проект переписывается под жабу заказчик - долбоеб, хули делать, необходимо срочно выучить синтаксис и работу с сетью. Что подскажете ?
Есть какие- нибудь книжки с простыми заданиями ? Посмотрел java head - чуть не блеванул. Есть что-то годное для погромиздов, которые переходят на жаву с другого ООП языка ?
Берешь selenium/puppeteer/что-то_еще и тестируешь.
Если у тебя REST - тестируешь средствами самого спринга.
Наверное должны быть книжки, которые помогут объяснить заказчику что он идет нахер с своими тупыми идеями
Хз что там у макоблядей, но у меня писька стоит на Hack.
Медленно соображаешь всегда или именно на конкретной задаче затупил? Если второе, то пока возьмись за другую. Если первое, то тобой выбрана неправильная дверь, дружок-пирожок.
Эх, и я тоже. А я ведь даже работу еще не получил, просто вкатываюсь. Могу по часу-полтора сидеть и думать над решением какой-то задачи. Надеюсь, со временем стану быстрее соображать.
>Это коммерческая тайна вообще-то. Просто баг, который то есть, то нет.
Ну так сука скажи какой у тебя ебучий фреймворк, как ты багу искал и т.д. Опиши свои шаги...
А то складываешься впечатление что ты просто ленивая жопа вместо ковыряния кода двач листаешь.
ещё интересует
а если происходит изменение, изменяющее функциональность в этой фиче. Будем ломать все эти тесты на каждую фичу?
Может проще было иметь один тест и поддерживать его?
>Может проще было иметь один тест и поддерживать его?
Ебать тесты то на каждый класс пилят вроде.
Поменял/добавил в класс => поменял добавил в тесте соответствующем.
Я если чего про юнит тесты.
Пацаны ещё говорят вначале тесты потом код.
Можно тестировать контракт функции, а можно кишки. В первом случае тесты полезны, во втором будут ломаться при каждом изменении функции.
Охуеть, взял книжку Экеля, прочел 200 страниц за день. Ебать, как у вас всё просто - автосборщик мусора, нет перегрузки операций, нет конструктора\деструктора, де- факто, отсутствует понятие хип\стек (вам просто похуй), адекватная работа с файловой системой, нет вставочек под АСМ. Ебануть в Андроид - дев, чтоле. Или голанг уже сожрал джаву ?
Дальше читай, там будет рефлексия, аннотации, манипулирование байткодом и тюнинг gc.
Ну и утечка ресурсов в джаве никуда не делась.
Потому что тюнить gc проще, чем исправлять косяки в архитектуре, и позволяет продолжать тянуть деньги с заказчика, по сути нихуя не делая.
Мне кажется, что после перепиливания куска буста под нужды внутреннего проекта, джава - это какое- то райское местечко, серьезно.
> нет конструктора\деструктора
Вообще-то конструктор есть. А вместо деструктора используется интерфейс AutoCloseable, который в какой-то степени даже неудобней деструктора (поскольку его надо использовать явно, в отличии от).
> отсутствует понятие хип\стек
Вообще-то есть. А когда закончат вальгалу (проект по внедрению кастомных value types в жяву) станет достаточно важным, если захочешь делать пирформансные приложухи с минимальным мусором.
> адекватная работа с файловой системой
Хуй его знает. Много бойлерплейта, а минимальные функции уровня хуяк и готово появились только в 10/11 версиях.
Ага, в бусте-то скорее всего оно тупо не собиралось, если где-то косяки. В джаве в случае метапроблем лови ошибки сгенерированного кода в рантайме.
Например функции для быстрого чтения/записи строк (хотя можно читать записывать в массив байтов, а потом преобразовывать, что доступно с версии 1.7, но это уже не хуяк и готово). Доступны с 11 версии:
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html#readString(java.nio.file.Path,java.nio.charset.Charset)
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html#writeString(java.nio.file.Path,java.lang.CharSequence,java.nio.charset.Charset,java.nio.file.OpenOption...)
Я хочу разделить это всё на модули\плагины: в одном модуле главная страница, в другом - страницы с информацией о игровом клане, в третьем - интерфейс управления ботом группы вк.
Нужно, чтобы эти модули могли независимо подгружаться\перезагружаться, не затрагивая работоспособность остальных модулей. Сейчас, чтобы внести какое-то изменение, нужно опять собирать 20мб джарник и перезагружать весь спринговый сервер.
Подскажите, пожалуйста, готовые реализации такой "модальности". Если это сложно реализовать со спрингом, подскажите фреймворк, в котором с этим проще.
osgi
Бляяя, вот сейчас уже бомбануло. Наркоман, ошибку читай, ебана.
Почему в андройд а не бэкэнд например?
Да, я. Не буду палить где я работаю, но это точно не ойти-шаражки, в которых 70% треда работает. (остальные вкатывальщики)
Игорь, зайди в бухгалтерию, у нас калькулятор твой полетел, перезапусти роутер, Игорёк.
Ладно-ладно, мне тоже интересно на самом деле.
Спринг бут, груви, микросервисы.
У нас же есть хтмлюнит и мокМВЦ. Зачем еще селениум и т д?
буду очень благодарен, если поможете!
пик1 - генерация id, мой препод писал
пик2 - бд
пик3 - мой говнокод, где вылетает ошибка
пик4 - верхняя часть стектрейса
Если это спринг:
В БД там должно быть поле по умлочанию, которое генерит Идшники. Оно всегда последовательно и генерит его сама БД.
Давай класс ентити суда.
Пик стронгли релейтед.
У тебя чет пиздец какой то если чесн
А и датагрип какой нить скачай, не ебись с родной хуйней от постгреса.
Это не спринг. как я понял, препод хочет, чтобы мы сами поебались с JDBC перед тем как на спринг перейти. с ошибкой мне уже помогли :)
если все равно интересно/есть что сказать(обосрать) вот пикрилы.
встроенных - нет
первая ссылка в гугле - http://qaru.site/questions/20332/generating-all-permutations-of-a-given-string
А, permutations, бля, а я enumerations ищу. Понял как гуглить. Спасибо добрый человек.
>jdbc
>spring
>препод
Ты блять где учишься сукин ты сын? Ты в гарвард попал что ле? В моей шараге блять за год только до листов дошли. Я хуй на пары положил и сам изучал всё, потом смотрел на препода и на дногрпников как на говно, когда они в ужасе видели коллекции. Какой курс, если не секрет?
>Это combination называется.
Один хуй, нужно 000 001 010 -- 111. Самому впадлу реализовывать. Придется что ли.
Основная разница, что в перестановках количество элементов равно количеству элементов в исходном множестве, а в сочетаниях количество элементов задаётся отдельно. Судя по вопросу тебе нужно перечисление сочетаний от 1 до n (где n - количество элементов).
3 курс, первый классный перпод за 2 с лишним года. искренне тебя понимаю :*
Блять ну хуй знает ЖДБС там столько борлейплейта, который просто потом не нужен вообще нигде и исключения которые НИЧЕГО не показывают и надо ловить и куча еще всякого Г... И это все еще и руками.
Ебать калдавство нахой
И как ты открыл зашифрованный раржпг архив?
Что ж, ты меня удивил. Потому что мой эмпирический алгоритм (алгоритм Макабы-Рошала) основан на машинном преобразовании кода, и пока что ему даже не найдено объяснение современными математиками. Короче, я сам его не смог вскрыть своим паролем после загрузки на двач. Пароль не подскажешь? А то интересно ведь, что с ним стало.
Единственный вариант открыть это или подобрать пароль или вскрывать чем то типо пасворд рекавери. Это же винрар блять.
Ладно, бро, пиздеть не буду, ничего я не взламывал (хотя пытался брутом: одна древняя прога перебрала все простые варианты, что-то поновее, обещавшая задействовать 100% проца и видюхи вообще не смогла определить тип защиты).
Просто у меня есть такой же экземпляр.
Предлагаю, кстати, придумать реальный квест за доступ к книге.
Просто залить куда нибудь чтобы те кому это нужно могли просто скачать? Тут максимум наберется 3-4 Анона, кому это вообще надо.
+1, запишите меня в список 3-4 велогонщиков, которые с великой радостью получили бы эту книгу.
Я думаю ты пока возглавляешь список в единственном экземпляре.
В Mockito есть аннотация @InjectMocks.
Есть конфиг спринг секьюрити. Приложение работает.где не надо логиниться, например "/" доступ ок.
Когда пишешь тест, если не указать @WithMockUser%% туда куда не нужна авторизация (permitAll в конфиге) вместо статуса 200 выдает 302 что странно.
Это нормальное поведение?
Ай-яй-яй, анончик. Нехорошо так обманывать. Но насчет квеста поддерживаю, хотя кроме раржипега ничего в голову не лезет.
Ссылку?
Не мешай им дрочить друг другу.
Так я один-то и бомбанул.
Эмм, так в чем обсер, если кто-то всерьез пытался взломать изначально поломанный архив? Разве это уже не доставляет?
;)
Зачем два? У тебя же есть (наверно) таблица, где А связываются с уникальными В, ну и делай просто один запрос к этой таблице. Изи же. Или я не так понял что-то?
https://pastebin.com/8jEUdmA7
Ну вот такие 2 класса. На вход дается name, надо вернуть List<A> WHERE A.aName = :name и List<B> WHERE B.bName = :name. Я вот и спрашиваю, это делается через 2 отдельных запроса, через джоин или как-то по-другому.
Что про АДФ скажите? Меня на нём прогать скоро заставят. Я вроде какую-то литературу нашёл, но может вы что-нибудь более интересное посоветуете.
А, понял. По твоим данным хз, как сделать меньше двух запросов. Если нужно чисто формально сделать один запрос, то используй UNION (хотя внутри там все равно будет два запроса).
Можно накостылять одним запросом, но будет выглядеть не очень. Никаких проблем с двумя запросам в твоём случае не вижу. Зачем усложнять?
Где вы все были такие умные, когда был выложен первый йоба-архив?
PFDFKB ЕБАЛО ЧЯМОШНИК
Двач, нужно написать веб-приложение для управления почтой. Подскажи что почитать близкого к этому, чтобы разобраться. Какую-нибудь книгу, курс.
Возьми gRPC и лонг поллинг для старья.
https://github.com/Weydile/Basic-interpreter
Что это? Зачем это? Почему readme на русском? Почему комментарии в коде на русском? Пока не сделаешь на ангельском смотреть не буду. С сделай ещё
/
Hiu-pizda
@param
@return
/
Где вот это вот всё?
Почему * не поставились. В любом случае, делай пояснение.
на русском
Задал вопрос в ньюфаг-треде не зашкварно ли на русском писать, назвали русофобским смузихлёбом и опущенкой, хотя насчёт того что язык комментариев и коммитов должен зависеть от правил фирмы в которой ты работаешь я согласен, в данный момент я пишу это для себя и русскоязычного анончика, так что в чём проблема?
Try to google generate uml from java code
>русофобским смузихлёбом и опущенкой
Нахуй ты смотришь на 1С-ых петушар и всяких фронт-енд макак, которые на этих 1С-иков работают? Ты стремишься погромировать или как? Ты собираешься доки на русском читать? Ждать пока выйдет перевод для новейшей версии хуй-пизда? В резюме так и будешь писать, что вот русский знаю и ангельский с гуглом чуть-чуть, а потому буду на русском кодить?
>так что в чём проблема?
Я придира и мне лень чет вникать, но побузить и придраться есть желание, пушто захотелось увидеть документирование твоей хуйни чтобы не вникать в неё.
А нахуя? Вдруг есть что-то лучше?
+ что писать в резюме, чтобы знаний как будто побольше было, а то, когда написано 2 технологии, совсем по-нищенски выглядит.
+ что писать в резюме, чтобы знаний как будто побольше было, а то, когда написано 2 технологии, совсем по-нищенски выглядит?
sql jdbc spring rest
-10 из 0
Мне стало интересно, что ты там наделал и я решил переписать, все в хоть чуть более читабельный вид, но слушай у тебя проблема в другом твой код не работает.
34 строка просто какой-то наеб, ты заполняешь мапу
якобы Integer но у тебя в buf[0] находиться "PRINT", я изменил на String но и это не помогло ты ведь используешь мапу, а знаешь ли мапа перезаписывает ключи, а значит твои 2 принта перезатрутся, че ты хотел я вообще не понял.
Вот тебе код https://pastebin.com/kQ4z7X9Y дальше сам
public static void main(String[] args) {
int holdersNumber = 8;
int capital = 1_000_000;
int term = 2;
int iterResult = capital;
int finalResult = 0;
int temp = deviding(holdersNumber, capital, iterResult, finalResult, term);
System.out.println("The result is" + temp);
}
public static int deviding(int holdersNumber, int capital, int iterResult, int finalResult, int term) {
int middleResult = iterResult;
for (int i = 1; i <= holdersNumber; i++) {
finalResult = middleResult + term;
if (capital % i != 0) {
capital += term;
deviding(holdersNumber, capital, iterResult, finalResult, term);
return finalResult;
} else {
if (i == holdersNumber) {
capital = middleResult;
}
iterResult = capital;
}
}
System.out.println("Big iteration result is " + finalResult);
return finalResult;
}
}
public static void main(String[] args) {
int holdersNumber = 8;
int capital = 1_000_000;
int term = 2;
int iterResult = capital;
int finalResult = 0;
int temp = deviding(holdersNumber, capital, iterResult, finalResult, term);
System.out.println("The result is" + temp);
}
public static int deviding(int holdersNumber, int capital, int iterResult, int finalResult, int term) {
int middleResult = iterResult;
for (int i = 1; i <= holdersNumber; i++) {
finalResult = middleResult + term;
if (capital % i != 0) {
capital += term;
deviding(holdersNumber, capital, iterResult, finalResult, term);
return finalResult;
} else {
if (i == holdersNumber) {
capital = middleResult;
}
iterResult = capital;
}
}
System.out.println("Big iteration result is " + finalResult);
return finalResult;
}
}
Хочу намутить "домашний проект", но встал вопрос, что всё это впадлу настраивать.
В общем-то еще нужно знать кучу всего. Ты знаешь процентов 10 от необходимого для вката.
Коллекции - от и до
Многопоточность - базу мониторы-хуеторы, рэйс кондишн и тд
Основные алгоритмы - пузырек, вставка, квиксорт, рекурсию и тд
sql
html\css
maven, git
servlet api
spring
Ну то есть рассчитывай на год занятий минимум 2-3 часа в день.
Коллекции нужна, да.
Многопоточность нужна на уроне умею стартануть тред и понимания что такое саутдаунлэш и ридрайтлок.
Алгоритмы нужны.
Хтмл и цсс нахуй не нужны, для этого есть фроентендеры.
Скл нужен крайне посредственно, потому что джуна всё равно никого к базе близко не подпустит.
Мавен - нахуй не нужен.
Гит - умение пушить, пулить и коммитить, пездец сложно.
Сервлеты нужны.
Спринг надо понимать хотя бы как аннотации работают.
Ты ж написал что возвращало 0. Я не понимаю что ты там вообще накалякал, в чем цель то?
Я попутал, братишка. Это finalresult у меня становится нулём, а метод возвращает 1000002. Надо короче чтобы этот finalresult (1000440) можно было достать из метода именно в таком виде в котором он там.
>UPDATE или DELETE в таблице "таблица_нейм" нарушает ограничение внешнего ключа "ключ_нейм" таблицы "таблица2_нейм"
как можно проверить, можно ли удалять элемент, чтобы обработать эту ошибку? в голову приходит только сделать SELECT по всем таблицам, у которых внешний ключ содержит эту таблицу, но чувствую, что изобретаю велосипед.
Короче говоря, суть в том, что дойдя до строчки с "Big iteration result", кудахтер вместо того чтобы выполнить следующую под ней return finalresult, за каким-то хером лезет опять в цикл for, прибавляет там 2 к миллиону и торжественно ретёрнит оттуда 1000002. Этот пиздец не укладывается в моём двузначном ICQ и я нихуя не понимат.
Ебать ты куколд, тебя даже собственный компьютер в хуй не ставит и делает всё, что ему вздумается, задумайся над своей жизнью, анон, ты явно делаешь что-то не так...
Ты правда не понимаешь что происходит или просто смеешься над теми кто не понимает?Ответ максимально простой, ты же рекурсивно туда зашел, так же рекурсивно и вышел
25 deviding(holdersNumber, capital, iterResult, finalResult, term);
26 return finalResult;
меняешь на:
return deviding(holdersNumber, capital, iterResult, finalResult, term);
Я нихуя не понял, просто приму как данность, пасиба.
На работе сказали сделать программу, что б запускать на сервере, программа в принципе написана, но запускается только локально в ide через main функцию.
Еще говорили, что можно сделать из этой программы статическую библиотеку,
как эт овсё сделать? Почему этому не учат в университете...
Упаковать в jar.
никаких сторонних библиотек
Я надеюсь ты используешь систему сборки вроде gradle или maven& Если нет, то используй, с ними будет проще. В них делаешь таск для создания jar, при этом в classpath нужно указывать все зависимые библиотеки. Я например делаю как пикрелейтед (у меня gradle). Такс jar создаёт запускемый файл, такс copyToLib копирует используемые библиотеки, а таск install делает скначала копирует библиотеки, а потом туда же и сам jar. Вместо ебли с библиотеками можно использовать fatjar (в таком случае все библиотеки вместе с программой упаковываются в один jar-файл), но с ним есть нюансы и некоторые библиотеки работать не будут.
Дальше просто натравливаешь жаву на получившийся jar-файл и всё работает. Есть нюансы если хочешь чтоб твоя программа работала как служба (тогда вместо одного main ннужны два статических метода - для запуска и остановки), но в остальном тоже самое.
>Мавен - нахуй не нужен.
сильное заявление
>Спринг надо понимать хотя бы как аннотации работают.
особенно когда что-то отвалится ммм
>Алгоритмы нужны.
ну такое
не то чтобы сложна но пригодится только для собеса
>Гит - умение пушить, пулить и коммитить, пездец сложно.
дааа ето жестка
dialog = new AboutDialog(DialogFrame.this);
а именно DialogFrame.this ??? Чисто синтаксис имяобъекта.this что это?
Ну епт, зависит от контекста. Скорее всего дело происходит в каком-то вложенном классе, причем этот класс вложен в DialogFrame, вот к инстансу DialogFrame и идет обращение.
На самом деле ничего другого и быть не может. Потому что this ключевое слово и переменную ты так не назовешь.
Это вот отсюда http://pro-java.ru/java-dlya-nachinayushhix/sozdanie-dialogovyx-okon-v-java/ Просто везде пишут что у this два применения, а про синтаксис .this не найти
Может. Декомпиляторы обычно добавляют класс к this даже вне вложенных классов.
Я не очень понял что куда вложено, можно как-нибудь пояснить для клинических людей?
Хуйню нагородил и рад.
>но у тебя в buf[0] находиться "PRINT
Наверное это потому что ты метод parse неправильно переписал, давай разберем по частям мною там написанное
>TreeMap<Integer, ArrayList<String>> code = new TreeMap<>();
Integer - номер строки, ArrayList - остальной код разделенный по словам
>for (String aNeedParse : needParse) {
Ебошим по листу который мы получили из метода readUsingFiles Который я переписал, у тебя на пастбине почти то что нужно, хз почему я ту херь нагородил
>String[] buf = aNeedParse.split(" ");
Тут мы разделяем всю строку по пробелам, это в принципе понятно
>ArrayList<String> codeWithoutLineNumber = new ArrayList<>(Arrays.asList(buf).subList(1, buf.length));
Тут мы записываем в ArrayList всю строку кроме её номера, тобишь просто начиная с элемента под индексом 1
>code.put(Integer.parseInt(buf[0]), codeWithoutLineNumber);
Вот тут мы из строки buf, в которой вся строка кода разделенная по пробелам берем элемент под индексом 0 который является интом и ебошим его в ключ, а всё остальное, тобишь строку без номера ебошим в значение ебаное ага да
То что ты там в этом методе написал я не понял если честно.
>ты ведь используешь мапу, а знаешь ли мапа перезаписывает ключи, а значит твои 2 принта перезатрутся, че ты хотел я вообще не понял
Хуле у меня тогда всё работает? М?
Абстрактны пример:
class Outer {
void init() {
this.sendMsgButton.setOnClick(new OnClick() {
void onClick(Object sender) {
Outer.this.sendMessage();
}
})
}
}
на каких вообще бытовых приборах крутится джава, лол, там же всё на сг
На 2 лярда это телефоны, остальной лярд пека, не?
Кстати бамп вопросу, а то всегда интересовало, как жирная жвм может влезть в маленькую встроенную систему.
Умные холодильники, например.
Через флешку
Я скопировал твой basic code и удалил в нем номера строк может и не номера, потому что посчитал это странным, теперь понятно почему у меня не работало. Дальше не смотрел.
Речь о профилях?
С админискими правами запускай этот кусок говна (эклипс).
Девелоп собирается, но отказывается работать до тех пор, пока в скрипте сборки кора отсутствует jar { enabled = true; } - в собранном через bootJar джарнике нету, собственно, кора. Всё бы ничего, но devtools отказывается перезагружать сервер на горячую - ругается, что не может найти в classpath-е интерфейс из кора, который используется в девелопе.
Как чинить? Пока что в голову пришла идея заставить грейдл распаковывать джарник кора напрямую в BOOT-INF (куда спринг складывает классы из девелопа), или пусть кор вообще в джарник не пакуется. Но вот как объединить скомпилированные классы - я без понятия.
А IntelliJ IDea не котируется?
Я эти номера строк в так называемом тз увидел, и с ними goto работает, так-то сделать так чтобы номера автоматически присваивались проблем нет, но тогда goto нужно будет переделывать каждый раз когда добавляешь и удаляешь строки, хз.
Жаба бывает разной. В былые времена была Java ME, которая вполне хорошо работала на кнопочных телефонах с 64кб оперативы. Впрочем, вместе с кнопочными телефонами она и померла.
Зато вместо неё Оракл запилил Java ME Embedded и Java SE Embedded для разных встраиваемых устройств. Но в РФ/Украине/прочем бСССР на них по очевидным причинам никто не пишет.
Приложение на спринг бут весит 15 мг. Охуеть. Можно уменьшить вес джарника или лучше использовать Spark Framework, если мне нужен рест?
А ты его что, на микроконтроллере запускать собрался? Впрочем я и микроконтроллеры паял с гигабайтами флэш-памяти, благо они дешёвые. Откуда такая экономия мегабайтов? У тебя jre (даже если будешь создавать кастомную через jlink) больше занимать будет.
Во-первых, это джава, сынок. Я не про тупые стереотипы "гагага жрет память", а про то, что для байтоёбства есть другие языки.
Во-вторых, спригбут создан для того что быстро быстро накидать аппликуху пока солнце ещё высоко. Размер и скорость - это не те вещи на которых концентрируется этот фреймворк. Опять же, это не означает, что все приложения на нем жирные и тормозные.
В-третьих, мы же не экстрасенсы и не знаем что ты в джарник напихал. Возьми да посмотри, что в нем лежит. Если стандартный spring-boot-maven-plugin суёт туда что-то лишнее, то скажи ему не делать это https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html или используй maven-shade-plugin вместо него для сборки.
Отож. У нас вся техника из Запада/Востока. Прошивки все пишутся там же.
https://pastebin.com/nfkmpwG7
Клиент хочет изменить изменить владельца Foobar и присылает id нового владельца в dto. Должен ли маппер проверять, есть ли юзер с таким id и добавлять его в entity (маппер вызывается из сервис-метода)? Или он должен тупо копировать поля, а логику только в сервис?
Еще как пример - хеширование паролей при регистрации, в dto строка, в entity bcrypt.
Пиздец, а что джавараш уже платный стал? Есть альтернативы?
Джавараш как был говном этом так и остался, кури хортсмана/шилдта + решай задачки на codewars/acmp/codeforce/ect
>шилдта
Пробовал, но уже в самом начале где он обьясняет ООП я нихуя не понял. Шилдт все таки больше рассчитан на студентов, чем на тех кто в соло вкатывается.
Но маппер ведь как раз и содержит логику, а не данные, его же тоже можно считать сервисом, разве нет? В твоем случае логика трансляции размазана по 2-м классам (сервис и маппер), причем каждый сервис должен копипастить этот кусок трансляции, который маппер не доделал?
Он же объясняет ООП на примерах с машиной и собаками, насколько помню. Что может быть легче?
Я твой вопрос не так понял. Но ответ тот же. Не стоит так делать. Маппер просто маппит. Это же не чеккер и не валидатор. Верно?. Сервис же имеет доступ к базе(ам) и занимается сложными операциями.
Наверное кодинг это не моё.
Я тебе полностью архетектуру переделал, ща залью и скину ссылку
>Для работы поместить basic код в файл Basic code.txt
Ну это вообще пушка.
Сделай хотя бы аргументом. Не говоря уже о stdin.
Не согласен. Мапперу на вход подаётся сущность, а на выходе должен поучиться готовый ДТО и наоборот. Даже если там какая-то тяжёлая логика стоит за этим.
мимо
Как по мне, в моем примере поиск нового владельца и добавление в результирующую сущность тоже относится к маппингу, давая на выходе полностью готовый объект.
Бери что понравится, много чего не дописал, и ничего не документировал, знаю плохо, но попробуй в дебаге разобраться.
https://github.com/NE86/BasicDecoder2
>отправил
А хуль на Java пишут больше, чем на C#? Или это какое-то особое "отправил на помойку", в стиле "уничтожил, как политика"?
вобщем зачем нам фигачить Builder и делать объект immutable
если в сеттерах мы можем возвращать this
ну и типа
User user = new User();
user.setID(2).setName("shrek");
код получается "почти" такойже красоты и изменяемый притом
и еще вопр чем чаще пользуетесь для инициализации?
Билдер и иммутабельность вообще никак не связаны. Билдер нужен чтоб не фигачить кучу параметров в конструктор и не создавать кучу конструкторов, если часть параметров опциональна. Всё!
Мы обязательно встретимся, анончик! Уже лечу в /gachimuchi. Только сперва проверю братишек в /mlp.
> нужно ли учить какой то промежуточный язык попроще между java и нихуянезнанием
Нет, не нужно. Жава тоже была моим первым языком (правда первые приложения я писал на Java ME для мобилок, чтоб понтануться перед одноклассниками).
Спасибо, друг. А литературу стоит какую-нибудь читать, мне говорили что смысла нет, ибо быстро устаревает, и лучше читать статьи и смотреть курсы? Как сам изучал? Я сейчас смотрю курсы, там около 24 видео, то есть допустим я все это съем, но ведь этот ЯП огромен, откуда знать что дальше изучать и тд?
Но ты ведь тоже здесь, в нашей дружной тесной компании, в нашем узком кругу, так сказать, а? ;)
>>86610
Ты сейчас делаешь следующее: "сейчас я хорошенько поузнаю, что мне нужно учить, а учить буду потом". Когда этот этап пройдёт, ты будешь думать "так сейчас надо найти самые лучшие книжки и курсы, а потом буду их читать и учить". Когда найдёшь - "так, нужно почитать программач ещё разок, чтобы быть в курсе, не изменилось ли чего". Потом "ага, надо ещё работы посмотреть на данный момент и сделать проекцию в будущее, чтобы предположить свой заработок". И после ещё десятка таких типа-как-небесполезных откладываний ты либо найдёшь какую-то другую великую цель для себя, либо попробуешь начать изучать то, что подготовил, но не протянешь дольше недели.
Это я к тому, что из этого паттерна прокрастинации и фантазий нужно выбираться прямо сейчас, а не потом. Если ещё более прямо надо - бери любой язык и учи его месяц, не тратя время на всякую чушь. Иначе гроб.
> А литературу стоит какую-нибудь читать, мне говорили что смысла нет, ибо быстро устаревает
Ты жаву с жаваскриптом случайно не перепутал? Тут наоборот можно выучить (относительно) древнюю жаву 8 и нормально под ней писать, ибо с современными жавами разницы почти нет (если не считать Project Jigsaw [1], но он опционален и использовать его не обязательно). Большие изменения в самом языке будут ещё нескоро (такие как Project Loom [2], Project Valhalla [3] и фичи из Project Amber [4]). А изменения в стандартной библиотеке ты всегда можешь прочитать в документации или просто погуглить. Для изучения всё это не важно.
[1]: http://openjdk.java.net/projects/jigsaw/
[2]: http://openjdk.java.net/projects/loom/
[3]: http://openjdk.java.net/projects/valhalla/
[4]: http://openjdk.java.net/projects/amber/
Я буквально сегодня начал смотреть курсы, обучаться всему и тд. На работе много свободного времени. Но раз подход такой, значит просто продолжу изучать, пока не войдёт в привычку, хотя когда узнаешь что то новое, это уже начинает нравится, спасибо анон, я продолжу обучение.
Я ещё ничего из этого не знаю. Просто хотелось понять, как новичку что нужно делать, что могут посоветовать аноны в плане изучения и тд. В принципе я полдня бездельничаю, и на литературу время найдётся. Благодарю.
Двачну либгдх. Хороший движок.
Хотя за ПК геймдевом стоит идти в с++/с#.
Жава это все таки больше бэкэнд.
Можно непользоваться например спрингбутом, я не совсем пониманию зачем люди в него лезут не разобравшись со спрингом.
Делаю парсер веб страницы, нашел что такое Jsoup, все хорошо,
но для доступа к страницу Чего парсить надо залогиниться под своей внутреней учеткой.
есть кто на опыте, катните куда смотреть, обстругал гугол - безтолку.
Бамп нубо-вопросу!
Алсо, Java EE. Вкусовщина конечно, но требует отдельно поебаться с разверткой Application Server, памяти жрет вдвое больше чем спринг, позволяет манажить ресурсы из единого источника и различные способы управления в рантайме.
Не, в C# есть лейблы, чтобы на них можно было переходить через goto, но т.к. в Джаве нет goto, то и леблов нет. Так ведь?
да я смотрел выход про POST запрос, но там всегда был фал .php который логинил, а я на своем сайте не нашел его в запросах.
брать и разбираться в запросах анон?
Не, я не с позиции "а вот в шарпике ламповом есть, а в вашей праше - нету!".
Это я так уточняю, чтобы на собеседовании завтрашнем не насосаться больше обычного.
Покажи им фичи жавы из этого списка чтоб они охуели: https://www.e4developer.com/2018/10/28/java-surprises-unexpected-behaviours-and-features/
Особенно ту хуиту с рефлексией, где он переопределяет финальные переменные в классе.
Я ещё только изучаю интерфейсы.
В описании вакансии вообще не указали, на каком лвле нужно знать java (ну и js тоже), так что надеюсь получится без потоков и прочего.
В 90% случаев требуется сорта жиртерпрайз фреймворков, так что вангую что соснешь, без обид.
Никто не знает?
Я не про разницу в имплиминтации, а когда что лучше применять. По мне так один хуй, разве что у хиббернейта выше уровень абстракции и меньше кода.
Скорее всего тут требуется чисто javascript без какой либо java. Многие просто так сокращают это название.
А для новичков в жаве (если опять такие не считать андроид) есть только одно задание: писать круды. Всё. На нечто большее их никто не поставит.
А вообще вакансия выглядит странно. Одна вода и никакой конкретики. Обычно наоборот перечисляют кучу всякого говна, которое необходимо знать ради 15000 руб/месяц, а тут из требований только двая языка, слабо связанные друг с другом.
Ну т.е. раньше, чем после окончания изучения теории на уровне "мнопоточности" и "работа с файловой системой" соваться на вакансии смысла нет?
Лол, т.е. и тут тоже нахуй никому не нужен "чистый" язык, а именно эти два фреймворка?
В 99% случаев - да. Особенно если ты задаёшь подобные вопросы, а не пилишь свою собственную либу, которая работает с фс и которой нужна многопоточность.
Мне даже интересно стало: а есть ли хоть какой-нибудь язык, который используется "всухую"? Ну т.е. "сам по себе", без фреймворков.
На ум приходит только PHP.
А хули ты хотел, стереотипные задачи бизнеса давно известны, как и круг используемых для них инструментов. Никто не хочет по десять раз на дню изобретать велосипед.
С/С++ там чтоб подключить любу (если она не header-only) уже придётся изрядно поебаться, а если либ около десятка, то ебля с системой сборки может стать более замороченной, чем непосредственно написание программы.
> альтернативу подключаемым библиотекам
Не альтернативу, а разновидность. Тот же спринг (а начиная с java 11 и EE) подключаются в виде библиотек.
По идее в hibernate меньше кода. Руками постоянно открывать connection, statement, закрывать после запроса, открывать и закрывать транзакцию.
Matlab ёпта.
Если 99% на галерах задач - это круды, 99% крудов на джаве штампуют на спринге с гибером, то нетрудно догадаться, что большинство задач - это наклепать круд на спринге с гибером.
У меня, например, проект с датамайнингом/машинлёрнингом - там чистая джава се. Ну и круд на спрингбуте отдельным проектом, чтоб результаты посмотреть.
>Что такое "круды"
То, что мне дают делать на тестовых после блядских интервью. CRUD - create, read, update, delete.
Самое обыкновенное, что дают, это "вебхуйня где ты можешь зарегаться/залогиниться, зайти в свой профиль, пукнуть трифорсом, посмотреть на свой пук."
> Попытался загуглить, но всплыло только гей-порно.
Сразу видно человека "в теме". Гугл подстраивает ответы в поиске под твои интересы.
https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
Насколько я помню goto есть среди кейвордов, но он не используется.
Действительно "в теме". Когда это гуглится примерно вот так.
Помогите разобраться с объектами и классами глубже.
class A {
public A(){
Console.WriteLine("Произошел конструктор А");
}
}
class B : A {
public B(){
Console.WriteLine("Произошел конструктор Б");
}
}
1)A a = new A();
2)A z = new B();
3)B z = new A();
4)B b = new B();
1) Что происходит в A a и что в new A()? Так то все вместе это создание объекта a, как я понял A a просто инициализирует объект класса A, но память под обьект еще не резервируется? Происходит это после ключевого слово new, и кнструктор тоже появляется так же. Мы получили объект а, переменная а просто имеет ссылку на него. Правильно?
2) Это вызовет ошибку, правильно? Или наоборот пример 3)?
3) Что вообще происходит блядь. Я инициализирую объект производного класса, но создаю объект конструктором базового? Какой конструктор вызовется? Тут я в ступоре.
4) Ну и последнее какой конструктор вызовется, только Б или оба?
Простите если вопрос шибко глупый, просто хочется ПОНЯТЬ СУТЬ.
Помогите разобраться с объектами и классами глубже.
class A {
public A(){
Console.WriteLine("Произошел конструктор А");
}
}
class B : A {
public B(){
Console.WriteLine("Произошел конструктор Б");
}
}
1)A a = new A();
2)A z = new B();
3)B z = new A();
4)B b = new B();
1) Что происходит в A a и что в new A()? Так то все вместе это создание объекта a, как я понял A a просто инициализирует объект класса A, но память под обьект еще не резервируется? Происходит это после ключевого слово new, и кнструктор тоже появляется так же. Мы получили объект а, переменная а просто имеет ссылку на него. Правильно?
2) Это вызовет ошибку, правильно? Или наоборот пример 3)?
3) Что вообще происходит блядь. Я инициализирую объект производного класса, но создаю объект конструктором базового? Какой конструктор вызовется? Тут я в ступоре.
4) Ну и последнее какой конструктор вызовется, только Б или оба?
Простите если вопрос шибко глупый, просто хочется ПОНЯТЬ СУТЬ.
> Что происходит в A a
Ты просто говоришь компилятору, что под именем a теперь будет переменная с типом A.
> и что в new A()
Вызывается конструктор и возвращается ссылка на тип A, а символ = между ними означает присваивание, ты присваиваешь результат работы new переменной a. На самом деле их можно разделить вот так:
A a;
// ...
a = new A();
И даже больше, вызов new A() можно не присваивать переменной а напрямую передавать, например, в функцию.
> A a просто инициализирует объект класса A, но память под обьект еще не резервируется?
Ничего они не инициализирует. С точки зрения выполняемого кода она вообще ничего не делает, а просто указывает компилятору, что имя a теперь принадлежит вот этой переменной и она имеет тип A.
> 2) Это вызовет ошибку, правильно? Или наоборот пример 3)?
Пример (3) вызовет ошибку.
> 4) Ну и последнее какой конструктор вызовется, только Б или оба?
По умолчанию (т.е. если не указывать конкретный конструктор базового класса) вызовется конструктор без аргументов. В твоём случае сначала вызовется A(), а потом B(). Т.е. код будет аналогичный такому:
class B : A {
public B(): base() {
Console.WriteLine("Произошел конструктор Б");
}
}
>C# отправил эти языки на помойку истории
>С каждым днём доля C# увеличивается
А потом
>Репост из сисярп треда из-за того что там мало народу.
Эй! Где этот сясярпшник, который тут выёбыается, давай помоги анону выше.
Решил я познакомится с этим гробовщиком других языков программирования. У меня от него уже КАРИЕС нахуй. Столько ебучего сахара я нигде не встречал.
> Столько ебучего сахара я нигде не встречал.
Это ты котлин просто не видел. Там сахара гораздо больше (хотя за функции apply/also/run/let ему много чего можно простить, они пиздец какие удобные и в сисярпе их очень не хватает).
Спасибо.
Вот еще интересное нашел.
>В случае A c = new B(); все гораздо интереснее, так как с имеет тип А, но инстанцируется объектом типа В, то есть ты можешь вызывать ТОЛЬКО те методы, что есть у класса А (так как это тип переменной), но реализация их будет вызвана из В (напечатает именно "В"). Например добавь в класс В метод, которого нет в А, объект с не сможет вызвать этот метод, ибо его нет в А.
Там правда не конструкторы, а просто методы вывода но не суть.
Пиздец когда вглюбляешься в детали так интересно, вроде прям видишь что можешь написать что то нереально крутое но не знаешь что.
Ну тут вся суть в том, что ты при объявлении переменной указал тип A, поэтому компилятор и работает с ней, как будто она тип A и ничего про то как она была инстанцирована и какой тип у ней на самом деле не знает. Просто в C# приведение к родительскому классу неявное. А так код A c = new B(); аналогичен A c = (A)(new B()).
Уже нет в котлине 1.3 (который релизнулся сегодня) уже есть корутины. Но по сравнению с жавой, да. Асинхронные функции иногда в разы удобней.
Не лучшее место спрашивать про шарп, в шарпе оверрайды немного по другому работают, так что ((A) bInstance).something() и something вызовет именно реализацию A, а не B, а в джаве будет версия B. (Но может я выдумываю)
A aInstance = new A();
Все просто - создание объекта класса А, записываем в перемнную типа A;
A aInstance = new B();
Создание объекта типа B, записываем в переменнную класса А, так можно делать, никакого криминала, просто теперь мы не знаем что это B и можем пользоваться им только как A.
3-й - низя, без даункаста, но здесь даже он не поможет так как там стопроцентно А, а не B
4-й идентично 1ому
> а в джаве будет версия B
Зависит от того виртуальная ли функция или нет. Просто в жаве все функции виртуальные, а в сисярпе они могут быть как виртуальными, так и нет. Виртуальные оверрайдятся и работают как в жаве, невиртуальные перекрываются и работают как написал ты.
>2К18
>статическая типизация
Что должен знать джава программист джуниор, чтобы устроится в DBI,SberTech и другие фирмы.По аналогии с этими двумя? Как я понимаю, помимо Java Core и Spring Framework, нужно знать ещё Java EE.
Почти везде есть требование SQL, остальное сильно зависит от компании и продукта. А вообще, запарсь вакансии и отбери самые популярные слова.
Я видел Hibernate,JDBS и ORM, Java SE: Core, Collections, Concurrency, Generics, Reflection;
Опыт работы с технологиями: Spring Framework, Hibernate, Tomcat, Maven
Опыт разработки web-приложений: JSF (PrimeFaces)
Хорошее знание SQL и реляционных СУБД
Понимание принципов объектно-ориентированного проектирования;
Понимание Agile, SCRUM-методологии;
Знания шаблонов проектирования
Английский язык на уровне чтения технической документации
Желательно:
Опыт работы с MyBatis, JDBC
Опыт работы с Spring Boot, Spring Security, Spring Cloud
Опыт работы с Angular 2+;
Понимание принципов REST-сервисов
Опыт работы с Java Script +JQuery+AJAX
Умение работать в IDE: IntelliJ IDEA
Опыт работы с веб-сервисами (SOAP, REST), JSON, XML
Опыт работы с системой контроля версий GIT/SVN;
Опыт работы с СУБД Oracle
Вполне обычный список, лично я про jsf первый раз слышу, все остальное можно учить. А ещё не вижу в списке ныне популярные монги и касандры
>монги и касандры
Как это выучить, если в фирме это в данный момент не используется и не планируется?
Ну касандру по хорошему никак, так как там основная фишка в кластеризации, которая нужна только на реальном проекте. Монгу дома можно учить, но только по фану, все эти Nosql нужны для очень конкретных случаев
А ссылки на монги и касандру?Что и как.У меня на выбор из начал Философия Эккеля и Первый Том Хорстмана.Думаю ещё подучить из паттернов: Memento, Singleton, Builder, Observer ,Proxy ,Abstact Factory, Factory, MVC,MVVM и MVP.+ Spring Framework, +SQL - запросы(только какую именно базу данных не знаю использовать.Посоветуйте). И в конце подучить Hibernate. Этого хватит на позицию Junior Java Developer?
Про noSql я удивился, что их нет в выборке, джуну они не нужны. Из sql я бы взял postgresql, так как он много где используется и бесплатный это важно для компании, а не для тебя. По поводу паттернов почитать можешь, но я бы вообще джуну не советовал. В крации se ee springна минималках умение в базе всякие джоины с групп баями делать. Дальше устроишься и уже на реальном проекте учится будешь.
Ok, посмотрим.Дякую.
Анон оказался прав и я соснул хуйцов, но произошло это с совершенно неожиданного направления.
Дали задание на псевдоязыке. Я накарябал, что смог.
Итог:"вы нам не походите" и идите нахуй.
Никаких дискуссий, никаких обсуждений "кем вы видите себя через 40 000 лет?".
Тест в зубы, сдал - иди нахуй.
В общем, не кодить мне на Java за 30к... Во всяком случае, на этой неделе.
джоин и глубже
Паттерны пока не трогай кроме синглтона, декоратора, адаптера - то, с чем ты столкнешься даже при изучении джавакора.
Почему начинающим не советуют трогать паттерны? Наоборот же, все эти абстракции позволяют понять, куда вообще лезешь, а то если один код дрочить, то будет казаться, что в программировании все просто.
Опытные джава сеньеры, оцените, пожалуйста, уровень этих заданий, дайте свою субъективную оценку им, как методу отбора кандидатов на работу.
другой анон,посмотрел но нихуя не понял
Паттерны без практики малопонятны.
Потому что кроме паттернов нужно знать 100500 всяких вещей, которые ты и так хуй запомнишь, а будешь тратить время на паттерны, которые, вот гарантирую тебе, даже за месяц ты не выучишь.
JDBC в спринге все это убрано под капот. Там остались только rowmaper и процесс написания запросов.
Хотя jpa там еще проще. Разве что надо писать ентети.. но опять же их и так надо писать в каком то виде.
Еще есть JDBI но я не пользовалься ни разу им.
По мне так сорта говна все это.
я не сеньер
но 1 задание это двусвязный список
2 похоже на задачку из егэ по информатике я там что-то такое видел вроде
3 хуйня какая-то на внимательность наверное хз
Все-таки смог. Если кому интересно:
С какого-то хуя адаптер keycloak'a к spring security подменяет rsa ключ ссо на какой-то свой жопноеблевый. В результате приложение не принимает получаемый от сервера аутентификации jwt токен. Выпилил интеграцию к хуям и все заработало.
Хуй знает, мне паттерны наоборот показали набор стандартных решений и уменьшили степень ебли мозга. Правда я к тому моменту уже полгода как попал в ЕБАМ
float num = 3.1415f;
Почему в 2019 году нужно писать f вконце, если мы уже объявили флоат?
Что ты этим пытаешься сказать?
Как попал? В лабу?
У тебя отклеились аргументы в пользу продвижения типов на short num = 100s;
Must have: Java Core && Concurrency && компьютерные сети && (EE||Spring) && SQL && ((HTML && (шаблонизаторы||js))||(FX||Swing))
Optional: NoSQL || Maven Central
Потому что настолько крутой type inference, который бы подстраивал тип литералов не подвезли. А потому конпелятор думает что ты пытаешься преобразовать double (тип по умолчанию для литералов с плавающей точкой) во float.
А во всех числах без точки по умолчанию int. Тогда почему short без буквы s вконце?
Потому что числа с плавающей запятой - это боль в жопе для любого ЯП. 0.67f и 0.67, например совершенно разные числа: https://ideone.com/0hFUCm
И что? Ты сравниваешься два double, а double и float одного и того же литерала не равны, потому и сделали double по-умолчанию и float с явным указанием. С целочисленными литералами такой проблемы нет. Или тебе лишь бы спиздануть чего?
>И что? Ты сравниваешься два double, а double и float одного и того же литерала не равны
И почему же они не равны, кроме как АРРРЯ ПОТОМУ ЧТО Я ТАК СКОЗАЛ?
Ну так я спрашиваю, схуяли? Вон у тебя System.out.println(0.67); чётко равняется 0.67, схуяли 0.67 у флоата не равняется 0.67? Мы же не в 1995 году живём.
> схуяли 0.67 у флоата не равняется 0.67
Потому что числа с плавающей запятой используют двоичную систему, а не десятичную. Потому факт что операции, которые в десятеричной системе выдают конечную дробь выдадут такую же в двоичной. В том числе преобразование 64бит -> 32бит. Впрочем такого поведения можно добиться и с помощью простого сложения: https://ideone.com/oFBe7o
Потому например для операций с деньгами double/float не используют.
Как тут не потерять всякую мотивацию? Почему я должен везде пихать какие-то абстрактные фабрики, о которых никто ничего не говорит, да еще и для этих фабрик писать кучу кода, чтобы просто реализовать выравнивание? Да нахуй он нинужон, fxml ваш, после таких танцев с бубном.
бамп вопросу
Какой нахуй JavaFX, ты шо, ебанулся? Его уже даже не поддерживают, а чтобы он вообще где-то использовался я не знаю.
Воу-воу, подожди-ка. Разве в десктопе (естественно, наколеночном) жаба фх не является последней технологией? Я читал, что свинг и авт устарели, а кроме фх пока ничего не придумали. Или сейчас что-то другое используют?
Ты всё наоборот прочитал. Как раз таки FX перестали поддерживать в 11, убрали его нахуй, и больше возвращаться не будут. А Свинг будут поддерживать ещё до 2026 года. Мб ошибаюсь с годом, в прошлом треде анон пояснил про эти вещи.
https://habr.com/company/haulmont/blog/353440/
https://www.reddit.com/r/java/comments/5hcunn/is_javafx_not_really_dead/
Уж не знаю, как там с поддержкой, но я все правильно прочитал. JavaFX была создана для замены Swing и является последней технологией для гуя. Если не брать во внимание, что гуй на жабе почти мертв, то fx оптимален.
@DateTimeFormat(pattern = "MM-dd-yyyy")
@Column(name = "created_date")
private Date createdDate;
@PrePersist
void createdDate(){
this.createdDate = new Date();
}
Когда вношу в бд, то всё норм, но когда получаю из бд, то приходит в виде 30.10.2018 00:00:00.0.
Как мне избавится от нулей?
А смысл мне при всей гибкости фх че-то еще использовать? Даже если так, то что по-твоему еще стоит применить?
>Перестали поддерживать
Если оно не включено в состав jdk, это не значит что разработка будет заброшена. FX просто станет отдельным фреймворком, что логично, ибо прогибаться под совместимость с гуем для энтерпрайз-языка западло.
От каких нулей? В каком месте? Нули в голове у тебя.
Я так думал в 2003 году и не стал учить джаву, потом так же думал в 2008, пошел учиться на экономиста, в 2012 засомневался, на всякий купил доступ в джавараш. В 2018 прошел его.
Гуглишь "ткач spring" и идешь переделывать 5-7 небольших проектов по этому гайду. Всё.
Я понял, лол, но все, что я и мой знакомый смогли родить, это: "дичь какая-то, а не задание".
Первое задание у меня порядок сбился слегка: на странице написан массив и цикл. Посчитай в уме и скажи, как он изменится.
Второе задание: есть список с такими-то правилами. Опиши, как ты будешь вставлять в начало новый элемент.
Третье задание: есть таблица. Напиши формулы, как и что считается.
>>87125
Ну зато теперь знаю, какой на вкус плохой тест!
>>87158
ОЛОЛО МИНЯ ЗАДИАНОНИЛИ И СЕЙЧАС БУДУТ ТРАВИТЬ1
>через неделю позовут
А как тебе это задание? С одной стороны, оно какое-то стремное, с другой, вполне себе адекватный способ оценить скилл на вакансию, в которой не требуют знание языка.
>учи PL/SQL
Оу. Т.е. MySQL здесь не прокатит?
>>87293
https://www.youtube.com/watch?v=3wBteulZaAs&list=PLm3OIf9VOVYvZ9B4mx5o-MZlAdk_KXEsq
Свой бложик рекламируешь?
>Как тебе это задание?
Первые два - решаются простым применением мозга по назначению, но предполагается что хороший прогер знает их наизусть. Третье скорее на умение принимать адекватные решения, правильным ответом было не ебать себе мозг, т.к. распределить копейки на всех не получится - можно даже просто добавить по 0,01 каждому начиная с наиболее богатого.
Меня они собеседовали весьма слоупочно. По факту, в той или иной мере завалил к хуям все задачи, ответ дали только через неделю, и итоговое собеседование было ещё через одну. По итогам разговора с тимлидом объяснил свои решения, предложили две недели попробовать посмотреть как у них разработка происходит, повыполнять задания.
>MySQL не прокатит
Да, основной продукт - Global System - в качестве бэк-энда использует Oracle с хуевой тучей хранимок на PL/SQL, а фронтенд генерится скриптами в Delphi. По крайней мере так было летом, хуй знает, может сейчас они уже перехуярили хоть что-то на жабу. И таки если не перехуярили, с 90% вероятностью ты на ней писать там не будешь.
>ОЛОЛО ДИВАНОН
Я съебался оттуда не дожидаясь окончания первой недели, как только охуел от того пиздеца, что у них творится в тестовой бд. Но у меня за плечами к тому моменту уже был первый проект, собственно для вката в хайлевел SQL место неплохое.
>>87158 - кун
>решаются простым применением мозга по назначению
>По факту, в той или иной мере завалил к хуям все задачи
Лол, самокритично.
>ответ дали только через неделю
Мне сразу сказали, что нихуя. Видать, тимлид, увидевший мое решение, ощутил онемение в области головы.
> а фронтенд генерится скриптами в Delphi
А когда я хотел вкатиться в программирование, я не знал, что даже, сука, конченая макака коей я и хотел стать должна знать все языки программирования, от pascal и delphi до C# и Java, проходя через верстку и БД!
>может сейчас они уже перехуярили хоть что-то на жабу
Ну у них есть вакансии на ЖС и scala, но, как мне кажется, люди меняются быстрее, чем конторы перекатываются с языка на язык.
>как только охуел от того пиздеца, что у них творится в тестовой бд
Ну у меня какое-то ощущение неуюто было, лол. Т.е. не то, что повсюду свастоны из говна нарисованы, просто ощущение какое-то, уровня "тут будет начальник, что спокойно орет на подчиненных, злобное распиздяйство и прочий треш".
Визуальные эффекты из серии "компклуб начала нулевых".
> Не лучшее место спрашивать про шарп,
https://2ch.hk/pr/res/1286430.html#1287387 (М)
В шарпотреде решили просто выебнуться и самоутвердиться вместо простого ответа. Пиздец сука. Животные.
Может тебе еще сколько 2 + 2 ответить? Это элементарные ООП азы не относящиеся даже к C#, которые есть вначале любого учебника и гугляться за несколько секунд.
с некоей a1 ="yoba"?
>Может тебе еще сколько 2 + 2 ответить?
Если ситуация в которой спрашивающий не знает сколько будет 2+2 и почему, то да, почему нет?
Ты своим детям тоже будешь самооценку понижать если они спросят почему небо голубое?
Людям надо помогать.
Не та аналогия. Тут скорее ты ученик 9 класса, а спрашиваешь как складывать на пальцах.
Таки да, но нахуя тебе это вообще?
Нужно изучить кафку. Посоветуйте мануалы.
Офф. гайд на сайте апача.
>Для использования:
>$ git clone https://github.com/mar0x/unit.git
>$ cd unit
>$ git branch -b java origin/java
>$ ./configure --debug --control=127.0.0.1:8443 --modules=build --state=build
>$ ./configure java
>$ make
На третьей строчке вылетает ошибка "У бранча нет параметра -b", что тут могло иметься ввиду? Я просто перешел на ветку origin/java.
И еще у меня еще на предпоследней строчке пишет "не найден ждк". В чем может быть проблема?
спросить у прогера нет возможности.(
Swing уже даже не воняет, а в JavaFX изучать особо нечего. Можно с наскока без проблем написать простенький гуй к своей проге. Scene Builder вообще хорошо сделали, все мышкой накидывается за минуты. Вообще Единственный плюс в том что когда пишешь гуй то много еблипрактики с коллбеками, листенерами, абстрактными фабриками фабрик и.т.п. в остальном развлечение на любителя.
> не найден ждк
Скачай openjdk (только версию 1.8, а не 11, не факт что на 11 заработает), распакуй куда-нибудь и поставь переменную среды JAVA_HOME на каталог.
вроде все нормально уже стоит, идея работает
$ echo $JAVA_HOME
/opt/java/jdk1.8.0/
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/java/jdk1.8.0/bin:/opt/java/jdk1.8.0/jre/bin
$ which java
/usr/bin/java
экзактли.
Мммм, маняотрицания подъехали. Приведу пример: всего у нас целых чисел 2^32 (около 4 млрд). Если даже каждый из 4 млрд объектов окажется с разным хэшем, то 4 000 000 001-й объект точно совпадет с каким-то другим по хэш-коду.
Нихуя ты не опроверг, если я чего-то не вижу значит этого нет, покажи мне хоть один пример.
Толстишь, приятель. Мы не в /b, я с тебя гореть не стану. И пример я тебе уже привел. Все, дальше сам.
игра слов. вы друг друга поняли и оба понимаете, что это редкая хуита. нахуя теперь семантику слова "миф" обсуждатЬ?
Посимвольно в цикле
не то. без a1 ="yoba" и сравнения с этой переменной.
сравнить введенное... if введенное слово "yoba" ,тогда..
Блядь, ебаный ты шизоид, ты можешь нормально выражать свои мысли? Твой поток сознания читать просто не возможно. Возникает ощущение, что у тебя разорванное мышление или речевая бессвязность. Просто словесный шум какой-то. Прими таблетки и не забывай посещать психиатра, у которого наблюдаешься.
Ну учитывая то что уже ноябрь, соглашусь, ошибся, laba3 уже наверное?
>Блядь, ебаный ты шизоид, ты можешь нормально выражать свои мысли? Твой поток сознания читать просто не возможно. Возникает ощущение, что у тебя разорванное мышление или речевая бессвязность. Просто словесный шум какой-то. Прими таблетки и не забывай посещать психиатра, у которого наблюдаешься.
ты читать умеешь? или выебываться?.
мне не надо сравнения строчки с переменной. мне надо сравнить введенное в конструкции if else,
типа if output = "ty huy" then println "yes we know!"
а не такого вида:
а = "yoba"
in.nextLine();
if (a.equals(a)) {
system.out.print("и чо терь??");
чо блять тебе не понятно?
пользователь вводит данные (строчку) проверить соответствует ли строчка сама себе в конструкции if else
>соответствует ли строчка сама себе
А, да изи.
if(true){
...
}else{
System.out.println("Ты совсем долбаёб?")
Как раз в том, ведь только долбаёб сможет сделать строку не равной самой себе сука.
Ой блять иди нахуй
>>соответствует ли строчка сама себе
>А, да изи.
>if(true){
>...
>}else{
>System.out.println("Ты совсем долбаёб?")
охуенно equals отменили?
Блядь, ну что за скам повылазил под вечер. Хорошо, специально для тебя расшифрую: проверять равенство строки самой себе - это нормально?
Так, ну давай разберем по частям тобою написанное. Складывается впечатление, что ты реально контуженный ))
>if(true){
>...
>}else{
>System.out.println("Ты совсем долбаёб?")
Только долбоеб будет проверять равенство строки самой себе, поэтому это обязательно нужно указать в блоке if. Вот и все. Хотя да, можно было бы и >>87747 ему отправить, лишним не будет.
Ты не понял сарказма в этом посте? Давай поясню, проверять равна ли строка сама себе немного глупо т.к. ответ всегда будет да, поэтому в условии я написал
>If(True) что как бы говорит о долбоёбиз..
Бля да иди нахуй харош тралеть.
Щас бы пытаться все исказить так, словно это очень тонкий сарказм. Ты ему просто указал на ошибку, написав if(true), но не простебал, добавив что-то в этот блок.
Но я добавил
>}else{
>System.out.println("Ты совсем долбаёб?")
и потом пояснил что
>только долбаёб сможет сделать строку не равной самой себе сука.
Еще бы. А сейчас еще и сроки горят, менеджер пиздец злой, быстрей проект пилите, суки, говорит. Так что надо выспаться как следует, чтоб премии не лишили.
>С чего начинать дрочить котлин?
С установки плагина. Все пиздец просто раз-раз и придрочился, особо дрочить ниего не надо. (Но может я так говорю из-за опыта с функциональными языками типа F# и Clojure)
String a;
input(a);
if a = "yoba" then print("sooqua")
else print("nahui");
как видите, строка а не определена, и сравнение появляется только при if.
уже не знаю как донести мысль
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Перекат https://2ch.hk/pr/res/1287973.html (М)
Я все ещё работаю жабамакакой, так что не думаю. Просто заебало дрочить один язык ради одинаковых задач.
И что? Он со всеми популярные языками работает, почему именно джава?
Алло. Это я на связи.
Объясните, зачем нужен else if?
if (какая-то хуйня) {
конская залупа
}
if (какая-то хуйня №2) {
конская залупа №63
}
Чем плохой код? Кому пришло в голову между ифами else въебать?
Выкатывайся
Так это по сабжу
Потому-что проэкты нужно создавать в папке C:\Windows\system32. Ты дворником раньше работал или сварщиком?
поставь брейкпойнт. запусти дебагер. и сразу поймёшь где у тебя this
Все варианты, которые я нашел делаются через HTTP, ну и мне они не подходят.
Как сделать так, чтобы после того как с клиента на сервер через сокет приходит строка например "localhost:"+port+"/getphonebooks", выполнялась функция GetPhoneBooks и в ответ через сокет отправлялся бы JSON с этими записями.
Код с картинки сделан под http
и ? Зачем вообще отписал
как надо было сделать ?
почему не отписал раньше как надо было сделать ?
удивляют аноны, которые никак не советуют\помогают что-то делать, а потом когда подходит дедлайн и ты что-то сделал, пишут НЕ НАДО БЫЛО ТАК ДЕЛАТЬ
нюфаг
Как элегантнее реализовать схему Rpn?
https://pastebin.com/gT7z9sb5
для личной практики
Задача такая: На вход поступает строка математического выражения, содержащая
- переменные
- цифры
- унарные функции
- бинарные операторы
На данный момент есть распознавание для строки, где разные обьекты разделены пробелами, с помощью словаря записаны некоторые константы, с помощью этого же словаря меняются переменные.
~ Стоит ли модифицировать исходную строку при получении с помощью регулярных выражений: между [a-Z]и[+-*)(/] вставлять пробелы для того, чтобы строка была валидной для имеющейся функции
if(a>2){ print(4) }
else if( b< 3){ print(2) }
[a b]
[2 2] : 2
[3 2] : 4
if(a>2){print(4)}
if(b<3){print(2)}
[2 2] : 2
[3 2] : 4 2
Вы видите копию треда, сохраненную 6 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.