Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Болты и гайки - это головоломка, в которой вам нужно откручивать болты с досок! Ваша задача - выбрать правильный болт для откручивания, чтобы вы могли открутить все доски! Соревнуйтесь с друзьями и коллегами!

Болты и Гайки

Казуальные, Головоломки, Логическая

Играть

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Java JDK

6 постов сначала свежее
5
itstorytelling
itstorytelling
15 дней назад
Информатика • Алексей Гладков

23.05.1995 - Официально представлены Java и HotJava [вехи_истории]⁠⁠

23.05.1995 - Официально представлены Java и HotJava [вехи_истории] Технологии, Программа, История IT, IT, Java, Приложение на java, Java JDK, Программирование, Разработка, Веб-разработка, Android разработка, Программист, Информатика

🗓 23.05.1995 - Официально представлены Java и HotJava [вехи_истории]

☀️ Компания Sun Microsystems официально представила язык программирования Java и браузер HotJava на выставке SunWorld ’95 в Сан-Франциско. Это стало поворотным моментом в истории Интернета и программирования.

🌐 Java была создана командой во главе с Джеймсом Гослингом как универсальный язык, способный работать на любой платформе

Write Once, Run Anywhere

Это сделало её особенно привлекательной для разработки веб-приложений и встроенных систем.

23.05.1995 - Официально представлены Java и HotJava [вехи_истории] Технологии, Программа, История IT, IT, Java, Приложение на java, Java JDK, Программирование, Разработка, Веб-разработка, Android разработка, Программист, Информатика

Браузер HotJava

🧭 Одновременно был представлен браузер HotJava, первый, способный выполнять Java-апплеты прямо на веб-странице. Это казалось настоящим чудом в 1995 году — динамический, интерактивный контент в эпоху, когда веб был почти полностью статичным.

🚀 С тех пор Java стала основой для множества корпоративных систем, мобильных приложений (Android, до того как пришел Kotlin), серверного ПО и даже банковских платформ. Она по-прежнему входит в число самых популярных языков программирования в мире.

💚 Ролик про историю Java, обязательно будет на канале, а пока - отмечаемся в комментариях, кому этот ЯП знаком не понаслышке)

👇👇Наш канал на других площадках👇👇
YouTube | RuTube | Telegram | Pikabu
=====================================

Показать полностью 1
[моё] Технологии Программа История IT IT Java Приложение на java Java JDK Программирование Разработка Веб-разработка Android разработка Программист Информатика
0
9
user8126985
1 год назад

Гав, мяу, JVM, JDK, JRE и все такое (немного Java в ленту)⁠⁠

Проще всего понять о чем говорим посмотреть на эту картинку. Более подробно в этом телеграмм-канале

Гав, мяу, JVM, JDK, JRE и все такое (немного Java в ленту) Java, Java JDK, Программирование, Web-программирование, IT, Длиннопост, Telegram (ссылка)

В чем суть и различие?

JDK (Java Development Kit) - включает в себя Java Development Tools и среду выполнения Java - JRE (Java Runtime Environment).

JDT (Java development tools) - включают в себя около 40 различных инструментов: javac (компилятор), java (лаунчер для приложений), javap (java class file disassembler), jdb (java debugger) и др.

JRE - это пакет всего необходимого для запуска скомпилированной Java-программы. Включает в себя виртуальную машину JVM и библиотеку классов Java Class Library.

Резюмируем. Есть JDK для ведения разработки, которое содержит JRE и интсрументы разработки (тот же компилятор и дебаггер). Дальше сам JRE содержит какую-то JVM и библиотеку непонятных классов

Непосредственно JVM

JVM (Java Virtual Machine) - программа предназначенная для выполнения байт-кода. Благодрая которой, Java может работать на всех платформах. Раньше программы писали под определенную платформу, а теперь можно написать на Java и работать программа будет везде. Собственно JVM существует масса как комерческих, так и с открытым исходным кодом. А для чего пишется столько различных JVM? Нуу... Чтобы на какой-нибудь операционке работало быстрее, так же можно написать свою JVM для каких-либо своих целей

Что делает? Отвечает за загрузку классов, выполнение байт-кода, управление памятью и очисткой мусора (знаменитый сборщик мусора)

А что за байт-код? Когда мы компилирует программу мы получаем на выходе файлы с расширением .class. Это и есть файлы с байт-кодом

Есть вопрос гораздо интереснее, а как это файлы JVM находит? Что за сущность, которая говорит JVM: "О смотри что нашел, тебе нужно?". Сие носит название как Class loader

Class Loader

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

Загрузчики:

1) Bootstrap classloader загружает основные библиотеки Java, расположенные в папке <JAVA_HOME>/jre/lib. Этот загрузчик является частью ядра JVM, написан на нативном коде (C, C++). Когда JVM загружает классы из rt.jar, она не выполняет все этапы проверки, которые выполняются при загрузке любого другого класс-файла т.к. JVM изначально известно, что все эти классы уже проверены. Поэтому, включать в этот архив какие-либо свои файлы не стоит, в отличие от наших классов, их JVM проверяет

2) Extension classloader загружает код в каталоги расширений (<JAVA_HOME>/jre/lib/ext, или любой другой каталог, указанный системным свойством java.ext.dirs). Если нужно, чтобы какой-то класс загружался каждый раз при старте Java машины, можешь скопировать исходный файл класса в эту папку, и он будет автоматически загружаться

3) System classloader загружает код, найденный в java.class.path, который сопоставляется с переменной среды CLASSPATH. Это реализуется классом sun.misc.Launcher$AppClassLoader.

Загрузчик классов выполняет в строгом порядке:

