Класс Scanner в Java — обзор с примерами использования

business

Основная задача класса Scanner в Java состоит в том, чтобы сканировать полученные данные. Источники этих данных могут быть самые разнообразные, файлы, ввод с консоли или даже строки. Базовый функционал класса легко умеет отделять такие примитивные типы как byte, short, float, String и другие. Сканирование происходит при помощи поиска разделителя или так называемоего токена. Также в дело могут быть применены регулярные выражение, для которых в классе Scanner существуют определенные методы. Токен может быть представлен любым из символом: пробел, табуляция или любым другим символом. Также и разделитель строк зачастую представлен символом перевода…

Read More

Обзор структуры JVM. Принципы распределения памяти.

Java Virtual Machine

Как известно JVM очень сильно упрощает и автоматизирует работу с памятью. В Java программах программист просто объявляет переменные, даже не беспокоясь о том, как занятая память будет освобождена. Хотя в некоторых случаях случайным образом можно добиться утечки памяти, где программа просто начнёт пожирать память большими объемами, однако в большинстве случаев все происходит автоматически и без проблем. Типы распределения памяти Если говорить в общем, JVM распределяет память на стек (stack) и хип (heap). У каждой программы на Java есть как минимум один родительский процесс, где в каждом процессе располагается обязательно один…

Read More

Обзор класса String в Java. Детальное рассмотрение функционала.

String coffee

В данной статье будут рассмотрены базовые функции по работе со строками. Где будет объснено назначения класса String в Java, сложение, сравнение, поиск и другой функционал связанный со строками. Назначение класса String в Java Класс String, в первую очередь, предназначен для работы со строками. Ранее мы рассматривали, что в Java существуют строковые литералы и строковые объекты. Давайте рассмотрим основные особенности класса String: Класс имеет immutable состояние. Это означает, что после создания, каждый раз модифицируя его мы будет получать не модифицированный класс, а новую копию. В свою очередь, чтобы избежать излишнего использования…

Read More

Как хранится в памяти java.lang.String. Оптимизация использования.

Класс java.lang.String пожалуй один из более всего используемых в Java. С помощью строк можно хранить большое множество разных типов данных. Далее в статье мы подробнее рассмотрим, как JVM хранит данные, оптимизацию хранения и другие особенности строк в Java. Что такое pool строк Это определенное хранилище в памяти JVM для хранение строк. Еще это хранилище называется, как Java String Pool. В зависимости от версии Java хранится данные будут по разному. В Java 6 строки хранились в PermGen пространстве, которое настраивалось при старте JVM. Данное пространство памяти было статическим, расширять его в…

Read More

Многопоточность в Java. Обзор Runnable, Thread, Object.

Многоазадачность

Многопоточность в Java представлена двумя базовыми сущностями. Это процессы и потоки. В Java многопоточном програмировании чаще всего используются потоки, хотя в реальной жизни существуют и много-процессные приложение. Процессы в Java Процесс — это самодостаточная среда выполнения программы. Каждый процесс имеет свое пространство в памяти. Часто под термином процесс подразумевается целое приложение. Зачастую коммуникация между процессами производится с помощью IPC ресурсов: пайплайнов или сокетов. Для того, чтобы создать много-процессное приложение предусмотрен класс ProcessBuilder. Потоки в Java Поток — часто называют легковесными процессоми. Как и процессы потоки предоставляют среду для выполнение операций.…

Read More