Обновить
356.89

Java *

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

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

Разговор с Brian Goetz о будущем Java

Время на прочтение5 мин
Охват и читатели6.6K
Два дня назад на конференции в Нидерландах мне посчастливилось поговорить с Brian Goetz, делавшим доклады о будущем Java, Project Coin, параллелизме, Fork-Join и лямбда-выражениях. Я задал ему вопросы о поглощении Sun Oracle-ом, мобильной Java и о том, что за давление идёт в прессе на Oracle в последнее время. Ниже — краткое описание того, что я узнал в этот интересный день.
Читать дальше →

Два в одном: spring-mobile & spring-android

Время на прочтение2 мин
Охват и читатели11K
Продолжая тему новых проектов SpringSource хотел бы в одном посте рассказать сразу о двух новых проектах: Spring Mobile & Spring Android.
image
Читать дальше →

Задача по Java Core

Время на прочтение1 мин
Охват и читатели8.8K
В продолжение к хорошей задаче, опубликованной не так давно на хабре, хотелось бы предложить ещё одну задачу.
Смысл, конечно, именно в решении задачи в голове, не используя спец. редакторы и компилятор.

Дан код на Java:
public class HelloWorld {
  public static void main(String... args) {
    http://habrahabr.ru;
    System.out.println("Hello World!");
  }
}


Вопрос: скомпилируется или нет?
Читать дальше →

Интеграция с «Социальными» сервисами при помощи Spring-Social

Время на прочтение2 мин
Охват и читатели6.9K
image
Не так давно копилка проектов SpringSource пополнилась еще одним проектом — Spring-Social, который призван упростить создание приложений интегрированных с различными социальными сетями. Данный проект никак не засветился на Habr-е, попробую восполнить этот пробел.
Читать дальше →

[Перевод] Java Best Practices. Преобразование Char в Byte и обратно

Время на прочтение4 мин
Охват и читатели37K
Сайт Java Code Geeks изредка публикует посты в серии Java Best Practices — проверенные на production решения. Получив разрешение от автора, перевёл один из постов. Дальше — больше.

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

[Перевод] Разделение JVM на платную/бесплатную версии: истерия, начавшаяся с поста в твиттере

Время на прочтение2 мин
Охват и читатели1.1K
В продолжение топика Oracle намеревается разделить JVM На платную/бесплатную версии

pelegri, редактор известнейшего блога о Java и иже — The Aquarium, отписался про ту истерии, которая началась после заявления представителя Oracle относительно Premium-версии JVM.

Мой вольный перевод со вставками необходимых ссылок ниже.

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

C Java в Mac OS X не все так печально

Время на прочтение1 мин
Охват и читатели7.7K
картинка, чтобы не было скучноНе так давно стало известно, что Apple прекращает развитие своей собственной версии JVM. Это событие вызвало широкий резонанс, и было воспринято большинством как однозначный признак заката Java. Да, у платформы сейчас не лучшие времена, разработка новой версии идет не так быстро, как хотелось бы, но умирать еще рано.
И этому появилось подтверждение, снова от Apple: компания активно подключается к проекту OpenJDK c целью создания полноценной открытой Java-машины для Mac OS X.
Если вспомнить, что IBM также подключилась к проекту (покинув Apache Harmony), то можно предположить, что все происходящее — вовсе не закат, а новая жизнь для Java. Ведь JVM прекрасно существует под Windows, не будучи разработанной Microsoft и включенной в поставку системы.

5 вещей, которых вы не знали о многопоточности

Время на прочтение10 мин
Охват и читатели299K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →

Первый взгляд на Activiti

Время на прочтение4 мин
Охват и читатели22K
activiti
На этой неделе пришлось столкнуться с Activiti — новым workflow движком для Java, и так как тема эта еще не обсуждалась на Хабре, решил поделиться впечатлениями. Сразу скажу — впечатления немного печальные, но об этом под катом

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

Gradle: Tasks Are Code

Время на прочтение5 мин
Охват и читатели48K
В предыдущем топике я постарался вкратце рассказать, что же такое Gradle и на каких идеях он построен. Также была освещена концепция Source Sets и функциональность, с ней связанная.

Теперь я хотел бы рассказать о том, чем Gradle зацепил лично меня. Речь пойдёт о способах работы с задачами. Задача в Gradle — близкий аналог Ant Target. И, чтобы не путаться в терминах, под задачей (или task) далее по тексту всегда будет подразумеваться Gradle Task. Если речь будет идти о сущности из Ant, то это будет указано явно: Ant task.

Так вот, задачи в Gradle создаются при помощи специального dsl (domain specific language) на основе Groovy. И возможности, которые этот dsl предоставлет, на мой взгляд, почти безграничны в сравнении с ant или maven.

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

Gradle: Better Way To Build

Время на прочтение5 мин
Охват и читатели115K
Ни один проект с использованием платформы Java (и не только) не обходится без инструментов сборки (если только это не «Hello, world!»). Рано или поздно, но собирать дистрибутив руками надоедает. Да и компилировать из консоли было бы неплохо, если в проекте используется несколько разных IDE. А перед сборкой дистрибутива было бы здорово проставить номер версии в его имени. И unit тесты прогнать — не зря же Kent Beck книжки пишет. А там и Continues Integration на горизонте маячит. И здорово было бы научить CI сервер это все делать самостоятельно. Одним словом, есть уйма задач.

