Задать вопрос
  • Как и за какой период стать Junior Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    При упорном труде можно за 1 год изучить основы java. С другой стороны, все индивидуально. Можно и за 5 лет ничему не научиться. Все зависит от вас.

    Обучаюсь кстати в JavaRush

    Знаю нескольких разработчиков, которые пошли на курсы, так как знаний полученных на JavaRush не хватило вовсе.

    К вопросу о том, что нужно изучить по Java, тут зависит от направления, которое вас интересует. Т.е. enterprise или android разработка.

    Базовая программа применимая и к enterprise и к android:
    - java core (JCF, Mutlithreading, Stream API, reflection, annotation, jdbc)
    - структуры данных и алгоритмы, паттерны проектирования
    - Build tools: Maven, Gradle
    - VCS - git
    - основы TCP / IP
    - основы OOP, SQL (ACID, уровни изоляции)

    Для enterprise:
    - java enterprise (jsp, jstl, servlet), tomcat, jetty
    - Spring Framework (Spring MVC, Spring Data, Thymeleaf, Spring Boot, Spring Security) основы REST
    - Hibernate (ORM), HQL
    - aws / heroku
    - возможно разные CICD (circleci, travis)
    - jira, confluence, trello

    Для android:
    - kotlin
    - Android API
    - ORM фреймворки (ormlite, room и возможно другие)
    - Firebase

    Вот, отсюда можете глянуть на программу занятий по Java Core - https://www.dist.it-academy.by/course/java-develop...
    А отсюда взять программу Java Enterprise - https://www.dist.it-academy.by/course/java-develop...
    Ответ написан
    Комментировать
  • На java ничего не создают?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Скажу честно, сам довольно долго не хотел изучать Java, так как начитался всяких статей от разработчиков. Там было и про то, какая Java медленная, сложная и что вообще умирает или даже умерла. И знаете, когда вы только начинаете изучать тот или иной язык, то вы обычно, стараетесь прислушаться к мнению "экспертов" и сразу же отметаете тот или иной язык. Например, одним из "минусов" языка java было то, что на ней не пишут драйвера, не пишут серьезные игры, не пишут операционные системы и десктопный софт. Но с таким же успехом можно это соотнести и к JS. На нем тоже не пишут OS или драйвера. Хоть десктопный софт пишут на JS (ElectronJS), но назвать его серьезным довольно сложно.

    Соответственно, выбирайте не язык, а направление (backend, frontend, mobile, desktop, gamedev). А затем согласно выбранному направлению выберите наиболее подходящий для этого язык.
    Java - enterprise, web, mobile (android)
    JS, PHP - web, erp, mobile (react native),
    Python - data science, machine learning, erp, web
    C# - enterprise, web, gamedev
    C++ / C - gamedev, desktop, drivers

    Понятное дело, что если потребуется написать игру на Java, то для нее есть огромное количество движков и библиотек (libgdx, jmonkey), но лучше конечно же это сделать на C# (Unity) или C++ (Unreal Engine).
    Если интересует android разработка, то лучше начать изучать Java / Kotlin (лучше Kotlin). Если хотите быстро штамповать сайты, то PHP, Python и т.д.

    Java стабильный язык, фреймворки на нем появляется не так часто, как это происходит на JS..
    Также я рекомендовал бы вам попробовать разные сферы разработки, чтобы разобраться в том, куда лежит душа. Я попробовал и фронт-энд и бэкенд и мобайл и т.д. И остановился на бэкенд. Возможно, что вам понравится automation QA или еще что-нибудь. В общем, можете смело начинать изучение любого языка (Java, JS, Python) и развивайтесь дальше

    К тому же, знание одного языка недостаточно на мой взгляд. Писать бэкенд не зная как функционирует фронт или наоборот сложно, но можно. А значит, вам нужно изучить языки и для фронта и бэка для лучшего понимания.
    Ответ написан
    Комментировать
  • Какой IDE выбрать вместо Borland C++?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А почему не CLion ? Вроде тоже хороший IDE. Либо Visual Studio.
    Ответ написан
    Комментировать
  • Насколько важно знать алгоритмов в яп Java и какие алгоритмы нужны?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Рекомендую прочитать книгу Роберт Лафоре - Структуры данных и алгоритмы Java.
    К вопросу о том, сколько алгоритмов нужно знать скажу, что достаточно знать базовые алгоритмы и пожалуй, владеть английским, чтобы при необходимости уметь разобраться в нужном.
    Базовые:
    - линейный поиск
    - двоичный поиск
    - пузырьковая сортировка
    - быстрая сортировка

    А так можно покопаться в других алгоритмах тоже (алгоритм Беллмана-Форда, алгоритм Дейкстры, алгоритм А*, кодирование Хаффмана, алгоритм ruin & recreate для решения VRP &TRP, ханойская башня и т.д.). Сам сейчас разбираюсь с некоторыми из них, так как приходится применять их в проекте.

    Кстати, есть простое приложение для андроид, которое описывает суть разных алгоритмов при помощи инфографики.
    https://play.google.com/store/apps/details?id=wiki...

    А вот, тут репозиторий с алгоритмами на Java
    https://github.com/TheAlgorithms/Java
    Ответ написан
    Комментировать
  • Проблема с кодировкой с postgresql в IDEA, как решить?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Проверьте кодировку используюмую в БД.
    Также попробуйте к урл для подключения к Бд добавить ?useUnicode=yes&characterEncoding=UTF-8
    Например,
    jdbc:postgresql://localhost:5432/example_db?useUnicode=yes&characterEncoding=UTF-8
    Ответ написан
  • Как вывести дерево рубрик записей с самими заголовками статей?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    По сути это можно сделать по средство навигационного меню, Но так как на сайте будет много рубрик и записей необходимо это автоматизировать

    Наверное, не самая лучшая идея для этого использовать нав. меню.
    Однако, это можно сделать средствами РНР и WP Codex.

    Проще говоря, нужно вывести список рубрик в виде вложенного дерева, и если я нахожусь на странице какой либо записи из этих рубрик, чтобы показывало названия записей из этой же рубрики.

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

    Проверить является ли просматриваемая страница страницей категории (или архива):
    https://wp-kama.ru/function/is_category
    https://wp-kama.ru/function/is_archive

    Проверить является ли просматриваемая страница страницей записи:
    https://wp-kama.ru/function/is_singular
    https://wp-kama.ru/function/is_single

    Получить рубрику присвоенную к этой статье:
    https://wp-kama.ru/function/wp_get_post_categories
    https://wp-kama.ru/function/get_the_category

    Получить статьи из указанной рубрики:
    https://wp-kama.ru/function/wp_query
    Для получения из выбранной категории обратите внимание на это:
    https://wp-kama.ru/function/wp_query#categories

    Сниппеты готовых меню в виде дерева:
    https://www.jqueryscript.net/blog/Best-Tree-View-P...
    https://bootsnipp.com/snippets/Pax
    docs.offlajn.com/vertical-menu/11-menu-navigation-...

    Или можете поискать готовые плагины:
    Например, https://wordpress.org/plugins/post-categories-tree/
    Гуглим - wordpress category tree view
    Ответ написан
  • Выбивает ошибку в классах Java, что изменить или почитать на будущее?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Прочитайте любую книгу по Java.
    Можете начать с Г. Шилдт - Руководство по Java для начинающих.
    А насчет ошибки:
    у вас в одном java файле (Main.java) содержится 2 public класса
    public class Main{} 
    public class BANKACCOUT{}

    Также обратите внимание на Java naming convention. Вместо названия класса BANKACCOUT должно быть BankAccount
    Ответ написан
    Комментировать
  • Какой курс java выбрать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    It-Academy (https://www.it-academy.by/)
    2-3 месяца Java Fundamentals
    3-4 месяца Java Enterprise
    + помогают с трудоустройством.
    Но скажу заранее, знаний полученных на любых курсах недостаточно, чтобы стать крепким джуном. В любом случае вам нужно прочитать определенный минимум книг, иметь багаж теоретических знаний и притом не только Java, но и sql, xml, regex, json. Владеть английским (на уровне чтения тех. документации). Изучить алгоритмы и структуры данных и т.д.
    А вообще поищите аналогичные вопросы на этом сайте. Уже не первый раз всплывают подобные вопросы и было дано много развернутых ответов
    Ответ написан
    7 комментариев
  • Как работает класс Calendar в этом коде?

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

    Как решить проблему с «Unable to create converter for class»?
    На виртуальном устройстве в настройках был установлен часовой пояс GTM-0, а у меня +2. Это и решило проблему.


    А я еще тогда обратил ваше внимание на то, что время у вас и так указано в миллисекундах.
    public static Calendar getDate() {
    Calendar date = Calendar.getInstance();
    date.setTimeInMillis(timestamp * 1000);
    return date;
    }

    А сеттер setTimeInMillis принимает время в миллисекундах. Так зачем вы умножаете timestamp на 1000?
    Не нужно умножать на 1000. Иначе вы в качестве текущего года получаете 53152 вместо 2021

    Вот, для наглядности:
    public static void main(String[] args) {
        long timestamp = System.currentTimeMillis();
        Calendar calendar = Calendar.getInstance();
    // Ваш код:
        calendar.setTimeInMillis(timestamp * 1000);
        System.out.println(calendar.getTime());
    // Мой код:
        calendar.setTimeInMillis(timestamp);
        System.out.println(calendar.getTime());
      }
    Ответ написан
  • Как вынести отдельное количества продукта с листа java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    А какое отношение клиентская часть имееть к серверному?
    При добавлении количества товара в input общая цена не изменяется

    Это срабатывает на клиенте и тут может помочь JavaScript, а не Java

    Как вынести отдельное количества продукта с листа java?

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

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вот, решениe для Jackson:
    https://stackoverflow.com/questions/43981487/how-t...
    Вот, решение для Gson:
    https://stackoverflow.com/questions/47111676/gson-...
    Вот, решение для SImple Json:
    https://stackoverflow.com/questions/50402343/how-t...
    Ответ написан
    Комментировать
  • Подходит ли книга Брюса Эккеля "Философия Java" для изучения ЯП с полного нуля?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если выбираешь именно между книгами по Java, то можешь присмотреться к следующим:
    Г. Шилдт - Java руководство для начинающих (или например, ,Java Head First O'Reilly)
    Далее подойдет Б. Эккель - Философия Java
    Также можно еще Г.Шилдт - Полное руководство по Java
    Затем можно глянуть на Рауль-Габриэль Урма - Современный язык Java

    Ну и конечно же прочитать такие книги, как:
    Clean Code,
    Роберт Лафоре - Структуры данных и алгоритмы java,
    Дж. Блох - Java. Эффективное программирование
    Ответ написан
    Комментировать
  • Почему возникает ошибка компиляции Android приложения?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Реимпортируйте класс R..
    Затем почистите кеш (Invalidate cache & restart) и перезапустите заново. Должно помочь.
    Также проверьте есть ли в xml такой id R.id.textViewTitle
    Ответ написан
    1 комментарий
  • ITextPDF - Java. Почему не отображаются шрифты на кириллице?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Cannot resolve constructor 'Paragraph(java.lang.String, com.itextpdf.text.Font)'

    Очевидно, что такого конструктора не существует. Посмотрите, в исходниках какие конструкторы существуют.
    Вот, например, документация
    https://kb.itextpdf.com/home/it5kb/examples/using-fonts
    https://www.tutorialspoint.com/itext/itext_setting...
    Ответ написан
    Комментировать
  • Как обращаться к классу через интерфейс?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    В фреймворках например, в том же Spring, реализован такой принцип, как DI (dependency injection). Все сводится к тому, что вы можете внедрить интерфейс, вместо самой реализации. Это упрощает процесс тестирования и разработки, так как вы можете "подсунуть" другую реализацию этого интерфейса. Например, на production вам нужно подключиться к реальной БД и использовать соответствующие репозитории, а во время тестирования вы можете замокать другие реализации интерфейса.
    Допустим, что у вас есть интерфейс IServer с методом connect()
    А реализации у него могут быть разные. Например,
    FtpConnect implements IServer,  SshConnect implements IServer
    Соответственно, внедрив зависимость IServer в код, вы можете указать какая реализация данного интерфейса должны быть внедрена.
    Посмотрите на фреймворки:
    Guice -
    https://www.baeldung.com/guice
    Dagger -
    https://dagger.dev/
    Ответ написан
  • Как указывать параметр запроса "кириллицей" на OpenWeatherMap?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Вот, что написано в документации по поводу названия городов.
    By city name. Input the city name or its part and get the list of the most proper cities in the world. Example - Lon or Lond or London. The more precise city name you put the more precise list you will get. To make it more precise put the city's name or its part, comma, the name of the county or 2-letter country code. You will get all proper cities in chosen county. The order is important - the first is city name than comma than county. Example - Lon, UK or Lon, GB or London, GB or Lon, England. By geographic coordinates.


    Соответственно, с кириллицей не работает. Но вы можете добавить такой функционал. Например, в приложении заведите enum с англ. и с русскими названиями городов. Например, LONDON ("London", "Лондон")

    Организовал ввод названия города через меню и вот таким образом

    Я бы например, сделал бы не ввод названия города, а выбор из выпадающего списка. А то мало ли на какой языке пользователь решит ввести название города.
    Ответ написан
  • Зачем нужны типы данных byte и short в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Зачем в языке программирования так много типов данных?
    Особенно byte или short, ведь их полностью заменяет int. Зачем они нужны? В чем их профит?

    Тип данных int занимает 4 байта, а byte - 1 байт, а short - 2 байта.
    Соответственно, в условиях ограниченной памяти нужно использовать только соответствующие типы примитивов.

    60436b2020216873254157.png
    Ответ написан
  • Как настроить перенаправление с www на без www в yoast seo?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    Вообще, подобное лучше настраивать через htaccess для Apache или через конфиги nginx.
    Даже сама компания Yoast об этом говорит.
    https://yoast.com/how-to-remove-www-from-your-url/
    https://yoast.com/video/ask-yoast-redirecting-domain/
    Но если вы по каким-то причинам не хотите делать это на уровне конфигов, то сделайте на уровне РНР
    https://stackoverflow.com/questions/2079457/www-to...
    Ответ написан
    2 комментария
  • Как создать сервис бронирования на java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Я как-то раз писал сервис по бронированию номеров отелей. Это реальный проект или учебный?
    Если реальный проект, то посмотрите в сторону использования API Hotelbeds или GoGlobal.
    Рекомендую Hotelbeds. У них в тестовом режиме доступно до 50 запросов в сутки, а в препродакшн неограниченное кол-во запросов. Правда, нужно заплатить сумму 3-4К у.е. и рассказать про деятельность (b2b, b2c) и т.д.

    Если учебный проект, то тут зависит от того в каком объеме вы хотите реализовать вашу задачу.
    Например, для поиска можно подключить Hibernate Search или ElasticSearch, а можно обойтись простым sql запросом.

    Есть класс комнат и класс с резервацией, а так-же DTOшки к ним, теперь мне нужно написать примерно такой код: если в коллекции есть комната X, проверить, есть ли промежуток дат (timestamp) от A1 до A2.
    Фишка в том, что я приблизительно понимаю что делать и в то же время не знаю, как это написать.


    Как вы и сказали, код писать не буду, но расскажу примерно, как это можно сделать. Предположим, что есть некий контроллер, метод которого принимает некий DTO состоящий из: номера комнаты (roomNum), а также 2-х дат (from & to).
    Далее вы передаете этот DTO на уровень сервисного слоя и обрабатываете. Далее вам необходимо на уровне репозитория написать метод, который ищет по вхождению даты.
    Вот, похожий вопрос:
    https://stackoverflow.com/questions/39784344/check...
    Вот, примеры кода:

    findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);


    или:

    @Query(value = "from EntityClassTable t where yourDate BETWEEN :startDate AND :endDate")
    public List<EntityClassTable> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);


    Несколько аспектов, на которые вам нужно обратить внимание:
    - также нужно проверить номер на занятость. Т.е. если у вас есть резервация на указанную дату, то не бронировать номер.
    - Если номер не найдет, то выбросить исключение и т.д.
    Ответ написан
    Комментировать
  • С помощью чего открыть .jar плагин minecraft чтобы изменить его?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если вкратце, то изучите реверс индженеринг.
    Jar это по факту тот же zip. Но внутри архива лежат class файлы (байткод). Соответственно, вам нужно декомпилировать их в исходники или можете поискать исходники (source code) на гитхаб, битбакет и т.д. Вдруг, это опенсорсный проект.
    Можете начать с этого аналогичного вопроса:
    https://stackoverflow.com/questions/647116/how-to-...
    А лучше начните изучение самого языка, а потом вопросов будет относительно меньше.
    Ответ написан
    2 комментария