1) загрузка - находит и импортирует двоичные данные для типа.

2) связывание - выполняет проверку, подготовку и (необязательно) разрешение.

3) проверка - обеспечивает правильность импортируемого типа.

4) подготовка - выделяет память для переменных класса и инициализация памяти значениями по умолчанию.

5) разрешение - преобразует символические ссылки из типа в прямые ссылки.

6) инициализация - вызывает код Java, который инициализирует переменные класса их правильными начальными значениями.

Немного о проверке корректности .class

Файл скомпилированного класса (.class) содержит дополнительную информацию о классе: имя, модификаторы, супер-класс, супер-интерфейсы, поля, методы и атрибуты

Так при загрузке класса:

1) происходит чтение класс-файла, т.е проверка корректности формата

2) создается представление класса в Constant pool (Meta space, область памяти для такого рода делов)

3) грузятся супер-классы и супер-интерфейсы. Если они не будут загружены, то и сам класс не будет загружен

Загрузчик классов написан на Java. Поэтому возможно создать свой собственный загрузчик классов, не понимая тонких деталей JVM. У каждого загрузчика классов Java есть родительский загрузчик классов, определенный при создании экземпляра нового загрузчика классов или в качестве системного загрузчика классов по умолчанию для виртуальной машины

И это не все

Java нужно как-то интерпретировать байт-код, для этого есть угадайте что, интерпретатор, работает он быстро, но его недостатком является медленное выполнение. Если функция выполняется много раз он каждый раз заново компилирует байт-код в машинный код. Такую проблему решает JIT

JIT (just in time) - компилятор, который использует интерпретатор когда увидит функцию, использующую несколько раз. Т.е. интерпретатор видит повторяющийся код => отдает его на съедение JIT, а после использует сразу скомпилированный код от JIT (нативный код) и ему не нужно заново компилировать байт-код

Области тьмы (памяти)

JVM использует множество областей памяти для работы, одни области сооздаются при запуске программы и работают пока она не закончится, другие существуют поменьше

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

2) Run-Time Constant Pool - область хранения класса или интерфейса в рантайме. Хранит информацию о классе, константы (числовые литералы, ссылки на методы и поля)

3) Native Method Stacks - стеки для поддержки нативных методов, написанных не на Java

4) Java Virtual Machine Stacks - стек для потоков, т.е. каждый поток имеет свой стек. Стеки могут быть как фиксированного размера, так и динамически изменяться

5) Program Counter Register (PCR) - каждый поток имеет такую область памяти, в ней хранится адрес инструкции на которой поток завершился, чтобы потом начать с этой инструкции

Frame - новый frame создается каждый раз, когда вызывается метод. Frame уничтожается, когда завершается вызов метода. Соответсвенно раз фрэйм создается для создания метода, каждый фрейм имеет свои константы, локальные переменные. А фрейм, который выполняетсяв данный момент называется текущим, т.к. работать может только один фрейм во всей программе.
Каждый frame содержит ссылку на run-time constant pool для поддержки динамического связывания метода. Динамическое связывание загружает классы по мере необходимости. Позднее связывание методов и переменных вносит изменения в другие классы, которые метод использует с меньшей вероятностью нарушить этот код.

Почитать о том как я проходил собеседования, об IT и жизни можешь в этом телеграмм-канале

Показать полностью 1
Java Java JDK Программирование Web-программирование IT Длиннопост Telegram (ссылка)
1
2
user7646486
1 год назад

Java ошибка⁠⁠

У кого нибудь была такая ошибка работы java? Зашел в vsc и все красным оказалось

как будто всю библиотеку Джавы не видит
Переустановка не помогла

создал фаил python все работает

Java ошибка Ошибка, Java, Visual studio Code, Python, Java JDK
Java ошибка Ошибка, Java, Visual studio Code, Python, Java JDK
Java ошибка Ошибка, Java, Visual studio Code, Python, Java JDK
Показать полностью 3
[моё] Ошибка Java Visual studio Code Python Java JDK
11
15
DELETED
2 года назад
Лига Сисадминов

Jаvа Orаcle JDК или что⁠⁠

Протестировал загрузку Jаvа Orаcle JDК.
При регистрации нет локации для РФ. Не приходят письма подтверждения регистрации аккаунта на почту в домен ru.
Не работает загрузка из локации непосредственно в РФ:

Jаvа Orаcle JDК или что Java JDK, США, Oracle, Санкции, Железный занавес
Jаvа Orаcle JDК или что Java JDK, США, Oracle, Санкции, Железный занавес

Через VPN загружается.

Или на каких JVM сейчас кошерно запускать Java софт?

Показать полностью 1
Java JDK США Oracle Санкции Железный занавес
12
CanYouKillMe
7 лет назад

Вопрос к лиге программистов. JDK 9 и майнер?⁠⁠

Здравствуйте, сегодня понадобилось установить JDK 9 для лабок в универе.

Скачал с официального сайта Оракла, начал установку. После завершения установки немогу найти как запустить программу, но вместо этого нашел интересный бонус в папке установки

Вопрос к лиге программистов. JDK 9 и майнер? Java, Cgminer, Java JDK, Вопрос, Подскажите

Приложение - cgminer-fpgaonly и внизу файлик miner.php.
Вот и вопрос
я верно понимаю, в джаву начали пихать майнер???
Комент для минусов внутри.

[моё] Java Cgminer Java JDK Вопрос Подскажите
25
SamIwan
SamIwan
8 лет назад

Программирование для новичиков. Введение Часть 1!⁠⁠

[моё] Java Программирование Компьютер Приложение на java Java JDK Видео
10
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии