Ответы пользователя по тегу Java
  • Подкиньте тему проекта на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вроде и синтаксис понимаю, могу прочитать код, но понимаю, что сам такое не написал бы. Я так понимаю, что это из-за отсутствия практики.

    Мне это состояние хорошо знакомо...
    Обычно, это может происходить не только из-за отсутствия практики, но и отсутствия теории тоже. Если вы изучали ЯП по видео туториалам, то формируется некое подобие "мозачиного" знания.
    Рекомендую первую очередь - прочитать книги по языку java (Шилдт - Полное руководство по Java),
    по алгоритмам (Роберт Лафоре - Структуры данных и алгоритмы),
    по рефакторингу (Clean Code),
    по паттернам проектирования (GoF, GRASP)
    по основам SQL (изучить основы sql (mysql, postgres), no sql). Обратить внимание на ACID.
    Далее расширьте свой кругозор изучением различных полезных библиотек на Java.
    Например, apache io, apache poi, apache commons lang3, jsoup. Поработайте чуть с Selenium.
    С учетом того, что вам интересен веб, то также стоит изучить oсновы html 5, css 3, javascript (vanilla, jquery).
    Я бы порекомендовал бы еще попробовать написать пару парсеров с использованием jsoup, это поможет больше сориентироваться в вебе.
    Так вот, подскажите, пожалуйста, какой бы можно сделать небольшой проект с задействованием ООП, многопоточки (только не сильно в нее углубляться), элементами Web (html, css, js) ну и прочим, что должен знать джун.

    Нуу... пожалуй, вам стоит развиваться дальше. Посмотрите в сторону jakarta EE. Изучите Spring (Spring Boot) и т.д.
    Ответ написан
    1 комментарий
  • Как создать справочник пользователей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Ну во-первых, уточните должна ли база данных быть локальной или можно хранить данные пользователей на удаленке.
    Если БД должна быть локальной, то посмотрите в сторону sqlite, возможно даже использование embedded db (h2, postgres и др.). Далее определитесь с технологией ORM. Например, hibernate, eclipselink, ormlite, room и др.
    Теперь, касаемо интерфейса: можно использовать JavaFX.
    Я бы, если пришлось писать на Java выбрал бы Spring + JavaFX. В Spring добавил бы все нужные зависимости типа hibernate, spring data и т.д.
    Если БД будет удаленной, то на том же Spring нужно поднять restful сервис, который будет создавать учетки для пользователей, реализовывать crud записей и т.д. Таким образом получится клиент - серверное приложение
    Ответ написан
    Комментировать
  • Hibernate @ManyToOne как не создавать запись, если она уже создана?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    1) В репозиторий для City (предположительно CityRepository или CityDao) добавьте метод, который вернет вам объект City по его названию.
    Optional<City> findCityByCityName(String cityName);

    примерно так
    2) Далее
    Как сделать, чтобы hibernate не пытался добавить запись в таблицу городов, если там уже есть нужный город?

    Теперь, в сервисном уровне вы вытягиваете город по его названию и если такого нет, то добавляете, а если такой город есть, то можете в методе orElseThrow() выбросить RuntimeException исключение о том, что такой город есть. Можно создать свое исключение типа: CityExistsException

    Если не хотите использовать Optional, то можно создать метод в репозитории boolean existsByCityName(String cityName); А дальше также если true, то выбрасываете исключение
    Ответ написан
    1 комментарий
  • Как сделать чтоб бот не выключался через 90 секунд?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Ответ на ваш вопрос - https://stackoverflow.com/questions/51241023/herok...

    public class Bot extends TelegramLongPollingBot {
        private static final String TOKEN = System.getenv("TOKEN");
        private static final String BOT_USERNAME = System.getenv("BOT_USERNAME");
        private static final String PORT = System.getenv("PORT");
    
        public void onUpdateReceived(Update update) {
    
        }
    
        public String getBotUsername() {
            return BOT_USERNAME;
        }
    
        public String getBotToken() {
            return TOKEN;
        }
    
        public static void main(String[] args) {
            ApiContextInitializer.init();
            TelegramBotsApi api = new TelegramBotsApi();
            try {
                api.registerBot(new Bot());
            } catch (TelegramApiRequestException e) {
                e.printStackTrace();
            }
    
            try (ServerSocket serverSocket = new ServerSocket(Integer.valueOf(PORT))) {
                while (true) {
                    Socket clientSocket = serverSocket.accept();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    Ответ написан
    1 комментарий
  • Как работает интерпретация в Java JVM?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вот, тут достаточно хороший ответ:
    link
    Ответ написан
    Комментировать
  • Как получить данные со стороннего ресурса?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Так как вы работаете со Spring, то посмотрите в сторону RestTemplate
    https://www.baeldung.com/rest-template
    Ответ написан
    Комментировать
  • Как прочитать информацию из файла в несколько массивов, используя Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Построчно читаете файл, далее каждую строку по мере чтения делаете split() по символу ";" и добавляете в массив или коллекцию.
    Ответ написан
  • Клавиатуры Telegram Bot?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Но к сожалению ошибка на ошибке.

    Факт того, что не работает, но при этом есть ошибка (исключение) и есть "куда копать" является хорошим признаком. Плохо, когда нет никаких ошибок и при этом ничего не работает.

    Что касается выбрасываемого исключения, то чтобы помочь вам было бы неплохо, чтобы вы предоставили лог ошибок (stacktrace). А так, сложно сказать, с чем у вас именно наблюдается проблема
    Ответ написан
    Комментировать
  • Как парсить XML на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    правильно ли я считаю что нужно xml в массив занести и массив уже в бд

    А как по другому вы себе это представляете? Сперва сериализуете xml в pojo, а затем каждый pojo добавляете в некую коллекцию или массив. Ну и сохраняете в БД.
    Если брать по минималке, то прочитайте про DOM Parser на Java для парсинга. Можете также дополнительно изучить SAX Parser. Или же можете подключить библиотеку.

    Ну и для работы с БД понадобится библиотека. Как минимум jdbc. А так можно посмотреть в сторону ORM (hibernate, eclipselink, ormlite и др.)

    Нечто похожее я писал, но без сохранения в БД.
    Вот, ссылка на гит:
    https://github.com/azerphoenix/cbar-currency
    Ответ написан
  • Как вернуть массив в обратном порядке?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день
    https://www.softwaretestinghelp.com/reverse-an-arr...

    public class Main
    {
        public static void main(String[] args) {
        Integer[] intArray = {10,20,30,40,50,60,70,80,90};
         
      //print array starting from first element
        System.out.println("Original Array:");
        for(int i=0;i<intArray.length;i++)
             System.out.print(intArray[i] + "  ");
         
        System.out.println();
         
        //print array starting from last element
        System.out.println("Original Array printed in reverse order:");
             for(int i=intArray.length-1;i>=0;i--)
             System.out.print(intArray[i] + "  ");
        }
    }
    Ответ написан
  • Почему при билде выдается ошибка?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Судя по данному ответу это баг Android Gradle Plugin
    https://stackoverflow.com/questions/52712063/build...
    Попробуйте сменить версию плагина
    Ответ написан
  • Не могу начать работать с данными полученные из Java Servlet в Ajax?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Как начать работать с данными полученными из сервлета через ajax , они не читаются, может что-то не то с кодировкой?

    Обратите внимание на то, что у вас проблемы с кодировкой. В первую очередь, если вытягиваемая информация хранится в БД, то посмотрите как она там хранится. Может быть, что данные сохраняются с другой кодировкой при сохранении в БД.

    Также обратите внимание, что исходный код нужно предоставлять в виде кода (обрамить тегом code и указать язык).
    Ответ написан
    Комментировать
  • Как разделить на десятые если они попадают?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Рекомендую серьезно изучить основы программирования и в частности программирование на Java. Разберитесь с такими понятиями, как динамическая и статическая типизация.
    Java является языком со статической типизацией. Это означает, что тип переменной объявляется в момент ее объявления. Также рекомендую прочитать про такие понятия. как явное и неявное приведение типов.
    Исходя из вышесказанного непонятно следующее:
    а если в porci2 попадается число с десятыми или сотыми, то приложение вылетает...

    Откуда прилетает число с десятыми и сотыми в переменную porci2 или input1 ?
    Подозреваю, что значения porci2 и input1 являются неким int или long значением, а извне вы присваиваете этим переменным вещественный тип чисел. Если так, то для этип переменных используйте тип double и это должно решить проблему.
    Ответ написан
    7 комментариев
  • Как сымитировать просмотр ссылки в приложении?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Подозреваю, что вы ищете это решение:
    https://stackoverflow.com/questions/4325639/androi...
    Если вкратце, то вам нужно выполнить javascript код, который подменит некий DOM элемент на странице
    Ответ написан
    Комментировать
  • Как сделать умножение числа из editTextr на другое число?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Для того, чтобы объективно ответить на ваш вопрос вы не предоставили ни сниппет кода, ни stacktrace. И это усложняет задачу, ибо непонятно с какой именно проблемой вы столкнулись и как ее побороть.
    Вроде бы прошел курс в SoloLearn

    Уж поверьте человеку, который игрался с этой программкой и "прошел" этот курс ради забавы, это абсолютно полный бред. Вы ничему из этого курса не научитесь. Если уж хотите изучить Java & Android из туториалов, то смотрите в сторону startandroid udemy javarush, платные курсы и др. Но скажу заранее, что в определенный момент вам в любом случае будет не хватать этих знаний и вам придется скачать книги и прочитать их.
    Г. Шилдт - Полное руководство Java (10-е издание)
    Java Head First и др.

    Как и ответили мои коллеги - возможно, что вы столкнулись с проблемой приведения типов. А возможно, что у вас до этого и не доходит и выпадает другое исключение. Чтобы не быть голословным предоставьте ваш исходный код, а также стектрейс (лог ошибок).
    Ответ написан
  • Как стать джуном backend Java/kotlin?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Как правило, чаще для джуна требуется знание таких технологий, фреймворков и библиотек, как:
    Spring, Play, Hibernate, Elastic, JDBC, Jakarta EE, основы работы с СУБД (postgres, mysql). Не будет лишним знание основ html, css, js, regex. Ну и смотрите, требования в вакансиях.
    В плане источников для обучения можно использовать: книги, туториалы и курсы. Курсы и туториалы нужно тщательно выбирать, но обязательно опираться на книги.
    Также для получения доп. опыта можно записаться в различные лабы и тренинги.
    Например, https://www.training.ru/#!/Training/2681?lang=ru
    Ответ написан
    Комментировать
  • Как создать в java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    1) как создать функцию в java которая будет вызываеться каждую секунду .

    Не совсем до конца понятно, что именно вы хотите сделать? Если вы хотите запланировать выполнение определенного скрипта, то можно например, использовать CRON (если на linux сервере), т.е. планировщик будет ежесекундно запускать ваш скрипт. Об этом речь? Если нет, то можно например, создать цикл внутри приложения, чтобы оно не закрывалось, а затем использовать различные библиотеки или даже ScheduledExecutorService из пакета java.concurrent для работы с schedule.
    Вот, список полезных ссылок:
    https://dzone.com/articles/schedulers-in-java-and-...
    https://stackoverflow.com/questions/7814089/how-to...
    https://leventov.medium.com/cronscheduler-a-reliab...

    2) как отправить запрос с java на файл в сервера. и получить содержимое файла

    Вот, тут https://www.baeldung.com/java-download-file есть наглядные примеры того, как это можно сделать. Все максимально хорошо расписано. Есть возможность применения сторонних библиотек и дефолтных классов.

    3) когда я создал программу и хочу ее запустить на 32 битном компьютере , как мне єто сделать?

    Нужно установить jre для 32 бит и там запустить ваше приложение.
    https://www.oracle.com/java/technologies/javase-jr...
    https://www.oracle.com/java/technologies/install-w...
    Для спринг приложений - https://habr.com/ru/post/193140/
    Ответ написан
  • DefaultBotSession.class?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    language-level - 14

    Это означает, что вам нужно в настройках проекта (ctrl + shift + alt + s) указать language level 14.
    И проверьте вашу версию Java. насколько я понял вам для работы с этой либой требуется 14 java
    начните с этого, а дальше уже посмотрим
    Ответ написан
  • An internal error occurred while attempting to perform this command ошибка майнкрафт?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    В первую очередь, рекомендую обратиться к разработчику плагина.

    java.lang.NoSuchMethodError: org.bukkit.inventory.Inventory.getTitle()Ljava/lang/String;

    Вот, тут ваша ошибка - не удалось найти метод getTitle()

    Вот, что выдает гугл:
    результат
    Вот, еще примерная ошибка тут - https://github.com/FabioZumbi12/RedProtect/issues/425
    В общем, откройте Issue в гитхаб (если у него репозиторий там) и обратитесь к разработчику
    Ответ написан
    Комментировать