Атомарнихтипів Number ( Double , Float , Integer , Long ), Character , Boolean . Призначення та оглядосновнихметодів. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Атомарнихтипів Number ( Double , Float , Integer , Long ), Character , Boolean . Призначення та оглядосновнихметодів.



Бібліотека класів мови включає в себе набір допоміжних класів. Ці класи розташовані в пакетах java.lang і java.util. Java використовує вбудовані примітивні типи даних, наприклад, int і charдля забезпечення високої продуктивності. Ці типи даних не належать до класової ієрархії Java. Вони передаються методам по значенню, передати їх по посиланню неможливо. З цієї причини для кожного примітивного типу в Java реалізований спеціальний клас.

Клас Number представляє собою інтерфейс для роботи з усіма стандартними скалярними типами: - long, int, float і double.

Doubleі Float - підкласи класу Number. Ці класи містять декілька сервісних функцій, які полегшують роботу зі значеннями double і float. У кожного з класів є конструктори, що дозволяють ініціалізувати об'єкти значеннями типів double і float. Ці об'єкти можна ініціалізувати і об'єктом String, що містить текстове представлення дійсного числа.

Клас Integer - клас - оболонка для чисел типів int, short і byte, a клас Long - відповідно для типу long. Крім успадкованих методів свого суперкласу Number, класи Integer і Long містять методи для розбору текстового представлення чисел, і навпаки, для подання чисел у вигляді текстових рядків. Різні варіанти цих методів дозволяють вказувати підставу (систему числення), використовувану при перетворенні. Зазвичай використовуються двійкова, вісімкова, десяткова і шістнадцятковій системи числення.

parseInt (String) перетворює текстове представлення цілого числа, що міститься в змінній String, в значення типу int.

toString (int) перетворює передане як параметр ціле число в текстове представлення в десятковій системі.

Character - В даному класі знаходиться статичні константи та методи для роботи з окремими символами. Існує доволі велика кількість статичних логічних методів, які перевіряють характеристики символа, що передається в якості аргумента метода.

isLowerCase () повертає true, якщо символ-параметр нижнього регістру isUpperCase () робить те ж саме у випадку символів верхнього регістру.

isDigit () і isSpace () повертають true для цифр і пропусків, відповідно.

toLowerCase () і to U pperCase () виконують перетворення символів з ​​верхнього в нижній регістр і назад.

Клас Boolean - призначений загальним чином для представлення логічного значення в методі по посиланні визначені дві змінні true та false. Дані змінні відносяться до стрінгового типу. Конструктор bollean створює об’єкт, який містить значення true якщо рядок повертає значення true (слово true може бути написане будь-яким регістром). І повертає значення false, якщо повертається рядок з будь-яким іншим змістом. Для повернення логічного значення, що зберігається в об’єкті використовують логічний метод Booleanvallue..

40. Поняття про утилітах мови програмування Ява. Прості оболонки для

атомарних типів Number (Double, Float, Integer, Long), Character, Boolean.

Призначення та огляд основних методів.

Мова програмування Java є повністю об’єктно-орієнтованою. Це означає, що все що можливо в Java представлено об’єктами. Але в мові програмування Java існує 8 примітивних типів, які порушують дане правило. По-перше, арифметичні дії швидше та простіше виконувати над простими числами, а не з об’єктами класу. По-друге, в нових версіях Java залишили спадковість перших версій Java, яка була побудована без ООП. Для даних типів в мові Java створили відповідні класи, які називаються класи оболонки примітивних типів. В основному класи оболонки призначені не для обрахунків, а для дій, які виконуються при роботі з класами, а саме: створення об’єктів, перетворення об’єктів, одержання чисельних значень об’єктів в різних формах та передача об’єктів в методи по посиланню. В мові програмування Java для кожного примітивного типу існує відповідний клас. По даній ієрархії числові класи мають загальний батьківський клас Number, в якому описані 6 методів, що повертають значення, яке міститься в класі у відповідний тип.

bytevalue();

doublevalue();

floatvalue();

intvalue();

longvalue();

shortvalue();

Ці методи визначені в кожному з 6-ти числових класів оболонок. В кожному з 6-ти числових класів оболонок є статичні методи, що перетворюють рядки символів типу string у відповідний примітивний тип.

Byte.parseByte();

