Рубрика «java» - 313

Многие знают, что назревающий возможный скандал между крупными игроками IT-рынка Google и Oracle, подспудной причиной которого стала популярная платформа Android, вылился в суд между корпорациями, который начался в понедельник 16 апреля. Суть претензий Oracle заключается в том, что компания, купив в 2009 году Sun Microsystems, приобрела авторские права на язык программирования Java и теперь интернет-гигант незаконно использует технологии Java в Android, нарушая, таким образом, патенты Oracle.

Не вдаваясь в подробности, собственно юридических вопросов патентного права, кажется любопытным проследить логику адвокатов Oracle в намерении доказать, что Google отнюдь не начинала с чистого листа в Android, а исходный код системы, как минимум, содержит прямые вставки непосредственно из исходного кода Java. Всего, если отметить ради интереса, Oracle обвиняет Google в копировании 103 400 строк Java-кода (подробное описание иска можно посмотреть в этом pdf-документе)

Итак, после первичного заявления адвокатов Oracle о сознательном отказе от патентных отчислений в пользу законного владельца технологий, рассмотрение вопроса стало более конкретным. В суд был приглашен Джошуа Блох, работающий в данный момент в Google и должность которого в корпорации обозначена как Chief Java Architect at Google (при этом не лишним будет отметить то обстоятельство, что Блох восемь лет проработал в Sun, перед тем как перейти на работу в интернет-гиганте).
Читать полностью »

JavaOne Уставшие, но довольные члены команды JetBrains вернулись сегодня с одного из знаковых событий для всего Java-сообщества — конференции JavaOne Russia 2012 в Москве.

В течение двух дней наши ведущие разработчики общались с посетителями конференции на стенде компании и отвечали на многочисленные вопросы не только о «флагманском» продукте JetBrains — одной из лучших сред для разработки на Java — IntelliJ IDEA, но и о новом, объектно-ориентированном языке со статичной типизацией Kotlin, который предназначен для разработки на платформе Java.

Читать полностью »

Размеры объектов в Java уже обсуждались на Хабре, например, здесь или здесь. Мне бы хотелось подробнее остановиться на размерах многомерных массивов — простая вещь, которая для меня стала неожиданной.

Оптимизируя вычислительный алгоритм по памяти, я наткнулся на то, что при определённых (вполне разумных) входных параметрах создаётся массив float[500][14761][2]. Сколько он может занимать в памяти (на HotSpot 1.6.0_26 32bit, если кому интересно)? Я примерно прикинул, что 500*14 761*2*sizeof(float) = 500*14 761*2*4 = 59 044 000 байт плюс какой-то оверхед. Решив проверить, как на самом деле, я воспользовался Eclipse Memory Analyzer (невероятно волшебная вещь, рекомендую!) и обнаружил, что «Retained Heap» для этого массива составляет 206 662 016 байт! Неплохой оверхед — 350%. Посмотрим, почему так получилось.
Читать полностью »

Большая часть кода Android приложения работает в контексте компонент, таких как Activity, Service, ContentProvider или BroadcastReceiver. Рассмотрим, как в системе Android организованно взаимодействие этих компонент с потоками.

При запуске приложения система выполняет ряд операций: создаёт процесс ОС с именем, совпадающим с наименованием пакета приложения, присваивает созданному процессу уникальный идентификатор пользователя, который по сути является именем пользователя в ОС Linux. Затем система запускает Dalvik VM где создаётся главный поток приложения, называемый также «поток пользовательского интерфейса (UI thread)». В этом потоке выполняются все четыре компонента Android приложения: Activity, Service, ContentProvider, BroadcastReceiver. Выполнение кода в потоке пользовательского интерфейса организованно посредством «цикла обработки событий» и очереди сообщений.
Читать полностью »

Открою не Америку, но шкатулку Пандоры: в Java-коде много бойлерплейта. Типовые геттеры, сеттеры и конструкторы, методы ленивой инициализации, методы toString, hashCode, equals, обработчики исключений, которые никогда не выбрасываются, закрывалки потоков, блоки синхронизации. Проблема заключается даже не в том, чтобы написать всё это — современные среды разработки справляются с такими задачами нажатием нескольких клавиш. Сложность в поддержании бойлерплейта в актуальном состоянии по мере внесения модификаций в код. А в некоторых случаях (многопоточность, реализация методов hashCode и equals) и сам шаблонный код написать без ошибок — далеко не простая задача. Одним из решений проблемы является генерация кода, и в этой статье я расскажу про проект Lombok — библиотеку, которая не только может избавить вас от бойлерплейта, но и сделать это максимально прозрачно, с минимальной конфигурацией и, что немаловажно, с поддержкой на уровне среды разработки.
Читать полностью »

17-18 апреля 2012 года в Москве, в здании Российской Академии Наук прошла, уже вторая по счёту, конференция JavaOne/Oracle Develop. В прошлом году я посещал сие мероприятие и мне очень понравилось, поэтому приобрёл входной билет как только они появились в продаже. К слову, их минимальная стоимость выросла вдвое относительно прошлого года, но осталась вполне адекватной — 1 000 рублей.

image
Автор — Trukhin Yuri

На входе встречал известный Java-персонаж Дюк.
Читать полностью »

  В последнее время очень часто появляются фреймворки которые позволяют разработчику реализовывать функционал в свободном виде не прибегая к наследованию от интерфейсов. Примеры можно увидеть в таких как EJB 3, JUnit 4, JSF 2, Spring Framework 3 и т.д.
Под катом найдете обсуждение обоих подходов.
Читать полностью »

Записи конференции Lang.NEXT 2012 для тех, кто интересуется языками программирования

В начале апреля на базе кампуса Microsoft в Рэдмонде прошла специализированная индустриальная конференция, посвященная языкам программирования — Lang.NEXT 2012. В рамках конференции своими наработками и результатами исследований поделились эксперты известных корпораций (например, Microsoft, Google, Facebook, Oracle) и ведущих университетов (включая MIT, Stanford, Berkeley).

Для всех энтузиастов мира программирования на Channel 9 доступны записи и презентации выступлений.
Читать полностью »

Прочитав недавно появившуюся статью Маршруты на картах Google в вашем Android-приложении, я решил показать еще один альтернативный подход, для решения этой задачи. Возможно он даст немного большее представление о работе с google-maps и поможет новичкам быстрее разобраться с этим вопросом.
Читать полностью »

После полутора лет досудебных разбирательств, сотен рассмотренных документов с участием 75 адвокатов с обеих сторон, представители Oracle и Google сойдутся лицом к лицу в окружном суде Северной Калифорнии, чтобы выяснить, подлежат ли языки программирования защите копирайтом.

Столь кардинальную постановку предложил сам судья. В специальном запросе на прошлой неделе суд постановил, что Google и Oracle должны твёрдо разъяснить свои позиции по фундаментальному вопросу: «применимы ли законы о защите интеллектуальной собственности в отношении языков программирования». И компании уже предоставили свои ответы. В частности, компания Google высказалась чётко: «Нет, языки программирования не подлежат защите копирайтом. Компания Google всегда придерживалась такой позиции».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js