• Для чего используется Java в современном вебе?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Почти все клиентбанки (для физиков, не говоря уже о юрлицах) работают на java
    и никто в здравом уме не будет писать подобный софт на Python или ROR (он еще жив?)
    Ответ написан
    4 комментария
  • Для чего используется Java в современном вебе?

    Вот не далее, чем месяц назад, писал фронт для сервиса с бэкендом на джавовском фреймворке Spring. Так что используется для того же, для чего и питон с пыхой.
    Ответ написан
    Комментировать
  • Для чего используется Java в современном вебе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот я, как раз сбежал обратно на яву после 8 лет программирования на python!
    И несказанно этому доволен - java8 стала очень и очень приятная, ну а бонусом прирост в скорости на моем приложении - 200х!
    И так, как минимум рекомендую для web посмотреть jooby.org, sparkjava.org и конечно же spring boot.
    На jooby как раз пишем маркет, очень весело и современно.
    Да, на котлин пока не смотрел.
    Ответ написан
    2 комментария
  • Для чего используется Java в современном вебе?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Видимо, не очень глубоко вы погрузились. Для маленьких и средних, простых сайтов Python лучше Java, так как позволяет клепать их быстрее и проще. Здесь можно почитать объяснение этому. Но для крупных ресурсов, предъявляющих высокие требования к надёжности и низкой стоимости многолетнего сопровождения, таких как ebay.com, ничего лучше Java ещё не придумали.

    А уход android-разработчиков на Kotlin - это миф и хайп.

    Kysrj.png
    Ответ написан
    19 комментариев
  • Авторизация и регистрация для desktop приложения на Java, как лучше сделать?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Если по простому,а судя по вопросу это именно так, то как то так.
    Для начала вникаем что такое авторизация и регистрация и из чего состоит. Получится что есть клиент и сервер.
    Клиент для регистрации должен сказать желаемый логин и пароль. Для авторизации можно чуть усложнить и работать по 2м схемам, Первый когда клиент скажет серверу логин и пароль. Во втором логин и токен.
    *Токен тут получается после авторизации, его генерирует сервер и сообщает клиенту. Используется для минимальной защиты потому как на клиенте можно не хранить пароль а хранить только логин и токен.
    Сервер в свою очередь ждет от клиентов логин и пароль, после получения которых проверяет в своем хранилище(бд например) и отвечает клиенту сообщением состояния(ок, логин занят,ошибка, пароль простой и т.д.). Дальше он ждет от этого клиента авторизацию по одному из двух способов которая может быть по логину и паролю, тут сервер ответит также сообщением(сгенерирует токен, ошибка пароль\логин не верный). 2й вариант что ожидается логин и токен , ответ будет (ок, ошибка токен не верный).

    Общаться клиент и сервер естественно будет по сети а вот как решать уже вам. Это может быть:
    1) Голые сокеты, проще для понимания т.к. никаких библиотек уже не будет и собственно весь протокол будет ваш.
    2) Использовать какую нибудь rest подобную систему. К примеру тупо взяв сервер с php и сделать нечто похожее(понимаете смысл надеюсь) на register.php и auth.php. Соответсвенно запросы с клиента уже будут идти тупо по http
    3) Взять че покруче и на порядок сложнее, к примеру netty. Круче сокетов но сложнее в пару сотен раз хотя сделать придется по сути тоже что и на сокетах.
    4) Какой нибудь сетевой движек, к примеру kryonet. Тут конечно уже ближе к играм но почему нет? Придется читать доки и следовать принципам библиотеки, ниразу не узнав что такое сериализации и зачем она нужна.

    Для практики потом можно усложнять схему, к примеру чтобы сервер уже не просто смотрел на логин и токен клиента но и еще на его ip чтобы он совпадал. Можно обернуть все это шифрованием, реализовываться будет по разному в зависимости от того каким путем пойдете. Реализовать еще и временный токен этой сессии или же тупо еще одним параметром от клиента типа что за устройство, тогда клиент под одним логином сможет авторизоваться одновременно с нескольких устройств и никто никому мешать не будет.

    В более серьезных проектах примерна такая же схема как я описал выше но доработанная в пару тысяч раз толще на любой чих и случай жизни.

    Конкретно для javafx я тут вообще в этой теме ничего не вижу да и вообще быть ничего не может т.к. это всеголишь библиотека для отрисовки интерфейса программы с коллекциями предназначенными помочь это сделать еще удобнее. Аналогично ей существуют еще ее предшественники awt и swing которые посложнее но темнеменее работают и легче по ресурсам.
    Ответ написан
    4 комментария
  • Можно ли на Java выгрузить видео с youtube?

    @newbee
    А может как-то попробовать подойти с другой стороны? Например, в java есть http-client, вот через него обратиться в youtube api.
    Ответ написан
    Комментировать
  • Как освободить ThreadPool, если поток ожидает ресурс, а другой поток может выполняться?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Вы же сами написали:
    newFixedThreadPool(8);

    Какие после этого могут быть вопросы?

    В общем, не надо там ничего в конструкторе указывать.
    Ответ написан
    Комментировать
  • Как освободить ThreadPool, если поток ожидает ресурс, а другой поток может выполняться?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    А где они должны занимать место по вашему? Все потоки создаваемые executor'ом рождаются, работаю и умирают "внутри" пула. Если вам надо выполнять больше потоков, либо увеличивайте лимит, либо используйте CachedThreadPool. Чтобы поток занимался чем-нибудь другим в процессе ожидания ресурса, вам придётся самому переписать ваши Runnable\Callabe-таски, чтобы они проверяли состояние ресурса и в случае его блокировки делали что-нибудь другое.
    Ответ написан
    Комментировать
  • Java или kotlin для приложения на андроид?

    @awesomer
    Вы преувеличивайте знание конкретного языка программирования и сложность его изучения.
    ЯП - это базовые знания программиста.
    Вы же не приходит в голосу задать вопрос - а какую клавиатуру изучать: слимовую или полновысотную, 80 клавишную или 100 клавишную.

    Учите оба.
    Котлин как бы удобнее и пр.
    Но на Яве больше примеров, библиотек.

    Даже если вы будете писать на Котлине, как минимум читать Яву вам все равно придется.
    Ответ написан
  • Нужно ли программисту, пищущему на языке высокого уровня, знать детали работы ЭВМ?

    @assembled
    Если не будете заниматься системным программированием, то можно обойтись и без знаний деталей работы ЭВМ. Но я не понимаю как это может быть неинтересно программисту.
    Ответ написан
    3 комментария
  • Нужно ли программисту, пищущему на языке высокого уровня, знать детали работы ЭВМ?

    Moskus
    @Moskus
    Вопрос (особенно, с его авторской орфографией, намекающей на то, что вы - "троечник") звучит так, будто вы ищете себе оправдание, чтобы забивать на институтские предметы, которые кажутся вам ненужными, или уже решили на них забивать, но ищете моральную поддержку у "старших товарищей".

    Так вот, фигушки вы ее найдете, потому что ленивых программистов в ИТ не любит никто по совершенно прагматическим причинам - если вам лень сейчас изучать Ассемблер и архитектуру ЭВМ, то вы также лениво будете относиться и к чему-нибудь еще, что вам в вашей работе покажется "не очень нужным". Это порождает баги, костыли, говнокод и срыв сроков, за что по голове получает вся команда.

    Ничего личного против вас не имею - просто оно вот так почти всегда работает. Если с вами этого не случится - чудесно. Но вероятность, что отличный узкий специалист по Java выйдет из человека, который считает смежные предметы ненужными - стремится к нулю. Не потому что они вам понадобятся непосредственно (хотя я не очень представляю, как можно заниматься оптимизацией кода без понимания принципов работы ЭВМ), а из-за модели поведения.
    Ответ написан
    1 комментарий
  • Нужно ли программисту, пищущему на языке высокого уровня, знать детали работы ЭВМ?

    ЭВМ - один из инструментов программиста. Если Вы плохо знаете или не знаете совсем свой рабочий инструмент, то высококвалифицированным специалистом Вам не стать.
    Так что, да, все эти знания нужны.
    Ответ написан
    Комментировать
  • Есть ли в Java аналог ссылки С++ в методах?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    www.quizful.net/interview/java/passing-parameters-...

    Передача по ссылке подразумевает передачу ссылки на объект. В этом случае реализация метода потенциально может модифицировать переданный объект (например, вызвав метод, изменяющий состояние объекта).

    В случае передачи по значению параметр копируется. Изменение параметра не будет заметно на вызывающей стороне.

    В Java объекты всегда передаются по ссылке, а примитивы - по значению
    Pass By Reference means the passing the address itself rather than passing the value. Pass By Value means passing a copy of the value to be passed.
    Ответ написан
    1 комментарий
  • Как из jni-метода вернуть String?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    JNIEXPORT jstring JNICALL Java_Test_saySomething(JNIEnv *env, jobject obj, jstring jStr) {
        // Получаем указатель на массив символов String
        const char *cStr = (*env)->GetStringUTFChars(env, jStr, NULL);
        if (cStr == NULL) return NULL;
    
        // Выводим полученное
        printf("%s\n", cStr);
        // Освобождаем выделенную под строку область памяти
        (*env)->ReleaseStringUTFChars(env, jStr, cStr);
     
        // Получаем новый массив символов от пользователя
        char buf[128];
        scanf("%s", buf);
     
        // Преобразовываем массив символов в String
        return (*env)->NewStringUTF(env, buf);
    }

    Только учтите, что Java хранит строки в кодировке Modified UTF-8, а в C вы работаете с ANSI-кодировками. Поэтому, если понадобиться работать с кириллицей, то придётся озаботиться перекодированием.
    Ответ написан
    Комментировать
  • JDialog, фокус окна?

    @zelan
    Кратко обо мне не получится.
    jdialog.setAlwaysOnTop(true);
    Ответ написан
    Комментировать
  • Как посчитать разницу между двумя данными в градусах значениями географической долготы в метрах?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Координаты, это условные точки широты и долготы на поверхности шара. К метрам и километрам они имеют отношение только при пересчете на поверхность шара. Считают обычно по формуле гаверсинусов. Подробно описано здесь - gis-lab.info/qa/great-circles.html
    На больших расстояниях может давать погрешность в 20-30 километров - расстояние от Москвы до Вашингтона например.
    Для более точных расчетов используют модель геоида - упрощенной модели Земли, но и формулы там совершенно другие.

    PS. Еще раз перечитал вопрос, и вот что хочу сказать...
    Долгота (меридиан) - окружность, проходящая через два полюса. Вторая долгота пересекает первую в точках полюсов, где расстояние между ними будет равно Нулю! Другими словами, расстояние между двумя долготами (двумя меридианами) сильно завит от широты (параллели), на которой измерять это расстояние .
    Ответ написан
    Комментировать
  • Как посчитать разницу между двумя данными в градусах значениями географической долготы в метрах?

    Moskus
    @Moskus
    Если вы в своем вопросе имеете в виду то, что вы написали, то это банально невозможно геометрически.

    Одно значение долготы (longitude) определяет линию от полюса до полюса, называемую меридиан. Два значения долготы определяют две таких линии. Эти линии находятся на поверхности Земли (или моделирующей ее фигуры - геоида или сферы), так что они не параллельны. Расстояние между этими линиями, измеренное по линии широты (latitude, параллель), таким образом, меняется от максимального на экваторе до нуля на полюсах, где они сходятся в точку. Вот расстояние между параллелями (значениями latitude, широты) вдоль меридиана посчитать можно, но не наоборот.

    Разберитесь, пожалуйста, в базовых понятиях систем координат и проекций, это избавит вас от множества вопросов автоматически.
    Ответ написан
    Комментировать
  • Подключение и неподключение к БД с разных страниц, но с одинаковым кодом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Разные настройки к Data Sources у проектов.
    Посмотрите настройки здесь.
    Ответ написан
    Комментировать
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    Всё это можно свести к понятию - подпрограмма. Бывает, читаешь книгу, там автор пишет о своём куске кода как о методе, потом его начинает называть функцией.
    Ответ написан
    Комментировать