Ответы пользователя по тегу Java
  • Есть ли хороший справочник по стандартной библиотеке Java?

    @frozen_coder
    Java-developer
    В дополнение к комментариям про документацию и чтение исходников (что определённо отличный выбор и лучший справочник), если вам очень нужны именно книги и на русском, то есть две:

    1. Карманный справочник
    2. Шилдт

    Но всё таки настоятельно советую использовать самый лучший и самый свежий справочник
    Ответ написан
    Комментировать
  • Возможна ли структура данных из разнородных элементов в Java?

    @frozen_coder
    Java-developer
    Просто List без Generic (Raw types). List list = new ArrayList();

    Но это такое, клиенту вашему норм будет такие данные читать? У этих классов общего класса или интерфейса нет? Если это совсем разные сущности, то я бы обёртку сделал (DTO-класс) с разными полями.
    Ответ написан
    2 комментария
  • Какие программы писать новичку в Java?

    @frozen_coder
    Java-developer
    Есть у меня список ссылок на такой случай, но вам придётся самой выбрать. Я не знаю на каком вы этапе освоения java, но думаю, что надо выбирать что-то небольшое (чтобы не тянулось очень долго и был быстрый результат) и что-то интересное вам лично, чтобы вам было приятно и увлекательно это делать. Не бойтесь, если чего-то не знаете - гуглите как сделать нужную вам задачу и найдёте или подсказки, или описание на обычном языке, или решение, на которое можно посмотреть, закрыть и повторить самостоятельно, разобрать как оно было сделано. Итак:

    1. https://www.codementor.io/npostolovski/40-side-pro...
    2. https://github.com/karan/Projects-Solutions/blob/m...
    3. https://habr.com/ru/post/345092/
    4. Вот это просто отличный список идей для любых языков - https://eax.me/programming-language-learning/
    5. Тут есть список того, что хорошо бы знать любому разрабу и в конце список проектов - https://gist.github.com/gabriel-fallen/5337067
    6. www.itmathrepetitor.ru/zadachi-po-programmirovaniyu
    7. https://docs.google.com/document/d/16h9Qw2vkAlhw-T...
    8. https://docs.google.com/document/d/1wHTv7y-KZnBg6b...
    9. Тут много всяких тестовых заданий по разным языкам, в том числе и Java - https://github.com/Hexlet/ru-test-assignments
    10. https://github.com/peterservice-rnd/new-job/blob/m...
    11. https://github.com/peterservice-rnd/new-job/blob/m...
    12. https://github.com/peterservice-rnd/new-job/blob/m...

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

    P.S. Тостер обрубает отображение ссылки по длине, если что и последние 3 ссылки - это разные :)
    Ответ написан
    1 комментарий
  • Обязателен ли инициализатор у дочернего класса?

    @frozen_coder
    Java-developer
    Во-первых, ваш конструктор в Animal не имеет смысла в том виде, в котором вы его привели - без аргументов вы просто поля класа переприсвоили сами в себя, наверно вы забыли написать аргументы у контруктора name и age.
    Во-вторых, Александр Варакосов неправ и контрукторы не наследуются.

    В java есть конструкторы по-умолчанию - контруктор без агрументов. Он создается компилятором автоматически, если у класса не объявлено ни одного конструктора.
    В конструкторах дочерних классов компилятор сам вставляет первой строкой вызов родительского контруктора по умолчанию, при наличии такового в родительском классе. Т.о. если у дочернего класса нужно в конструкторе просто вызывать конструктор родителя по умолчанию, то в дочернем классе можно явно не объявлять никакой контруктор. А вот если у родителя нет конструктора без аргументов, то объявлять конструктор в дочернем классе необходимо, хотя бы чтобы вызвать в нём родительский конструктор.

    P.S. и ещё прочитайте про модификаторы доступа. В java принято поля делать private + getter/setter по необходимости. Вообще, возьмите какой-нибудь учебник по java, там всё расписано
    Ответ написан
    Комментировать
  • Java - как быстро погрузиться?

    @frozen_coder
    Java-developer
    Прочитайте последнюю версию Effective Java. Как подсказал illuzor , уже есть издание на русском

    Статей по мавену полно, пары хватит, чтобы понять. Он простой.
    Ответ написан
    5 комментариев
  • Можно ли использовать классы из .jar файла в python-коде?

    @frozen_coder
    Java-developer
    Я не пробовал, но говорят, что пресвятой Graal может объединять необъединяемое
    Ответ написан
    Комментировать
  • Где можно найти простые проекты на Spring?

    @frozen_coder
    Java-developer
    https://www.jhipster.tech/ - генератор простых проектов на Spring Boot + фронтенд с разными фреймворками. Можно подсмотреть что-нибудь интересное
    Ответ написан
    Комментировать
  • Как добавлять данные постепенно в БД?

    @frozen_coder
    Java-developer
    Как вам уже заметили в комментариях, вам необходимо погуглить назначения методов HTTP, ибо метод GET вы используете некорректно.

    Про сессию уже написали. Ещё вариант - это использовать local strorage на стороне клиента и писать-читать из него (немного поработать с js).

    Если варианты выше не подходят, то можно в отдельной таблице хранить проекты заявок. Т.е. пользователь сначала создаёт проект заявки первым запросом - сохраняем его в отдельную таблицу, а потом на каждом шаге в эту запись добавляются данные с отдельных форм. В финале этот проект становится заявкой - удаляется из таблицы проектов и переносится в таблицу заявок. Это решение не зависит от состояния сессии и local storage. Пользователь может продолжить заполнять заявку с другого клиента в другой сессии, ведь мы храним его проект у себя в базе. Как бонус, таким макаром можно при необходимости организовать пользовательские шаблоны заявок (если форма большая и пользователем большая её часть вводится одинаковая), чтобы быстро создавать новые заявки из сохранённых шаблонов.

    Если требованиями not null полей можно немного принебречь, то можно ввести статусы заявки или флаг является ли заявка проектом и хранить их в одной таблице. Тоже, что и в предыдущем варианте, но только всё в одной таблице и в итоге мы просто меняем статус или флаг записи.

    Ещё вариант, если у вас есть html, который не меняется по ходу изменения форм (т.е. вы просто меняете куски страниц при переходе по формам), то можно завести скрытые поля, куда дублировать заполнение формы пользователем. В итоге у вас эти скрытые поля заполнены и именно их содержимое отправляется на сервер в итоге. Видел такое на старых проектах.

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

    @frozen_coder
    Java-developer
    Что мешает создавать их по мере необходимости? Более того, можно вообще сделать один убер-контроллер, который будет отвечать на всё, но никогда не делайте так :)

    Контроллеры надо разделять по области их деятельности, по той проблеме, которую они решают. Он может отдавать не только же страницы, но и json'ы какие-нибудь - у вас же на странице может быть динамическое содержимое, которое нужно получать без перезагрузки всей страницы. А вдруг оно нужно ещё и на другой странице? Например список пользователей. У нас есть страница для отображения списка пользователей и мы в котроллере пользователей отдаём эту страницу, но где-то на другой странице тоже нужно отобразить список пользователей или вообще отдать просто через REST другой системе, логично метод, возвращающий json-списка пользователей разместить в этом же контроллере.

    Другой путь поделить ваши контроллеры на котроллеры, которые отдают страницы и контроллеры, которые отдают json. Это, можно сказать, вкусовщина.

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

    А если вы работаете в паре с фронтендером, то обязательно обудите с ним, какие ему нужны API и данные на клиенте - это также поможет вам решить ваши вопросы с контроллерами.
    Ответ написан
    1 комментарий
  • Где брать зависимости для Maven проекта?

    @frozen_coder
    Java-developer
    IDE тут вообще не при чём. Всё можно хоть в блокноте делать.
    Для генерации проекта с кучкой зависимостей, которые вы выбираете мышкой вам сюда - https://start.spring.io/ .
    Разберитесь с maven и pom.xml, как подключить репозиторий. Всё, что вам надо знать - это название либы, дальше идёте в mvnrepository, ищите её и там даже код есть для копи-пасты - https://mvnrepository.com/repos/central. Например - https://mvnrepository.com/artifact/org.apache.comm...
    Можете в jar запихать с embedded tomcat, можете в war пихать. IDE тут не причем. Всё можно делать в комьюнити. Не знаю, какие туториалы вы смотрите, но советую посмотреть на https://spring.io/guides - они простые, там всё описано по шагам, даже содержание pom.xml. Даже есть переводы - spring-projects.ru/projects/spring-framework
    Ответ написан
    1 комментарий
  • Кто может подсказать видеокурс или книгу(с переводом на русский) для обучения java с нуля?

    @frozen_coder
    Java-developer
    К видеокурсам добавлю лекции Тагира Валеева, который написал кучу статей по Java, сделал кучу докладов и пилит IDEA - https://www.youtube.com/playlist?list=PLlb7e2G7aSp...

    Кроме того, этот вопрос задавался много раз на тосторе и вообще есть куча инфы, если воспользоваться поиском.
    Ответ написан
    Комментировать
  • Как ОС понимает, какую версию просит java?

    @frozen_coder
    Java-developer
    К уже отвеченному добавлю, что легко, быстро и просто устанавливать и переключаться на разные sdk и их версии можно с помощью sdkman

    https://sdkman.io/usage
    Ответ написан
    Комментировать
  • Каковы этапы создания клиент-серверного приложения на Java?

    @frozen_coder
    Java-developer
    Вам нужно серверное приложение, которое будет предоставлять удалённым клиентам доступ к БД, но не напрямую, а через себя путём общения с клиентами по http с помощью REST (проще) или SOAP. Т.е. клиенты отправляют запросы и получают от сервера ответы. Сервер располагается (задеплоен) на удалённой машине в каком-нибудь облаке или куда вы его задеплоите. Там же рядышком будет БД, про которую будет знать только ваше серверное приложение, но не ваши клиенты. Клиенты знают только про приложение, вернее куда стучать, что отправлять и что ожидать в ответ.

    Гуглить в сторону Spring Boot, Spring Data. Также скорее всего понадобится механизм аутентификации и авторизации, если вы хотите, чтобы с приложением могли работать только ваши клиенты. Тогда смотрим ещё и в сторону Spring Security.

    Сначала почитайте про http, потом про REST. Если вам просто дёргать базу, то есть супер-простое решение - Spring Data Rest, которое сгенерит за вас все запросы и даже апи. Вам будет необходимо только сущности описать (почитайте про JPA и её аннотации) и объявить интерфейсы репозиториев и немного обвязки-настроек в properties прописать.

    Вот наглядный простой пример: spring-projects.ru/guides/accessing-data-rest . Там есть исходники на гитхабе, возьмите их, потыкайте, перепишите под себя.

    Когда будет готов сервер, то остаётся научить ваше десктопное приложение дёргать по http апишку вашего сервера - отправлять запросы и обрабатывать ответы. С десктопными приложениями не работал, но гугл вам легко подскажет какую-нибудь библиотеку http-клиента - okhttp какой-нибудь.
    Ответ написан
    Комментировать
  • Где потренироваться в решении практических задач в специфике Java?

    @frozen_coder
    Java-developer
    Пишите свои проекты. Возьмите какую-нибудь сложную систему взаимодействий в реальном мире и переведите её на классы, интерфейсы и проч.

    Что можно тянуть в одного на Java?

    А потом ищите стажировку или работу.
    Ответ написан
    Комментировать
  • Расскажите как парсить сайты с помощью java и Selenium?

    @frozen_coder
    Java-developer
    Я парсил с помощью jsoup.

    Я не чисто тестировщик, но когда надо было написать UI-тесты, использовал geb. Он очень удобный, но он на groovy (если знаете java, то проблем в освоении groovy не будет вообще). Попробуйте.
    Ответ написан
    Комментировать
  • Стоит ли браться за сложные задачи?

    @frozen_coder
    Java-developer
    "К черту всё! Берись и делай!" :)

    Вы описали несложную задачу (не писал ботов для VK, вот для Телеграмма это делается на раз-два, а уж с XML в java что только не делали + Spring'овое семейство фреймворков, которые покрывают дофига всего), но для ваших знаний будет самое оно для изучения. Это же реальный проект, которым Вы будете пользоваться. А не синтетический пример из книжки.

    Срочно начинайте делать без сомнений. Так ведь и просходит самое продуктивное изучение - есть проблема, не знаете как делать, узнаете и делаете. Главное ешьте слона по частям, декомпозируйте задачу на подзадачи по максимому и потихоньку пилите их по одной.
    Ответ написан
    Комментировать
  • Где найти хорошо задокументированные проекты на Java, чтобы читать код новичку?

    @frozen_coder
    Java-developer
    Идёте на github и ищете по трендам и языку java:

    https://github.com/trending/java?since=monthly

    Вот вам самые популярные за месяц и развиваемые репы.
    Либо просто пойдите посмотрите популярные библиотеки на java. Guava, Apache Commons, например. А стандратную библиотеку читали уже?
    У Spring'а неплохо документированный код.

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

    @frozen_coder
    Java-developer
    Практика подразумевает создание своего приложения, а не решение каких-то задачек в вакууме. Это мб тоже полезно, особенно на собесах, но вам после собеса реальную работу делать, а не задачки решаеть. Так вот придумайте себе задачу приближенную к реальному миру и решайте её, по ходу будете изучать что-то для её решения.

    Вот, например, для web:
    Что можно тянуть в одного на Java?
    Ответ написан
    1 комментарий
  • Стоит ли полностью переходить на последнии версии JAVA (9, 10, 11)?

    @frozen_coder
    Java-developer
    Вам за глаза хватит 8. 9 и 10 проходные. 11 вам тоже погоды не сделает.
    Ответ написан
    Комментировать