Double.parseDouble();

Float.parseFloat();

Integer.parseInteger();

Short.parseShort();

Long.parseLong();

В кожному з цих класів є статичні константи, що вказують на діапазон числових значень відповідного примітивного типу:

MAX_VALUE

MIN_VALUE

Крім того в класах Float та Double є ще три:

NaN

POSITIVE_INFINITY

NEGATIVE_INFINITY

Та логічні методи перевірки:

isNaN()

isLhFanity()

Клас Boolean

В даному класі, який призначений загальним чином для логічного значення в методі по посиланні визначені дві змінні true та false. Дані змінні відносяться до стрінгового типу. Конструктор bollean створює об’єкт, який містить значення true якщо рядок повертає значення true (слово true може бути написане будь-яким регістром). І повертає значення false, якщо повертається рядок з будь-яким іншим змістом. Для повернення логічного значення, що зберігається в об’єкті використовують логічний метод Booleanvallue.

 

Клас Character

В даному класі знаходиться статичні константи та методи для роботи з окремими символами. Існує доволі велика кількість статичних логічних методів, які перевіряють характеристики символа, що передається в якості аргумента метода.

Приклад:

  • isDef ined() — выясняет, определен ли символ в кодировке Unicode;
  • isDigit() — проверяет, является ли символ цифрой Unicode;
  • isidentifierignorable() — выясняет, нельзя ли использовать символ в идентификаторах;
  • isisocontroi() — определяет, является ли символ управляющим;
  • isJavaidentifierPart() — выясняет, можно ли использовать символ в идентификаторах;
  • isjavaidentifierstart() — определяет, может ли символ начинать идентификатор;
  • isLetter() — проверяет, является ли символ буквой Java;
  • IsLetterOrDigit() — Проверяет, является ли символ буквой или цифрой Unicode;
  • isLowerCase() — определяет, записан ли символ в нижнем регистре;
  • isSpaceChar() — выясняет, является ли символ пробелом в смысле Unicode;
  • isTitieCase() — проверяет, является ли символ титульным;
  • isUnicodeldentifierPart() — выясняет, можно ли использовать символ в именах Unicode;
  • isunicodeidentifierstart() — проверяет, является ли символ буквой Unicode;
  • isUpperCase() — проверяет, записан ли символ в верхнем регистре;
  • isWhitespace() — выясняет, является ли символ пробельным.

 

41. Поняття про утилітах мови програмування Ява. Утиліти Runtime,

System, Date, Math, Random. Призначення та огляд основних методів.

Runtime

Класс Runtime инкапсулирует интерпретатор Java. Вы не можете создать нового представителя этого класса, но можете, вызвав его статический метод, получить ссылку на работающий в данный момент объект Runtime. Обычно апплеты и другие непривелигированные программы не могут вызвать ни один из методов этого класса, не возбудив при этом исключения SecurityException. Одна из простых вещей, которую вы можете проделать с объектом Runtime - его останов, для этого достаточно вызвать метод exit(int code).

Управление памятью

Хотя Java и представляет собой систему с автоматической сборкой мусора, вы для проверки эффективности своего кода можете захотеть узнать, каков размер "кучи" и как много в ней осталось свободной памяти. Для получения этой информации нужно воспользоваться методами totalMemory и freeMemory.

ВНИМАНИЕ!

При необходимости вы можете "вручную" запустить сборщик мусора, вызвав метод gc. Если вы хотите оценить, сколько памяти требуется для работы вашему коду, лучше всего сначала вызвать gc, затем free-Memory, получив тем самым оценку свободной памяти, доступной в системе. Запустив после этого свою программу и вызвав freeMemory внутри нее, вы увидите, сколько памяти использует ваша программа.

Выполнение других программ

В безопасных средах вы можете использовать Java для выполнения других полновесных процессов в своей многозадачной операционной системе. Несколько форм метода ехес позволяют задавать имя программы и ее параметры.

В очередном примере используется специфичный для Windows вызов ехес, запускающий процесс notepad - простой текстовый редактор. В качестве параметра редактору передается имя одного из исходных файлов Java. Обратите внимание - ехес автоматически преобразует в строке-пути символы "/" в разделители пути в Windows - "\".

