Прошлый: >>1620861 (OP)Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?А: Поздно.https://github.com/random76/Java-Thread/wikihttps://github.com/qqqlll/Java-Thread/wiki
На правах опа. Чем spring-data отличается от хибернейта?Только наличием этой дебильной генерации запроса из названия метода?
>>1631274>>1631271spring-data это надстройка над хибернейтом, которая делает... что? Тоже самое что и хибернейт?
>>1631266 (OP)О, снова годный фильм вспомнили. Напоминание: Котлиншизик изгнан из треда за самое гадкое обзывание джавы. Это слово нельзя даже произносить.
>>1631269>>1631271>>1631274Очень распространенный вопрос, чо вы.https://dzone.com/articles/what-is-the-difference-between-hibernate-and-sprin-1Короче Spring Data это удобненький интерфейс для доступа к твоим данным через какую-либо имплементацию, а Hibernate это непосредственно имплементация Java Persistence API. Как и в любом другом случае с паттерном "фасад", ты можешь выкинуть этот удобненький фасад в окно и ипользовать непосредственно underlying implementation, выбор за тобой.
>>1631284Напоминает java ee, где несколько подпроектов с pom.xmlНо я в ней не разбираюсь, сужу только по мавеновским архетипам
Перепощу сюда, а то он не найдет.>>1630918 →Привет, анон. Специалист по гаданию на скриншотах в треде. Если ты еще не решил проблему, то давай разбираться. По картинке у тебя не совсем понятно что ты сделал.Для начала скажу, что конфигурация запуска [1] показывает, что как минимум запускаешь ты все правильно, нужный класс и тд, а то некоторые в треде сомневались (и правильно делали). Далее, тебя просили показать как IDE запускает твой класс, т.е. развернуть командную строку. Это можно сделать, кликнув на [2], но я думаю нам это ничем не поможет.Теперь ближе к сути. Откуда появляются файлы [3] именно в том месте в котором они сейчас лежат - сиблинги относительно класса ([6])? Ты их вручную создал? Потому что код, написанный в main(), такого не сделает. Файлы должны появляться в [5], в корне проекта. Я подвожу к очень важному моменту: файлы создаются самостоятельно, их не надо предварительно создавать руками, FileWriter способен сделать это сам. Т.е. ты удаляешь файлы [3], убеждаешься, что в [5] их тоже нет, запускаешь программу [1], и файл с именем [4] автоматически появляется в [5] (а не в [6]!).Несколько замечаний по коду:1) Использовать нужно try-with-resources конечно же. У тебя он изначально был (это конструкция try () {...}), но в процессе рефакторинга с анонами ты его потерял. Верни как было. И после этого close() можешь убрать (он вызовется автоматически т.к. AutoCloseable).2) flush() можно не использовать при записи маленьких файлов, точнее файлов, которые ты очень скоро уже закроешь. При вызове close() флаш вызывается автоматически, данные не потеряются никогда. Ну конечно не "никогда", но это уже не связано с ручным вызовом flush(), так что смело удаляй.3) Ошибки приятнее выводить в System.err, а не в System.out. Интерфейсы этих объектов полностью совпадают, просто замени три буквы и запомни: ошибки -> err.PS: Если третий параграф не поможет тебе найти файл, в который осуществляется запись, то пиши, у меня уже готовы планы куда ковырять дальше. Но я предполагаю что это ты просто файл потерял.
>>1631289Я не понял, как в идее сделать несколько отдельных мавен модулей в одном проекте. Да скорее всего никак. Пришлось делать один общий помник.
>>1631287Так jpa это уже и так апи. Получается фасад над апи?Чтобы что? Чтобы лишить доступа к фичам конкретной имплементации?
>>1631305>Получается фасад над апи?Да, но это очень красивый фасад! У него есть множество субмодулей.>Чтобы что?Ты про конкретные плюсы спрашиваешь? Они перечислены на главной странице проекта. Ну а асбтрактно, они захотели видеть свою собственную реализацию JPA, но именно "реализовывать" им было лень. Взяли хибернейт, накрутили фасад как посчитали нужным. Каждый хочет именно свой велосипед, именно его считает удобным, и только у больших компаний получается продвинуть свой.
>>1631305Что тебя удивляет в абстракциях? Орм тоже лишает доступа к фичам конкретных БД. Как системное апи лишает доступа к прерываниям биоса.
>>1631317sql - универсальная абстракция разjpa, hibernate - универсальная абстракция 2spring-data - универсальная абстракция 3Уже становится как в жабаскрипте - когда над жабаскриптом наворачивают слои абстракций, и простенькая страница жрёт гигабайты памяти для ворочания всех этих слоёв абстракций
>>1631323фасад над 2 системами - значит системы должны иметь одинаковый функционал.А у них разный функционал
>>1631326>sql - универсальная абстракция разНо диалектов много, некоторые даже кладут на стандарты сиквела.
>>1631326Всегда было наоборот. Джава уже наворачивала 20 слоёв абстракций, когда на жс был только жквери.
>>1631329система 1 умеет действие 1система 2 умеет действие 2Давай, сделай тут универсальный фасад с одним действием
Почему @ConfigurationProperties не работает без @EnableConfigurationProperties, хотя в доке написано, что должно работать?
>>1631332>действие 1>действие 2Достать объект с диска или достать объект из памяти. Но суть одна - достать объект.
>>1631332Это работает не так.система 1 умеет действия 1 и 2система 2 умеет действия 2 и 3.Фасад будет уметь только 2.
устроился джуном(знал кор на нормальном уровне, ибо до этого си дрочил поэтому понимал,как внутри всякие коллекции сделаны, сборщик мусора, ссылки и тд), sql запросы простецкие, по фреймворкам был 0сейчас вот дрочу сервлеты, спринг и тдна работе классно все, кроме зп, и как я понял она тут растёт медленнокакая средняя зп джунов на джаве в мск? и что дрочить в первую очередь? я вот себе отобрал:sql, какая-нибудь субд, spring web, mvc, boot, сервлеты, jpa, jdbc.Что докинуть?
>>1631334в монгах нет транзакций и sql запросовпосмотрел на вики>В июне 2018 года (в версии 4.0) добавлена поддержка транзакций, удовлетворяющих требованиям ACID[9].лол, они из NoSQL делают sql. Не вынесла душа поэта, возвертайте всё взад
>>1631341не особо, но их я сейчас тоже учу параллельно, прочитал грокаем алгоритмы>>1631342ага, спасибо, это очевидно, но кажется этим джун от мидла и сеньора отличается, не? на джуна то просят кажется хотя бы понимания как и через что его теоретически будешь делать
>>1631257Тут у вас какой-то обмудок посты трёт, так что пока его санными тряпками не выгоните, я ливаю (и вам рекомендую). Двач превратился в форум нулевых, лол.
>>1631374Прям как XML, Extensible Markup Language. С аббревиатурами вообще здравый смысл не работает.
>>1631389У какого-то хохла на ютубе видел, что javac тоже как-то читается потому что там какая-то хуйня за этим стоит.
>>1631394Википедия говорит про "java see". Пох, джавак крч.>>1631395Хуле ты такой токсичный? Из-за слишком быстрого переката бесишься? Давай лучше метод println обсудим, а то он какой-то сложный и совсем непонятный.
>>1631395У Немчинского я это видел.Он там пояснял, что читается так потому что это хуйня из юниксов пошла, там так читают. Точное видео не помню.>>1631401Во-во, он там тоже про джавак шутил.
>>1631399Да хуй его знает. Скидывали когда-то давно.Вот еще на сайте редхат бесплатно лежит, может ее прочесть.
>>1631408Пусть будет variadic и принимает чарыSystem.out.println('H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!');
>>163141290% всех видео это ебаная вода.Торговец курсами, инфоцыган, вроде это так щас называют? Если делать вообще нехуя, можно глянуть его пиздёж. Это будет лучше дотки. Но всё равно бессмысленная трата времени.
>>1631427Не знаю, не видел. Я пытался смотреть его длинные видео.Но там слишком много воды. И вообще он рассказывает про любую тему для тех кто в ней нихуя не понимает. Вроде и можно слушать, а смысловой нагрузки никакой.Ну т.е. реклама как она есть.
>>1631425Еще бесят его самосмехуечки и его ебаная страшная кружка с гербом Украины. И вообще он больной какой-то..
>>1631443Меня наоборот его национальность никак не напрягала. Хохлом его назвал ради лулзов.Я не помню, чтобы он как-то хуёво о русне отзывался, когда упоминал про рыночки заметил даже, что в отличии от незалежной у нас таки можно найти норм работу не на бургеров.Свидомый патриот, да и хуй с ним, меня это не касается, пока он это при себе держать старается.
>>1631284Нравится когда в pom новую dependency добавляешь и пытаешься ее использовать автоимпорт idea не работает. Потом ручками пишешь сам импорт и тебе idea подсказывает что надобно бы в module.info добавить новую строчке тогда заживем. И только после этого все наконец собирается.
>>1631355Какой смысл удалять тематический постинг? Го треды полностью состоят из тематического троллинга.Превратили в говно-форум.Кстати этот обмудок удалял даже адекватную тематику
>>1631895Хз, мне проще ливнуть. Раньше было лучше такого бардака я тут не видел, вел даже с десяток Го тредов, лузлов ловили пачку, откровенный шитпостинг игнорили.
А в чем разницаgetClass().getResource()иgetClass().getClassLoader().getResource()Они же вроде бы одно и то же делают, зачем писать больше?
Как там хеллоуворлды писать на ваших жавахХочу простеньки рестик, спринг вроде самый популярный фреймворк? Спринг бут и спринг это одно и то же?Maven - что-то типа пакетного менеджера и сервера одновременно?
>>1631949Кстати я из градла тоже не смог модули сделать. Каким-то фигом одинаковые плагины конфликтуют, не хватило мозгов что ли сделать чтобы "йоба-2.3.5" больше не подгружалось если уже ранее погрузились и вообще каким фигом модули не собираются независимо.Я знаю что тут не в силах помочь, просто поплакал.
>>1631970Спринг бут это надстройка над спрингом для быстрого создания типовых проектов.Мавен это система сборки и пакетный менеджер.
>>1631922Там разница в путях будетЕсли писать getClass().getResource("foo.properties") - то будет искать в пакадже этого класса com/myapp/foo.propertiesЧтобы такого не было надо или путь начинать со слеша - /foo.properties или использовать ClassLoader он такого не делает.
Есть jackson. Есть json с двумя уровнями вложенности. Пытаюсь в mepperObject.readValue.Выдаёт нуллпоинтэкзепшн. Геттеры сеттеры есть для первого класса/уровня, но на втором параметры идут с заглавной. В доках пишут, что readValue берёт геттры/сеттеры, отсекает гет/сет и переводит первый символ в другой регистр.Как быть?
>>1632091С этими статик-нонстатик всегда был не в ладах, извините.com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.xxx.xxx.util.a$f` (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor
>src/test/java/io/spring/infrastructure/favorite/MyBatisArticleFavoriteRepositoryTest.java>import org.springframework.test.context.junit4.SpringRunner;Что это такое как это понимать????Посоветуйте пожалусто книжку по основам и стандартам актуальную пожалусто
>>1632121У тебя в ошибке прямым текстом написано, что нужен конструктор без аргументов.public Class (){}
>>1632082>>1632121>>1632108 →Вот тут я написал тебе как сделать иммутабл десериализацию, без сеттеров. Можно указать конструктор с параметрами через аннотацию @JsonCreator, и можно указывать имена переменных в json @JsonProperty (это для несовпадений имен в полях класса и исходного json).
>>1632122Учитесь задавать вопросы, блядь!Никто не будет отвечать на твой вопрос, потому что нихера непонятно что ты хочешь. Книжку по джаве тебе? Или по спрингу? А может по майбатис? Или все-таки по юнит тестам? Или тебя удивляет почему там используют JUnit версии 4, тогда как актуальная давно пятая?
>>1632123>>1632128Благодарю, сейчас попробую.>>1632124Это неплохо, когда такой конструктор уже есть. Я, конечно, код не запостил, но всё же.>>1632126Ну не хотел лезть в яву, это не специально :сВообще в компанию пришёл как cpp разраб. Меня заставили! Ну мам!
>>1632137>такой конструктор уже естьДля вложенного класса.Нужен конструктор без аргументов для вложенного класса.
>>1632144Я только вкатываюсь, не могу ничего без кода подсказать.Жди опытных джедаев, которые уже знают технику чтения кода на расстоянии.
>>1632135Книжку по джаве чтобы несложно и было объяснено почему постоянно в программах пишутся непонятные 10и вложенные пути и методы(
>>1632205Да. А конструктор у него нонстатик.Сейчас закомментировал этот крутой конструктор с JsonCreate, использовал mapper, который уже где-то используется и подкорректированный. Исключения валить перестали, но возвращает null. Где-то в документации читал про эти null-значения, и что им нужно уделять вниманкие, но не особо понял.
>>1632208Сам класс, не конструктор, объявлен как статик или нет? Если нет, то сделай его статиком.public static class Foo {}
>>1632211Что-то ты недоговариваешь Cannot construct instance of `com.xxx.xxx.util.a$f` (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor Ошибка явно говорит о том, что у тебя не статический внутренний класс и у него нет конструктора по умолчанию.В общем показывай код если хочешь чтобы помогли.
Да что читать чтобы быстро вкатиться в спринг с нуля и современно??По гайду из шапки можно утонуть на лет 10
>>1632208>>1632224Насчет null'ов есть @JsonInclude с пучком значений как именно трактовать пустые значения, но это только для сериализации.Еще, если ты не все поля из json в объект мапишь, то конфигурируй маппер, иначе будет падать с ошибкой что не знает такого поля:MAPPER.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);Об этом я тоже уже писал.В общем либо ты показываешь оригинальный json, который у тебя падает, либо не показываешь и ебешься дальше сам .
Читаю многопоточность и боюсь, что не всегда смогу держать в голове и не допускать все возможные отложенные ошибки. Есть ли какие-нибудь мощные средства для анализа кода на предмет таких специфических ситуаций, когда хоть через 100 лет что-то может пойти не так?
>>1632294УПД, под ошибками я подразумеваю мелкие ошибки, допустим, я хочу расширить потокобезопасный класс, добавив новую функциональность. Соответственно, я создаю класс хелпер, внутри создаю объект потокобезопасного класса, который хочу расширить, делегирую ему основную часть обеспечения потокобезопасности, добавляю новый функционал в класс-хелпер и синхронизирую новый функционал не на том объекте, на котором синхронизируется потокобезопасный класс. Буквально только что вычитал этот пример. Могут ли анализаторы кода отследить такую брешь?
>>1631949Ну так у меня то же самое. Я про несколько именно отдельных помников. Мб сделать проект идеи, а внутри него мавен проекты?
Есть книги, в которых фундаментально объясняется, как создавать документацию? В чистом коде/совершенном коде это рассказывается?
>>1632300> допустим, я хочу расширить потокобезопасный класснаследование - зло. Наследование ломает инкапсуляцию.>и синхронизирую новый функционал не на том объектекакето? syncronized же синхронизирует на экземпляре объекта, а он одинаковый для родительских и потомочных методов
>>1632368>наследование - зло. Наследование ломает инкапсуляцию.Бла-бла-бла..>какето? syncronized же синхронизирует на экземпляре объекта, а он одинаковый для родительских и потомочных методовВ данном случае под расширением я имею в виду размещение кода расширения в классе-хелпере без наследования.
>>1632300С многопоточностью есть много разных ошибок, дедлоки можно ловить так https://youtu.be/5PlBgFWhkPAДругие типы ошибок, по другому https://youtu.be/YAb7YoEd6mM
>>1632368Геттеры - зло. Геттеры ломают инкапсуляцию.Программирование - зло. Программирование ломают инкапсуляцию.
>>1632373>Бла-бла-блаОн нормальную тему тебе задвигает, про это целая глава у Блоха.Юзай интерфейсы, композицию.
>>1632407Это когда особенности реализации не торчат наружу, и можно абстрагироваться от них. Например, в сишке есть структура FILE. Всем похуй, что за поля у этой структуры, никто напрямую их не использует, хоть это и не запрещено. Но зато есть куча функций для работы с объектами такого типа, которые сами знают всё, что нужно.
>>1632428Ну им же надо как-то к нужному типу приводить. Хотя зачем, если разные типы и так могут выступаать в роли булина?
>>1632441Мысли ширее - собственные классы создавать вообще нельзя. Потому что мы наследуемся от Object, соответственно сразу уже нарушили. >>1632368-вот этот сказал.
>>1632431когда потомок ломает предка это не нарушение инкапсуляции, а долбоёб в кабине, который нормально сделать не может. инкапсуляция это не закон божий, не сила тяжести или постоянная планка - это блять инструмент
Есть у тебя коллекция объектовИдёшь ты такой и вызываешь метод у каждого объекта.А потом хуяк - тебе попался потомок со сломанным методом предка, и весь твой код по пизде из-за этого внезапного потомка, о существовании которого ты даже не знал.
Как выглядят аттрибуты (не параметры) HTTP-реквеста в текстовом виде? Очень лень открывать вайршарк, расскажите так.
Почему нигде не написано, что спринговый TestRestTemplate поддерживает относительные URLы? Это же охуенно!
>>1632477Это вопрос на сообразительность?Они никак не выглядят, потому что в HTTP такого нет. Это серверная фича сервлет реквеста и по сети не передается.
>>1632488>Это серверная фича сервлет реквеста и по сети не передается.Не понял. Можно же на клиенте к реквесту добавить аттрибуты, а на сервере их прочитать?
>>1632489Что за аттрибуты ты тогда имеешь ввиду? Покажи где такое. Реквест это имя метода + хедеры + тело (опционально). В том источнике который ты читаешь аттрибутами могут быть либо кастомные хедеры, либо www-x-form-urlencoded тело.
>>1632491В сервлетах.https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.html#requestAttr-java.lang.String-java.lang.Object-https://www.xyzws.com/Servletfaq/what-is-the-difference-between-the-request-attribute-and-request-parameter/1А еще есть flash attributes...
>>1632491>Реквест это имя метода + хедеры + тело (опционально)Ну и очевидный path он же url, который может содержать query и matrix parameters и path variables.
>>1632489Судя по тому, что здесь написано, можно шарить атрибуты между разными сервлетами, речи про передачу их за пределы приложения (сервера) нет.https://www.javatpoint.com/attribute
>>1632515А, вспомнил, она еще когда ты кидаешь исключение с каким-то сообщением, предлагает заменить проверку на requireNonNull без сообщения. Поганенькая штука, хорошо, что в идее почти любые проверки можно отключить.
>>1632494Это метод мока, он через рефлекшн что угодно может подсунуть в сервер. Проверил запрос - никакие хедеры не добавляются, боди отсутствует, урл чистый. Передать эти аттрибуты извне, т.е. с помощью HTTP, никак нельзя. Ответ остается прежний: в хттп их нет, это фича сервлетов.
>>1632493String variableTrue = "True";if (String.valueOf(condition).toLowerCase().hashCode() == variableTrue.toLowerCase().hashCode()) {} else if (String.valueOf(condition).toUpperCase().hashCode() == variableTrue.toUpperCase().hashCode()){} else {}
>>1632432Что они там нарушили?>>1632445Наследование может нарушить, но совем необязательно это делает. Но нарушить инкапсуляцию Object это надо прям очень-очень постараться, прям на уровень Unsafe залезть.
>>1632504Нужен конечно!То что ты сказал решает только проблему chained вызовов a.b().c().d() Но не помогает понять, в какой момент с стало null. Поэтому проверки на null в момент присвоения все равно нужны.
Пишу тест класса который должен хранить мапу и добавлять/удалять из нее.Хочу протестировать метод add(Class<?> clazz, Object object)и проверить что данные добавились в карту. Для этого вызываю еще один такой же класс и вставляю данные через рефлексию. Ассерт не проходит. ЧЯДНТ? Как вообще такую хуйню правильно тестить? ServiceContext context = new ServiceContext(); TestService1 service = new TestService1(); context.add(service.getClass(), service); Map<Class<?>, Object> testMap = new HashMap<>(); testMap.put(service.getClass(), service); Class clazz = Class.forName("xxx.xxx.service.ServiceContext"); Object obj = (ServiceContext) clazz.newInstance(); Field field = clazz.getDeclaredField("context"); field.setAccessible(true); field.set(obj, testMap); Assert.assertTrue(context.equals(obj));
>>1632586А ну да, использую equals, который не переопределил.А все же такие методы добавления тестируют только через reflection или есть более простые способы?
>>1632811Более красивый и функциональный аналог mvnrepository, чтоб как гитхаб умел всякие социальные штучки делать.
>>1632820То же самое, только с нескучным дизайном и более хуевым поиском. А хотелось бы что-то вроде микроблогов, где разрабы писали бы про свои информацию, release notes, getting started и т.д.
>>1632839Это тебе не котлин, джава компилятор не умнее обычной палки, такой реверанс не получиться сделать с финал полем.
>>1632839final поле должно быть инициализированно либо сразу, либо в констухторе. А констухтор тут не поможет, потому что у тебя static {} block раньше выполняется.
>>1632867В static блоке можно static поля инициализировать, я невнимательно посмотрел твой код. Он из-за try-catch ругается, а без них можно.
>>1632839>>1632860Вот этот господин не прав, файналы можно инициализировать статиками прекрасно. Просто переменная должна быть инициализирована в каждой ветке исполнения, а у тебя в catch блоке out остается неинициализированной. Напиши там "out = null" после стактрейса.
>>1632839>>1632886А еще лучше прокидывай эксепшен выше просто и все, превратив его в unchecked. Потому что при "out = null" у тебя все равно жизни нет, это как я понимаю твой основной компонент бизнес логики. Да и идея будет ругаться что "out может быть null".
>>1632907>кидать RuntimeExА ты не кидай сырой, эт же просто пример. Кидай MyCoolEx extends RuntimeException. Нет, не пахнет, многие библиотеки так делают. Это выбор разработчика к чему у него душа лежит - к чекед чтобы все засрано было try/catch, или анчекед, чтобы ловить только в ключевых местах-чокепоинтах, например, вокруг всего тела psvm.
Можно ли в мавене в верхнем pom.xml, в котором определяются все вложенные модули, определить плагины, которые будут запускаться после сборки всех модулей?
>>1633117Ну пробросил я жсон из pojo обьекта по гайдам, для чего это и куда это в хтмл совать не понятно. Может жс фреймворки с этим работают.
>>1632839Проблема в том, что в случае эксепшена у тебя будет неициализированное поле. У тебя два варианта: в catch блоке присвоить null или любую другую фигню. Или выбрость какой нибудь runtime exception - тогда класс вообще не загрузится и на статическое поле будет насрать.
>>1633136Точняк, тогда инициализовать через доп перпеменную. static { OutputStream nullStream; try { nullStream = new FileOutputStream("/dev/null"); } catch (FileNotFoundException e) { nullStream = System.out; } out = nullStream; }
Как я понял, существуют более высокоуровневые средства для многопоточного программирования. То есть, о явном проектировании потоков можно просто забыть и просто скармливать задачи черному ящику? Это эффективнее? Или в некоторых моментах проектировать свои потоки более гибче?
>>1633154Так и есть, сейчас лучше использовать более высокоуровневые вещи. Во-первых, они эффективнее, во-вторых, они оставляют меньше шансов на ошибку т.к. написаны профессионалами. В каких-то частных случаях можно и свой тред спроектировать, но это редкие случаи; плюс ты уже должен быть подкован в этом деле, потому что как обычно работа с низкоуровневым апи требует больше внимательности.Однако, в стандартном SDK джавы существует как минимум один случай, когда от тебя требуют наследоваться от Thread напрямую и что-то там переопределять. Я честно говоря не помню уже этот кейс, но я его встречал. По-другому там не сделать, т.к. апи были спроектированы давно и замены еще на тот момент не написали, может и до сих пор не написали, потому что фича была довольно специфическая, читай "ненужная".
>>1633167>оставляют меньше шансов на ошибку т.к. написаны профессионаламиА вот об этом я сегодня как раз прочитал, что нужно доверять, но проверять. Документация какого-то класса хоть и гарантировала потокобезопасность, но потокобезопасным он не был. Вот так и гадай, какие подводные могут быть..Какие классы вообще служат для высокоуровневого обеспечения многопоточности? Есть ли годные сторонние библиотеки, или с лихвой хватает стандартных?
>>1633174Тоже сегодня видел.Но я спрашивал про String.intern() где-то полгода назад, мне итт сказали, что не знали об этом говне и на работе ни разу не юзали.
>>1633168Да. Экзекуторы вместо тредов, различные семафоры и каунтдауны вместо вейтов+джойнов.>>1633172Ну это отдельный случай - баги. Винда или SSL тоже гарантируют защиту твоих данных, а вулнерабилити всё равно находят и абузят. В случае со стандартными классами библиотеки джавы или любой другой библиотеки как думаешь, у кого больше шансов наткнуться и найти баг, у тебя в случае самописного класса, или у коммьюнити на сотнях тысяч энтерпрайзных приложений?>Какие классы служатРазличные экзекуторы и служат: есть с очередями, расписаниями, и тд. Даже отдельный случай singleThreadExecutor - т.е. разработчики библиотеки предлагают тебе не использовать свой Thread даже в случае если тебе нужен всего один поток. Ну тут мораль ясна - завтра тебе понадобится добавить в одному потоку второй и ты просто одноу строку поменяешь, которая возвражает реализацию, т.к. ты уже работаешь с экзекутором через интерфейс. То же самое почему мы пишем List = new ArrayList, потому что потом можно на Linked заменить или другие.
>>1631266 (OP)Джавач, я прошёлся по нескольким тематическим тредам в поисках слова "легаси". В каждой тематике искал за последние 2000 постов. Результат весьма интересен.
>>1633182Шарписты занимаются перефорсом легаси на джаву, хотя у самих на рынке вакансий одни дутнеты без кор на винде, винформс старые и еще хуже вебформс
>>1633154Проблема многопоточного програмиирования не в "скармливать задачи черному ящику", а в том что делать с исходными данными и результатоми. Их же надо как разбить, многопоточно обработать, собрать результат и вот тут уже начинаются сложности.Есть куча готовых решений: потокобезопасные очереди, executors, паралельные и реакливные стримы, акторы, корутины и прочее. И в целом все неплохо работает, если тебе нет необходимости в супер перформансе или выжать максимум из железа. Иначе добро пожаловать в ручное управление shared memory.
>>1633111Для начинающего кто уже хоть как-то знаком с сервлетами - Wrox Professional Java for Web Applications. Там как раз начинают с одскульных приложений на голых сервлетах с jdbc и постепенно переписывают все это дело на спринг (не бут). И лучше еще параллельно почитывай официальную доку ->https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html там то же ничего особо сложного нет.Если сервлеты не нюхал то читай - Head First Servlets and JSP
>>1633633он нужен только чтоб сказать что он не нужен и даже вреден>>1633652это для нативного кода, обычно его вообще не упоминают https://stackoverflow.com/questions/1010645/what-does-the-registernatives-method-do
>>1633683Бывают ситуации когда native драйвер даёт больше возможностей чем pure Javq. У того же Оракла 2 драйвера, один из которых вызывает oci через jni.
Можно (и как) объединить два независимых проекта на gradle? Чтобы из второго проекта можно было дергать API первого, но при этом в первый проект не вносить никакие изменения в сам градл?
>>1633723Делаю так (ну почти так) на мавене, инсталлируя свои микро-либы в локальный репо и подключая обычным способом в помник через артифакт+версию. Про градл не знаю, но т.к. там можно использовать репы мавена и даже пом.ыксымэл то думаю это реально. Единственное с чем тебе придется смириться это то что генеришь ты вполне законченные и оформленные jar-ники, что подразумевает перепаковку/повторную инсталляцию при изменении кода либы, но по факту это одна кнопка/команда.
>>1633731Вот опять эта магическая хуйня. Вроде не должно работать без чего-то, а вроде работает. Скоро и без @SpringBootApplication будет работать, лол.
Как в джаве реализовать такой ввод команд пользователем, как в gdb? То есть, запускается программа, затем в начале каждой строки выводится название программы (gdb) или gdb> а потом считывается пользовательский ввод?
>>1633898Scanner sc = new Scanner(System.in);while (true) {System.out.print("gdb> ");String input = sc.nextLine();// ... обработка ввода ...}
>>1633910Ясно. А почему его через идею нельзя использовать? Я слышал, что там для запуска используется javaw, а не java, но это пиздежь.
>>1633913Точно не javaw, иначе выхлоп программы внизу не был бы виден.Никогда не юзал его, сейчас трайнул, и System.console() вернул null. В git-bash он тоже возвращал null, заработало только с winpty.Ниоч, ну нах.
>>1633921>System.console() вернул nullДа, потому что там внутри проверка isTty. Если в идее запускать через терминал, то будет работать.
>>1633977Бля, я когда увидел иерархию из этих InputStream, FileInputStream, BufferedInputStream, NeboInputStream, AllahInputStream и ещё овер 50 классов, сразу зарёкся писать на джаве что-то, где нужно работать с файлами.
>>1633984Восхищаться динамико-дрисней после опыта на статике, говорит о низком скилле в программировании.Восхищаться питоном, где вся его нахайпованая "мощь" заканчивается тогда, когда начинаешь что-то серьезное писать - вообще специальная олимпиада.Я уже не говорю о вывернутом диалекте языка и либ с маняфантазиями. Питон в этом плане не переплюнул только го.
>>1633997Они для разных задач. Джава - это серьёзные крупные проекты, но никак не консольные утилитки. Для последнего норм питон, но для большего он не годится.
>>1633995Шел бы ты отсюда.Пыхтон и части не может, что в котлине можно сделать с файлами в одну строку.
>>1634004На питоне можно всё писать в одну строку, вопрос лишь в понятности:(lambda fin: (print(fin), close(fin)))(open("text.txt"))
>>1634009Даже си можно в одну строку уложить. Речь про вменяемость последующего сопровождение.Питон исконно херня в столбик, а лямбда скорее праздник чем реалии кодинга.// Получить последний файл в каталоге с префиксом "img_"File("text").list().last { it.startsWith("img_") }
>>1634014Ок, убедил, потыкаю когда-нибудь твой котлин.(lambda os: [s for s in os.listdir() if s.startswith("img_")][-1])(__import__("os"))
>>1634009>>1634017Какой-то лисп получилсяА как же тамКрасивое лучше, чем уродливое.Явное лучше, чем неявное.Простое лучше, чем сложное.Забавно что в питоне имеется такой адок из которого вечно получается не читаемое нечто:>[s for s in os.listdir() if s.startswith("img_")]Но при этом очень сложным было добавить this, ведь ппц как запутало бедного Гвидо.
>>1634174Если бы просто лисп. Тут лисп с перлом.Я сам до сих пор охуеваю с любителей однострочников в питон-треде. Сам пишу такое только в шутку.А this нет, думаю, как раз из-за "явное лучше, чем неявное", и поэтому self и cls передаются явно.
Парни, в путоне можно делать так:'{:^30}'.format('centered')'centered*'А как в джаве выровнять строку по центру через дополнение символами? В гуаве есть дополнение слева\справа, а как по центру?В смысле, сам-то я метод могу сделать, но не уже ли нет готового?
>>1634236ух, звёздочки исчезли. Хорошо, идея то все равно понятна"{:-^30}".format("centered")'-----------centered-----------'
>>1634236Искаропки нету. Есть StringUtils.center() в Apache Commons Lang.https://stackoverflow.com/questions/8154366/how-to-center-a-string-using-string-formathttps://kodejava.org/how-do-i-align-string-print-out-in-left-right-center-alignment/
>>1631287> Spring Dataсприн дата это тупа дружбомагия которая по названию метода типа FindByName генерит запросы
Как правильно с точки зрения джавы организовывать приложение на свинге? Отдельный класс для панелей, отдельные классы для листенеров, но тогда листенер нихуя не знает об остальных компонентах на панели, можно конечно сеттером каждый раз пересоздавать кнопку, чтоб поменять название, но зачем? Можно ехтендиться от панели и имплементить листенеры, но это тоже фигня, один общий actionPerformed, в котором миллион if e.getSource.equals(button2)Как правильно делать, чтоб Brian Goetz сказал малаца?
>>1634352не знаю как в свинге, но в javaFX есть .fxml для описания интерфейса, и есть Controller.java для всего кода. Код листенеров для кнопок тоже в контроллере
>>1634380Да это я знаю. Но мне на свинге с look and feel "Nimbus" захотелось, как же он напоминает старые макоси. Да и в jfx в контроллере тупо миллион методов на каждый контрол? Какой-то процедурный подход.
Подскажите, стоит в 2к20 читать "Структура данных и алгоритмы Java", Роберт Лафоре? Или есть нечто подобное, но свежее?
После изучения такого курса, что стоит начать учить? Ну и стоит ли курс потраченного времени.https://www.udemy.com/course/java-oca-oracle/
>>1634413Я эту книгу выбрал именно потому, что там примеры на джаве. У Седжвика тоже или он на с++ примеры показывает?
>>1634418Седжвик уже давно на джаву перешёл. Раньше — да, было на плюсах, у меня на работе стоит такой двухтомник 2002 года.
>>1634506конечно желательно из этого спискаhttps://rutracker.org/forum/search_cse.php?q=java+%D0%BA%D1%83%D1%80%D1%81
>>1634528я пробовал, да, но в них часто многие темы плохо объясняются, хотя может я неправильные книги читал
>>1634530Читаешь Хоррестмана. Не понятно - посмотри видео, перечитай главу, перепиши весь код с нее. Заменить книги не получится.
Не понимаю, как BufferedInputStream работает и в чем преимущество по производительности. И так и так ведь идет обращение к устройству.
>>1631276Spring Data позволяет тебе не писать код обращения к БД, а просто определить интерфейс с методами, которые называются определённым способом. Например, написал в интерфейсе метод findByUsername(String username) и Spring сам создаст реализацию этого метода, который будет лезть в БД. Если у тебя чисто хибернейт, то тебе придётся ебаться с EntityManager, CriteriaQuery и прочим.К тому же, Spring Data это не только про редакционные БД. Spring Data может работать с MongoDB, Cassandra, Elasticsearch, Couchbase, Redis, при чём для них есть как обычные интерфейсы, так и реактивные. Хибернейт такого не умеет.
>>1634564Он читает данные через буфер, т.е. пачками. Это значит, что за одно обращение к системе читается больше данных => меньше дорогих системных вызовов. И кроме того, такое чтение в целом меньше мешает другим процессам.Если приводить аналогию, это как сходить в магаз закупиться жратвой на неделю, вместо того, чтобы бегать туда каждый раз, когда хочешь есть.
>>1634583Представь, что у тебя есть много потоков. В каждом выполняется какой-то код. И представь, что один из потоков дошёл до середины, но не может идти дальше, т.к. ему нужно дождаться остальных. В этот момент он говорит wait(), останавливается и ждёт. Ждёт до тех пор, пока кто-то другой не скажет notify() или notifyAll().Методами notify()/notifyAll() поток уведомляет другие потоки, что он изменил состояние объекта, можно его чекнуть и продолжить работу.Разница между ними в том, что notifyAll() уведомляет все потоки, а notify() только один другой поток, выбранный случайным образом.В том примере есть продавец, который не может продать товар, пока его нет на складе. Он говорит wait() и ждёт сигнала notify() от поставщика, когда он подгонит фуру с товаром и наполнит склад. Тогда продавец снова сможет продавать товар.
>>1634798Если от монадок с функторами тебя корячить не начинает, то определённо. Ну и если бы ты мог легко перебраться, то давно бы уже сделал это. А раз ты спрашиваешь тут, значит ты типичный крудошлёп. Какая тебе нахуй функциональщина, дерево крутить научись.
>>1634785>Например, написал в интерфейсе метод findByUsername(String username) и Spring сам создаст реализацию этого метода, который будет лезть в БДи зачем такая ёбань нужна? Хипстерки поди эякулируют от этой магии
Есть 2 имплементации 1 jaxrs интерфейса в war, один в classes, другой в lib/jar, jboss eap 6.4. Тот, что в jar extends тот что в classes (кастомизация, сэр).Как зафорсить порядок загрузки, чтобы загружался класс из jar? Переупаковку, шадов компайлеры и проч. не предлагать, ограничение со стороны вендора - можно добавить только один джарник в war.
>>1635111>собралась>exit code 0Она работает правильно, просто ты обосрался с энкодингом в windows-1251(/1252)
>>1635129А нормально объяснить?Мне вчера накидали кусок кода для доступа к файлу, чтобы не прописывать полный путь, и после это го началось µР±СѓРµ и ђРІС‚РѕР±Как исправлять-то?
>>1635107Магии там ровно столько же, но вместо магических аннотаций, падающих в компайлтайме, там не менее магические xml-ки, падающие уже в рантайме.
>>1635132>µР±СѓРµ и ђРІС‚РѕР±Подобная ебала выскакивает в utf высранном в энкодинг шинды-125*Погуглив за тебя можешь попробовать или создавать стринг с утфом или аут стрим с тем же утфомстрим:PrintStream out = new PrintStream(System.out, true, "UTF-8");out.println(test);Ну или полазией в настройках IDE, скорее всего там должен быть форс в кодировкуСам я мимопроходил, тыкающий жабу, если что
>>1635133>Например, написал в интерфейсе метод findByUsername(String username) и Spring сам создаст реализацию этого метода, который будет лезть в БДэто будет падать в компилтайме?
>>1635158откуда твой компилтайм знает про структуру базы? Не знает, и падать будет в рантайме.При этом добавляется огромный оверхед на эту твою любимую магию.
>>1635164Схуяли мою? Я всё нативными запрсами пишу. Правда, они тоже упадут в рантйме, ибо это обычные строки.
>>1635167Я по-твоему ванга? Скорее всего если ты не определяешь принтстрим в жабе самостоятельно оно будет придерживаться первого попавшегосяУбери чтение файла и проверь и вообще иди на хуй я тебе уже всё что можно рассказал
>>1635169>принтстримЧяво?>оно будет придерживаться первого попавшегосяты только что хуйню>Убери чтение файла и проверьчяво?
>>1635132Ну привет. Это я тебе вчера накидал. Но я ответственно™ заявляю, что это (>>1634209 →) к твоей проблеме не относится, вот подтверждение (>>1634230 →) - там у тебя и мой код, и русский норм выводит. А потом у тебя начались другие проблемы в другом совершенно месте (>>1634247 →). Кстати, как решил? Что по текущей проблеме подсказать не знаю, наверное ты где-то покопался в настройках, вспоминай.
>>1635164На старте приложения спринг создаёт всю твою магию, работает норм, но стартовать будет долго. Но всем похуй, обычно запускают приложуху на сервере и она работать может овердохуя лет.. На такое ещё прекрасно накладывается jit
>>1635228Для начала покажи вот эту страничку. Далее, можно попробовать CTRL+A, CTRL+C, потом удалить файл, создать новый файл и CTRL+V.
>>1635230>запускают приложуху на сервере и она работать может овердохуя леткак там в 2002?весь мир давно на faas
>>1635141Почему это должно падать? Это такой же код, просто вылизанный и оттестированный миллион раз, да ещё и упакованный в контейнер. Не надо искать в спринге магию, там её нет. Это просто инструмент, чтобы писать меньше повторяющегося кода.Не нравится - можешь хоть каждый запрос к бд руками хуярить, через JDBC. Но тогда задай себе вопрос, зачем тебе Java, а может вообще лучше хуярить на С? Или сразу на ассемблере писать?
>>1635236Да, есть такие авторы умных книжек, что любят рассуждать об архитектуре в вакууме, которая где-то там в космосе ничего не знает ни о конкретных фреймворках, ни о всяких скучных деталях типа структуры хранения данных в БД. Ради решения какой практической проблемы предлагается вся эта боль - загадка. Просто "ВЫ НЕ ДОЛЖНЫ".
>>1635272Там нормально всё написано, для чего и почему. Просто он это вырвал из контекста.Суть в том, чтобы делать архитектуру, а потом уже для решения каких-то задач применять фреймворки модные.А не делать каргокульт вокруг фреймворка, из которого тебе может и надо будет 2.5 строчки кода.
Почему жвм мир в целом и спринг в частности так сильно перегружены информацией, деприкейтед говном по которому все ещё гайды на первых страницах Гугла, и всем таким прочим?Пиздец, сто тыщ гайдов на каждый чих и все по разному.Спринг Бут это вообще раздутая поебень которая работает на чистой магии аннотаций, которые то обязательны то нет. Охуеваю как в .нет всё стройно и понятно, а попытки погрузиться в жавамир ощущаются как на той пикче где мужик с аквалангом в чан с говном лезет.
>>1635278Нет там карго-культа. Вся книга, все эти паттерны это просто рекомендации тех, кто уже делал что-то подобное о том, как делать не надо. >>1635283Обратная совместимость. Можно, конечно забить на неё хуй, харкнуть на 9000 предприятий, которые платят за использование языка деньги. Но что-то мне подсказывает это плохая идея.
>>1635288Она и в .нет есть, но в мелкомягком инфополе минимум мусора и есть годная официальная дока на актуальные и пожилые версии языка/платформы.В жвм мире по крупицам собираешь инфу чтобы была актуальной и рабочей. Как будто в маргинальный язык пробуешь вкатиться, а не в топ-1 тырпрайз.
>>1635297Хз, о чём ты. У того же Спринга отличная документация, одна из самых лучших. Ты просто видимо ни с чем другим не работал. А по поводу устаревших гайдов, ну так ты смотри на дату публикации, лол. Если старше 3 лет, значит уже неактуально скорее всего.
>>1635297Ты не там смотришь. Несомненно, васянских сайтов, публикующих гайды "как сделать то-то и то-то", навалом, но, во-первых, всегда есть официальные доки (от оракла по джаве, от пивотал - по спрингу, если не найдешь, пиши, парочку закину сюда) и гайды (то же самое, и от оракла и от авторов спринга), во-вторых, всегда есть специализированная литература, в которой 95% информации up-to-date.Спрингhttps://docs.spring.io/spring/docs/current/spring-framework-reference/index.htmlСпринг Бутhttps://docs.spring.io/spring-boot/docs/current/reference/Из книжек выбери что по душе и ближе к текущей дате.
>>1635313Отдельно литератуда для сертификации, но выше OCP8 я пока ниче не сдавал.У боярски и селикова овердохуя ошибок, эррата на 500+ ошибок, это примерно по одной ошибке на две страницы, невнимательная быдлокодерша, за что ей джава чампиона дали не понимаю.
>>1635259отцы-основатели дали вам прекрасный декларативный dsl - sql. Нет, не хочу, хочу костыльную магию на основе НАЗВАНИЯ МЕТОДА (теперь ты не сможешь дать методу цивильное название)
>>1635283отказ от стандарта JavaEE и переход на хипстерский спринг с революциями и переделыванием всего каждый год.
>>1635225С ЕЕ всё норм, дебич, то что так приходится кастомизировать, это проблемы контракта с поставщиком.
>>1635313>официальные доки (от оракла по джавеДа там сгенерированный джавадок и если повезет мизерный пример обычным текстом без скриншотов.
>>1635338Неет, это ты доки на API Java SE смотришь. А есть еще оракловские гайды (The Java™ Tutorials).Точка входа здесь, секция Language and Libraries/Java Tutorials.https://docs.oracle.com/en/java/javase/13/
>>1635345Лично я даже сру со спрингом. Сначала просто поднимаю контекст толчка, а затем автовайрю какашки в унитаз. В конце делаю flush контекста.
А вы тоже на работе разворачиваете приложения, пишете документацию, обсуждаете дизайн новых фич и изредка пишете код?
>>1635323Одно другому не мешает.Но когда ты в 10/100/1000 раз напишешь Select * from table, то ты начнёшь задумываться об автоматизации этого процесса. Сложные запросы всё равно придётся писать на SQL, тут уж никуда не денешься.
>>1635350Тект мелкий и код никак не выделен в Tutorials. Могли бы поприятнее сделать, как в спринговских доках.
>>1635349Лично мне из тройки самых популярных SPA-фреймворков больше всего приглянулся React, поэтому обычно юзаю связку Typescript + React +Mobx + Material UI. Но вообще, если в проекте на фронте SPA, то ты его трогать скорее всего не будешь, а будешь тупо апишки делать. Я этот стек в основном в своих пет-проектах использую, ну и на работе, когда больше некому (компания небольшая, рук не всегда хватает) и/или когда не надо сильно запариваться над вёрсткой (ненавижу верстать). Если у вас "традиционное" MVC-приложение, то используют в основном Thymeleaf, он вроде самый популярный сейчас. Ну а если есть желание поковырять SPA, то- Vue самый простой в освоении- React самый популярный- Angular самый сложный из трёх, подойдёт людям с Java-бэкграундом, потому что Typescript by default, знакомые концепции типа Dependency Injection и повсеместное использование декораторов (как аннотации, только круче), прям как в Спринге. Ну и естественно для каждого нужно знать Javascript хотя базовом уровне. И иметь хоть какие-то познания в HTML / вёрстке.
>>1635354У меня есть подозрения что реакт это оверхэд для моих запросов (чуть сложнее голого хтмл+аякс). Или он быстро осваивается на базовом уровне? Не попадались как то гайды спринг+реакт. В основном +ангуляр/вуи или шаблонизаторы.
>>1635392>Не попадались как то гайды спринг+реактА какая разница, на чём у тебя бэк? У тебя SPA с бэком тупо по апишкам общается, и без разницы, на чём они написаны.
>>1635313По первой ссылке ебаный пиздец, тупо по 200 книжных страниц на одной хтмл-странице, ни закладок ни сделать, нихуя. Читать пиздец неудобно.мимо
>>1635392>Не попадались как то гайды спринг+реактПросто "реакт" гугли, и просто "Spring Boot REST". Отдельно фронт отдельно бэк, мухи от котлет.>>1635403Закладки легко кладутся ставятся, для этого же придуман анкор (решоточка). И убедись что у тебя в ссылке не стоит "htmlsingle", это вообще для дока в одной html-странице, а то там разные варианты есть, кому как удобнее.
>>1635408Хочу аналог ломбока, но в виде XML Типа такого:<?xml version="1.0" encoding="UTF-8"?><lombok xmlns="https://projectlombok.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:lombok=https://projectlombok.org https://projectlombok.org /xsd/lombok-1.0.0.xsd"> <lombok:generate-getters-and-setters> <lombok:configuration> <lombok:class>MyAwesomeEntity</lombok:class> </lombok:configuration> <lombok:fields> <lombok:field> <lombok:field-type>int</lombok:field-type> <lombok:field-name>id</lombok:field-name> </lombok:field> </lombok:fields> </lombok:generate-getters-and-setters"></lombok>
>>1635415Ну как бы никаких проблем нет, берешь https://github.com/cglib/cglib/wiki и ебашишь.Я так в своем проекте генерировал DTO, ничего сложного.
>>1635297Сколько работаю со связкой спринг/хибер -- ещё ни разу не сталкивался с тем, что нельзя загуглить и вкурить что-то за 20 минут.
>>1635494Я давно уволился и доступа к коду у меня нет.Посмотри этот тьюториал: https://dzone.com/articles/cglib-missing-manual
Аноны, нужна помощь. Уже скоро будет 2 года как я начал работать джавистом, ощущения, что за это время я накопил дохуя опыта и начал писать качественный код, появились, но, сука, меня беспокоит то, что я по сути нихуя не знаю. Банально даже то, когда нужно переопределять equals() и hashCode(). Проблемы с HashMap, именно с тем, как углубленно все это работает внутри. Про более экзотичные структуры данных и многопоточность, думаю, и говорить не стоит. Как лечить подобную хуйню? Читать книжки, мб курсы кто посоветует хорошие?
>>1635601>>когда нужно переопределять equals() и hashCode()>>как углубленно все это работает внутри>>HashMap>>углубленно>>курсы кто посоветует хорошие?на ютюбе погугли "джава для начинающих" или там Хорстмана почитай первый том. Ты б лучше про мониторы спросил или concurency collections, хотя это тоже входит в кор джава
>>1635633Вот бумеры, не могут сделать онлайн-презентацию новой версии, в которой без preview почти нихера нет.
По сервлетам много знать надо? Хед фирста хватит или серьезнее что-нибудь почитать? Потом же все равно сразу спринг начну.
>>1635228Кароч немного разобрался. Открыл тхт-файл на русском, и перекодировал предложенным ИДЕ-шкой способом (1251) потом все в консоли полетело. Исправляется, если менять с утф-8 на 1251 вручную в каждой программе.
>>1635708потому что ищет в рабочей директории. она у тебя в корень проекта указывает, а файл лежит рядом с исходниками
>>1635729есть два стула (может больше):System.out.print((char) i);System.out.print(Character.toChars(i));а лучше для текста используй FileReader
>>1635832я вот тоже не понимаю, давно им не пользовался, но у него есть метод close.. казалось бы, логично если ты передал ему просто файл, то ты закрываешь сам сканер, чтобы он закрыл поток который породил, но если ты сам ему передал поток с которого читать, получается закрывать сам сканер не обязательно, если хочешь использовать свой поток как то еще?
>>1635334> Condition и LockЭто то же самое. Только при использовании lock-ов у тебя есть отдельный объект снхронизации, что сложнее. Чаще всего как раз это и не нужно.
>>1635836Погоди, еще 20 лет тренировки и смогу. Я даже хз что это вообще у тебя.Могу нарисовать уже сейчас
>>1635731>>1635738>Метод read() возвращает значения int штоле?Да. Если бы возвращал char то тогда бы нельзя было вернуть -1, точнее, вернуть было бы можно, но это было бы валидное значение чара, т.к диапазон чаров это 0x0000 - 0xFFFF. А вот "(int)-1" это уже 0xFFFF_FFFF, что выходит за диапазон валидных значений чара, соответственно может безопасно использоваться как специальное значение.
>>1635923Чтобы не байтоебствовать над памятью и указателями.Чтобы не было самых трудноуловимых багов.
>>1635910Чтобы неторопливо пилить таски на легаси-проекте, пить кофу с дорогими коллегами, тереть про машину, дачу, подготовку детей к школе, и гыгыкать над протухшими мемасами, временами почёсывая лысину.
>>1635939> ведь ни у кого нет денег на похороны.меня похороны не интересуют.что и зачем пилить на ней в 2020?
Бля, апдейтнул крякнутую иде, еще раз драгнул агента, теперь срок годности упал до 17 апреля, а был до 2080 года, че делать? 17 апреля просто еще раз заагентить?
Есть тут аноны, которые по релокейту переехали в Европу? Как вышли на работодателей, какие сайты (кроме линкедина) стоит мониторить?Может советы какие есть по прохождению собеседования и по другим вещам?
>>1635723>Хедфурста хватит все-таки? ладно. в 2k21 нет смысла читать талмуды про сервлеты и жсп, если ты не имеешь дел с совсем дремучим легасиговном. читай лучше про сприн мвц и таймлиф
Аноны, горю уже несколько месяцев над идеей создания металайзера музыки, но понятия не имею как это делать, даже малейшего представления нет. Искал всякие гайды и видео по работе со звуком, но максимум что там было - создание каких-то синусоидных звуков, регулирование громкости и чего-то там еще. А мне нужно, например, определять какие инструменты используются, аккуратно подменять звук, допустим, с гитары на электрогитару, и т.д. Это возможно вообще? Че делать, никакие идеи для проектов в голову не лезут. :(
>>1636104Я нашел через https://djinni.co/Из советов: - практика разговорного английского я работал в международных компаниях и у меня был опыт регулярного общения по скайпу и почте- многие компании сильно интересуются твоими софт скилами - "расскажите почему вы хотите работать у нас", "какие ваши сильные и слабые стороны" и прочая HR чушь, но тут это реально важно- если это не гугл или амазон, то алгоритмы и с труктуры данных никому не уперлись. Зато конкретные технологии и шаблоны проектирования - это вот прям топ вопросов, Что такое REST, отличия PUT от POST, шаблон factory vs builder, ну и прочая.- ну и я бы заранее настроился на небыстрый процесс, на то что часто надо самому пинать работодателя, и что поначалу будет непростая адаптация.- заранее детально обговори какую поддержку они оказывают в переезде: например "помощь в поиске жилья" - что в себя включает, кто-то тебе найдет квартиру к моменту приезда, а кто-то наймет риелторов которые будут хуй пинать несколько месяцев мой случай.- заранее гугли локацию куда ты едешь, как там с жильем, гос услугами не все владеют английским, если конечто ты не в бриташку собрался, медициной и т.п.
>>1636251даже учитывая,что ОЗУ щас дешевоеджава все такая же прожорливая хрень и это для простецкой проги
>>1636276это взят максимум энтерпрайз вариант. Никто в здравом уме не использует ораклю.Простой чат делай на бинарном жавовском протоколе без всяких wsdl, спрингов и хибернейтов. Базу данных какую-нибудь постгрю с минимальной конфигурацией
>>1636287> на бинарном жавовском протоколе без всяких меня именно интересует как это делается коробочными средствами или с минимумов дополнений
>>1636299На сокетах попробуй, если хочешь совсем без нихуя. Ниже сокета абстракции в жабе для чатика нет. Но лучше взять какой-нить netty (сам ты на сокетах скорее всего говна наделаешь) и навесить своих обработчиков. Базу бери постгрес какой-нить, круче него в попенсорсе ничего нет. Опиши там схему (чат комната, юзер, сообщения, тут онли твоё воображение) , желательно в Dbschema. Выгрузи её в чистый Sql. Подруби ликубейз и туда ченджсетом свой скрипт. Ну и все как бы. Не забывай данные в бд модифицировать в транзакциях и все ок будет. Желательно наверное ещё подрубить пул соединений к Бд. Типо хикари. А лучше возьми спринг и мозга не еби. В нем твой чат с персистенси, с тестами, транзакциями уместитться наверное в 500 строк кода
>>1636327> возьми спрингон как то страшно и перегруженно выглядит.мне вообще советовали изначально ноду и что делать мне дебилу в жаве нечего,а то сойду с ума
>>1636346>морда должна быть на жс.тогда тебе надо разбираться со всеми этими новомодными js сокетами. java-java взаимодействие тебе не нужно
>>1636353я щас в процессе,связка пхп +жс,но это пыхари говорят извращение,хотя вставка в хтмл не особо сложная
>>1636389Ломбок это че такое по-твоему, дебил? Шаблонизатор? Кодогенератор? Фреймворк?Сука, какие же долбоебы сюда заюредают иногда.
>>1636164Спасибо за ссыль, а про свой уровень перед отъездом можешь рассказать? Сколько лет опыта было на то время, чем в других компаниях занимался?
>>1636461ну купишь еще пару серваков для своего уютного энтерпрайз чатика, если уж на оракл денег хватило
>>1636440Было 15 лет опыта. Занимался разработкой + тимлидил, по опыту в основном бекенд было чуть-чуть фронтенда, но я его не указывал, по технологиям весь актуальный стек кроме клауда специфика компаний не позволяла использовать клаудПо поводу сайта - оттуда не шибко много предложений было, я бы на нем конечно зарегался бы, но про линкедин не забывал. Можешь поменять текущее место на то, куда хочешь свалить - так больше рекрутеров тебя найдет. Ищи сам вакансии и откликайся, предварительно можешь почитать сайт компании, если есть версия на английском и в разделе "о команде" пишут то у них работает 20 nationalities - с большой долей вероятности они занимаются релокацией.И еще момент - когда ты тут, тебя начнут хайрить гораздо активней, так что реально главное перехать - может и в так себе контору.
>>1636520>>websphere тоже не дешевая.>>www.ibm.com/ru-ru/marketplace/java-ee-runtime/purchase>>Обратитесь к нам, чтобы узнать ценуОхуенный подход, просто обожаю такой. Как на базаре бля.
>>1636371> Наоборот чаще всего это и нужно.Зачем? Работать с синхронизацией по объекту гораздо проще чем с отдельным lock'ом и множеством условий.
>>1636909Здрасьте. Расширенная версия платная. База общая - бесплатная, открытая. Получается и опенсорс, и монетизация; оригинальный ответ корректен.
>>1636655Если меньше 5 лет опыта - тогда да, будет сложно но все равно возможно возможно, если больше то уже норм.Просто если у тебя 15+ лет опыта и компании с мировым именем в резюме, то рекрутеры будут за тобой сами бегать. Иначе тебе надо самому за ними побегать. Но дальше все зависит от твоих скилов - позадрачивай все эти микросервисные архитектуры, спринг, шаблоны и т.д. этого достаточно чтобы пройти большую часть технических интервью.
>>1636918>До продажи разве была платная версия?Я не знаю когда платная версия появилась, до продажи или после, я про это ничего не говорил. Сейчас есть две версии, поэтому пример подходит.>Стоит ли выкладывать код проекта на гитхаб, если я теоретически смогу этот проект монетизировать?И в вопросе не сказано когда планируется монетизация, через 10 лет или завтра.
>>1636941Я предполагал что такое задание вызовет у тебя затруднения =)Попробуй так:char c = 0x424;System.out.println(c);
>>1636973Что в приведенной фразе тебя логически подвело к твоему выводу?>База общая - бесплатная, открытая.База здесьhttps://github.com/nginx/nginx
>>1637007>0х424Это код символа "Ф". В юникоде. В противовес 0xD4 в Win1251. Консоль ждет от тебя юникода, понимаешь? Поэтому когда ты ей подсовываешь русский в однобайтовой кодировке Win1251, т.е. символы с кодами 192-255 (0xC0-0xFF), она показывает тебе ??? ? ????? ?? ??????? Ясно?
>>1637032Прост)>>1637034Не, не пытался, это просто прогу перезаписи перепилил, осталось от старой версии.
>>1637019Ну, если ты действительно хочешь пройти по этому пути, то> (0x410 + (i - 0xC0))тебе поможет.Но я вообще-то намекал что тебе бы неплохо бы сменить кодировку символов в источнике - файле. В наше время кроме UTF-8 ничего другого ставить не следует (есть исключения, но это отдельный обширный топик).
>>1637046txt-файлы ты чем сохраняешь, Идэей? Там тоже внизу есть кодировка как ты указал тут >>1636941. Открой, смени кодировку, пересохрани txt-файлы.>>1637049Это только для русских буковок (из диапазона 192-255) надо делать, очевидно.
>>1637050Пруфов, конечно же, не будет? Все внутренние апи давно на W-чарах (напр. SetWindowTextW). А какая кодировка у тебя в конкретном блокноте это от этого самого блокнота и зависит, умные-современные программы давно на юникоде так же.
>>1637059>Все внутренние апи давно на W-чарах (напр. SetWindowTextW)Примерно года эдак с 99го.https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowtextw
>>1637052>Это только для русских буковок (из диапазона 192-255) надо делать, очевидно. Да он не понял просто, что ты сделал.
>>1637052Вот смотри, записал в УТФ-8, кириллица не записалась.УТФ-8 это же однобайтная запись, на 256 символов, туда кириллица же и не должна влезть, правильно я понимаю?
>>1637067Тебе сама Идэя говорит что ты не прав. Ты файл в Win1251 открыл в UTF-8, а не пересохранил в UTF-8. Т.е. ты еще хуже сделал по факту.
>>1637070А если создаешь файл через new FileOutputStream("filename") то он с каким расширением сохраняется и где?
>>1637067>УТФ-8 это же однобайтная запись, на 256 символов, туда кириллица же и не должна влезть, правильно я понимаю?Нет, не правильно понимаешь. Настолько неправильно, что буквально каждое слово неверно, но детально комментировать я не буду. Гугли, читай.Итак, тебе нужно именно сохранить файл в UTF-8. Твои действия:1) Открыть файл в Win12512) На всякий случай CTRL+A, CTRL+C3) Выбрать кодировку UTF-84) Оно спросит Convert? Ответить да5) Либо сделать Reload, потом CTRL+A, DEL, CTRL+V
>>1637075Без расширения - "filename" и будет полное имя файла. В дефолтной папке проекта (по умолчанию - корень).
Нормально ли, когда приложение почти полностью зависит от стороннего, но, допустим, стабильного приложения? То есть, при падении стороннего приложения, будет падать и мое.
>>1637201Ну у всяких популярных сайтов, например о погоде, есть публичные API и их все юзают и не боятся.
>>1637168>>1637201Падает ли nginx когда апстрим недоступен? Нет, он возвращает 502 bad gateway. Так же и у тебя - если апи недоступно/вернуло ошибку, ты корректно доносишь эту информацию пользователю, а дальше по обстоятельствам - сворачиваешься или ретраишь. Это не краш как таковой, это зависимость недоступна, и тут ничего не поделаешь если у тебя все приложение крутится вокруг этой зависимости.
>>1637122Вот электрон поднимает хромиум и ноду жс на локальном пк и получает все фишечки как веб-приложение, так и нативный доступ к системе благодаря ноде. Почему со спрингом нельзя так сделать? Какую-нибудь супер lightweight версию с забандленным jre и хромиум.
Ребят, выполняю тестовое задание, до этого с бд мало работал. Тут пункт:Проект должен содержать: дамп БД, входные файлы ... Использую PostgreSQL.Вопрос, как происходит подгрузка дампа? Как работадатель запустит его? Сейчас у меня все работает на станднартном localhost.Что вообще делать? Я создал дамп через pgAdmin, загрузил в папку с проектом, а дальше что? Какой url указывать в проекте для подключения к бд? ведь у работадателя другой url, другой пользователь бд, другой пароль.. Или это все переносится в дамп?
>>1637252>Какой указывать url, бд, парольЭто - настройки. Настройки не пишутся в код (не хардкодятся), настройки не попадают в VCS. Настройки берутся из внешнего источника в рантайме. Например, из файла рядом с приложением. Или из environment vars, или из JNDI, или из параметров командной строки, ну ты понел. Спринг? ---> application.properties.По части дампа, делал дамп в другой RDBMS. Там имя бд хоть и записывается в дамп, но не является обязательным, развернуть дамп можно на любой бд, поэтому работодатель развернет на 0243_temp_another_newb_db. Полагаю что так везде, при импорте можно указать куда собственно импортишь. Можешь сгенерить достаточно уникальное имя db, чтобы оно не пересекалось с потенциальными другими (напр. xxx_my_cool_haker_db_xxx), и предоставить готовую команду для импорта с этим именем. Тогда проверяющим нужно будет только логин/пароль в настройках изменить (это конечно же не дампается).
>>1637271Чет не очень доходит.. Вот мой созданный дамп, там описание всех таблиц и значений в них. Как я понял, работадатель сам запустить этот sql и развернет у себя? + у меня есть класс-утилита в приложение (с приватным конструктором и статичными полями), в которых хранится логин, пароль, юрл, он сам там сменит на что ему там надо? А то я уже 2 часа мозга ебу и не понимаю, толи написать ему на почту, на вот сам ебись с этим файлом, я не знаю как это делать. (мб хоть за честность возьмет )))))) ), либо вообще хз.
>>1637281Если работодателю придется что-то изменять в коде и перекомпилировать, чтобы оно хотя бы заработало, то скорее всего он не будет этого делать. Ему нужно:1) заимпортить бд к себе (наверняка у него готовая команда с параметрами есть уже, типа postgre importdump <dbname>2) где-то указать свой логин/пароль3) запустить прогу на выполнениеПоэтому при передаче проверяющему у тебя помимо исходников приложения + дампа должна также присутствовать готовая к запуску версия приложения "для юзеров", которая может работать в stand-alone режиме (если тебя конечно не war попросили сделать), т.е. без всех этих исходников, т.е. просто hello.jar, который можно запустить командой java -jar hello.jar. Я обычно рядом еще и bat+sh делаю с командой запуска, потому что там могут быть длиннющие параметры, типа -xmx, -xms (это покажет твою дополнительную крутость кстати, только не обосрись). Т.е. тупо две папки: src (исходники) и bin (готовая программа). И вот тут у тебя развилка, откуда брать параметры. Можешь в скрипте, к параметрам запуска дописывать. Тогда команда будет такая: java -jar hello.jar user password db. Либо в отдельный файл. А дальше изменяешь свою программу так, чтобы она при загрузке в методе main либо проверяла аргументы (String[] args там не для красоты сидит), либо читала простенький файл, где настройки будут идти парами key=value по одной на строку.Чем легче ты сделаешь это для проверяющего тем тебе же лучше. Т.е. если ты например выбрал указать параметрами в скрипте, то выдели их в начало файла в отдельные переменные, потому что в длиннющей строке запуска сложнее что-то найти и изменить.
>>1637252Я обычно использую H2 - это один файл, работает в embeded режиме. Если не лень - сделаю создание базы liquibase скриптами. Если лень - создаю Hibernate из entity.И вообще стараюсь, чтобы тестовое можно было запустить ./gradlew bootRunНу и в корне проекта README.md с описанием как сконфигурить если надо, запустить и тестить.
>>1637342>Если не лень - сделаю создание базы liquibase скриптами.Есть пример? Это вообще норм практика? Обычно вроде просто .sql файл используется. А спринг еще и сам этот файл запускает.
>>1637252Можно завернуть в докер-образ, лол. Натыкался на тестовые, где нужно было наклепать круд и докеризировать.Хотя не факт, что у тебя можно, судя по постановке задания.
>>1637403Есть вариант без выкладывания на хаб:> docker save -o dvachimage.tar dvachimage> docker load -i dvachimage.tar
>>1637371>Есть пример? Примера под рукой нет. Но в целом идея - подключаешь к проекту liquibase plugin и встраиваешь его в процесс билда. И наката на базу. Погугли тьюториалы, если не получится спрашивай.>>1637371>Это вообще норм практика? Обычно вроде просто .sql файл используется. А спринг еще и сам этот файл запускает. .sql - файл сойдет для тестового проекта, где база после создания не меняется, а если и меняется то ценных данных в ней нет.А вот если у тебя реальная прод база, с кучей данных - то тебе надо уметь ее обновлять со старой версии на новую и откатывать изменения, попутно контролируя что уже накатили а что - нет. Все это умеет liquibase.
Бизнес-приложения уже лет 15 как строят на веб-основе. И ничего, кроме современного браузера им не нужно.
>>1637439На Sun Tech Days немного пощупал Sun Workstation на SPARC с Java Desktop System.С серверами не имел дела да и вообще Java разрабам пофиг на чем там сервер
Насколько вообще важно знание убунты/никсов для джависта? Если есть выбор между изучением например кафки или очередного спринга и изучением убунты что предпочтительнее?дефолтный интерефейс мне не нравится совсем, какой то уровень планшета, а сделать из него что то полноценное не так уж быстро для ньюфага
>>1637465Интерфейс понадобится вряд ли, но на уровне консольки знать нужно (Ubuntu Server).В идеале разраб, имхо, должен иметь хотя бы небольшое представление обо всех технологиях, достаточных, чтобы из ничего мочь в соло сделать проектик под ключ, то есть к джаве знать базово фронтенд и девопс и мочь всё это связать и развернуть на хостинге.
>>1637488Для этого нужно установить десяточку, а не быть ретроградом, как я. У меня и докер работает криво.
>>1637465С вероятностью 99% твои творения будут вертеться именно на *никсовом сервере. Но лично я как вкатыш изучил бы очередной спрынг, вряд ли старшие товарищи разрешат в консоль ручками лезть. Да и на собесах про линукс пока толком не спрашивали.
Я дурак. Я чувствую, что не знаю джаву, даже если читал много о чем-либо. Вот спросите любой вопрос итт, я скорее всего обосрусь.
>>1637069Java это tomcat, jboss и иже с ними. Каждый первый веб сервер работает на жабе. Это если по джангам всяким и пхп не ходить, а на нормальные сайты – новости там почитать или интернет банки или вот двачик. Про spring ты тоже ничего не слышал, да, бедняга? Все уважающие себя конторы используют spring сегодня и уже 10 лет без малого. Работать в ентерпрайзе на java это значит быть успешным, не запар(т)ным и с большой ЗП. Но ты хейть дальше, дурачок. Питончика там прихлебни или сишки.
>>1637569А электрон жрет память чуть меньше толстой джавы, но все терпят. Уже делают компактные версии jre supersonic subatomic.
>>1637716>Если я напишу "жзпмчмичечный" это не станет словом.Ну нельзя же в 2020 на такой троллинг вестись.
>>1637465> Насколько вообще важно знание убунты/никсов для джависта? Важно уметь делать базовые операции:- залогиниться на бокс- проверить что процесс запущен и перезапустить при необходимости- погрепать логии т.п.Но опять же зависит от уроня - джуну не особо и надо, а сеньору - маст хэв.
>>1638390"запустить через скрин" - в линуксе команда screen, позволяет "отправлять на другой экран" терминальный процесс
>>1637454Solaris никогда не создавал впечатление законченного продукта. Что их маркетинговые ходы вроде «а давайте переименуем GNOME 2 в Java Desktop System, никто всё равно не заметит», что zfs/smf. В отличие от того же AIX’а, система так и осталась разрозненной.Так что невелика потеря, учитывая что сейчас даже самые-самые ынтерпрайзные слоупоки находятся в процессе миграции с Solaris на RHEL/CentOS/OL.Linux победил все эти проприетарные Unix’ы. Туда им и дорога.
аноны, как можно оптимизировать код, при загрузке страницы дико подтормаживаетhttps://518770.playcode.io/
Ну всё, интеллектуальные обсуждения спринга окончательно скатились в обсуждения сортировок, и никого вообще не ебёт, что перекатывать скоро будут до 500.Пора объединяться с питон-тредом, контингент всё равно уже один и тот же.
Есть агент на плюсах, который дергает JVM TI. Как сделать, чтобы в агенте по таймеру вызывалась функция? Просто плюсовые потоки не работают.
Можно ли взаимодействовать со сторонним сайтом из своего приложения, если он не предоставляет АПИ? Допустим, вместо того, чтобы самому писать какой-то функционал, обратиться к сайту, который этот функционал производит. И палевно ли это будет?
>>1639213Можно. Делаю так каждый день. Нет, не палевно. Все, что можно сделать в браузере, можно сделать и руками в своем приложении: авторизацию, клики по кнопкам и тд. Какие-то вещи легче, какие-то сложнее, в частности с SPA могут быть сложности, нужен джавовский JS движок, но мне до сих пор это не нужно было, Jsoup с http клиентом для моих задач хватает. Даже если сайт SPA, я просто отслеживаю аякс запрос и его абузю, не подтягивая полноценный JS движок в свое приложение.
>>1639236Мало что понял, но спасибо. Этому надо как-то отдельно учиться, или это познается в процессе обучения сервлетам и спрингам?
>>1639213>>1639236Сервлеты и спринги тут совершенно ни при чем, на голом приложении все возможно что ты просишь. Так что "в процессе обучения сервлетам и спрингам" такого не будет. Тут нужно хорошо понимать протокол HTTP, и уметь пользоваться отладчиком в браузере, в частности, вкладкой Network. Еще curl'ом советую научиться пользоваться, отладчик в него умеет "копировать" запрос. На худой конец и Postman'ом. Все это HTTP-клиенты, продвинутые. Вот это тебе надо для твоей задачи, а не спринги.
>>1639253Позволь мне еще внести ясность.. Даже если с моего сайта будут идти миллионы запросов на сторонний, все будет как ни в чем не бывало?
как сделать обработчик запроса,например передать в прогу 2 числа для сложения,тоже ПОСТ и ГЕТ как в пхп?
>>1639260Ну, миллионы... Все зависит от админов того сайта. Если миллионы в "секунду", и все с одного айпи, это может быть расценено как попытка атаки. Если админов нет, или им до пизды и они не мониторят логи, то владельцы сайта могут наоборот радостно воспринять нагрузку, типа "о мы кому-то вдруг интересны стали". В случае с апи всегда есть лимиты, а если ты вне апи это делаешь, "недокументированно", то тут возможно всё. Если сайт на клаудфларе, то админы даже не заметят - клаудфларе забанит автоматически.На хабре много историй как "мы парсили дату для машин-лернинга с %сайт-нейм%, а там ограничение на запросы в секунду, поэтому мы развернули целую сеть машин для выкачки и за неделю таки выкачали весь %сайт-нейм%".
>>1639260>>1639288Тут смотри какое элегантное решение есть. Раз ты упомянул что у тебя сайт: так ты не делай это со своего бекэнда, а делай с фронта, в js. Тогда миллионы запросов с твоего бекэнда рассыпятся на одиночные запросы с разных айпи конечных клиентов.
>>1639299Ну как и везде - чем выше нагрузка, тем больше ресурсов. А если еще и утечки, то раз в неделю рестартишь =).
>>1639307Ну шо значит прожорливый ЯП.. Ссылки 4 байта, объекты 16 байт, примитивы стандартных размеров.. А развернешь хеллоу-ворлд и сразу 160 мб как не бывало. Сама JVM тут кушает конечно же немало, но это плата за robust, secure и другие там фичи какие у нас есть.Если у тебя много маленьких приложений, то их удобно запускать на всего одной JVM в контейнере приложений, минимизируя оверхед.
>>1639313А вот планируют враппер классы (boxed types) сделать value types, то есть они на стеке будут, меньше ли памяти жрать будут? Наверное нет, но стек более быстрая память, чем heap.Но получается на них ссылка не нужна будет? Короче странно это все.
>>1639332Прошлый заголовок лучше. Это уже третья версия этой пикчи получается. Петуханы, там spring boot запустился!
>>1639173Ты из Java хочешь дергать агента, я правильно понял?Судя по этой презентации https://2019.codefest.ru/lecture/1460Можно просто объявить класс с native методом и заимплементить его в агенте.
>>1639372От очереди с приоритетом и не требуется сохранять порядок добавления элементов. Требуется только возвращать при удалении наименьший/наибольший элемент.
>>1639393Да не, Котлин должен быть лучше Явы а тут такой ублюдочный синтаксисlist.sortWith(Comparator { a, b -> a - b })против Явыlist.sort((a, b) -> b - a);
Может кто объяснить,почему с Collections.sort() мы можем чисто лямбду кинуть (она конвертиться в компаратор), а вот с list.sortWith() уже нет, надо через анонимный класс?https://pl.kotl.in/vFhnMZhtM
>>1639420Потому что эти умники решили, что у них должны быть свои интерфейсы на все и при этом хотят совместимости с Явой. В результате там есть 2 компаратора, kotlin и java.util и надо явно указать какой из ты хочешь реализовать, только из-за этого.Убери Comparator и ошибка тебе явно об этом скажет.
>>1639420Потому что SAM conversion работает только при вызове джавы из котлина, а в самом котлине нет (но вроде добавят в 1.4). Предполагается, что если оно тебе надо, ты можешь делать аргументом сразу функцию типа (T,T) -> Int
>>1639436Да что компараторы, сами коллекции у них тоже из kotlin.collections, а не java.util. При этом как-то совместимость не ломается. Чертова магия, не иначе.
>>1639420Как я сам понял, они не смогли реализовать SAM для котлина (работает только для джава) потому, что в отличие от джавы есть функциональные типы (в жабе только классы и интерфейсы) и, в общем, получается какой-то адок.В какой-то степени вариант:list.sortWith(Comparator { a, b -> a - b })Мне даже нравится, он явный, иначе будет уже какой-то совсем ппц. Ты думаешь что функция лямбду принимает, а она там магически какой-то объект превращает).Магия это всегда выстрел в ногу, явное лучше чем не явное. тьфу, пистон во рту застрял
>>1639445Да что коллекции с компараторами, в котлине и строки свои, при попытке импортировать java.lang.String идея пишет, что лучше бы этот класс в котлине не юзать.
>>1639471Вот этот интероп и выстрелил, тебе нужна совместимость со всеми копараторами которые уже накодили для Явы - поэтому он принимает оба типа компараторов. А потом компилятор не может разобраться какой компаратор ты пытаешься тут использовать.
>>1639476Там проблема не в этом (но твоя версия тоже верна).В котлине есть функции высшего порядка и SAM становится запутывающей магией. Я хз как они 1.4 это решили, но лучше бы не решали, написать явно интерфейс - не критично и объективно даже читабельнее.
Анон, собираюсь на курсач писать спамер ботами в майнкрафте. Кто то может пояснить каким образом там происходит подключение? Хотя бы примерно, а то я раньше дальше http запросов и не ходил.
Хочу в java вкатиться. Почитал тред. Стало страшно. Успокойте меня пожалуйста, вдруг я не разберусь и останусь курьером с юридической вышкой на пожизненном? пиздец....
>>1639719Уровень знаний джавы, английского, фреймворков? Аппликэйшен контекст создавать умеешь? Бины в xml прописывал? Мавеном пользуешься?
>>1639722Значит, раньше не кодил? Если есть усидчивость, и готов много учиться, то вкатишься запросто.Начать нужно с книжки, например, Хорстманн (библиотека), либо, если всё плохо, с видосиков на ютубе.Дальше пройти какой-нибудь курс по спрингу, попутно много гугля и читая всякие статьи. Заодно ещё придётся изучить базы данных и, возможно, фронтенд.Ну и поиск работы, к тому времени уже разберёшься, что к чему.
>>1639726Я не лучший советчик по курсам, спринг учил в разных источниках - хабр, ютуб, сайт спринга,, несколько левых блогов по жабе. Лучше бы я книгу по нему прочитал.Может, в шапке есть чего, я туда не заглядываю.
Стримы сахар, при том не слишком полезный. Длинный стрим читать больнее, чем развесистый цикл. Но иногда удобно.Лямбды реализованы в яве весьма уродливо когда дело доходит до ислючений. Но вот с FunctionalInterface вышло прям хорошоСпринг изначально был хорошей идеей, но потом разрабов переклинило, и теперь это сраный комбайн где кажется даже сами разрабы уже давно перестали ориентироваться.Аннотации эта блин самая спорная тема всей явы. вроде и удобно, а вроде рантайм и хрен его знает где оно выстрелит.Ломбок просто нинужон.Из всех нововведений последних 10 лет имхо самое приятное - Optional. Потому что никакие Nullable, подсветка в IDE и жабодоки с варнингами не заставят на секунду остановиться и включить мозг. Ну и var сойдет, но только в связке с new, иначе расстрел.
>>16397200.Я законы учил, лол, какие фреймворки?Английский знаю на бегинере, могу простое сказать что-то, текст понимаю получше чем говорю, но не технический.Просто я каждый день думаю и понимаю, что время идет и скоро станет поздно перекатываться. Пошел на курьера, потому что социофоб ебанный и снимаю хату, на еду около 10к остается. Каждые день меня корежит, что я бесцельно трачу время, тогда, когда после работы мог бы пытаться превозмогать и не завязывать свою шею в старческий, нищебродский узел.
>>1636162Надо понимать теорию и практику звуковых эффектов. Тот же distortion режет звук резко по амплитуде, overdrive делает тоже самое только плавно, есть ещё предусиление звука там уже требуется эмуляция например лампового комбика, есть ещё всякие улучшаторы compression, noise gate и тп. там целая история. Есть ещё эквалайзеры. Ну и наконец всякие reverberation, chorus, delay, hall. Собственно эти эффекты наруливаются в цепочке и по разному комбинируются. Большинство из этого всего есть в звуковых редакторах.
>>1639768Коротко, но поверхностно собрана инфа. Если забыл что-то, самое то зайти и быстро вспомнить.
>>1639733>Стримы сахарДальше не читал. Зачем высирать столько текста, мог бы просто написать, что ты даун.Сейчас на любом собесе джуна спрашивают разницу между терминальными и промежуточными операциями.
>>1639791Я понимаю.. Недавно забил уже на это, так как обычным знанием java sound api не отделаешься. Грустно, конечно, это единственный проект, к которому у меня было вдохновение, больше у меня нет идей совсем...
>>1631266 (OP)Писал я такой на C++, C#, javascript, потом захотел вкатица в андроид разработку, а тут джава эта опущенная. Поясните за листенеры, нахуй создавать целый новый класс блядь изза одного метода? Почему нельзя ебаный свет закинуть просто лямбду нахуй в сетЛистенер?
>>1639990Как видишь, джава - далеко не самый приятный язык. Все это знают и все с этим живут, выбора особо и нет.Упомянутое тобой апи появилось до того, как появились лямбды. Но и те - лишь сахарок для классов с одним методом.Да и само апи андроида - это полный пиздец. В большинстве случаев его можно улучшить только сильно сломав совместимость.Попробуй взять котлин, говорят, на нём писать намного приятнее.
>>1640021>Упомянутое тобой апи появилось до того, как появились лямбды.Что это значит? Я думал смысл как раз в том чтобы новая фича работала со старыми апи "автоматически". Пускай это сахарок и компилятор создает объект анонимного класса за меня, мне то что, пока это все происходит за сценой? Не новость, учитывая что и дженерики так же работают и нихуя там в рантайме нет кроме кастов. Все апи до Java 8 появились именно до Java 8, т.е. до лямбд, но они работают с лямбдами, напр. new Thread(() -> {}). Получается, гуглы этого не сделали потому что письки?
>>1640108Ну так Майнкрафт старый, 11 лет уже больше чем мне. Уроков просто мало вижу, особенно на русском, а по документации изучать - я не на столько умный.>>1640111Ну тык а кто этим пользуется?Я вообще люблю игры пописать (просто для себя, как хобби), и до этого времени делал всегда на "чистой" Джаве, пробовал LibGDX как-то не понравилось, LWJGL - вроде лучше, но тоже пытался 2 раза вкатываться и обратно скатывался до обычной Джавы. Сейчас хочу всё таки окончательно на LWJGL перейти
>>1640113> Ну тык а кто этим пользуется?Ну а какая разница, ты же не работу с этим собрался искать, так что можно брать хоть самое мёртвое или непопулярное. Лишь бы ответы на вопросы гуглились.
А ещё максимально тупой вопрос, извините пожалуйста, сам на себя потом написаю. Хочу Eclipse сменить на IntelJ, так как в первом на винде криво тёмная тема работает. В IntelJ есть автоматическое добавление библиотек как в Эклипсе на Shift + Ctrl + O?
>>1640113Не знаю насколько сырой сейчас котлин-нейтив, но теоретически можно получить годные обертки над годными полноценными движками, оставаясь с джава-подобным синтаксисом:>>1615630 →
>>1640145> проприетарноеА то.https://github.com/JetBrains/intellij-communityТак-то на джаве не от большой любви к опенсорсу пишут.
>Итак, цель всего курса – получить кучу удовольствия, хорошее настроение и практические навыки программирования, чтобы легко устроиться работать программистом.Это правда?
>>1640171я всё никак не могу дописать аналог nominatim без пхп и анальной ебли с установкой си компиляторов. Переписать на джаву, либо написать новый с аналогичным функционалом.Из данных osm формировать объекты с иерархией и складывать в базу.Щас завис на изучении postgis
>>1640243Что там жсп - от thymeleaf и freemarker отказались в пользу ангуляра, а от него в пользу реакта.
>>1640267Что это? Очередная либа для тех, кто пытается писать на джаве "бекенд, который не энтерпрайз"?
>>1640276Тогда тот вопрос можно перефразировать так: почему EE умер?Но про это тут много раз уже говорили.
В чём существенное отличие первого варианта, от второго? И как это можно использовать? в каких случаях первый, а в каких второй вариант?
>>1640294Область видимости. Константа на первом пике доступна только внутри метода main, тогда как константа на втором пике доступна и в этом, и в других классах.
>>1640298зачем нужен main я знаю. зачем классы и сколько их может быть я тоже знаю.Я хочу узнать, как лучше стоит писать константу.В мейн или над мейн, во втором варианте я как понял можно вызывать его из других классов (если публик), но других отличий я не понял.
>>1640307приму как правило, но попрошу пояснить, что с первым не так? Тип почему он не жизнеспособен?
>>1640300>>1640306>>1640308Область видимости, сказал же уже.Когда тебе константа нужна только в одном методе то ты и пишешь ее тут, пусть это метод main или любой другой. Если константа нужна в нескольких классах то первым способом, объявив ее в main, ты ее физически не получишь.
>>1640312БлядьЭто тоже область видимости, которая задается модификатором доступа.Когда тебе нужно чтоб было видно отовсюду - паблик, если иначе - то иначе. Сверяйся с пиком.
>>1640322Класс топового уровня не может быть private, в нем нет смысла - он недоступен извне. private класс может быть только внутренним (inner). Про классы разговора не было, был разговор при константу-поле класса, вот она спокойно может быть private.
>>1640314Тут кстати не указано, что если у тебя все классы в одном пакете лежат, то там все кроме private доступно.
>>1640337Поверь ты не захочешь это читать. https://javarush.ru/quests/lectures/questsyntax.level00.lecture02
>>1640339а кто-то реально пользуется джава рашем? тип на сколько это эффективно? как по мне это чёт на уровне сололирна, вроде время потратил, а знаний ноль.
>>1640347На C++ не обязательно использовать эту хуйню с <<.На джаве в 1996 можно было писать так же, как и в 2004.Короче, картинка от даунов для даунов.
>>1640341>>джава рашем? >>на сколько это эффективно?Как и любой другой сайт с гайдами.Там вроде еще какая то платная фича с тестами есть, но не пользовался, хз зачем за такое платить.
Будет ли работать RenderingHints.KEY_ANTIALIASING на текст? Или для сглаживания конкретно текста нужно обязательно RenderingHints.KEY_TEXT_ANTIALIASING? Graphics2D
>>1640224Да хуй знает, вкатывальщики видимо заметили, что на питоне сложно найти работу, и побежали сюда со своими хеллоуворлдами про main, константы, области видимости и printf.Аспекты, несколько контекстов, постпроцессоры бинов, спринговые эвенты
>>1640405Самый низ - факт упоминания System.out.*, метода main, кодстайла и вопросы "почему не компилируется".Чуть выше - обсуждение алгоритмов и структур данных уровня laba1.
Я шизик. Уже которую ночь не могу уснуть. Сплю все утро до обеда.А сдвинутый цикл активности - уже признак.
Анотация @author в джавадоке в проде используется или это просто такая мания величия любителей запилить туториалы? Какое мне дело кто написал этот класс Ранджит или Кунеш.
>>1640454У нас не используют. Бессмысленная хрень. Файл может потом дорабатываться десятками других людей, и выделить одного автора не выйдет.
>>1640454>Какое мне дело кто написал этот класс Ранджит или Кунеш.А к кому потом в джаббер пойдешь писать?
>>1640491Жмак в идее в контекстном меню на кнопку "Annotate" - и слева будет построчный список авторов с их почтой.
>>1640576Неплохой способ совершить камин-аут. - Мама, папа, мне нужно вам кое-что сказать: я перекатил.
Джава, помоги.Дан массив ['мама', 'мыла', 'раму', '']. Преобразуйте массив в строку 'мама+мыла+раму'.
Не совсем по тематике джавы, но косвенно вопрос связан.На учебе в универе учим: си, джаву, ассемблер, жс, питон.Есть ли смысл начинать учить си++ для себя (в будущем не знаю какое направление выберу, возможно IoT или геймдев, может быть бекенд). Или же забить на кресты и просто продвигаться по джаве (и на учебе легче будет, и так же выучу "большой" язык и ООП)?
>>1640667Речь о том, что джава такой же "большой", как кресты. Утрированно. Суть была в том, что есть ли смысл учить кресты (которые будут дополнительно к учебе в универе) или забить на них и просто больше и глубже углублятся в то, что уже и так учат в универе.
>>1640674А я еще толком не понял как учат. Серьезно. Первый год учебы. В любом случае понимаю, что именно глубоко придется учить все самому.Больше всего интересует IoT, но знаний в электронике никаких (если только через 3 года не поступить на среднее электриком в дополнение к программисту). Бекенд интересен, но большой, где не надо быть фуллстеком на пхп+вордпресс+жс.
>>1640605Не уверен не объебался ли ты со списком, поэтому бросил два варианта (котлинисты могут себя такое позволить)https://pl.kotl.in/WsEoXsam-
>>1640861>Второй логичныйЦарь в прошлом году обоссал.https://tsar1997.blogspot.com/2019/10/blog-post_32.html
>>1640830>>Каков вариант более предпочтителенпервыйhttps://www.oracle.com/technetwork/java/codeconventions-150003.pdfно можно так:methodName (arg 1, arg 2){//code}у тимлида/архитектора может быть свое мнение, может он ему похуй на конвенцию - в рамках проекта слушать надо его и ставить табы вместо пробелов, например
An Introduction to Object-Oriented Programming by Timothy Budd норм книга? Откроет что-то новое, если уже неплохо мыслишь в ООП?
>>1641049А с инстансами спринг разберется, а с памятью жвм разберется, а с бд хибернейт разберется. Когда уже мы будем что-то делать?
почему Math.pow() Math.sqrt() и тд. работает только с типом doubleПочему с типом данных инт или флоат это не работае? с чем это связанно?
>>1641069нихуя себе.Как я понял, нужно отдельно для переменой и для функции тип указывать, получается дабл по стандарту стоит
>>1641077Не, мы с каждым тредом всё сильнее деградируем, уже забыли слово "спринг", теперь пытаемся не забыть, как юзать некое явление, которые некоторые тут называют "циклами".
А правду говорят, что ява и ява скрипт - это один и тот же язык? Значит, можно включить спринг в гугл хроме?
>>1640994фикс по ормhttps://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query&l=xan88v-f&o=e
>>1641138>>1641137И где моё спасибо? Уже на второй вопрос тебе отвечаю, с тебя фоточки ноже в чулочках
>>1641148или мейн с маленькой.а вообще ты мог на красную шнягу навестись, и нажать, оно бы тебе всё само починило
>>1641136На контроллерах, лол.>>1641137Чому с делфи на жабу перекатываешься? Шарпик логичнее.>>1641155О, закрытые борды протекают.
Initialization block подойдет, если мне нужно только присвоить полям маняЗначения, которые мне уже даны?
>>1641795я её скопировал и то получилось не сразу.вот и хочу узнать, а как её писать, не буду же я каждый раз гуглить эту хуету
>>1641878Я тебе наделал их много, бери, пользуйся||||||||||||||||||||||Кстати, а как римские цифры писать, знаешь?
Анон, а кто пробовал EAP версию идеи (2020.1)?Установил 14 jdk, указал эту версию в качестве sdk однако идея все равно не понимает что такое рекорды и валится с ошибкой. Что еще необходимо указать чтоб все заработало?
>>1641894Там указал 14 версиюВ общем проблема оказалась в том, что на уровне каждого из модулей было установлено не Project default (т.е. то что указано на уровне всего проекта), а в явном виде 13 жава.Ну пиздец просто
>>1641912Ебу дался, олень? Если в мавене стоит 1.8 то почему на уровне модулей была 13 версия?Иди помой глаза с мылом, а заодно и рот свой.
>>1641915Короче ты нахуй не умеешь пользоваться своими инструментами. Тебе блядь дай уровень, ты им гвозди забивать будешь.
Перекатываюсь с го на джаву, а мне пишет>generics are not supported in -source 1.3 (use -source 5 or higher to enable generics)Ухожу с джавы.
Как написать свою функцию, которая при вызове через ИмяКласса.имяФункции(параметры) будет мне в консоль выводить массив.Про Arrays.toString() знаю.
А есть какая-то жаба конфа годная в слаке/телеге? А то тут тред хороший, но иногда по старой привычке рука сама к /b тянется и жопа начинает сгорать с тредов про рулетки/рнн/кнн/тнн и прочие аббревиатуры.
>>1642360> public static void printArray(Object... array) {> for (Object o : array) {> System.out.println(o);> }> }
>>1642375А мой код почему не работающий? Чтобы знать почему не надо так писать и почему такой код работать не будет.
>>1642370Есть, но тебя туда не пустят.У нас там вычищатель спринга, эксель-господин, 15лет-опыта господин, котлиншизик. Еще был блаженный ради прикола, но он всех заебал и его кикнули.
>>16423761. Generic параметр класса на static методы не распространятся. В static методах надо объявлять свои generic параметры.2. У тебя параметр просто T а ты пытаешься с ним работать как с массивом, так нельзя. public static <T> void printArray(T[] array) {
>>1642514Чем новее, тем лучше, конечно, но всё равно с большой вероятностью придётся потом сидеть на 8, где новых фишечек не будет (а может и 11 к тому времени, когда созреешь).
Некоторые говорят, что IDEA слишком упрощает жизнь.До такой степени, что в другом ide не сможешь писать код? На сколько верно это утверждение?Стоит ли учить джаву на другом ide, чтобы не быть разбалованным. (как с машиной)
>>1642550Автогенерация кода есть в любой специализированной IDE, даже в vs code может быть есть. С утверждением не согласен, нет смысла отказывать себе в удобном инструменте, если не мазохист. Да и в любой книжке первая глава обычно это конпеляция в блокноте, так что без IDE тоже дадут поработать. Само собой нужно уметь по памяти написать psvm или цикл, знать сигнатуры методов из Object и уметь их переопределять вручную, ну и всякое другое, это прям царапка на верхушке айсберга кодогенерации.
>>1642514Новичку лучше начать с 1.7И классическим способом решать задачи, а потом перейти на 1.8 и прежние задачи ловко парировать стримами. Ну а в 11 мало нового, модули не нужны.
>>1642592Есть Котлин там на уровне языка. Ну и конечно Loom https://wiki.openjdk.java.net/display/loom/Main
>>1642607А вот хуй знает.Консервативна, но в последнее время не совсем. Я вообще где-то читал, что не добавлять асинки - принципиальная позиция разрабов жавы.
>>1642922Нет, не обязательно любить спринг, но нужно обязательно его задрачивать, создавая несколько контекстов с постпроцессорами бинов, эвентами и аспектами.
>>1637290Хоть и поздно отвечаю, но спасибо! Я хоть и обосрался, так как за 5 отведенных мне дней на программу, с использование только PostgeSQL, Java8, JDBC - это, к чему я не прикасался пока еще толком, я смог наговнокодить, чтобы все работало, как сказано в задании, нооо не соблюдая особо принципы ООП и паттерны)) 0 интерфейсов вообще в программе))
>>1637342К сожалению у меня в тестовом было задание использовать Postgre и не использовать Hibernate, да и вообще спринга не касаться, хотя работа у них на спринге и в требованиях его знание, хотябы понимание (т.к. вакансия стажера), требовалось)))))
>>1642933В данном случае .length() - это метод, который высчитывает и возвращает тебе длину.Есть так же .length без скобок, это уже свойство объекта.Метод - это функция, которую можно применить к объекту. То есть как бы ты и static функцию можешь назвать методом, но принято что метод - это функция объекта.
Как сейчас вообще на рынке с веб девелопментом и джавой?Как-никак выбирая между пыхой и неткором вкатился в джабу. Не прогадал? Или пока неткор господа будут рубить миллионы на интереснейших проектах - я буду на дваче сидеть?
Отбой, нашел. Кнопка шестеренки (на скрине справа сверху) - там Show Members галочку поставить. Вдруг кому понадобится
>>1642955>>1642956Так как ты сделал тоже можно, но вообще для этого есть специальная панель - Structure (ALT+7) - просмотр структуры текущего класса, работает не только с java файлами. Она по дефолту слева рядом с Project.
>>1642935Ну тогда или инструкция как настроить и базу или докер образ с базой (крутое решение, но более сложное).
>>1643192я просто в факе увидел на него ссылку и немного не понял. это бесплатные задачки или курсы какие-то за деньги?
>>1643315а причём тут котлин? почти во всех вакансиях к андроид деву требуют жабу, так что её в любом случаи придётся учить
>>1643322а что не так? мне просто интересна эта сфера. а еще я люблю деньги, я полагаю, что денег там не так уж и мало.
>>164332490% работы бестолковый CRUD.Нет более лучшего места, чтобы возненавидеть программирование.>интересна эта сфераШколота нулевых зависала по вебу, так как было модноШколота десятых по мобильникам, которые купили им родители.Скорее всего выбор сделал ты не сам, а обстоятельства и хайп вокруг тебя.
>>1643324>>1643331Добавлю, скоро бизнес порешает и знание разработки под две-три платформы будет обязательным. как было в вебе с браузерами в свое время.
>>1643338Нет, консоль это cmd.exe или bash. А IDEA запускает процесс и перенаправляет его потоки (stdin/sydout/stderr) в свой UI. Но консоли там нет.Открой cmd.exe и запусти там, все должно заработать.
как сделать дескопт приложение с сокетом,НО чтобы оно показывало динамику,допустим передвижение объектов?передачу текста в консоли осилил
Ну и зачем нужны эти record? Кастрированная версия data классов из Котлина. К тому же зачем-то сделаны final, из-за чего Hibernate или какой-нибудь Spring Data Mongodb с ними работать нормально не смогут.Лучше бы завезли template literals и именованные параметры в методах.
>>1643647Тоже на это бухтел, в котлине изначально дата классы наследовались. Но со слов разраба, это породило тучу магических проблем и его прибили гвоздями.Я надеюсь кто-то когда-то додумается избавиться от наследования в пользу миксин и полиморфизма только на интерфейсах. опять же, в котлине не осилили это из-за JVM
>>1643710После твоего поста я понял, почему тырпрайз никогда не перейдёт на котлин. Потому что всё очень плохо с обратной совместимостью.
С пылу с жару, вопросы с собеседования:-Отличия rest и restfull.-Формат данных Http методов. Заголовки, тело, довольно подробно спрашивал. -SOLID.-На каком уровне размещается бизнес-логика в MVC.-Set и ArrayList, что быстрее, где и почему. Нахуй я вообще про сет вспомнил, язык мой - враг мой.-Иерархия исключений. Ответ про проверяемые/непроверяемые не устроил, надо было полностью всё называть.-Впервые был вопрос по Spring Secure.
>>1643737Кто-нибудь запилите правильные ответы. От себя сходу могу так:>Отличия rest и restfull.Знаю только что одна L лишняя, остальное хуй знает, подсказывайте.>Формат данных Http методов. Заголовки, тело, довольно подробно спрашивал.Знаю довольно подробно. Ну там первой строкой идет "METHOD_NAME path HTTP_VER CRLF" (обязательно CRLF даже на линуксах), далее хедеры по одному на строку парой "ключ: значение", ключи могут повторяться, после последнего хедера CRLF два раза и тело, либо его отсутствие. Тело предполагается только у POST и PUT (из четырех основных), хотя технически есть возможность и у DELETE. Про x-www-form-urlencoded нечего рассказывать, тело "ключ=значение[&ключ=значение]", некоторые символы энкодятся, а вот про multipart по памяти не расскажу, ну там маркер-дивайдер, хуе-мое, дальше лень.>SOLID.Сингл, опен, лисков, интерфейс, депенденси. Пояснить не сложно.>На каком уровне размещается бизнес-логика в MVC.Хз, озвучьте список этих уровней.>Set и ArrayList, что быстрее, где и почему. Нахуй я вообще про сет вспомнил, язык мой - враг мой.Первое вообще интерфейс, так что уточните вопрос. Ну тут я бы сказал не про быстроту надо рассказать, а про то что функции разные, семантика там. А скорость нужно сравнивать между реализациями одного интерфейса, например ArrayList и LinkedList - если часто удаляем/добавляем, то на списке, если часто читаем, то на массиве.>Иерархия исключений. Ответ про проверяемые/непроверяемые не устроил, надо было полностью всё называть.Throwable -> Exception -> RuntimeException \-> Error>Впервые был вопрос по Spring Secure.Хз, не изучал.Помощником джуна возмут?
>>1643743>Хз, озвучьте список этих уровней.Под какой из магических аннотаций бизнес-логику писать наверное. На контроллере!!!
>>1643743>Знаю довольно подробноА я вот не знаю и не понимаю зачем это помнить всё.Со всей OSI у меня так, каждый раз я читаю эту хуйню, довольно подробно изучаю. А через неделю большая часть из головы вылетает за ненадобностью.>SetHashSet. Вопрос был просто о структурах данных, какие знаете, какие использовали. Я их перечислил, в конце назвал сет. О, сет, расскажите о нём, почему зачем именно его использовали. Ну и понеслась.>SpringПо нему мало что спрашивают ждунов, просто дают тестовое и ебись как хочешь. Хотя один раз был чел, спрашивал чем там контроллёр от рестконтролёр отличается, транзактионал, контексты, всю хуйню, блядь.Спринг про, которую в треде советовали, действительно годная книга.
Блядь, ну что за пиздец! Загрузил я, значит, этот саундбанк, хуе-мое, загрузил муз. инструменты из саундбанка в Synthesizer, делаю programChange() на загруженный инструмент, и он молчит! Не знаю, зачем сюда написал, на стековерфлов боюсь писать, меня там минусуют постоянно..
Призрачно нравится IoT (не курил эту тему, но абстрактно в голове представляется чем-то интересным). Ну и бекенд нагруженный.Что на рынке спринга по джаве? Или для бекенда убегать в $php, а для IoT в C++?
>>1643764>Ну и понеслась.HashSet vs ArrayList это довольно популярный вопрос, так что все ок. Set быстрее офк.
>>1643720Как раз с обратной совместимостью все очень хорошо, но я считаю это плохо.Сделали вам жабу 2.0
>>1631266 (OP)Сап,начал учить жабу,прохожу курс в нетбинсе,подскажите,что значит эта ошибка и как исправитwarning: [options] bootstrap class path not set in conjunction with -source 81 warning
А что такое собственно этот ваш тырпрайз и почему его все хают? То есть сидеть в банке, получать красивую зарплату за то, что пишешь им бекенд всей системы - это плохо?А чем это отличается от модной питон галеры, где в опенспейсе сидят люди и пишут бекенды для других людей?
Гайз, а что из теории надо знать по джаве чтобы начать учить спринг бут и поскорее паттерны?Из знаний основы, массивы, двумерные массивы, ООП (первый раз его трогал), структуры данных.Надо еще что-то теоретически подтянуть или уже наконец можно заняться реальной практикой?
>>1643743Сам в джаве нуб, но попробую ответить.>Отличия rest и restfulRESTом можно назвать любой API, работающий через протокол HTTP. Однако не всякий REST API есть RESTful. Тут есть куча принципов, вот, на мой взгляд, основные:- Использование методов HTTP строго по назначению (не хуячить всё подряд через GET, а использовать GET, POST, PUT, DELETE и иже с ними)- Отсутствие состояния (stateless), т.е. ни клиент, ни сервер не должны предполагать, что другая сторона между запросами находится в каком-то состоянии. Каждый запрос должен нести все необходимые данные, например, все клиентские id-шники нужно передавать заново в каждом запросе.- Идентификация данных как ресурсов через URL: не GET /getUser?id=1, а GET /users/1, не POST /deleteUser?id=1, а DELETE /users/1
>>1643743>>На каком уровне размещается бизнес-логика в MVC.Думаю, что вопрос был про архитектурные уровни, так что на уровне Model, т.е. в модели предметной области, она же Domain Model. Далее можно раскрыть, что там есть слой сервисов и слой собственно бизнес-модели. И если приложуха простая, допустимо всю бизнес-логику писать прямо в сервисах, но в целях масштабируемости лучше сразу работать в объектах предметной области, а в сервисах оставить минимально необходимую часть.
В какой области больше применяют микросервисы? И в какой сфере джава более востребована, топ 5 кто-нибудь назвать сможет +-? Желательно линк на какой-нибудь ресерч, ну или ваше скромное ИМХО
Какие бывают узкие специализации в современном Java Development? Разработчик REST/SOAP API, специалист по базам данных... Понятно, что нужно знать всё, но вопрос в общем.Правильно ли я понимаю, что, по сути, в бекенде все сводится к написанию API? Ну и интеграции с другими API + логика обработки?Ну выходит что можно поделить на две части, работа с БД, и реализация APIЕсли мы не берем архитекторов, которые решают саму структуру приложения, а только девелоперов.
>>1657331> логика обработкиВ тырпрайзе это самая большая часть. Дохуища бизнес-логики, а апишка - всего лишь сравнительно простой фасад для этого.
>>1640069Да все, я разобрался, там если версию языка в настройках компилятора поменять, то можно лямбды закидывать. И еще я узнал об этих анонимных классах. Но все равно такое себе
>>1640016Напугал тем что я не понимаю нахуй их смысла епт. Меня напрягает когда триллион классов между собой сплетены непонятным образом, иформация протекает через сиксильярд методов, а происходит всего лишь пук.
>>1643863>IoTЭто какой-то форс, про который уже лет 5 говорят, что вот-вот выстрелит?Имхо, никакого IoT не случилось и вряд ли предвидится в будущем
Кто-нибудь может объяснить, какие преимущества несёт stream api, кроме упрощённого параллелизма и декларативного написания кода?
Есть ли упрощённая запись сравнения каждого элемента массива с каким-то значением? Вроде Array.equals но с одним значением.Что-то так и не нашёл в гугле.
>>1660092В моей мухосрани уже запустили на всех бс с лте800/1800. Сейчас совместно с ЭК тестируем счётчики.Ответь на это >>1662739, если знаешь.