Обновить
128K+

Java *

Объектно-ориентированный язык программирования

136,9
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Подводные камни Java. Часть 1

Время на прочтение11 мин
Охват и читатели18K
С какими трудностями встречается начинающий разработчик java? Как можно преодолеть эти трудности и исправить ошибки на ранних стадиях написания кода?

Хочу представить вашему вниманию небольшую статью. Статья предназначена как для начинающих, так и для тех, кто хотел бы улучшить свои навыки. Надеюсь данная публикация будет полезна не только начинающим, но и наставникам, проводящим занятия с учениками.

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

Контрольный список ошибок:

Читать дальше →

Как я ускорил обработку изображений на Android в 15 раз

Время на прочтение7 мин
Охват и читатели11K

Как оптимизировать обработку изображений в рантайме, когда необходимо создать 6 изображений, каждое из которых состоит из последовательно наложенных 15-16 PNG, не получив OutOfMemoryException по дороге?


image

Читать дальше →

Как стать Java разработчиком за 1,5 года

Время на прочтение10 мин
Охват и читатели316K

Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.



Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.


Моя первая статья: «IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там»

Читать дальше →

[Екатеринбург, анонс] Митап для Java-разработчиков

Время на прочтение2 мин
Охват и читатели1.6K
Мы уже писали, что такое JUG.EKB и зачем проводим митапы для Java-разработчиков. Сегодня анонсируем очередную встречу.
Читать дальше →

ModelMapper: путешествие туда и обратно

Время на прочтение10 мин
Охват и читатели81K
image

По известным причинам, бэкенд не может отдавать данные из репозитория как есть. Самая известная — сущностные зависимости берутся из базы не в таком виде, в котором их может понять фронт. Сюда же можно добавить и сложности с парсингом enum (если поля enum содержат дополнительные параметры), и многие другие сложности, возникающие при автоматическом приведении типов (или невозможности автоматического их приведения). Отсюда вытекает необходимость в использовании Data Transfer Object — DTO, понятном и для бэка, и для фронта.
Читать дальше →

Ява после извержения вулкана

Время на прочтение5 мин
Охват и читатели5.6K
Какой-то саркастический работодатель попросил улучшить Яву, и, хотя, я не президент Индонезии, но, вот что накатал быстренько, чтобы случайно озадачиться на полдня. Мне хотелось бы вот так. Общий принцип — максимальное упрощение без потери логического контроля. Для сего, очевидно, нужно не только добавить в язык то, чего там не было, но и убрать из языка многое из того, что там было, продолжая добрую традицию Си--.
Читать дальше →

Строители против синтаксиса Java

Время на прочтение5 мин
Охват и читатели25K

Шаблон проектирования «строитель» — один из самых популярных в Java.


Он простой, он помогает делать объекты неизменяемыми, и его можно генерировать инструментами вроде @Builder в Project Lombok или Immutables.


Но так ли удобен этот паттерн в Java?

Читать дальше →

Книга «Spring. Все паттерны проектирования»

Время на прочтение8 мин
Охват и читатели22K
image Привет, Хаброжители! Мы издали книгу в которой дается обзор фреймворка Spring 5 и паттернов проектирования для него. Объясняется принцип внедрения зависимостей (dependency injection), играющий ключевую роль при создании слабосвязанного кода во фреймворке Spring. Затем рассматриваются классические паттерны «Банды четырех» при проектировании приложений на Spring. В следующих частях книги автор рассматривает паттерны аспектно-ориентированного программирования (AOP), шаблоны JDBC, позволяющие абстрагировать доступ к базе данных. В заключительных главах книги автор исследует работу с MVC, реактивные шаблоны проектирования и паттерны проектирования, применяемые при конкурентном и параллельном программировании в Spring.

Предлагаем ознакомиться с отрывком «Паттерн «Объект доступа к данным»»
Читать дальше →

Spring Boot 2: что нового?

Время на прочтение10 мин
Охват и читатели27K

От переводчика: несмотря на то, что уже прошел год, вопросы о том что же нового дал нам 2-й Boot не заканчиваются. Писать такой контент с нуля — затея не самая умная. Поэтому решили перевести статью, которая нам кажется наиболее лаконичной и при этом достаточно полной.


Релиз Spring Boot 2 состоялся в начале 2018 года, и всем не терпится скорее посмотреть на него в деле. Этот релиз стал кульминацией 17 месяцев работы и более 6800 коммитов от 215 разных людей. Есть много крутых функций, которые стоит обсудить, так что поговорим о том, что нового в Spring Boot 2.


В этой статье мы рассмотрим:


  • Историю Spring Boot
  • Что нового в Spring Boot
  • Руководство по переходу на Spring Boot 2
Читать дальше →

Lombok, sources.jar и удобный дебаг

Время на прочтение15 мин
Охват и читатели7.7K
В нашей команде мы очень любим Lombok. Он позволяет писать меньше кода и меньше его рефакторить, что идеально подходит для ленивых разработчиков. Но если помимо артефакта проекта вы публикуете так же и исходники с документацией, то можете столкнуться с проблемой — код исходников не будет совпадать с байткодом. О том, как мы решали эту проблему и с какими трудностями столкнулись в процессе, я и расскажу в этом посте.


Читать дальше →

Выпускники IT-стажировок в Райффайзенбанке — о том, как это было