class ExecDemo { public static void main(String args[])   { Runtime r = Runtime. getRuntime(); Process p = null; String cmd[] = { "notepad", "/java/src/java/lang/Runtime.java" }; try     { p = r.exec(cmd); }     catch (Exception e)     { System.out.println("error executing " + cmd[0]); } } }

System

Класс System содержит любопытную коллекцию глобальных функций и переменных. В большинстве примеров этой книге для операций вывода мы использовали метод System.out.println(). В следующей главе будут детально рассмотрены потоки InputStream и OutputStream.

Метод currentTimeMillis возвращает текущее системное время в виде миллисекунд, прошедших с 1 января 1970 года.

Метод arraycopy можно использовать для быстрого копирования массива любого типа из одного места в памяти в другое. Ниже приведен пример копирования двух массивов с помощью этого метода.

class ACDemo { static byte a[] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 }; static byte b[] = { 77, 77, 77, 77, 77, 77, 77, 77, 77, 77 }; public static void main (String args[])   { System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); System.arraycopy(a, 0, b, 0, a.length); System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); System.arraycopy(a, 0, a, 1, a.length - 1); System.arraycopy(b, 1, b, 0, b.length - 1); System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); } }

Как вы можете заключить из результата работы этой программы, копирование можно выполнять в любом направлении, используя в качестве источника и приемника один и тот же объект.

Date

Класс Date используется для операций с датой и временем. Через него вы можете получить доступ к дате, месяцу, году, дню недели, часам, минутам, секундам. У объектов этого класса - несколько конструкторов. Самый простой - Date() - инициализирует объект текущими датой и временем. Три остальных конструктора предлагают дополнительные возможности задавать начальные значения для нового объекта.

  • Date(year, month, date) - устанавливает указанную дату, при этом время устанавливается в 00:00:00 (полночь).
  • Date(year, month, date, hours, minutes) - устанавливает указанные дату и время, секунды устанавливаются в 0.
  • Date(year, month, date, hours, minutes, seconds) - наиболее полное задание времени, в объекте устанавливаются указанные дата и время, в том числе и секунды.

Get и set

Класс Date включает в себя набор методов для получения и установки отдельных атрибутов, хранящихся в объекте. Каждая из функций семейства get - getYear, getMonth, getDate, getDay, getHours, getMi-nutes и getSeconds - возвращает целое значение. Каждой из функций семейства set - setYear, setMonth, setDate, setHours, setMinutes и setSeconds - в качестве параметра передается целое значение. Вы также можете получить представление объекта Date в виде значения типа long с помощью метода getTime. Возвращаемое этим методом значение представляет собой число миллисекунд, прошедших после 1 января 1970 года.

Math

Класс Math содержит функции с плавающей точкой, которые используются в геометрии и тригонометрии. Кроме того, в нем есть две константы, используемые в такого рода вычислениях: - Е (приблизительно 2.72) и PI (приблизительно 3.14159).

Тригонометрические функции

Приведенные ниже три функции имеют один параметр типа double, представляющий собой угол в радианах, и возвращают значение соответствующей тригонометрической функции.

  • sin(double а) возвращает синус угла а, заданного в радианах.
  • cos(double а) возвращает косинус угла а, заданного в радианах.
  • tan(double а) возвращает тангенс угла а, заданного в радианах.

Следующие четыре функции возвращают угол в радианах, соответствующий значению, переданному им в качестве параметра.

  • asin(double r) возвращает угол, синус которого равен г.
  • acos(double r) возвращает угол, косинус которого равен г.
  • atan(double r) возвращает угол, тангенс которого равен г.
  • atan2(double a, double b) возвращает угол, тангенс которого равен отношению а/b.

Степенные, показательные и логарифмические функции

  • pow(double у, double x) возвращает у, возведенное в степень х. Так, например, pow(2.0, 3.0) равно 8.0.
  • exp(double х) возвращает е в степени х.
  • log(double х) возвращает натуральный логарифм х.
  • sqrt(double х) возвращает квадратный корень х.

Округление

  • ceil(double а) возвращает наименьшее целое число, значение которого больше или равно а.
  • floor(double а) возвращает наибольшее целое число, значение которого меньше или равно а.
  • rint(double а) возвращает в типе double значение а с отброшенной дробной частью.
  • round(float а) возвращает округленное до ближайшего целого значение а.
  • round(double а) возвращает округленное до ближайшего длинного целого значение а.

Кроме того, в классе Math имеются полиморфные версии методов для получения модуля, нахождения минимального и максимального значений, работающие с числами типов int, long, float и double:

  • abs(a) возвращает модуль (абсолютное значение) а.
  • max(a, b) возвращает наибольший из своих аргументов.
  • min(a, b) возвращает наименьший из своих аргументов.

Random

Класс Random - это генератор псевдослучайных чисел. Используемый в нем алгоритм был взят из раздела 3.2.1 "Искусства программирования" Дональда Кнута. Обычно в качестве начального значения используется текущее время, что снижает вероятность получения повторяющихся последовательностей случайных чисел.

Из объекта класса Random можно извлекать 5 типов случайных чисел. Метод nextInt возвращает целое число, равномерно распределенное по всему диапазону этого типа. Аналогично, метод nextLong возвращает случайное число типа long. Методы nextFloat и nextDouble возвращают случайные числа соответственно типов float и double, равномерно распределенные на интервале 0.0..1.0. И, наконец, метод nextGaussian возвращает нормально распределенное случайное число со средним значением 0.0 и дисперсией 1.0.

 

42. Робота з рядками. Оболонка String. Основні методи.

В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Этот класс, называемый String, не что иное, как объектное представление неизменяемого символьного массива. В этом классе есть методы, которые позволяют сравнивать строки, осуществлять в них поиск и извлекать определенные символы и подстроки. Класс StringBuffer используется тогда, когда строку после создания требуется изменять. И String, и StringBuffer объявлены final, что означает, что ни от одного из этих классов нельзя производить подклассы. Это было сделано для того, чтобы можно было применить некоторые виды оптимизации позволяющие увеличить производительность при выполнении операций обработки строк. Как и в случае любого другого класса, вы можете создавать объекты типа String с помощью оператора new. Для создания пустой строки используется конструктор без параметров:

String s = new String():

Приведенный ниже фрагмент кода создает объект s типа String инициализируя его строкой из трех символов, переданных конструктору в качестве параметра в символьном массиве.

char chars[] = { 'а', 'b', 'с' }:String s = new String(chars);    System.out.println(s);

Этот фрагмент кода выводит строку "abc". Итак, у этого конструктора - 3 параметра:

String(char chars[], int начальныйИндекс, int числоСимволов);

Используем такой способ инициализации в нашем очередном примере:

char chars[] = { 'a', 'b', 'с', 'd', 'e', 'f' }:String s = new String(chars,2,3);System.out.println(s);

Этот фрагмент выведет "cde".

лас String в Java містить понад 50 методів, які можуть бути корисні при програмуванні. Нижче наведено список з найбільш корисних методів.

Методи String

Тип повернення Назва методу та його аргументи Опис
char charAt(int index) Повертає char значення за вказаним індексом
int codePointAt(int index) Повертає символ (Unicode code point) за вказаним індексом
int codePointBefore(int index) Повертає символ (Unicode code point) перед вказаним індексом
int codePointCount(int beginIndex, int endIndex) Повертає кількість кодових точок Unicode у зазначеному інтервалі в рядку.
int compareTo(String anotherString) Порівнює два рядки лексикографічно
int compareToIgnoreCase(String str) Порівнює два рядки лексикографічно, ігноруючи різницю в регістрах літер
String concat(String str) приєднує зазначений рядок str в кінець рядка
boolean contains(CharSequence s) Повертає true, тільки якщо рядок містить зазначену послідовність значень char
boolean contentEquals(CharSequence cs) Порівнює рядок із зазначеною послідовністю символів(CharSequence)
boolean endsWith(String suffix) Перевіряд чи рядок закінчується зазначеним суфіксом
boolean equals(Object anObject) Порівнює рядок із зазначеним об'єктом
boolean equalsIgnoreCase(String anotherString) Порівнює рядок з іншим рядком, ігноруючи регістр
byte[] getBytes() Кодує рядок у послідовність байт використовуючи символьний набір(charset) по замовчуванню, результат зберігається у новому байтовому масиві
byte[] getBytes(Charset charset) Кодує рядок у послідовність байт використовуючи наданий символьний набір(charset), результат зберігається у новий байтовий масив
byte[] getBytes(String charsetName) кодує рядок у послідовність байт використовуючи названий символьний набір, результат зберігається у новому байтовому масиві
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Копіює символи з рядка у символьний масив
int hashCode() Повертає ХЕШ-код для рядки
int indexOf(int ch) Повертає індекс першого входження зазначеного символу в рядок
int indexOf(int ch, int fromIndex) Повертає індекс символу у рядку починаючи пошук із зазначеного індексу
int indexOf(String str) Повертає індекс першого знаходження підрядка у рядку
int indexOf(String str, int fromIndex) Повертає індекс в рядку підрядка, починаючи пошук із зазначеної позиції
boolean isEmpty() Повертає true, тільки тоді, якщо довжина(length()) становить 0.
int lastIndexOf(int ch) Повертає індекс останнього входження зазначеного символу в рядку
int lastIndexOf(int ch, int fromIndex) Повертає індекс останнього входження зазначеного символу, шукаючи його із зазначеної позиції в рядку
int lastIndexOf(String str) Повертає індекс останнього входження зазначеного підрядка
int lastIndexOf(String str, int fromIndex) Повертає індекс останнього входження зазначеного підрядка, шукаючи його із зазначеного індексу у рядку
int length() Повертає довжину даного рядка
boolean matches(String regex) Говорить чи відповідає даний рядок заданому регулярному виразу
String replace(char oldChar, char newChar) Повертає новий рядок заміняючи усі входження символу(oldChar) в рядку на новий символ (newChar)
String replace(CharSequence target, CharSequence replacement) Заміняє в рядку підрядок target новою послідовністю replacement
String replaceAll(String regex, String replacement) Заміняє кожен підрядок в рядку, що співпадає з регулярним виразом(regex) новим підрядком(replacement)
String replaceFirst(String regex, String replacement) Заміняє перший підрядок, що відповідає заданому регулярному виразу на підрядок для заміни
String[] split(String regex) Розбиває рядок за певним правилом поданим у регулярному виразі
String[] split(String regex, int limit) Розбиває рядок за певним правилом поданим у регулярному виразі
boolean startsWith(String prefix) Перевіряє чи поточний рядок починається з заданого префікса
String substring(int beginIndex) Повертає підрядок з поточного рядка
String substring(int beginIndex, int endIndex) Повертає підрядок з поточного рядка
char[] toCharArray() Перетворює рядок у новий символьний масив
String toLowerCase() Перетворює усі символи рядка у нижній регістер використовуючи locale правило по замовчуванню
String toLowerCase(Locale locale) Перетворює усі символи рядка у нижній регістр використовуючи правило Locale.
String toUpperCase() Конвертує всі символи рядка у верхній регістер використовуючи locale правило по замовчуванню
String toUpperCase(Locale locale) Перетворює усі символи рядка у верхній регістер використовуюче правило подане у Locale.
String trim() Повертає копію рядка усуваючи пробіли спереду і ззаду рядка
static String valueOf(boolean b) Повертає рядкове представлення аргументу boolean типу
static String valueOf(char c) Повертає рядкове представлення char аргументу
static String valueOf(char[] data) Повертає рядкове представлення масиву типу char
static String valueOf(double d) Повертає рядкове представлення double аргументу
static String valueOf(float f) Повертає рядкове представлення float аргументу
static String valueOf(int i) Повертає рядкове представлення int аргументу.
static String valueOf(long l) Повертає рядкове представлення аргументу типу long
static String valueOf(Object obj) Повертає представлення об'єкту у вигляді рядка

 

43. Робота з легковажним процесами. Пріоритет під процесу,

синхронізація під процесів, обмін повідомленнями.

Параллельное программирование, связанное с использованием легковесных процессов, или подпроцессов (multithreading, light-weight processes) - концептуальная парадигма, в которой вы разделяете свою программу на два или несколько процессов, которые могут исполняться одновременно.

ЗАМЕЧАНИЕ

Во многих средах параллельное выполнение заданий представлено в том виде, который в операционных системах называется многозадачностью. Это совсем не то же самое, что параллельное выполнение подпроцессов. В многозадачных операционных системах вы имеете дело с полновесными процессами, в системах с параллельным выполнением подпроцессов отдельные задания называются легковесными процессами (light-weight processes, threads).



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-12-07; просмотров: 60; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.19.251 (0.043 с.)