Раз есть задачи, то есть и решения. Думаю, большинство разработчиков хоть раз, но сталкивались с Ant. Очень многие используют Maven. Есть другие, не такие распространённые инструменты: GAnt, Buildr, и др. Каждый из них обладает набором своих плюсов и минусов, но сегодня я хочу представить вам кое-что новенькое. Gradle.
Читать дальше →

Почему Gradle?

Время на прочтение7 мин
Охват и читатели103K
Если вы еще не знаете, что такое Gradle, то о нём можно почитать в предыдущих двух обзорах:
  1. Gradle: Better Way To Build
  2. Gradle: Tasks Are Code

Не так давно c Maven на Gradle была переведена сборка Hibernate Core. На что информационное сообщество отреагировало неоднозначно. Я хочу представить вашему вниманию перевод статьи, посвященной миграции сборки Hibernate. В статье раскрываются причины принятия такого решения, описываются преимущества Gradle и проблемы с Maven2. Дальнейшее повествование ведётся от лица Steve Ebersole.
Читать дальше →

Джеймс Гослинг: почему Applе отказывается от JVM

Время на прочтение2 мин
Охват и читатели2.7K
Как известно, несколько дней назад компания Apple фактически отказалась от дальнейшей разработки Apple JVM. Прошло более десяти лет с тех пор как Стив Джобс со сцены конференции JavaOne 2000 заявлял, что сделает «лучшую на планете платформу для Java прямо из коробки».

В далёком 2000 году Sun занимала 150-е место в списке крупнейших корпораций Америки, опережая Oracle и Apple, не говоря уже о стартапе Google, который вошёл в список Fortune 500 только в 2005 году.

Что и говорить, времена изменились.
Читать дальше →

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

Отличный Java MVC фреймворк — Play Framework

Время на прочтение2 мин
Охват и читатели50K
Добрый день!

Не так давно, мне потребовался инструмент или фреймворк, для того чтобы в краткие сроки, создать небольшой сайт — витрину. Особых требований не было. Собственно, сама витрина и простейшая админка, с возможностью подредактировать параметры публикуемого контента. Главным требованием была скорость. Нужно было сделать это все за 1-2 дня, с учетом необходимости верстки дизайна.
Читать дальше →

Apple объявляет Java для Mac OS X 10.6 устаревшей

Время на прочтение1 мин
Охват и читатели3.2K
Java для платформы Mac OS X 10.6 портированная Apple объявлена устаревшей.

Другими словами компания Apple больше не будет поддерживать Java для своей операционной системе на прежнем уровне и возможно ее удаление из поставки будущих версий Mac OS X.

Ситуацию ухудшает отсутствие официальной версии Java SE для Mac OS X от Oracle.
image

Amino — новый UI toolkit для десктопных Java приложений

Время на прочтение3 мин
Охват и читатели3.7K
image
Хочу представить вам Amino — графическую библиотеку и очень классный UI toolkit. Изначально библиотека разрабатывалась Leonardo Sketch как вспомогательная, но теперь становится самостоятельным продуктом. Сейчас Amino находится в состоянии ранней alpha-версии и является 100% open source Java библиотекой, которая обладает следующими преимуществами:

  • 2D/3D сценография на различных движках (Java2D, JOGL и многие другие);
  • множественные UI контролы, синование с помощью CSS;
  • разнообразные утилиты, для ускорения процесса разработки;
  • протестирован до мелочей;
  • является 100% бесплатной (BSD);
  • 100% Java, готова к использованию на различных можно использовать в разных языках, портированных под JVM (Groovy, JRuby, Jython, JavaScript, JavaFX Script и так далее)

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

Пятничная задача

Время на прочтение1 мин
Охват и читатели2.7K
Всех с пятницой!

Проверяем знания и своё внимание. Дан код на Java:

  1. public class Foo {
  2.  private static Foo instance = new Foo();
  3.  private static final int DELTA = 6;
  4.  private static int BASE = 7;
  5.  private int x;
  6.  private Foo() {
  7.   x = BASE + DELTA;
  8.  }
  9.  public static void main(String... argv) {
  10.   System.out.println(Foo.instance.x);
  11.  }
  12. }


Внимание вопрос! Что будет выведено? А главное — почему?

UPD Осторожно — в комментариях уже присутствует правильный ответ. Прошу провести тест в других ЯП и привести результаты в комментариях.

Покрытие кода для Maven проектов (code coverage)

Время на прочтение2 мин
Охват и читатели11K
Структура Java проектов с использованием Maven предполагает некоторое колличество Unit-тестов.
Но одних лишь тестов мало, хочется иметь более полную информацию насколько наши тесты охватывают код.

Для этих целей есть ряд библиотек из которых я использую Emma (офф. сайт).
Читать дальше →

Java как язык для параллельных вычислений. Установка, настройка, первая программа

Время на прочтение2 мин
Охват и читатели20K
Здравствуйте,

Ни разу не видел за определённый промежуток своей работы с HPC людей, пишущих на Java параллельные программы. Сам писал кое-что на С, разглядывал Фортран, но душа всегда тянулась к Java. В конце концов сел и попробовал разобраться.

Содержание:
1) Имплементации MPI for Java; Что это? Где взять?
2) Как установить всё это? Как настроить?
3) Напишем свою самую-самую простую программу. Как её запустить?

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