SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Библиотека классов Java
Класс Object
Класс Object – вершина
иерархии классов библиотеки Java
•

Object clone() – создает новый объект, являющийся копией
вызывающего

•

boolean equals(Object object) – определяет, является ли
один объект равным другому

•

int hashCode() – вычисляет хэш-код объекта

•

void finalize() – завершающие действия перед вызовом gc

•

String toString() – возвращает строку, содержащую описание
вызывающего объекта. Этот метод вызывается
автоматически, когда объект выводится методом print() или
println().
1
Библиотека классов Java
Переопределение equals() и
hashCode()
1. При переопределении метода equals() надо соблюдать
следующие правила (general contract):
- obj.equals(null) == false
- obj.equals(obj) == true
- если obj1.equals(obj2) == true, то obj2.equals(obj1) == true
- если ob1.equals(obj2) == true & ob2.equals(obj3) == true, то
obj1.equals(obj3) == true
2. Если класс переопределяет метод equals(), он должен также
переопределять hashCode()
2
Библиотека классов Java
Пример переопределения
equals() и hashCode()
public final class PhoneNumber {
private final short areaCode;

public int hashCode() {
int result = 17;

private final short exchange;

result = 31 * result + areaCode;

private final short extension;

result = 31 * result + prefix;

public boolean equals(Object o) {

result = 31 * result + lineNumber;

if (o==this) return true;

return result;

if (!(o instanceof PhoneNumber))

}

return false;
PhoneNumber pn = (PhoneNumber)o;

}

return pn.extensions == extension &&
pn.exchange == exchange &&
pn.areaCode == areaCode;
}

3
Библиотека классов Java
Метод finalize()
Метод finalize() не переопределять!!!
Причины:
1)Невозможно предсказать, когда он будет вызван
2)Внутри finalize() не обрабатываются исключения
3)Если в finalize() есть «медленный» код, то он будет
препятствовать своевременному освобождению
памяти сборщиком мусора -> OutOfMemory

4
Библиотека классов Java
Классы оболочки

Для чего необходимы оболочки:
1. Использование в методах, сигнатура которых требует объекта
2. Использование специальных констант, имеющихся в классахоболочках (MIN_VALUE, MAX_VALUE)
3. Использование специальных методов преобразования типов
(например, преобразование в строки и из строк)
5
Библиотека классов Java
Классы оболочки
Переход от простого типа к классу-оболочке
(boxing) и обратный переход (unboxing) часто
выполняется компилятором автоматически
Integer x, y;

Integer x, y;

x = new Integer(12);
y = new Integer(15);

x = 12;
auto-boxing y = 15;

System.out.println(

System.out.println(x+y);
auto-unboxing

x.intValue()+y.intValue());

6
Библиотека классов Java
Классы оболочки
byte byteValue()

short shortValue()

int intValue()

long longValue()

float floatValue()

double doubleValue()

int compareTo(Byte anotherByte)
int compareTo(Double anotherDouble)
int compareTo(Float anotherFloat)
int compareTo(Integer anotherInteger)
int compareTo(Long anotherLong)
int compareTo(Short anotherShort)
7
Библиотека классов Java
Классы оболочки
Метод

Описание

static Integer decode(String s)

String –> Integer (может принимать
строковое представление в 10-й, 8-й,
16-й системах счисления)

static int parseInt(String s)

String -> int (только десятичный)

static int parseInt(String s, int radix)

String -> int (radix = 2, 8, 10, 16)

String toString()

Integer -> String

static String toString(int i)

int -> String

static Integer valueOf(int i)

int -> Integer

static Integer valueOf(String s)

String -> Integer

static Integer valueOf(String s, int
radix)

String -> Integer (radix = 2, 8, 10, 16)
8
Библиотека классов Java
Класс Math
Класс Math содержит 2 статические константы:
Math.E, Math.PI
и статические методы для выполнения
математических функций (sin, cos, max, min,
ceil, floor, exp, log, pow и др.)
double x = 11.635;
System.out.println("The value of e is” + Math.E);
System.out.println("exp” + x + “is” + Math.exp(x));
System.out.println("log” + x + “is” + Math.log(x));
9
Библиотека классов Java
Класс Math
При необходимости можно импортировать
статические константы и методы с помощью
директивы import static
import static java.lang.Math.*;

double x = 11.635;
System.out.println("The value of e is” + E);
System.out.println("exp” + x + “is” + exp(x));
System.out.println("log” + x + “is” + log(x));
10
Библиотека классов Java
Класс Random
import java.util.*;
…
Random r = new Random();
int i = r.nextInt(100);

11
Библиотека классов Java
Класс String

Два способа создания объекта String:
1) String greeting = "Hello world!";
2) char[ ] helloArray = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘ ’, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’,’!’ };
String greeting = new String(helloArray);
System.out.println(greeting);
Внимание! Класс String работает с неизменяемыми строками

12
Библиотека классов Java
Класс String
Конструкторы класса String
String()
String(String source)
String(StringBuffer buffer)
String(char charArray[ ])
String(char charArray[ ], int offset, int count)
String(byte byteArray[ ])
String(byte byteArray[ ], int offset, int count)
String(byte byteArray[ ], String enc)
String(byte byteArray[ ], int offset, int count, String enc)
13
Библиотека классов Java
Класс String
Длина строки:
String s = "Dot saw I was Tod";
int len = s.length();
Конкатенация:
String s3 = s1 + s2;
String s3 = s1.concat(s2);
“2” + 2 + 2 = 222
2 + 2 + “2” = 42
“2” + (2 + 2) = 24
14
Библиотека классов Java
Класс String
Форматированный вывод:
public PrintStream format(String format, Object... args)
public PrintStream format(Locale l, String format,
Object... args)
public PrintStream printf(String format, Object... args)
public PrintStream printf(Locale l, String format, Object...
args)
System.out.printf("The value of the float variable is %f, while the
value of the " + “integer variable is %d, and the string is %s",
floatVar, intVar, stringVar);
15
Библиотека классов Java
Класс String
Метод

Описание

char charAt(int index)

Возвращает символ строки с индексом index.

void getChars(int srcBegin,
int srcEnd, char[ ] dest, int
destBegin)

Включает в массив символов dest[ ], начиная с
индекса dstBegin, часть строки от индекса srcBegin
вкл. до индекса srcEnd искл.

byte[ ] getBytes()

Содержимое строки записывается в массив
байтов.

char[ ] toCharArray()

Преобразует строку в массив символов типа char.

boolean equals
(Object obj)
boolean equalsIgnoreCase
(String s)

Возвращают true, если аргумент obj не равен null,
является объектом класса String, и строка,
содержащаяся в нем, полностью идентична данной
строке с учетом (без учета) регистра символов.

16
Библиотека классов Java
Класс String
Метод

Описание

int compareTo (String str)
int compareToIgnoreCase
(String str)

Возвращают целое число типа int, вычисленное по
следующим правилам:
1. Сравниваются символы данной строки и строки
str с одинаковыми индексами, пока не встретятся
различные символы (с учетом регистра) или одна
из строк не закончится.
2. Пусть разные символы встретились в позиции k.
Тогда метод возвращает значение
this.charAt(k)-str.charAt(k)
3. Пусть символы в строках были одинаковыми,
пока не за-кончилась одна из строк. Тогда метод
вернет значение: this.length()-str.length()
4. Если строки совпадают, метод вернет 0.

17
Библиотека классов Java
Класс String
Метод

Описание

boolean regionMatches (int
toffset, String other, int ooffset,
int len)

Сравнивает подстроку данной строки с
подстрокой той же длины len строки, заданной
аргументом str. Сравнение начинается с
позиции toffset данной строки и c позиции
ooffset строки, заданной аргументом str. Метод
возвращает false, если в сравниваемых
участках строк встретилась хотя бы одна пара
несовпадающих (с учетом регистра) символов.

boolean startsWith (String str)
boolean startsWith (String str,
int toffset)

Возвращает true, если данная строка
начинается с подстроки str (начиная с позиции
toffset)

boolean endsWith (String
suffix)

Возвращает true, если данная строка
заканчивается подстрокой str

18
Библиотека классов Java
Класс String
Метод

Описание

String substring (int
beginIndex, int endIndex)

Возвращает подстроку данной строки, начиная
с индекса beginIndex до индекса endIndex.

String replace (char oldChar,
char newChar)

Заменяет в данной строке все вхождения
символа oldChar символом newChar

String toUpperCase()

Преобразует все символы строки к верхнему
регистру.

String toLowerCase()

Преобразует все символы строки к нижнему
регистру.

String trim()

Удаляет пробельные символы в начале и конце
строки

static String valueOf (<type> b)

Преобразует аргумент в его строковое
представление.
19
Библиотека классов Java
Класс StringBuffer
StringBuffer – это строковый буфер переменной длины.
Создать объект класса StringBuffer можно только с помощью
конструкторов:
StringBuffer() - пустой строковый буфер с емкостью 16
символов.
StringBuffer(int length) - пустой строковой буфер с емкостью
length
StringBuffer(String str) - строковый буфер емкостью str.length()
+16, содержащий строку str.
Если строковый буфер начинает переполняться, его емкость
автоматически увеличивается.

20
Библиотека классов Java
Класс StringBuffer
Увеличение емкости буфера:
ensureCapacity(int minCapacity)
Установка емкости буфера:
setLength(int newLength)
Длина строки в буфере:
length()
Емкость буфера:
capacity()

21
Библиотека классов Java
Класс StringBuffer
Метод

Описание

append (<type> elem)

Добавление аргумента к буферу

append (String str)

Добавление строки к буферу

append (Object obj)

Добавление объекта к буферу
(выполняется метод toString() )

insert (int ind, <type>
elem)

Вставка элемента в буфер в позицию
ind

insert (int ind, String str)

Вставка строки в буфер в позицию ind

insert (int ind, Object obj)

Вставка объекта в буфер в позицию
ind

22
Библиотека классов Java
Класс StringBuffer
Метод

Описание

delete(int begin, int end)

Удаление подстроки

deleteCharAt(int ind)

Удаление символа

replace(int begin, int end,
String str)

Замена подстроки

reverse()

Обращение строки

23
Библиотека классов Java
Класс StringTokenizer
Выполняет синтаксический разбор (парсинг)
строки.
Конструкторы:
StringTokenizer(String str)
StringTokenizer(String str, String delim)
Методы:
String nextToken()
boolean hasMoreTokens()
int countTokens()
24
Библиотека классов Java
Класс StringTokenizer
String s = “Строка, предназначенная для разбора”;
StringTokenizer st = new StringTokenizer(s,” tnr,.”);
while (st.hasMoreTokens())
{
System.out.println(st.nextToken());
}

25
Библиотека классов Java
Класс Runtime
Класс Runtime инкапсулирует JVM.
Метод

Описание

static Runtime getRuntime()

получить ссылку на текущий Runtime-объект

Process exec(String progname)

Передает строку progname командному
процессору. Возвращает объект типа
Process.

void exit(int exitCode)

Останавливает выполнение JVM.
Возвращает код завершения родительскому
процессу (0 – нормальное завершение).

long freeMemory()

Возвращает приблизительное количество
свободной памяти (в байтах), доступное
JVM.

void gc()

Инициирует процесс сборки мусора

long totalMemory()

Возвращает общее количество памяти (в
байтах), доступное JVM.
26
Библиотека классов Java
Класс Runtime
class MemoryDemo
{public static void main(String args[ ])
{Runtime r = Runtime.getRuntime();
long mem1, mem2;
System.out.println(“Полный объем памяти: “ + r.totalMemory());
System.out.println(“Свободная память: “ + r.freeMemory());
{

Integer massiv[ ] = new Integer[1000];
System.out.println(“Свободная память: “ + r.freeMemory());

}
r.gc();
System.out.println(“Свободная память после gc:” + r.freeMemory());
27
Библиотека классов Java
Класс Process
Класс Process инкапсулирует процесс.
void destroy()
Завершает процесс.
int waitFor()
Приостанавливает выполнение текущего
потока до завершения вызывающего процесса

28
Библиотека классов Java
Класс Process
class ExecDemo
{public static void main(String args[ ])
{Runtime r = Runtime.getRuntime();
Process p = null;
try
{p = r.ехес("notepad"); p.waitFor () ; }
catch (Exception e)
{System.out.println("Ошибка выполнения notepad.");}
System.out.println("Notepad завершился " + p.exitValue());
}
}

29
Библиотека классов Java
Класс System
Класс System выполняет функции, аналогичные
классу Runtime, т.е. взаимодействие с системой в
ходе выполнения программы. В этом классе
продублировано большинство методов класса
Runtime (loadLibrary(), exit(), gc()) но, в отличие от
Runtime, в классе System эти методы являются
статическими.

30
Библиотека классов Java
Класс System
Для любой среды Java 2 доступны переменные
среды, приведенные в табл. Часть из этих
переменных в целях безопасности доступны
только для приложений (не для апплетов).
Чтобы получать значения переменных среды либо
изменять их, в классе System существуют методы
String getProperty(String variable)
String setProperty(String variable, String value)

31
Библиотека классов Java
Класс System
Имя
java.version
java.vendor
java.vendor.url
java.class.version
java.class.path
java.home

Значение

Доступ для апплета
да
да
да
да
нет
нет

Версия интерпретатора Java
Строка идентификатора, заданная разработчиком
URL разработчика
Версия Java API
Значение переменной CLASSPATH
Каталог, в котором инсталлирована среда Java

java.compiler
os.name
os.arch
os.version
file.separator
path.separator
line.separator
user.name
user.home
user.dir
user.language
user.region
user.timezone

Компилятор JIT
Название операционной системы
Архитектура компьютера, на котором выполняется программа
Версия операционной системы Web-узла
Зависящие от платформы разделители файлов (/ или )
Зависящие от платформы разделители пути (: или ;)
Зависящие от платформы разделители строк (n или rn)
Имя текущего пользователя
Домашний каталог пользователя
Текущий рабочий каталог
2-символьный код языка для местности по умолчанию
2-символьный код страны для местности по умолчанию
Временной пояс по умолчанию

нет
да
да
да
да
да
да
нет
нет
нет
нет
нет
нет

user.encoding
user.encoding.pkg

Кодировка сиволов для местности по умолчанию
Пакет, содержащий конверторы для преобразования символов
из местной кодировки в Unicode

нет
нет

32
Библиотека классов Java
Класс System
//отображаем путь к текущему каталогу пользователя
System.out.println(System.getProperty(“user.dir”));
//устанавливаем текущим каталогом пользователя c:java
System.setProperty(“user.dir”,”c:java”);

33

Weitere ähnliche Inhalte

Was ist angesagt?

Java. Строки. Класс String.
Java. Строки. Класс String.Java. Строки. Класс String.
Java. Строки. Класс String.Unguryan Vitaliy
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью. Unguryan Vitaliy
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.genericsmuqaddas_m
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.Roman Brovko
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILRoman Brovko
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.Roman Brovko
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыUnguryan Vitaliy
 

Was ist angesagt? (8)

Java. Строки. Класс String.
Java. Строки. Класс String.Java. Строки. Класс String.
Java. Строки. Класс String.
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторы
 

Ähnlich wie 9. java lecture library

Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderAlexey Bovanenko
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey TeplyakovAlex Tumanoff
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularitiesmcroitor
 
Java осень 2013 лекция 2
Java осень 2013 лекция 2Java осень 2013 лекция 2
Java осень 2013 лекция 2Technopark
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Alex Ott
 
массивы.строки
массивы.строкимассивы.строки
массивы.строкиdasha2012
 
AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)Anton Bukov
 
Statis code analysis
Statis code analysisStatis code analysis
Statis code analysischashnikov
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)Smolensk Computer Science Club
 

Ähnlich wie 9. java lecture library (20)

Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilder
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey Teplyakov
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
 
Java осень 2013 лекция 2
Java осень 2013 лекция 2Java осень 2013 лекция 2
Java осень 2013 лекция 2
 
Lec 3
Lec 3Lec 3
Lec 3
 
Java 8 puzzlers
Java 8 puzzlersJava 8 puzzlers
Java 8 puzzlers
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
 
лек7
лек7лек7
лек7
 
лек8
лек8лек8
лек8
 
лек7
лек7лек7
лек7
 
Scala on android
Scala on androidScala on android
Scala on android
 
Swift School #2
Swift School #2Swift School #2
Swift School #2
 
Scala
ScalaScala
Scala
 
массивы.строки
массивы.строкимассивы.строки
массивы.строки
 
AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)
 
Statis code analysis
Statis code analysisStatis code analysis
Statis code analysis
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)
 

9. java lecture library

  • 1. Библиотека классов Java Класс Object Класс Object – вершина иерархии классов библиотеки Java • Object clone() – создает новый объект, являющийся копией вызывающего • boolean equals(Object object) – определяет, является ли один объект равным другому • int hashCode() – вычисляет хэш-код объекта • void finalize() – завершающие действия перед вызовом gc • String toString() – возвращает строку, содержащую описание вызывающего объекта. Этот метод вызывается автоматически, когда объект выводится методом print() или println(). 1
  • 2. Библиотека классов Java Переопределение equals() и hashCode() 1. При переопределении метода equals() надо соблюдать следующие правила (general contract): - obj.equals(null) == false - obj.equals(obj) == true - если obj1.equals(obj2) == true, то obj2.equals(obj1) == true - если ob1.equals(obj2) == true & ob2.equals(obj3) == true, то obj1.equals(obj3) == true 2. Если класс переопределяет метод equals(), он должен также переопределять hashCode() 2
  • 3. Библиотека классов Java Пример переопределения equals() и hashCode() public final class PhoneNumber { private final short areaCode; public int hashCode() { int result = 17; private final short exchange; result = 31 * result + areaCode; private final short extension; result = 31 * result + prefix; public boolean equals(Object o) { result = 31 * result + lineNumber; if (o==this) return true; return result; if (!(o instanceof PhoneNumber)) } return false; PhoneNumber pn = (PhoneNumber)o; } return pn.extensions == extension && pn.exchange == exchange && pn.areaCode == areaCode; } 3
  • 4. Библиотека классов Java Метод finalize() Метод finalize() не переопределять!!! Причины: 1)Невозможно предсказать, когда он будет вызван 2)Внутри finalize() не обрабатываются исключения 3)Если в finalize() есть «медленный» код, то он будет препятствовать своевременному освобождению памяти сборщиком мусора -> OutOfMemory 4
  • 5. Библиотека классов Java Классы оболочки Для чего необходимы оболочки: 1. Использование в методах, сигнатура которых требует объекта 2. Использование специальных констант, имеющихся в классахоболочках (MIN_VALUE, MAX_VALUE) 3. Использование специальных методов преобразования типов (например, преобразование в строки и из строк) 5
  • 6. Библиотека классов Java Классы оболочки Переход от простого типа к классу-оболочке (boxing) и обратный переход (unboxing) часто выполняется компилятором автоматически Integer x, y; Integer x, y; x = new Integer(12); y = new Integer(15); x = 12; auto-boxing y = 15; System.out.println( System.out.println(x+y); auto-unboxing x.intValue()+y.intValue()); 6
  • 7. Библиотека классов Java Классы оболочки byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue() int compareTo(Byte anotherByte) int compareTo(Double anotherDouble) int compareTo(Float anotherFloat) int compareTo(Integer anotherInteger) int compareTo(Long anotherLong) int compareTo(Short anotherShort) 7
  • 8. Библиотека классов Java Классы оболочки Метод Описание static Integer decode(String s) String –> Integer (может принимать строковое представление в 10-й, 8-й, 16-й системах счисления) static int parseInt(String s) String -> int (только десятичный) static int parseInt(String s, int radix) String -> int (radix = 2, 8, 10, 16) String toString() Integer -> String static String toString(int i) int -> String static Integer valueOf(int i) int -> Integer static Integer valueOf(String s) String -> Integer static Integer valueOf(String s, int radix) String -> Integer (radix = 2, 8, 10, 16) 8
  • 9. Библиотека классов Java Класс Math Класс Math содержит 2 статические константы: Math.E, Math.PI и статические методы для выполнения математических функций (sin, cos, max, min, ceil, floor, exp, log, pow и др.) double x = 11.635; System.out.println("The value of e is” + Math.E); System.out.println("exp” + x + “is” + Math.exp(x)); System.out.println("log” + x + “is” + Math.log(x)); 9
  • 10. Библиотека классов Java Класс Math При необходимости можно импортировать статические константы и методы с помощью директивы import static import static java.lang.Math.*; double x = 11.635; System.out.println("The value of e is” + E); System.out.println("exp” + x + “is” + exp(x)); System.out.println("log” + x + “is” + log(x)); 10
  • 11. Библиотека классов Java Класс Random import java.util.*; … Random r = new Random(); int i = r.nextInt(100); 11
  • 12. Библиотека классов Java Класс String Два способа создания объекта String: 1) String greeting = "Hello world!"; 2) char[ ] helloArray = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘ ’, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’,’!’ }; String greeting = new String(helloArray); System.out.println(greeting); Внимание! Класс String работает с неизменяемыми строками 12
  • 13. Библиотека классов Java Класс String Конструкторы класса String String() String(String source) String(StringBuffer buffer) String(char charArray[ ]) String(char charArray[ ], int offset, int count) String(byte byteArray[ ]) String(byte byteArray[ ], int offset, int count) String(byte byteArray[ ], String enc) String(byte byteArray[ ], int offset, int count, String enc) 13
  • 14. Библиотека классов Java Класс String Длина строки: String s = "Dot saw I was Tod"; int len = s.length(); Конкатенация: String s3 = s1 + s2; String s3 = s1.concat(s2); “2” + 2 + 2 = 222 2 + 2 + “2” = 42 “2” + (2 + 2) = 24 14
  • 15. Библиотека классов Java Класс String Форматированный вывод: public PrintStream format(String format, Object... args) public PrintStream format(Locale l, String format, Object... args) public PrintStream printf(String format, Object... args) public PrintStream printf(Locale l, String format, Object... args) System.out.printf("The value of the float variable is %f, while the value of the " + “integer variable is %d, and the string is %s", floatVar, intVar, stringVar); 15
  • 16. Библиотека классов Java Класс String Метод Описание char charAt(int index) Возвращает символ строки с индексом index. void getChars(int srcBegin, int srcEnd, char[ ] dest, int destBegin) Включает в массив символов dest[ ], начиная с индекса dstBegin, часть строки от индекса srcBegin вкл. до индекса srcEnd искл. byte[ ] getBytes() Содержимое строки записывается в массив байтов. char[ ] toCharArray() Преобразует строку в массив символов типа char. boolean equals (Object obj) boolean equalsIgnoreCase (String s) Возвращают true, если аргумент obj не равен null, является объектом класса String, и строка, содержащаяся в нем, полностью идентична данной строке с учетом (без учета) регистра символов. 16
  • 17. Библиотека классов Java Класс String Метод Описание int compareTo (String str) int compareToIgnoreCase (String str) Возвращают целое число типа int, вычисленное по следующим правилам: 1. Сравниваются символы данной строки и строки str с одинаковыми индексами, пока не встретятся различные символы (с учетом регистра) или одна из строк не закончится. 2. Пусть разные символы встретились в позиции k. Тогда метод возвращает значение this.charAt(k)-str.charAt(k) 3. Пусть символы в строках были одинаковыми, пока не за-кончилась одна из строк. Тогда метод вернет значение: this.length()-str.length() 4. Если строки совпадают, метод вернет 0. 17
  • 18. Библиотека классов Java Класс String Метод Описание boolean regionMatches (int toffset, String other, int ooffset, int len) Сравнивает подстроку данной строки с подстрокой той же длины len строки, заданной аргументом str. Сравнение начинается с позиции toffset данной строки и c позиции ooffset строки, заданной аргументом str. Метод возвращает false, если в сравниваемых участках строк встретилась хотя бы одна пара несовпадающих (с учетом регистра) символов. boolean startsWith (String str) boolean startsWith (String str, int toffset) Возвращает true, если данная строка начинается с подстроки str (начиная с позиции toffset) boolean endsWith (String suffix) Возвращает true, если данная строка заканчивается подстрокой str 18
  • 19. Библиотека классов Java Класс String Метод Описание String substring (int beginIndex, int endIndex) Возвращает подстроку данной строки, начиная с индекса beginIndex до индекса endIndex. String replace (char oldChar, char newChar) Заменяет в данной строке все вхождения символа oldChar символом newChar String toUpperCase() Преобразует все символы строки к верхнему регистру. String toLowerCase() Преобразует все символы строки к нижнему регистру. String trim() Удаляет пробельные символы в начале и конце строки static String valueOf (<type> b) Преобразует аргумент в его строковое представление. 19
  • 20. Библиотека классов Java Класс StringBuffer StringBuffer – это строковый буфер переменной длины. Создать объект класса StringBuffer можно только с помощью конструкторов: StringBuffer() - пустой строковый буфер с емкостью 16 символов. StringBuffer(int length) - пустой строковой буфер с емкостью length StringBuffer(String str) - строковый буфер емкостью str.length() +16, содержащий строку str. Если строковый буфер начинает переполняться, его емкость автоматически увеличивается. 20
  • 21. Библиотека классов Java Класс StringBuffer Увеличение емкости буфера: ensureCapacity(int minCapacity) Установка емкости буфера: setLength(int newLength) Длина строки в буфере: length() Емкость буфера: capacity() 21
  • 22. Библиотека классов Java Класс StringBuffer Метод Описание append (<type> elem) Добавление аргумента к буферу append (String str) Добавление строки к буферу append (Object obj) Добавление объекта к буферу (выполняется метод toString() ) insert (int ind, <type> elem) Вставка элемента в буфер в позицию ind insert (int ind, String str) Вставка строки в буфер в позицию ind insert (int ind, Object obj) Вставка объекта в буфер в позицию ind 22
  • 23. Библиотека классов Java Класс StringBuffer Метод Описание delete(int begin, int end) Удаление подстроки deleteCharAt(int ind) Удаление символа replace(int begin, int end, String str) Замена подстроки reverse() Обращение строки 23
  • 24. Библиотека классов Java Класс StringTokenizer Выполняет синтаксический разбор (парсинг) строки. Конструкторы: StringTokenizer(String str) StringTokenizer(String str, String delim) Методы: String nextToken() boolean hasMoreTokens() int countTokens() 24
  • 25. Библиотека классов Java Класс StringTokenizer String s = “Строка, предназначенная для разбора”; StringTokenizer st = new StringTokenizer(s,” tnr,.”); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } 25
  • 26. Библиотека классов Java Класс Runtime Класс Runtime инкапсулирует JVM. Метод Описание static Runtime getRuntime() получить ссылку на текущий Runtime-объект Process exec(String progname) Передает строку progname командному процессору. Возвращает объект типа Process. void exit(int exitCode) Останавливает выполнение JVM. Возвращает код завершения родительскому процессу (0 – нормальное завершение). long freeMemory() Возвращает приблизительное количество свободной памяти (в байтах), доступное JVM. void gc() Инициирует процесс сборки мусора long totalMemory() Возвращает общее количество памяти (в байтах), доступное JVM. 26
  • 27. Библиотека классов Java Класс Runtime class MemoryDemo {public static void main(String args[ ]) {Runtime r = Runtime.getRuntime(); long mem1, mem2; System.out.println(“Полный объем памяти: “ + r.totalMemory()); System.out.println(“Свободная память: “ + r.freeMemory()); { Integer massiv[ ] = new Integer[1000]; System.out.println(“Свободная память: “ + r.freeMemory()); } r.gc(); System.out.println(“Свободная память после gc:” + r.freeMemory()); 27
  • 28. Библиотека классов Java Класс Process Класс Process инкапсулирует процесс. void destroy() Завершает процесс. int waitFor() Приостанавливает выполнение текущего потока до завершения вызывающего процесса 28
  • 29. Библиотека классов Java Класс Process class ExecDemo {public static void main(String args[ ]) {Runtime r = Runtime.getRuntime(); Process p = null; try {p = r.ехес("notepad"); p.waitFor () ; } catch (Exception e) {System.out.println("Ошибка выполнения notepad.");} System.out.println("Notepad завершился " + p.exitValue()); } } 29
  • 30. Библиотека классов Java Класс System Класс System выполняет функции, аналогичные классу Runtime, т.е. взаимодействие с системой в ходе выполнения программы. В этом классе продублировано большинство методов класса Runtime (loadLibrary(), exit(), gc()) но, в отличие от Runtime, в классе System эти методы являются статическими. 30
  • 31. Библиотека классов Java Класс System Для любой среды Java 2 доступны переменные среды, приведенные в табл. Часть из этих переменных в целях безопасности доступны только для приложений (не для апплетов). Чтобы получать значения переменных среды либо изменять их, в классе System существуют методы String getProperty(String variable) String setProperty(String variable, String value) 31
  • 32. Библиотека классов Java Класс System Имя java.version java.vendor java.vendor.url java.class.version java.class.path java.home Значение Доступ для апплета да да да да нет нет Версия интерпретатора Java Строка идентификатора, заданная разработчиком URL разработчика Версия Java API Значение переменной CLASSPATH Каталог, в котором инсталлирована среда Java java.compiler os.name os.arch os.version file.separator path.separator line.separator user.name user.home user.dir user.language user.region user.timezone Компилятор JIT Название операционной системы Архитектура компьютера, на котором выполняется программа Версия операционной системы Web-узла Зависящие от платформы разделители файлов (/ или ) Зависящие от платформы разделители пути (: или ;) Зависящие от платформы разделители строк (n или rn) Имя текущего пользователя Домашний каталог пользователя Текущий рабочий каталог 2-символьный код языка для местности по умолчанию 2-символьный код страны для местности по умолчанию Временной пояс по умолчанию нет да да да да да да нет нет нет нет нет нет user.encoding user.encoding.pkg Кодировка сиволов для местности по умолчанию Пакет, содержащий конверторы для преобразования символов из местной кодировки в Unicode нет нет 32
  • 33. Библиотека классов Java Класс System //отображаем путь к текущему каталогу пользователя System.out.println(System.getProperty(“user.dir”)); //устанавливаем текущим каталогом пользователя c:java System.setProperty(“user.dir”,”c:java”); 33