Это копия, сохраненная 3 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/qqqlll/Java-Thread/wiki
Знаю лишь очевидное: "умение разбираться в чужом коде", ну или какие-то древние технологии, которые для нового проекта никто в здравом уме не выберет.
Лал
1 Проекту 5 лет, сомневаюсь что там где-нибудь стримы или лямбды используются
2 Ты предложил какую - то хуету - стрим ради стрима
3 Твоя хуета ебет кучу и сборщик мусора за просто так, тогда как речь о реализации BGP, попробуй запусти с подключением к нескольким пирам
Резюме - ты обосрался
Извини меня, если уж работать в клоповнике, так за максимальную ставку. Указывающие зп - жестко ограничены бюджетом и за указанную вилку не выйдут. А еще это способ сдерживать зарплаты, когда не особо умные программисты оценивают свою стоимость как среднюю, а среднюю вычисляют по вот таким публикуемым вилкам. Напротив, более умные смотрят на зарплатные сайты. Самые умные - манипулируют цифрами на зарплатных сайтах.
это ж ентерпрайз, всем пох на память докумип еще.
Засерает ебет кучу и сборщик - согласен но в 90% случаев покроет все.
Реквестировал ентерпрайзоного спринг бута если что
>это ж ентерпрайз, всем пох на память докумип еще.
Охуеть вообще. Тырпрайз - это теперь оправдание такое? А LMAX это тырпрайз или нет? Или Devexperts или Facebook? А если просто, в проекте пишется код без финтов ушами, но и без тонкостей JVM, просто код эффективный - это уже не энтерпрайз?
Осталось обнаружить ЖЖ Артемия Лебедева.
Лямбды бывают контекстно-свободные и контекстно-зависимые
Контекстно-свободная лямбда = просто лямбда-функция. Результат ее выполнения = функция от входных параметров и только от них. Например (x,y) -> xy, результат зависит только от входных параметров, при компиляции будет достаточно одного метода.
Замыкание = лямбда, замкнутая на контекст = контекстно-зависимая лямбда. Результат ее вычисления зависит не только от входных параметров, но и от места объявления, из которого лямбда захватывает дополнительные параметры. Например User user = User.getCurrentUser(), объявляешь лямбду (x,y)->xy + user.getId(). В итоге учитываться будет айдишник юзера, который getCurrentUser() вернул во время объявления лямбды, для компиляции потребуется кроме метода еще и ссылка на захваченный контекст.
Это теория, на практике, как я понимаю, джава слабовата с замыканиями, может захватывать только "effectively-final говно" (но ее можно наебать). Авось другие аноны подскажут, что можно захватить, а что нет нинужна
Если за год прокачался - проси смело.
Пройди какой-нибудь курс по хачкеллю или(и) скале. Оно оттуда все пиздится.
Книжка есть по ява 8 там 200 стр. ез.
Аноны, какую зп просить в Москве/Питере? О себе: стаж - полтора года, язык - джава, всякие скиллы наработал охуеть, функциональщину не только джаву 8, лул знаю. Тоефл на 103.
Чет на ваших hh.ru все разнится сильно
>>918558
Java 8 in Action наверни, очень просто читается.
Короче, нельзя захватывать не-final переменные и примитивы.
Замыкание - когда у тебя есть функция, используящая что-то, существующее вне контекста этой функции. То есть:
final Hui anotherHui = new Hui();
Function<Hui, Boolean> compare = hui -> hui.equals(anotherHui);
По хорошему, внутри функции не должно быть ссылок ни на что, кроме hui.
И да, Ъ-замыканий в джаве нет, так как ссылку на объект поменять нельзя. По-хорошему, замыканий не должно быть вообще, но из-за невозможности возвращать функцией несколько объектов, в принципе, их использование допустимо.
Норм, в Питере так же?
Любой java-веб фреймворк, типа jsf. SOAP туда же (хотя, зависит от сферы деятельности), Ant. Могут еще потребовать знания фронта, тогда нахуй надо сразу таких посылать.
497 страниц на английском, ради пары строк кода? ты не кодишь а читаешь все время?
Какие 497? Ему же нужны только разделы по стримам и лямбдам. Или ты программерские книги целиком читаешь?
Это очень кривая аналогия. Некоторые стоит читать целиком, некоторые (как Java 8 in Action) - нет, т.к. она, например, рассказывает от абсолютно несвязанных фичах языка.
Спасибо мил человек, а на каком то конкретном или на любом где про яву?
Универский курс по хачкелю/фп, было это еще в те времена, когда господа из Sun две недели как уже Oracle заявляли что лямбды ненужны и никто не знает что такое замыкание. Ну и постоянно сталкиваюсь с замыканиями, ибо C#-hf,господин
>>918513
Ага, с примитивами всегда боль. Не-final можно наебать через final-holder
final Hui[] holder = new Hui[1];
holder[0] = new Hui("white master");
Function<Hui, Boolean> compare = hui -> hui.equals(holder[0]); Вот замкнулись на белого господина. Но ничто не мешает потом сделать
holder[0] = new Hui("nigger dick cheese"); И вот уже та же самая функция замкнута на определенно темный майонез.
>заявляли что лямбды ненужны
Ай. Не пизди. В язык вводили анонимные, вложенные классы, статические вложенные классы, пилили рантайм и jvm - вряд ли при этом возможны подобные заявления.
есть такой вот код http://pastebin.com/T9Lmyscq
по разумению,он должен при переборе булева массива выводить когда true звездочку,а на фалс пробел
Дабы проще было работать с false ,я все аккурат поместил в скобочки
но почему то он выводит всего 6 элементов
хотя массив на 12,я даже вручную выводил каждый элемент,все верно,значит двойной цикл нормльно так зарандомил по ячейкам значения,но хули он не может их считать то пидор?
>Ъ-замыканий в джаве нет, так как ссылку на объект поменять нельзя
Ссылку на определение "Ъ-замыканий" предоставьте, сударь, или прослывете пустословом.
а все,уже понял
Это довольно спорный вопрос. Тут смотря как посмотреть. Если не копать внутренности, то лямбды в джаве вполне себе выглядят как замыкания - функции, в которых есть ссылки на переменные, находящиеся вне контекста этой функции. И всё вроде бы норм.
Но если взглянуть, что нам выдает байткод жвм при использовании лямбд, то можно увидеть, что в лямбдах каждый раз создаются локальные переменные вместо именно ссылок. Собсна поэтому лябмды только final используют.
Но вот насчет невозможности захвата примитивов я может напиздел, лень проверять сейчас.
>заявил про "тру" замыкания
>попросили ссылку на определение
>стал рассказывать как реализуются замыкания в Java
балабол, как и ожидалось
> функции, в которых есть ссылки на переменные, находящиеся вне контекста этой функции
Ну так ты прочти нормально сначала.
codewars. Русско-украинские матрешка вкатывальщики VS индуисы корова нинзя
Ну и на случай, если ты что-то кукарекнешь:
>Closures are created implicitly whenever a function refers to something from the surrounding lexical environment
Пол Грем, Common Lisp 96 года.
Смузихлеб вылез из загончика с педорьем и тут же обосрался. Обосратушки-обтекатушки, лол.
private static boolean b()
{
return ;
}
а такая работает
private static boolean b()
{
return b();
}
мы же в итоге не возвращаем (нихуя)
>jsp, jsf
Не лезь, дебил, она тебя сожрет. Сделай рест-сервис который отдает всю нужную инфу на обычную фронтовую страницу. Юзай для сервер-сайда Spring Boot и hibernate, этого должно хватить по идее.
и что это за мифическое возвращение по умолчанию,которое можно вернутЬ?
В первом случае ты не возвращаешь нихуя, хотя указал, что boolean, сигнатура метода неверная. Во втором ты вызываешь метод, который возвращает то же значение, что и указано в сигнатуре. То, что ты ее вызываешь рекурсивно и переполняешь стек - проблемы твои, не компилятора.
Это называется рекурсия.
Очевидно, что компилятор видит, что метод возвращает результат выполнения какого-то метода, который подходит по типу. Компилятору этого достаточно, но в рантайме все, конечно, ебнется.
В первом случае метод, который должен возвращать значение типа буль пытается вернуть нихуя, и компилятор ему этого не позволяет.
>>918954
>кукарекнешь
Уровень дискусси ясен.
Ты либо предоставляешь ссылку на определение "Ъ-замыканий" (с необходимым и достаточным условием), а затем доказываешь (исходя из этого определения) что их нет в Java, либо закрываешь свой хлебальник. Усёк, пиздабол малолетний?
https://en.wikipedia.org/wiki/Closure_(computer_programming)
>Operationally, a closure is a record storing a function[a] together with an environment:[1] a mapping associating each free variable of the function (variables that are used locally, but defined in an enclosing scope) with the value or reference to which the name was bound when the closure was created. A closure—unlike a plain function—allows the function to access those captured variables through the closure's copies of their values or references, even when the function is invoked outside their scope.
>values or references
Что согласуется с понятием замыканий в Java. ЧТД.
>вводили анонимные, вложенные классы, статические вложенные классы
И ЧЁ?©
Пока не заанонсили поддержку лямбд к седьмой джаве говорили, что лямбды не нужны - анонимных классов достаточно, после - что замыкания не нужны (когда лямбды переехали в восьмую, а Jigsaw аж в девятую). Пока Valhalla не заанонсили говорили ту же хрень про value types ( "ненужно, вам на самом деле нужна локальность в памяти/ G1 приде - порядок наведе / хардвар приде - порядок наведе")
>определение из вики
Ну вы посмотрите на этого клована.
Я тебе, блядь, дал определение из книги Пола Грема, в которой он и ввел это понятие. Ну и согласно ей замыкания в джаве неполноценны, почему - написано выше. Теперь уебывай.
Хотелось бы увидеть эту книгу Пола Грема, где он "ввел" это понятие, а не реализовал (или придумал как реализовать) в конкретном ЯП.
>Closures were first used in programming languages such as ML and Lisp.
>On the other hand, many functional languages, such as ML, bind variables directly to values. In this case, since there is no way to change the value of the variable once it is bound, there is no need to share the state between closures—they just use the same values. This is often called capturing the variable "by value". Java's local and anonymous classes also fall into this category—they require captured local variables to be final, which also means there is no need to share state.
А ты упоротый, кто тогда Вальгаллу дизайнил и пилит?
Мой коммент был собственно про семантическую равнозначность в каком-то смысле.
Удваиваю. Но, очевидно, мы их не услышим - это лишпер и культист Пола Грэма.
>>918979
А он тут не первый если что...
Если совсем строго копать, то надо сначала вкурить The Calculi of Lambda Conversion Черча, что б вкурить вообще про лямбда-исчисление. Этот формализм на самом то деле довольно отстраненный, там через параметры функций создается арифметика и все такое, на всякие языки программирования переносится с трудом.
Вообще термин "замыкание" введен в https://www.cs.cmu.edu/afs/cs/user/crary/www/819-f09/Landin64.pdf, в разговоре о том, как программы описывать в терминах лямбда-формализма и с учетом того что на машине функция где-то да лежит и может обращаться в конечную же память.
Так вот, с этой точки зрения замыкания в джаве не Ъ, потому что функция не может быть замкнута на переменную (variable), а только на значение (value)
>замкнута на переменную
Вопрос конвенций имхо. Если что, подавляющая доля всех переменных, в том же коде на Жабке - по сути это значения. Это поняли не только создатели Rust, но даже авторы нового стандарта Js я про let. Динамикодрисня с континуациями интересна только двинутым лисперам.
Не один же человек, лол. Вообще чувак, который любил потроллить на тему того что замыкания не особо и нужны и что вместо value-types хватит локальности памяти, укатил из оракла в редхат Леша Шипилев, сейчас уже поостепенился, ковыряет Shenandoah и может ради интереса за CLR потопить
Так лямбды и замыкания никто не просил чтобы дрочить на альфа-редукцию с бета-конверсией, все хотели писать коротенькие лямбды вместо бойлерплейта анонимных классов. Но пока анонса не было, все получали в ответ - "ненужно,у вас же есть анонимные классы" отвечающие при этом откладывали кирпичи от одной мысли о том, как реализовывать фичи с поддержкой обратной совместимости со стороны jvm. На бордах в то время роились конечно упоротые, которые считали что реально все эти фичи не нужны и вообще от лукавого, но это ж интернет эти же упоротые потом везде строчили, как же лямбды и стримы охуенны, а в шарпе этого нет и т.п.
А так то да, семантически лямбды - это и есть анонимные классы, но очень бедные (потому jvm зная о том, что это не простые анонимные классы, а лямбды, умеет их лучше оптимизировать)
Скорее наоборот, переменные являются значениями только для примитивных типов, у всех остальных значение в куче, а переменная содержит значение-ссылку. Отсюда собсно если замыкаешь функцию на переменную a, то по факту замыкаешь на значение ссылки, и делать а = new B() уже нельзя, а вот у значения в куче можно ссылки менять, потому и работает хак с массивом (а также полем не-примитивного типа)
Обрати внимание, что если эти изменения потокобезопасны и не затрагивают поля, скажем, определяющие equality объекта, то никто от этого не страдает. Иначе бы и хаком не пользовались. Я кстати, когда случалось подобным маяться - вообще писал в таком стиле
void some_method() {
...
class Hui { int length; }
whatever.push(new Hui());
...
}
Благо компилятор и стандарт позволяют
потому что староваты уже jsf и jsp, хотя первое еще умудряются использовать сурьезные конторки.
а есть смысл про jsp читать что-то делать пфтаться если на джуна претендуешь? вроде как jsp везде требуют, не?
Какой там синтаксис? <%, <%!, <%= - весь синтаксис)
Обычный сервлет, для более удобной работы с html
На джуновских петах довольно распространена такая "архитектура", что основная страница + хедер/футер сервится как jsp, а внутри него jQuery, который общается с REST. Для фронта это, конечно, 2010 год и ужас, но если ты претендуешь в бекенд, то покатит.
ну я вообще я имелл ввиду спринг бут только для реста, отдельная статика с js(react было бы не плохо, но это в идеале) в котором ты по ресту общаешься и раздаешь через какой нить nginx.
Звучит годно, если сможешь запедалить.
http://ideone.com/mkvkEF
В первом случае есть класс SpaceShipControls и класс SpaceShip и пояснение, что нужно заполучить методы движения для корабля, поэтому наследуемся. Далее автор уточняеся, что наследование неверно и следует применить делегирование. В результате оба объекта перемещаются в один класс и функционал выполняет SpaceShipControls, хотя методы вызывает SpaceShipDelegation и код выглядит как-то плохочитабельным. Не лучше было бы применить просто композицию и оставить два класса?
Пилю всю бизнес логику в сервисном слое, который уже дергает ДАО, Дао в свою очередь отвечает только за сохранение-доставание инфы.(юзаю jdbc темплейты, т.к. легаси код)
Изредка приходиться пилить оптимизированные запросы и делать кастомные методы в ДАО, а так в основном это findBy[имя_колонки].
Ты против котят и собачек штоли блядьнахуй?
Спасибо, Трампу!
Джошуа Лох.
В pdf есть ещё обратный пример валидного кода, не проходящего проверку типов.
Поясни, тогда на каких технология тогда делают вывод.
Сам андроид-девелопер, подумываю в будущем перекатится на чистую джаву, но не совсем понятно, где она сейчас используется.
Нужно выучить Java до завтра, чтобы сделать лабы (препод охуел и скинул инфу и исходники на яве). Что курить, чтобы быстро разобраться с особенностями JAVA-синтаксиса? Умею клепать формочки в делфях, знаю чем отличается агрегация от композиции, пару десятком методов работы с массивами в PHP, шесть способов реализации наследования в JS и алгоритм пузырьковой сортировки лол. Может есть jpg-гайд какой-то?
Энтерпрайз. Допустим у тебя есть фондовая биржа, или банк огромного государства (и маленького тоже). Ты представляешь какая там ответственность? Представь что ты покупаешь на алиэкспрессе дилдо, ты вводишь данные своей карты (возможно тебе даже приходит смс с кодом подтверждения), нажимаешь оплатить и следишь через трекеры свою посылку. Это Java.
>Представь что ты покупаешь на алиэкспрессе дилдо, ты вводишь данные своей карты (возможно тебе даже приходит смс с кодом подтверждения), нажимаешь оплатить и следишь через трекеры свою посылку. Это Java.
Оче сложная аналогия, я нихуя не понял
что не осознал. Так где она применяется?
При написании серверной части для массивных сайтов с большим функционалом?
И не только сайтов. Для программирования массивного функционала. Для серверной части.
>Бекенд же. Например REST сервис для твоего приложения на Андроиде.
Очень серьёзного приложения, с миллионами транзакций в секунду, с повышенной ответственностью и минимальными рисками.
>Swing
>Первая версия IntelliJ IDEA появилась в январе 2001 года и быстро приобрела......
Мягко говоря, выбор был невелик. Писалась IDEA ещё до выхода windows xp.
http://4dev.tech/2015/12/react-js-tutorial-consuming-javaee-restful-web-services/
https://github.com/HichamBI/spring-rest-react-example
Всё просто - создаешь c помощью Spring boot REST API и пишешь js клиент к нему.
когда пользователь заходит на твой сатй - получает js скрипт который может правильно (черех xhr) общатся с твоим рестом и красиво его отображать.
т.е. рендеринг твоей страницы перемещается на клиентскую сторону. (часть со звёздочкой) => что html+js часть можно вынести и раздаваьть статически, дабы не нагружать томкат
Слушай, а расскажи, сам Spring трудно учить? И с чего вообще его начать изучать, с Spring boot?
Я пока только читал про IoC(DI) - вроде как понял, а дальше каша, какие-то бины, Аспекто-ориентированое программирование и т.д сводит с ума
IoC(DI) тебе хватит на первое время, пиши больше кода пусть его кто-то ревьювит
в лямбдах же нет ничего вообще, там объяснений на абзац наверное.
Или ты разбираешь что внутри у них происходит?
Лямбда - это джава интерфейс с одной функцией, который можно использовать в Джава коде особым образом. В основном они используются в Stream API. Все.
Stream API ничего общего с InputStream клевый синтаксический сахар, который появился в 8 Джаве. Его есть смысл выучить, потому что он и правда здорово экономит силы и время на написание, и делает код более читаемым (имхо).
Все, что написано на стримах, вполне можно сделать обычным for. На практике кто-то юзает стримы, кто-то не юзает. Я бы сказал, что лучше всего принять и нашпилиться ебошить стримы как можно раньше при обучении и потом обкладывать всех for макак хуями.
скажем так, я понимаю основную идеи: сокращение кода, лаконичность, использование концепции функционального программирования. От части понимаю примеры данные в книге, но глубины понимания нет. Т.е на практике я того же не повторю. Последний раз стопарился на рефлексии, но там быстро вник, а тут...
Джава-стримы выглядят топорно по сравнению со скала-коллекциями. Посмотри, как работать с последними и освоишь все остальное.
сложные коллекции на форах херово собирать, приходится костыли вроде мультимап из гуавы использовать
Так что те кто не использует стримы, когда может, опасные сумасшедшие.
>сложные коллекции
>херово
>приходится костыли
https://en.wikipedia.org/wiki/KISS_principle
Если у тебя есть сложные коллекции, то тебе будет сложно. Обычные коллекции не сложные. 90% кода спроектированного нормальным по-архитектором напишет даже шимпанзе. А систему спроектированную шимпанзе не напишут даже опытные программисты.
То есть, ты утверждаешь, что не нужно юзать стримы, потому что сложные коллекции - это плохой код?
>Которые спиздили у лиспов
непосредственно или еще через каких-то спиздивших. Короче, пиздуй обратно куколд мелкософтный.
Да. Чтобы не выгорать и зп не зажимали. Больше одного года на одном месте ведет к глубочайшей депрессии ибо приходится работать с одними и теми же офисными пидорасами и говнокодом изо дня в день.
37 лвл
Не скажи. Малолетние пиздюки (до 30) выебистые и через время аж хочется переебать. Это в вебпараше так. И проекты заебывают, одно и то же говно.
> стакевафлёр
Ты бы ещё в сарае у дяди Вани поискал бы
https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
>Все, что написано на стримах, вполне можно сделать обычным for
Да и как ты paraller собрался на форах делать?
Зато я программирую, пока твой босс видит, как ты написал строчку, а дальше сидишь и нихуя не делаешь.
Хочу реализовать мессадж ориентед архитектуру в своем ЕЕ апликейшене.
Суть такова.
Есть один синглтон который получает месаджи от планировщика задач или веб интерфейса.
Есть воркеры в виде mdb бинов которые по получению сообщения должны выполнить работу, запихнуть данные в базу и отправить сообщение с результатами.
Вопрос о сохранении данных.
Стоит ли сохранение так же выносить в mdb бины и мерекидывать данные через мессаджмап. Или просто инжектить бин фасад для работы с бд и сохранять в обшем потоке воркера?
>мессадж ориентед
>апликейшене
>месаджи
>Есть воркеры
>мерекидывать данные через мессаджмап. Или просто инжектить бин фасад
Учитесь новички как нужно разговаривать о джаве.
>Нам бы че попроще.
Так и делай проще. Прочитай для начала книгу паттерны для новичков, там фото девушки на обложке. Возможно часть а то и многие твои вопросы отпадут.
та которая орейли хед ту ферст? и кстати аноны это нормально что я по чуть чуть читаю шилдта, джава хед ту ферст, лафоре прл структуры и переодически гуглю всякие что что встречаю, министатейки и ответы на вопросы. это все когда надоедает джавараш. а потом теория тоже приедается, открываешь уроки и погнал.
заебись! спасибо за объяснение
а еще многие очень многие советуют книгу Блох Дж. "Java. Эффективное программирование"
бизнестренер-неудачник. забей.
в голос
Открыл а там Роман Брiвко. Лол, ты ещё спрашиваешь стоит ли смотреть, конечно нет. Одно уже имя смешное, сложно представить чему он там учит. Но вообще можешь навернуть Брiвко, Головача, Голубця и идти в энтерпрайз.
А лучше просто прочитай Эккеля и не еби себе голову всякими украинцами
int x = 5, а не просто x = 5?
Нахуя столько лишнего кода?
Лучше вообще не смотреть видосы, 95% видео - вода. Вот книжки топ, только английский must have
Не в этом дело, а в том что ты задаешь вопрос отвечать на который смысла нет, легче тебя нахуй послать. Можно конечно рассказать что джава дохуя архаичный язык, что вот вот еще чуть-чуть потерпеть и можно будет писать var/val, или что так получается читабельней и удобней (субъективно конечно же). Вспомнить что джава статически типизированный язык со статической строгой типизацией и тд.
Жс макаки скорее всего не слышали о типизации вообще
>что вот вот еще чуть-чуть потерпеть и можно будет писать var/val
Нет, лул. Чтобы в ждк ввели что-то настолько радикальное, это надо обосраться посреди главного офиса оракл, наверное . Джава - оче консервативный язык.
Жаль, что всякие скалы/котлины не востребованы также, как джава.
Не нехуя. Общий уровень отношения к var/val уже положительный. Запала на 9ку не хватило, но в десятке я думаю будет 80%.
Не факт, что val будет. Мне кажется, сделают лишь final var. Даже если и так, то когда это попадет в прод? Лет через 10?
Щас бы послушать двачевского шныря, с фекальной аргументацией, на тему того, что востребовано индустрией.
За AbstractSingletonProxyFactoryBean abstractSingletonProxyFactoryBean = new AbstractSingletonProxyFactoryBean();
Решил покопротивлятся?
> Даже если и так, то когда это попадет в прод?
А в чем проблема? Это же просто сахар. Максимум на код-ревью могут отпиздить. Для особо нервных в иде могут добавть рефактор который заменит все var на соотвествующие надписи.
Так я про саму десятую джаву говорю, в которую МОЖЕТ БЫТЬ войдет этот тайп инференс. Сейчас восьмерка-то не везде стоит, хотя туда запилили кучу фич.
А ну так-то да. Про эту хуйню что-то не подумал. Но вообще с этим же только компилятор ебется, на байт код тайп инференс никак не должен влиять. Он может выполнятся на старых версиях, просто компилятор нужен новый.
Я предпочту AbstractSingletonProxyFactoryBeanFactory.getInstance()
>ДА! Я ТАК СКОЗАЛ! ЕСТЬ ЧТО ВОЗВРАЗИТЬ?
>Не служил - не мужик, не сидел - не мужик, говна не ел - не мужик. Диды говнокодили и я говнокожу и за всех отвечу.
мимо java-хипстор Юзавший в проде 8ку через месяц релиза, пинающий jdk9 в докире
Оракл известны своим откладыванием востребованный индустрией фич. Тот же jigsaw и лямбды.
Хуёлдинг. Ебанутым нет покоя, даже примеры адекватные не смогли привести.
Observer в помощь.
Выдели бд-слой с минимальным состоянием и синглтонами под энтити в бд, отгородись интерфейсами и инжекти нужные бины в нужные мдб, где их вызывай.
> Или просто инжектить бин фасад для работы с бд и сохранять в обшем потоке воркера?
Через какое-то время охуеешь. Не говоря о нарушении SRP.
> Нахуя столько лишнего кода?
@
ХУЛИ ТУТ ТЫ ИНТЕДЖЕР ПРИСЛАЛ В РАНТАЙМЕ, УЕБА? ДОЛЖЕН БЫЛ СТРИНГУ ОТДАТЬ! ХУЛИ Я ИЗ-ЗА ТЕБЯ ПРОВЕРЯТЬ ДОЛЖЕН КАЖДЫЙ РАЗ, ПИДРИЛА
Для демонических чепушил, не вдаваясь в типизацию и компиляторы.
Есть. Берешь говнокод и получаешь модную хипстоту, которую нельзя оскорбить, не будучи обвиненным в ретроградстве, консерватизме и убийстве Кеннеди.
https://www.jetbrains.com/help/idea/2016.3/converting-a-java-file-to-kotlin-file.html
> Берешь старый говнокод на джяве и получаешь модный говнокод на котлине
Починил тебя, не благодари.
Работая в крупном банке в США, получая зарплату в три-четыре раза больше твоей, ссу тебе прямо в рот.
В энтерпрайз системах любое радикальное обновление ПО проходит десятки циклов тестирования и обкатки. Переход на JDK/JVM 8 у нас идёт уже больше года, дай бог в этом закончим.
А если ты кичишься что волен обновлять каждый день версии новых, стильных и молодёжных фреймворков для КРУД приложений каждый день, то это и есть самые галеры, примитивные и безвкусные. Быть всегда в тренде и на волне хайпа и есть твой удел. Так что кто здесь белый человек я б поспорил.
JPMC только не говори что тебе ещё и фото розетки нужно. Верь, не верь мне похер
Лошара, у меня евро и сомневаюсь, что у тебя столько же.
Хули ты кстати, капчуешь пиздабол. В штатах разгар рабочего дня, тебя ждут десятки циклов тестирования. Комментировать твои проекции я не буду.
Ессно пиздабол, который сейчас прикроется тем, что у него отпуск.
Гугли TransactionAttribute и каскады.
Иногда хибернейт требует em.flush() перед апдейтом другой сущности.
Спасибо, завтра гляну, а то уже глаза слипаются. Бесит, блядь, что вроде бы такая крутая вещь, и на такой бздюхе обсирается.
[CODE]
int beerNum = 99;
String word = "bytilOK";
while(beerNum > 0) {
System.out.println(beerNum + " " + word + " piva na stole");
System.out.println("Vozmi odny. Pereday po krygy");
beerNum--;
if((beerNum % 10 == 1) && (beerNum != 11)) {
word = "bytilKA";
} else if ( (2 <= (beerNum % 10)) && ((beerNum % 10) <=4)
&& ((beerNum < 11) || (beerNum > 14))) {
word = "bytilKI";
} else {
word = "bytilOK";
}
System.out.println("Stalo " + beerNum + " " + word + " piva");
System.out.println("-------------------------");
}
[/CODE]
не слушай этого дядю, ради одной функции тащить кучу депенденсов нет смысла, да и в конвентере, ты всё явно сделаешь, без выебонов!
зашквар на уровне IDE
Сука, ну и хуле этот тег не работает?
Вот кароч - http://ideone.com/xtCZ8t
Алсо, поясните еще за кодировки. Пишу код в нотепад++, запускаю в командной строке. В нотепаде по дефолту стоит кодировка "UTF-8 без BOM". Хуй знает что это за ВОМ, но при попытке вставить кирилицу в println получаются кракозябры. Нажимаю преобразовать в "UTF-8" в итоге вообще получаю ошибку компиляции. Че за хуйня? ЭТо же юникод епт, должно запускаться все
ansi
>>920235
>>920240
Спасибо аноны, почитал за первый паттерн Стратегия и сразу попустило. С одной стороны кажется избыточно столько писать, с другой стороны вроде как проще кажется редактировать отдельные части, не трогая основные классы.
О пиздабол в треде. Сочини про какие-нибудь интересные кейсы, выскочившие в результате полуторогодовой миграции. Мы (обычное корпоративное облако) перешли без всяких проблем и тестов, там нечему ломаться.
Юникод не кодировка.
кури https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
>Просто программирование это не твое
тоже думал об этом
но раскрой мысль подробнее, почему ты так решил? ты же обо мне не знаешь ничего
ДЖЯВА-ИМБЕЦИЛ РАЗБУШЕВАЛСЯ! СУМЕЕШЬ ЛИ ТЫ СОВЛАДАТЬ С НИМ?!
>Странный ты чувак
да нет, просто дебилов уровня
>>920759 >Тебе уже ничего не поможет.
посылаю нахуй, а с людьми которые пытаются нормально пояснять веду диалог
Ньюфажный анимедебил рванул.
>Ты в какой помойке работаешь
netcracker
я там на невысокой должности, меня пытались протащить выше, но я не смог
вроде базовые вещи читал, дома пилю код
но мне чего-то не хватает, не работают мозги.
может вы посоветуете чего
ну, так ...
> мне чего-то не хватает, не работают мозги.
> может вы посоветуете чего
> не работают мозги
Тут нечего советовать, если мозг не работает и мертв. Программирование не твое. Попробуй JS.
>если мозг не работает и мертв
>и мертв
>>920776
>да нет, просто дебилов уровня
>>920813
>посылаю нахуй
Дебил с мертвым мозгом обиделся и разволновался. Продолжай бесноваться.
почему не посоветуешь чего-нибудь по яве\архитектуре\вообще программированию?
Спасиба канешна, но по твоей ссылке больше теоретическая инфа.
Проблему решил благодаря этому http://www.skipy.ru/technics/encodings_console_comp.html
Конкретное - при компиляции дописываешь формат исходника, а имнно "encoding UTF-8" и тогда все работает.
Но я заметил другую особенность - насколько я понял вся проблема возникает из-за того, что виндовая консоль по дефолту использует кодировку cp866. По логике ведь достаточно включить в консоли ютф8 и все должно работать без указания кодировки исходника. Что бы сделать это пишу "chcp 65001" и заново компилируюсь, но уже без указания кодировки в итоге при запуске получаю неведомую хуйню вида "Здорова, посоны! посоны! ?ны!!!"
Какого хуя так?
Если же снова запустить с ключем "encoding UTF-8" то получаются ебучие квадратики!
Что это за хуйня, посоны поясните плиз?
пикрелейтед
Ты даже не рассказывал какой у тебя опыт, может ты за 3 года до сих пор уровеня junior?
СПЕРМОТЕРМИНАЛ. Энджой его. Или запускай не cmd, а Powershell. Или поставь Линукс. Или Хакинтош.
Кароче, на тебе сразу готовое, читай все 7 статей.
dou.ua/lenta/articles/java-beginner-guide-1/
>спустя 15 постов наконец-то ответили по теме
спасибо
но это не значит что вопрос закрыт, может быть кто-то был в моей ситуации и пояснит за это
Лень искать историю постов. Ты видимо тот кретин который ничего не умеет? Читай мартина фаулера. Читай вдумчиво, пробуй повторить сам по аналогии.
> тот кретин который ничего не умеет
зачем это писать? для чего эта ненависть? на работе обижает начальник?
Дык по умолчанию и в cmd работает.
Мне же интересно какого хуя не работает при явном указании ютф-8.
Это девелоперский юмор, ты должен был ответить что-то типа Да, это я тот самый кусок говна и дальше продолжить, юмор такой.
так вот как понять уровень моей компетенции(( значит я и правда джун до сих пор.
пойду учить мемосы, и потом сразу повышение зп просить
Есть. Они лучше чем в других языках.
Так технологии изучать надо, а не в предметную область круглыми сутками вникать (сам работаю в NC гораздо меньше твоего, но фишку просек сразу).
>технологии изучать надо, а не в предметную область круглыми сутками вникать
а на основании чего ты сделал вывод что я не изучал технологии?
>>920942
зодовай конкретные вопросы
вкратце - берут зелёных даунов и учат их, что хорошо для тебя
если ты умный - будешь зарабатывать норм и ездить в командировки за ещё большие деньги
получаешь право троллить в б подписываясь интерпрайс прогроммистом
если даун - сидишь спокойно в тестировщиках или рилиз-говноинжденерах
Ну просто мечта, а не работа.
А в каком городе то?
В моем мухосранске такого нету и никода не будет
Так на любом сайте с отзывами все написано.
Например: http://www.vnutri.org/netcracker-technology/
От себя скажу, что нужно четко понимать, зачем пришел в NC и не ожидать, что если плыть по течению, выйдет что-то дельное. Утонешь в конце.
Я, будучи джуниором (!), с трудом нашел лишь двух компетентных людей, готовых помочь (оба считаются архитекторами). Большинство же разбирается лишь в какой-то внутренней архитектуре, не имея никакого кругозора. Наверное, за подвешенный язык и знание бизнес-терминов синьорами и т.д. стали. На реальном собесе им несладко, конечно, придется, потому что вся их мудрость закроется NDA.
>>920949
На основании того, что ты плачешься на двачах, что ничего не знаешь.
Дополню еще свой ответ: в общих чатах NC (даже прогерских) ни разу никто не пофлудил про Java, SQL там... Что доказывает технологический похуизм. Зато бизнес-терминов завались.
мы поняли, у тебя мышление уровня "все вокруг дебилы", ты один такой правильный и всё понимаешь как надо
не продолжай
Так а какой смысл спрашивать о технологиях в корпоративном чате? Есть документации фреймворков и технологий, их сидишь и читаешь, там есть абсолютно всё. А вот в бизнес-логику въехать без совместной деятельности с коллегами тяжело.
В том то и прикол, что я совсем неопытный, но если на свои вопросы получаю постоянное "не знаю" (как можно, блять, не знать, какие паттерны в собственном коде применял, я ж не спрашиваю какие-то гуглящиеся вещи), то загорается тревожная лампа.
>>920995
Да я не про технологии, а про то, что если человеку интересно программирование в принципе, то он и мемы в чат кинет, и новость про java 9 процитирует, поспорит в конце-концов. Причем флудят достаточно активно, но по этой теме вообще ничего.
>я совсем неопытный
>загорается тревожная лампа
поживи чуть подольше чем делать выводы уровня ДА ОНИ ТАМ ДЕБИЛЫ ВСЕ НИХУЯ НЕ ЗНАЮТ
Это не лично мои выводы, интересовался и у людей, "поживших подольше", иначе б не стал ничего пояснять)
или сразу GoF?
вообще то я писал про тебя, а не каких-то других людей)
> с трудом нашел лишь двух компетентных людей, готовых помочь
Я опущу описанную тобой связь между компетентностью и желанием разжевать все долбоебу.
Бесят такие как ты. Хули тут делать, БЕРИ И ДЕЛАЙ ЗАДАЧУ, а не страдай я не понимаю не знаю как же сделать ой ой. БЕРИ СУКА И РАЗБИРАЙСЯ. РОЙ НОСОМ, ПОКА НЕ ПОЙМЕШЬ.
Не получается? Вон из профессии в системные администраторы.
ты интересную тему затронул (я не тот кому ты отвечал)
где грань между СИДИ И РОЙ ЗЕМЛЮ НЕСКОЛЬКО ДНЕЙ и НЕ ТРАТЬ СЛИШКОМ МНОГО ВРЕМЕНИ?
вот делаю я небольшой тикет 60 часов.
как понять что уже нужно идти за пояснениями или продолжать рыть и тупить?
Декомпозиция
>интересовался и у людей
Сует нос не в свои дела, разводя сплетни и обсуждая за спиной что тимлид не знает паттерн, а ты знаешь, он тимлид а ты нет. Тебя ебать не должно кто и чего знает, выполняй пункты своего контракта.
Серьезно считаешь, что будучи написанной капсом, твоя блевота станет убедительнее и грознее?
Где конкретно я говорил про рабочие задачи? Фантазируй дальше, маня.
Не читай Хед фест это насмешка над здравым смыслом а не книга. Даже дети предпочтут что-то серьезнее в плане подачи материала, подойдёт разве бабулькам которые ходят улыбаются птицам. Паттерны от GoF скорее всего не понравятся, я читал давно Гранда Шаблоны проектирования Java. Мне понравилось. А вообще лучше начни с википедии https://en.wikipedia.org/wiki/Software_design_pattern
Вот свежачек подъехал https://youtu.be/QIizuXDi4U4 - ознакомься.
Заодно вот тебе два главных принципа (пик) на которых базируются все паттерны.
Услышал в речи СТАЛКУЮТСЯ и перешёл на сексуального Баруха из фида.
Чем же она так плоха? Прочитал про уток первый паттерн в попытке разобраться, как правильно архитектурить прогу, вроде понятно. Через прочтение сего вроде как понятно как правильно в ООП.
>Окей, если не смущает подача материала то читай. Да вообще читай всё что хочешь лишь бы понимал и нравилось. В любом случае, ты просил совет - читай Гранда. Там java, там серьёзно и не уступает GoF.
почему ты в яватреде это спрашиваешь?
поэтому и игнорят наверно. ну я знаю в неткрекере есть курсы
Ебать дебил.
и?
какой есть годный материал про мавен?
Опередил, содомит.
Бут не надо, если хочешь разобраться.
Бывает ли такое, что отвечая на вопрос я полностью пересказываю вопрос? Нет, конечно. Я же не ебанутый.
>>921561
если не переопределять то будет вызван toString из Object'a, который печатает указатель.
Вводные:
- Пользователь Javarush (8 уровень), там как раз начались коллекции, немножко бомбанул с задачи про HashMap. Как-то пока охладел к написанию кода в шаблонные задачи.
- Читаю иногда по чуть-чуть Head To First дошел там до 5 главы, воостновном в книге тока читаю лекции, задачки тамошние не решаю, типа поработайте компилятором и блабла, да и не удобно с книгой перенабирать.
- Открыл Лафоре про структуры данных, почти запомнил все структуры данных включая абстрактные, прочитал за "big-O notation". Единственное не очень понял после того как разобрался с наследованием и интерфейсами. Что я могу создавать в принципе любую структуру данных с любым интерфейсом из которых он образован? типа Collection<String> list=new ArrayList();||||| List<String> list ||||||ну и ArrayList<String> list?
- Читал читал про наследование, абстрактные классы, интерфейсы и полиморфизм. Понял что чистое наследование не очень хорошо. Нужно крафтить абстрактного родителя, а то что в будущем может меняться выносить в интерфейсы и из них уже имплементя создавать заготовки на все случаи жизни. Паттерн стратегия.
- Понял что крайне желательно почитать Джошуа Блох.
Но также есть понимание что лучше что-то брать и писать что-то как пет проект и причем сразу на спринге, потому что SE в целом работодателям не нужен, и андройд не интересен особо. Но Спринг со всем своим стеком кажется совсем другим языком. Типа на курсах все учат яву, а работодателям нужен Спринг =) . Там какой то чудный мир dependency injection, аннотаций, обьектов зависимостей, каких то бесконечных прописываниях зависимостей, "@autowired круто, но старайтесь избегать".
Сообственно Анон, посоветуй как перестать пытаться разбираться сразу во всем и на чем конкретно стоит залипнуть в первую очередь и когда выходить на спринг?
С уважением, анон фром ДС2.
Почитал явадоки, понял что у колекшин и лист нету конструкторов, но натолкнулся на List list = Collections.синхронайзедлист(new ArrayList());
Так:
java -cp .;"D:\Java\Libs\MyLib.jar" Main
программа работает.
А так:
SET CLASSPATH=.;"D:\Java\Libs\MyLib.jar"
java Main
нет (вылетает с ClassNotFoundException).
Почему?!
Попробуй кавычки и всякую залупу поубирать.
C:> set CLASSPATH=classpath1;classpath2...
where:
sdkTool
A command-line tool, such as java, javac, javadoc, or apt. For a listing, see JDK Tools.
classpath1;classpath2
Class paths to the .jar, .zip or .class files. Each classpath should end with a filename or directory depending on what you are setting the class path to:
For a .jar or .zip file that contains .class files, the class path ends with the name of the .zip or .jar file.
For .class files in an unnamed package, the class path ends with the directory that contains the .class files.
For .class files in a named package, the class path ends with the directory that contains the "root" package (the first package in the full package name).
Сап, /pr/
Дело в том, что есть приложение для андроида, которое использует немного нативного кода, и этот код понадобился мне. Прежде всего я попытался посмотреть на него через IDA Pro - и нихуя не понял. Ладно, зачем мне код? Ведь в библиотеке libyoba.so он уже есть, и к нему можно обратиться, что может быть проще? Я написал System.loadLibrary("yoba"), джава всё скомпилировала, но когда я пытаюсь запустить свою программу - она вылетает с ошибкой "/usr/lib32/libc.so: invalid ELF header"
Видимо, этому коду нужен libc из андроида
Неужели для небольшого куска кода нужно запускать целый эмулятор андроида? Нельзя как-нибудь это исправить, докинув минимально необходимый набор библиотек?
Если нет - то мне придётся поднимать локальный сервер на эмуляторе, который будет вызывать эту функцию, когда его попросят, и отправлять её результат запросившему, или есть более адекватное решение?
>>921805
> у колекшин и лист нету конструкторов
Действительно, как так?
Пиздец ты дегенерат. Твой пост надо сохранить на скрины и кидать всем дебилам, которые спрашивают про джавахуяш.
Вместо того чтобы ссать лучше бы поинтересовался почему нельзя инстанцировать твой лист, тебе на пользу же будет.
почему нельзя инстанцировать мой лист?
вообще не понимаю нахуй нужен лист если есть аррайлист
Потому что лист это интерфейс, в нем не реализованы методы, они просто описаны например add(E e); addAll(Collection<? extends E> c); как ты создашь объект если его функциональность не реализована? Я не знаю как тебе обьяснить, это очень элементарно. Представь себе такую программу:
public static void main(String args){
hello();
}
Если ты не реализуешь метод hello() то он и не выведет тебе Hello World. А в ArrayList напротив, все эти методы описанные в List реализованы, там написана их логика.
Зачем нужны интерфейсы и суперклассы? Это тебе к Эккелю с философией джавы в раздел полиморфизм, там описано всё гораздо лучше чем кто-то передаст тебе через двач.
>Эккелю с философией джавы
где кочать эти книги бесплатно? я заебался каждую откапывать отдельно, причём даже если и откопаешь - там старая редакция. ты можешь выложить?
>старая редакция
Термины «специализированный полиморфизм» и «параметрический полиморфизм» впервые упоминаются в 1967 году
иногда мне кажется, что некоторые люди никогда не сталкивались в своей жизне с гуглом :-/ https://www.google.ru/search?hl=ru-RU&ie=UTF-8&source=android-browser&q=библиотека+программиста&gfe_rd=cr&ei=peeOWNHlCYrJZLiQmOAH&gws_rd=ssl
Ого, какой интересный сайт. Спасибо!
> посмотреть
Берёшь BytecodeViewer и смотришь. Можешь в опциях настройки декомпайлера поменять как и сам декомпилятор Со smali надо ебаться когда поправить код захочешь
Там хранится приватный ключ, который мне нужно использовать и который хорошо зашифрован
Битность совпадает, архитектура - нет
Ну понятно, что андроид по ARM, а у тебя что - то из x86
>с подходящей архитектурой
Так попробуй, единственно, чтобы не ебаться с зависимостями по 32битному рантайму - libc и прочее - используй контейнеризацию
ну я подразумевал докер, а теория вообще здесь начинается: https://help.ubuntu.com/12.04/serverguide/lxc.html
насчет докера - изучи issue tracker
https://github.com/docker/docker/search?q=32bit&type=Issues&utf8=✓ - судя по issues/28162 могут быть сюрпризы, лучше проверить возможности, перед тем как лезть.
Спасибо, анон
writer.write(Text);
writer.append('\n');
writer.flush();
writer.close();
Выдает FileNotFoundException, хотя файл существует и путь к нему написан 146% верно. Винда, 8я джава. В чем может быть проблема?
Везде пишут что жава использует юникод и чары все занимают 2 байта.
Но судя по пикрелейтед это нихуя не так.
Ебаные слэши, видимо. Попробуй варианты \, \\ и /.
>файл существует и путь к нему написан 146% верно
мой обезьяноопыт говорит что в первую очередь нужно проверять то что НА 146% ВЕРНО МАМАЙ КЛЯНУСЬ ПРОВЕРИЛ 5 РАЗ
именно там дохуя проблем
Алсо,
>Везде пишут что жава использует юникод и чары все занимают 2 байта.
Не все, в Java используется UTF-16. Некоторые символы Юникода в 2 байта не влезают.
Ну вообще охуеть.
Кстати, опции компиляции можно какими-нибудь "волшебными комментами" в коде прописывать?
>На некоторых системах (MacOS X, например) переменных среды нет
А что мне тогда getenv в терминале светит?
Щито, так эта опция компиляции просто указывает компилятору кодировку сорса? (И если файл будет UTF-16 то нормально всё должно быть)
Или меняет внутреннюю кодировку самих стрингов?
> На некоторых системах (MacOS X, например) переменных среды вообще нет
На некоторых, может, и нет, но на маке точно есть.
> так эта опция компиляции просто указывает компилятору кодировку сорса?
This. Вообще там кодировка самого файла задается, для редактора и компилятора.
Ясно. Где-то в файлах javac можно дефолтные опции прописать?
Я Atom'ом пользуюсь всегда, не хочу сотни IDE ставить. Кодировка понятное дело UTF-8 всегда. Хуй знает зачем javac UTF-16 по-дефолту использует.
Ты можешь банальным new File(filePath).exists() проверить. Возможно ты вместо absolute path просто path передал
>MacOS X, например
Охуеть не встать
[20:15:02] $ export
declare -x Apple_PubSub_Socket_Render="/private/tmp/com.apple.launchd.pNwiwvV190/Render"
declare -x DISPLAY="/private/tmp/com.apple.
В Maven можно задать кодировку для компилятора:
<plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
"-Dfile.encoding=UTF-8" вроде
в опциях виртуальной машины это указывается, или в батнике если через него запускаешь или в IDE если через неё запускаешь.
В Идее это РАн/ЕдитКонфигурешн/ВМ Опишон
Ну если ему хочется пердолиться с javac, его дело. А нормальные пацаны собирают через Maven или Gradle.
Дауненок из сетевого пряника нихуя в жизни не видел и ничего не знает, но уже считает, что что-то смыслит в современном тырпрайзе, окровавленном сложными devops-практиками и прочими CI, CD.
Ссу в обезьянку.
мне то ты нахуя ответил >>922521
>>922526
>прочими CI
>есть CI = сложный проект
клоун. ещё раз доказал что ты нихуя в жизни не видел
Анус себе зарепорти, говно мелкобуквенное.
Какие же уебищные лямбды в яве, пиздец.
Мимошарпогосподин
на самом деле нормальные, просто синтаксис другой. правда есть какие-то уебанские ограничиения при замыканиях.
Это потому что ты говно какое-то пытаешься закодировать.
Ладно еще ограничения при замыканиях, с сигнатурами адовая беда.
Вместо уютненьких Func и Action c перегрузками до 16 входных параметров нужно подбирать или создавать интерфейс с подходящей сигнатурой. А так как поддержки value-type нету, то для каждого примитивного типа нужен свой интерфейс. В стандартной поставке запилили для bool/int/long/object до двух входящих, а дальше пилить заебались, оцени сколько там
https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
(Ну и никаких Expression нету)
Скалобог-датаймайнер неспеша подъехал на своем "Инфинити", открыл дверцу и, зажав нос от нестерпимой вони снаружи, ссыканул на бесполезного блохастого бомжа.
Мне еще не нравится условность: Интерфейс с одним методом. Ну что за хуйня? Пахнет костылем. Не могли в нормальные делегаты?
> Интерфейс с одним методом. Ну что за хуйня?
https://en.wikipedia.org/wiki/Interface_segregation_principle
Не нужно мне тут про солиды заливать. Тут речь о лямбдах, которые являются по сути анонимными функциями. И эти анонимные функции реализуются через анус.
Могли, Microsoft же для MSJVM запилила делегаты. За это их правда и засудили, и вообще, все что было запилено MS - от лукавого ©™
Но нормально запилить не получится ибо примитивные типы мешают - generic с ними не работают, байт-код не полиморфный (вместо store - istore, fstore, astore, lstore, dstore), потому производительность просасывает и JIT не может нормально заоптимизировать. Может когда Valhalla допилят и добавят vstore - тогда будет надежда на делегаты.
сразу видно что всё население треда - вебмакаки и студенты
Про каррирование, я так понимаю, ты тоже не слышал?
>"-Dfile.encoding=UTF-8" вроде
>в опциях виртуальной машины это указывается
Блять, я чего-то не понимаю. Если эта опция влияет только на компиляцию то при чём тут виртуальная машина жавы?
Ладно, похуй. Я вообще сейчас свою первую прогу на жаве пишу, пока и через консоль можно собирать.
Но надо бы освоить что-то вроде GNU make, но чёт сложна, не хватает общих знаний.
>Вместо уютненьких Func и Action
При этому в C# уже есть deletage ... - и куча уже нагенеренных делегатов для разных апи.
И конечно же они не совместимы с новыми Func/Action
Type-inference (var) для локальных переменных НЕ работает, тк в языке все еще нет функ. типов,
а только прокаченные делегаты, в которые добавил джерик-параметры.
Так же в функ. программирование Action (функция без результата) вообще не и имеет смысла.
В Kotlin годно сделали, что есто только Function0..22 и когда не нужен результат поставляется тип Unit.
Для компилятора хватает опции -encoding
Используй str.getBytes("КОДИРОВКА") для преобразования в байты и new String(byteArray, "КОДИРОВКА") для получения строки из байтов с использованием любой кодировки.
Для файлов/сокетов кодировку нужно указывать при открытии.
Настройки виртуальной машины без необходимости менять не нужно.
Make для жабы плохо подходит, он создавался для небольших сишных программ, где исходники находятся в одном-двух каталогах с небольшим уровнем вложенности.
В шарпе тоже какую-то хуйню наворотили с multicast делегатами.
Вот в Qt все было просто и понятно, сигнал и слот - это разные понятия. Одно колбэк, ссылка на метод, другое подписчик, коллекция этих колбэков. Чисто как положено по паттерну Observer. А тут зачем-то смешали в одну кучу event и delegate.
>не совместимы с новыми Func/Action
Почему же? MyDelegate d = myFunc.Invoke
>Type-inference (var) для локальных переменных НЕ работает
он скорее только для локальных %надо бы вбросить известную троллятину о том, что в Visual Basic type-inference мощнее чем в Scala, но лень%
Action (как и void методы) можно конечно эмулировать возвратом значения unit-типа %что характерно, java.lang.Void в жабе и System.Void в шарпе уже есть, но таким образом не используются%, но возврат Void.Value подпортит производительность, а поддерживать компилятором рассчет изменения глубины стека всем лень
в сисярпе var нужен только для анонимных типов, которые юзаются в Linq. Но по привычке его используют везде.
В жабе более пиздатые анонимные типы на мой взгляд и я хз, чего это нельзя ебануть var как сахарок.
>>922700
event собственно и есть Observer над делегатами, встроенный в язык
public event ButtonEventHandler OnClick;
Но ивентами пользуются нубы. Нормальные посоны используют с осторожностью, потому как чревато случайно подписаться более одного раза или забыв отписаться, словить утечку.
Это нужно для обратной совместимости. В Java 7 в аргументы метода передавали анонимный класс (пикрелейтед). Разработчики из оракла просто придумали захуярить лямбды прямо поверх этого. В итоге мы получаем тот самый написано однажды работает везде. Много чего в java просто не сделать не использовав костыль, чтобы сохранить обратную совместимость.
Для тебя поди сюрпризом будет, что у шарпа есть backward compatibility в рантайме
пиздуй нахуй васян
Guice/HK2/Dagger2?
Это джава-тред, пиздуй со своей явой в другой, петух.
>понял что у колекшин и лист нету конструкторов
Пиздец, потом такие дегенераты на собеседовании не могут создать объект класса.
https://en.wikipedia.org/wiki/Backward_compatibility
>Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system
Можешь мне не отвечать, дабы дальше не позориться. Проглоти мочу и покинь тред навсегда.
>that allows for interoperability with an older legacy system
Как насчет стирания дженериков до object? Не для interoperability with an older legacy system? Как насчет использования старых функциональных интерфейсов для лямбд не для interoperability with an older legacy system? Не задумывался откуда вообще взялись эти стримы и почему они такие?
Ты пришёл и назвал другого человека дураком, иди мети улицы, что ты забыл, дурак, в этом треде.
Я побуду твоим ментором на 5 минут.
>задачки тамошние не решаю
По ебалу на-ка.
>Читал читал про наследование, абстрактные классы, интерфейсы и полиморфизм...Паттерн стратегия.
Куча мала. Разберись с наследованием и другими основами ООП сначала нормально, а потом уже паттерны смотри. Так, чтобы не возникало вопросов про
>Что я могу создавать в принципе любую структуру данных с любым интерфейсом из которых он образован?
>Спринг кажется совсем другим языком
Вот именно, что кажется, потому что Java ты пока не знаешь.
>SE в целом работодателям не нужен
Большинство вопросов на джунячую вакансию будет по SE. Его нужно знать на зубок. Пет проект на Спринге - это скорее пруф, что ты способен проявлять инициативу, ебаться с доками и самостоятельно находить решения проблем с деплоем и в целом technical sophistication.
Выбери один источник и еби его. Я рекомендую Head First (а не блядь Head To First). Кстати больше внимания к деталям блядь! Ты же программист.
Уже давно появился, называется Java EE.
Твое персональное
>мало ли вдруг ваш старый код будет хуже на новой jave - совместимость уже не гарантируется потому что есть делегаты как в шарпе
делает все ссылки бессмысленными и однозначно маркирует тебя как дурака, возможно, даже не способного понять содержание текстов, на которые ссылаешься.
как-то так:
drwxrwxr-x. 3 work work 4096 Jan 31 05:04 test1
drwxrwxr-x. 3 work work 4096 Jan 31 05:04 test2
Т.е. добавить test2 в депенденсы test1 и положить джарку в WEB-INF/lib
У меня есть сетка GridPane, внутри каждой лежит Pane, и в одной из этих Pane находится ImageView.
Собственно drag я уже запилил, картиночку таскать можно. Но как запилить, чтоб когда я ее отпустил, она осталась в нужной Pane? Мне вообще ебаться с этими Pane или уже сразу ебать в очко GridPane? Нид хэлп, сириусли.
Внешний вид хуярил в Scene Builder'e. В контроллере ебанул методы. Ниже по драгу метод, подскажите, как этот дроп ебучий блять сука нахуй запилить.
public void handle(MouseEvent event) {
ImageView image = (ImageView) event.getSource();
Dragboard db = image.startDragAndDrop(TransferMode.MOVE);
ClipboardContent cbContent = new ClipboardContent();
cbContent.putImage(image.getImage());
db.setContent(cbContent);
image.setVisible(false);
event.consume();
}
>Т.е. добавить test2 в депенденсы test1 и положить джарку в WEB-INF/lib
Инсталлишь test2 в локальный репозиторий, добавляешь артефакт test2 в депенденси.
Пытаюсь делать так: нихуя не сохраняет джарку
<dependency>
<groupId>com.example</groupId>
<artifactId>test2</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/../test2/target/test2-1.0-SNAPSHOT.jar</systemPath>
</dependency>
Пытаюсь делать через описание репозитория и депенса: пидрила ругается на версию.
Да он шутит. Модный молодежный.
уверен этот даун пердолит какой-то говнопроект на 10 классов и уже возомнил себя экспертом
Грабли-крабли-крякли-клюкли.
> как это говно запаковать в war
./gradlew war
> да вы заебали
Ну тогда дальше ебись с этим, как хочешь.
Подожди...
да и горжусь этим.
На свинге уже небольшой опыт есть, но увидил что FX обновили подумал может там есть какое-то преимущество?
БАМП, СУКА НАХУЙ БЛЯТЬ!!!!
>официальный тред Senior Java Developers
>Senior Java Developers
Ну да, ну да, блять. ХЭЛП, СУКА!!!
Пошел нахуй, у меня такие условия, какие есть. Может еще макбук купить? Или лучше сменить профиль на дизайнера?
Но нет, блять, мне надо разобраться с этой хуйней. Нечего по делу сказать - отсоси, пидар вонючий. Мы тут джаву ебем в пердачелло чаще наоборот, так что не мешай.
Посоны смотрите - правильно ли я хвостовую рекурсию запилил?
Или у явки нет оптимизатора?
Или она accum копировать будет а не ссылку передавать?
Гуру халп
Ну так дебаггер тебе и показывает, что это разные типы, какая разница, что там нолики где-то в полях одинаковые хранятся
функцию использую как то так
HashMap<String, Long> acc = new HashMap<>();
HashMap<String, Long> resmap = GetCIFSURLDetailedSize(acc, ofile);
Я не гуру, но вроде неправильно. Ты метод рекурсивно вызываешь, а результат игнорируешь. Компилятор не поймёт, что ты хочешь.
В любом случае в жабе нет оптимизации. Не знаю, собираются ли в 9-ке делать.
JavaFX - заебись, но для работы с базой данных (я так понимаю, это довольно простой интерфейс) тебе подойдет и то и другое. Swing выглядит в стиле Windows XP - если похуй на эстетику, то сгодится. Слегка попроще.
И у того и у другого есть графические конструкторы, которые можно прикрутить и создавать всякие кнопки-таблицы перетаскиванием мыши (Scene Builder и WindowBuilder).
Кукаретиков не слушай, глянь лучше на ютубе пару туториалов, там и определишься.
Не пиздит, в IBMовской jvm поддержка оптимизации хвостовой рекурсии (а речь именно о ней) есть, в HotSpot - нет.
Долгое время не собирались делать потому что оптимизация модифицирует стек - ломает подсчет числа фреймов - в итоге препятствуя какому-то внутреннему механизму секьюрности внутри jvm. Говорят сей механизм выпилят, так что шанс есть на появление, но хз когда, много всякого еще аж к JDK 7 обещали, а прошло уж почти десять лет...
Используй лучше Kotlin, там есть.
Нету. Даже не пробуй искать в гугле. Нет таких плагинов.
Благодарю. Склоняюсь в свингу, в IDEA тем более есть встроеный редактор. Только не пойму почему Fx должен выглядеть лучше, я думал там компоненты одинаковые.
Смотри в дебаггере - один Integer, другой JsonPrimitive. У JsonPrimitive уже есть метод чтобы спарсить в целочисленное.
в свинге встроен механизм смены скинов
три или четыре скина доступны подефолту, и еще бесплатно можно найти
так что выглядеть он может как угодно.
из википедии)))0
Я уже одних чучмеков тыкал мордой в сотни отраслевых приложений (аэрокосмос, медицина, банки, геоинформационные системы и военного назначения) для десктопной жабы. Но это было в прошлом треде, так что буду краток - ты не прав.
>в сотни отраслевых приложений
и сколько в процентах таких рабочих мест от общего числа жабомест?
вот в это тыкни меня, с пруфами, естественно, а потом еблет свой раскрывай
Ох уж эти ВРЕТИ
https://platform.netbeans.org/screenshots.html
https://jaxenter.com/20-javafx-real-world-applications-123653.html
>сколько в процентах таких рабочих мест от общего числа жабомест?
ответа нет, слив после первого же поста
то-то же, мудачок.
и не смей больше рот открывать итт.
Как ты такие пруфы себе представляешь? Тебе уже показали, что более чем дохуя - проблем с трудоустройством нет. А пока твои высеры, что джява десктоп умер - это все беспруфная кукаретизация.
Обобщенно и неопределенно личные глаголы в школе проходят. Пиздуй уроки по русскому делать.
кек, очевидно ты попытался сделать вид что тебя кто-то поддерживает, но тут же обосрался
ну открой хедхантер и почитай, десктоп упоминается в 1 из 5-10 вакансий
спринг будет плюсом в резюме куда бы ты не пошёл, потому что это в первую очередь скилл в самой яве.
а жавафх и прочее говно - это просто жавафх, которое никого не ебёт кроме тех кто на нём пишет.
так что не пудрь мозги ньюфагам, пусть учат то что в тренде
jre идет c кучей классов-реализаций. java.lang, java.util вся хуйня. там все интерфейсы реализованы эти
Тут по кр мере 2 анона тебя успокаивают.
>>924201
Какое отношение к десктопу имеет spring? Маня, это ортогональные вещи, читай - не исключающие друг друга.
>не исключающие друг друга
ты моя умница! ну а нахуй споришь со мной тогда? если он будет заниматься тем что актуально везде - будет плюс ему.
если он будет пердолить десктопоговно, которое никому не нужно - то просто потратит время.
это я и хотел сказать.
пожалуй больше не о чем говорить
Мне и не интересны твои маневры.
Изначальный тезис был, что десктоп под жабу не нужен. Тебя опровергли, приведя примеры, когда нужны тяжелые клиенты, а не SPA под бутстрапом с каруселью и ссылкой на донаты проекту.
>Изначальный тезис был, что десктоп под жабу не нужен
Мне и не интересны твои маневры.
изначально была речь о том что спрос на спринг в разы больше десктопа.
если ньюфаг решает пердолить десктоп - это ошибка.
Аноним обезумел и общается сам с собой!
А вообще охуенно же - подменил собеседника своей реализацией и с ней общаешься.
> системы сборок для больших проектов и придуманы
Да ты капитан ебаный очевидность просто! Осталось самое время выяснить где это отрицалось. Кроме твоей головы.
>>922528
Еще один придурочный со своей реализацией собеседника и маняфантазиями.
Откуда вы беретесь? С джавараша?
> Поясните чем сборщик с охуенной DSL и до кучи нативной поддержкой скриптового демонического ЯП, подходящий для сборки любых проектов на любых языках круче ригидного декларативного xml-говнеца, сильно завязанного на Java
А так ничем.
>поясните чем динамикодрисня с поддержкой кучи говна которая импортится в идею десять лет и дают почти ничего нового по сравнению с мавеном лучше xml-говнеца
Вот и всё собственно. Ну мавен тоже не святой, но как-то перймуществ у гредла маловато.
p.s. Мавен стал популярен только из-за свой библиотеки либ. Гредл использует её же.
Нет.
>>924272
> динамикодрисня с поддержкой кучи говна которая импортится в идею десять лет
Проиграл в лысину плешивого карлика от этого эксперта, оценивающего сборщики на основании того сколько импортятся зависимости из mvnrepository.
> Ну мавен тоже не святой, но как-то перймуществ у гредла маловато.
Они перечислены в гринтексте. И даже не упомянута нормальная инкрементальная сборка.
Но конечно в проекте из 3 классов все это не очевидно.
>Но конечно в проекте из 3 классов все это не очевидно.
И тут ты даешь скриншот своего проекта из 40 модулей на гредле или идёшь нахуй.
> даешь скриншот
Дал тебе NDA по губам.
И я не ебанутый, чтобы в 0:08 быть на работе.
> из 40 модулей на гредле
124 в модульном монолите и 42 в древнем говне. И, как ты понимаешь, сборка не просто тупо скомпилировать в .class и сунуть в варники. Хотя нет, вряд ли ты понимаешь.
> или идёшь нахуй.
Нет, нахуй идешь ты после того, как ты обосрался своими манявскукареками, сравнивая сборщики на основании скорости выкачивания зависимостей с maven central. Хотя ты уже там.
>NDA
Всё с тобой ясно.
> И, как ты понимаешь, сборка не просто тупо скомпилировать в .class и сунуть в варники
Такие как ты изобрели ант в своё время. Если у тебя сборка не просто скомпилить и сунуть в варники, то твой проект - сборище говна. Вот серьезно. Вы там jar файлы с локального фтп не подгружаете в билд скрипте? Попахивает именно таким.
Удваиваю этого.
Тоже интересно, что там за соки говён, которые требуют
>кук кука скриптового демонического ЯП кукареку
че ты кукарекаешь поехавший?
свинг прост, так что работа на нем тупо опыт в java SE
лишним не будет, много времени не займет
Вот хорошо, что в шарпах согласились интерейсы именовать с I. Не надо тыкаться в ide/доки чтобы с лету отличить класс от интерфейса.
Видно, что в List<T>:IList<T> List реализует интерфейс IList и что дилемма List vs LinkedList значительно проще ArrayList vs LinkedList благодаря именованию
Ебать ты лох.
Ди это однозначно депенд инжекшен.
Второй спочоб это депенденси лукап.
А инверсион это оф контрол.
Понаползли spring-дети
Ну ка, в SOLID "D" - это что?
И коим боком это вообще относится к именованию интерфейсов
D значит DiCaprio
Что ты несешь маня?
В ее используются оба способа инвершен оф контрол.
@inject @ejb это ди
@resourse - дл
dependency lookup - чисто спринговая терминология, в белом мире известны Dependency Injection и ServiceLocator
как же заебали ебаные абсолютисты с утверждениями уровня IoC ≡ Spring, Реляционная алгебра ≡ SQL, Теория категорий ≡ Haskell
DI может значить не только Dependency Injection но и Dependency Inversion - пятый принцип в SOLID именно он опять же, заебали ебланы, подставляющие туда injection вместо inversion
И вообще, развели тут дерейлинг, каким хуем DI относится к именованию интерфейсов главное ж спиздануть аббревиатуру, а по теме она или нет - макаке похуй
Мне лень читать 299 джср по терминологии.
А про интерфейсы мне пох как они называются. В жавадоксах по ждк все подробно есть.
@inject Smekalochka
похуй что там за имя у реализации, работаем через интерфейсы.
Вот так-то, довн. Вот что значит, включать мозги, а не повторять SOLID мантры за взрослыми дядями.
Что ты понимаешь под чистой архитектурой?
Я пишу по ЕЕ, использую практически весь фунционал стека. Например сейчас вот обмазываюсь и пилю мессадж драйвед апликуху.
Спрашивай свои ответы.
В яве также согласились, просто некоторые интерфейсы знают все и смысла нет заморачиваться. Вот AbstractList никому не нужен поэтому он Abstract.
Ну и дилема ArrayList vs LinkedList или List vs LinkedList вообще похуй если ты знаешь базовые коллекции, а ты их обязан знать.
Не слушай тех, которые советуют javaFX и прочую хуйню. Делай на QT. У него есть биндинги под любой язык - твой навык ты сможешь применить с чем угодно потом.
Удобнейшая система сигналов для коммуникации между элементами.
Если пробовал делать что-то под андроид - то сразу заметишь, какая это годнота, в отличии от джаваговнища.
> Если пробовал делать что-то под андроид - то сразу заметишь, какая это годнота, в отличии от джаваговнища.
Это Qt то на андроиде годнота? Ну-ну.
Это андроидные велосипеды ради велосипедов и костыли ради костылей говно. Что там с QT я хз.
Ты уже трижды пишешь Qt неправильно. Мне кажется, твоим мнением можно смело пренебречь.
Не больше, чем мнением петуха, которому не понравилась большая буковка вместо маленькой.
Это копия, сохраненная 3 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.