Время на прочтение8 мин
Охват и читатели19K
В 2018 году мы в Райффайзенбанке провели семь IT-школ в Москве и омском Raiffeisen TechCenter. К нам приходили ребята с разным образованием и опытом, всех их объединяло желание попробовать свои силы в больших серьёзных задачах и стать классными профессионалами. За месяцы стажировок 60 начинающих специалистов выросли в крепких джуниоров, большинство из них остались в команде и продолжают развивать цифровые продукты вместе с нами. Чем можно заняться на digital-стажировке в банке? Рассказывают выпускники.
Читать дальше →

Lombok возвращает величие Java

Время на прочтение11 мин
Охват и читатели145K


Мы в Grubhub почти во всём бэкенде используем Java. Это проверенный язык, который за последние 20 лет доказал свою скорость и надёжность. Но с годами возраст «старичка» всё-таки начал сказываться.

Java — один из самых популярных языков JVM, но не единственный. В последние годы конкуренцию ему составляют Scala, Clojure и Kotlin, которые обеспечивают новую функциональность и оптимизированные функции языка. Короче говоря, они позволяют делать больше с более лаконичным кодом.
Читать дальше →

Как быстро подготовиться к собеседованию, на котором будут вопросы по алгоритмам и технологиям обработки информации?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели11K
Приветствую всех читателей Хабра! Меня зовут Юрий, более 20 лет преподаю высокие технологии, Oracle, Microsoft и другие, а также занимаюсь созданием, разработкой и поддержкой нагруженных информационных систем для различных бизнес-заказчиков. Сегодня хотел бы рассказать вам об актуальном направлении: собеседованиях по технологиям обработки данных.

На собеседованиях такого плана работодателю бесполезно спрашивать у соискателя о технологиях, связанных с традиционным программированием. Поэтому я популярно расскажу, как готовиться к собеседованию только в одной узкой области, связанной с языками обработки информации, а именно — обработкой длинных целых чисел (длинная арифметика) и выявления информационных свойств объектов реального мира, которые описываются в длинных целых числах.
Читать дальше →

Ближайшие события

Сжатие данных алгоритмом Хаффмана

Время на прочтение15 мин
Охват и читатели72K

Вступление


В данной статье я расскажу вам о широко известном алгоритме Хаффмана, и вы наконец разберетесь, как все там устроено изнутри. После прочтения вы сможете своими руками(а главное, головой) написать архиватор, сжимающий реальные, черт подери, данные! Кто знает, быть может именно вам светит стать следующим Ричардом Хендриксом!


Да-да, об этом уже была статья на Хабре, но без практической реализации. Здесь же мы сфокусируемся как на теоретической части, так и на программерской. Итак, все под кат!

Читать дальше →

Пересылка запросов от Apache на Payara Server 5 в Ubuntu

Время на прочтение5 мин
Охват и читатели3.2K

В этой серии статей мы постараемся дать обзор основ использования Payara Server в «продакшане» с использованием Apache Web Server (httpd) и Ubuntu.

Читать дальше →

Как ухудшить производительность, улучшая её

Время на прочтение14 мин
Охват и читатели13K

Хотели как лучше, а получилось как всегда.
Виктор Черномырдин,
русский государственный деятель


Бывают в жизни случаи, когда ты вроде бы всё делаешь правильно, но что-то идёт не так.
Этот рассказ об одном из таких случаев.

Читать дальше →

Почему вы должны думать о функциональном программировании

Время на прочтение7 мин
Охват и читатели22K
Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию.

image

Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы:

  • всегда ли ваши проекты выполняются в определенные сроки?
  • Были ли у пользователей какие-либо жалобы?
  • Поддержка проекта никогда не занимала много времени?
  • Новый функционал всегда удачно вписывается в существующую архитектуру?

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

Eclipse выпускает GlassFish 5.1 для Java EE 8

Время на прочтение2 мин
Охват и читатели4.5K
Оригинал новости

image

Двигаясь вперед в развитии корпоративной Java, Eclipse Foundation представляет собственную версию сервера приложений GlassFish, которая традиционно служила эталонной реализацией платформы Java EE (Java Enterprise Edition).

Читать дальше →

26 рекомендаций по использованию типа var в Java

Время на прочтение19 мин
Охват и читатели42K

The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код, время выполнения или производительность. В основном компилятор проверяет правую часть от оператора присваивания и, исходя из нее, определяет конкретный тип переменной, а затем заменяет им var.


Кроме того, это полезно для сокращения многословности шаблонного кода, а так же позволяет ускорить сам процесс программирования. Например, очень удобно писать var evenAndOdd =... вместо Map<Boolean, List<Integer>> evenAndOdd =... .


Появление var не означает, что его везде и всегда удобно использовать, иногда более практично будет обойтись стандартными средствами.


В этой статье мы рассмотрим 26 ситуаций, с примерами того, когда можно использовать var, а когда этого делать не стоит.

Читать дальше →

Spring, байткод, JDK: топ-10 докладов JBreak 2018

Время на прочтение6 мин
Охват и читатели8.8K


Хабр, привет! Раньше мы проводили в Новосибирске Java-конференцию JBreak. В 2019-м решили её не проводить, но от этого доклады JBreak 2018 не перестают быть полезными, так что традиционно делимся подборкой лучших (по мнению зрителей). Тем более, что многие попавшие в эту подборку спикеры скоро приедут с новыми докладами в Москву на JPoint — можно как раз «заочно познакомиться» с ними и понять, хочется ли на московскую конференцию.

Как обычно, доклады идут от «младшего» к «старшему» по рейтингу, но отличия между местами небольшие — так что лучше не сравнивать придирчиво места, а смотреть всё по интересующим темам!

Под катом видео разбиты с оглавлением по содержимому поста, презентациями и короткими описаниями.
Читать дальше →