- •Краткая историческая справка.
- •Преимущества языка Java.
- •Недостатки java:
- •Лекция 2. Этапы разработки java-приложений. Этапы разработки java-приложений.
- •Установка jdk.
- •Инсталляция исходных кодов библиотек
- •Инсталляция пакета документации.
- •Тестирование правильности установки и создание простейшей программы
- •Визуальные среды программирования.
- •Лекция 3. Переменные и типы данных. Переменные и типы данных.
- •Подробности о примитивных типах.
- •Лекция 4. Операторы и функции. Операторы и функции.
- •Операторы ветвлений и циклов.
- •Оператор цикла while.
- •Оператор цикла for.
- •Лекция 5. Объектно ориентированное программирование Объектно ориентированное программирование.
- •Определение объекта.
- •Инкапсуляция.
- •Наследование.
- •Полиморфизм (перегрузка).
- •Пример ооп – программы.
- •Отличие перегрузки функций от переопределения.
- •Отличие классов от интерфейсов.
- •Лекция 6. Массивы и строки. Массивы и строки.
- •Многомерные массивы.
- •Приведение типов и динамические массивы.
- •Строки в java.
- •Лекция 7. Организация ввода-вывода данных Организация ввода-вывода данных.
- •Функции стандартной библиотеки ввода/вывода.
- •Новая библиотека ввода/вывода.
- •Классы потокового ввода/вывода из пакета java.Io.
- •Лекция 8. Обработка исключений. Обработка исключений.
- •Классификация исключений.
- •Перехват исключений блоками try/catch.
- •Самостоятельное выбрасывание исключений.
- •Разработка собственных классов исключений.
- •Лекция 9. Потоки. Потоки.
- •1. Cпециальный класс Thread.
- •2. Реализация интерфейса Runnable.
- •Выбор между использованием класса Thread и интерфейса Runnable.
- •Синхронизация потоков с помощью оператора synchronized.
- •Синхронизация потоков с помощью семафоров.
- •Лекция 10. Подключаемые библиотеки java. Подключаемые библиотеки java.
- •Библиотека awt
- •Внутреннее устройство системы обработки событий awt.
- •Библиотека Swing.
Строки в java.
Как и почти все в мире java, строки так же являются объектами. Причем объектами ссылочного типа. В строках может храниться последовательность символов произвольной длинны.
String str = "Я очень длинная строка со спецсимволами \n и прочим \u0000 UTF ";
Строки можно конвертировать в массивы символов и обратно:
char[] arr = {"1","2","3"};
String str = new String(arr);
char[] arr2 = String.toCharArray("12345");
Важная особенность строк в java – это их неизменяемость.
После создания строки заменять, добавлять или удалять символы мы не можем.
Для работы со строками существует специальный набор функций класса String:
String str = “dghfhfhj”; // создаем строку
int length = str.length(); // получаем длинну строки
char first_simbol = str.charAt(0); // извлекаем первый символ строки
String substr = str.substring(0, 3); // извлекаем подстроку с 0 позиции по 3-ю
String new_str = str.replace(“ggg”, “h”); // заменяем все символы “h” на “ggg”
String new_str = str.toUpperCase(); // переводим все символы в верхний регистр
String str = “str1” + “str2”; // конкатенация строк
Важно понимать, что в результате всех манипуляций, исходная строка остается неизменной. Функции всегда возвращают новую строку.
Еще одна особенность работы со строками java отражает тот факт, что строки являются ссылочными типами. Поэтому как и для всех ссылочных типов простая операция сравнения типа
if (str1 == str2) …
Всего – лишь определит, ссылаются ли данные строковые переменные на один и тот же объект. То есть, сравнит их ссылки. Если мы хотим сделать вывод об одинаковости самих строк, то для этих целей в классе String предусмотрена специальная функция equals():
boolean resultat_sravnenia = str1.equals(str2);
Для сравнения без учета регистра так же предусмотрен специальный метод:
boolean resultat_sravnenia = str1.equalsIgnoreCase(str2);
Такая же функция сравнения предусмотрена и в других классах объектов ссылочного типа. Например, таким образом можно выяснить поэлементное равенство массивов, только в случае массивов она вызывается из родительского класса Arrays, а не из класса самой переменной массива и имеет немного другой синтаксис:
import java.util.Arrays;
…
int[] a = new int[30];
int[] b = new int[30];
…
boolean result = Arrays.equals(a, b);
Для поэлементного сравнения многомерных массивов в классе Arrays тоже предусмотрена специальная функция - deepEquals();
import java.util.Arrays;
…
int[] a = new int[30];
int[] b = new int[30];
…
boolean result = Arrays.deepEquals(a, b);
Лекция 7. Организация ввода-вывода данных Организация ввода-вывода данных.
Организация ввода-вывода данных. Консольный ввод-вывод: средства ввода-вывода. Файловый ввод-вывод. Функции ввода-вывода.
В java за ввод/вывод отвечает достаточно большое число различных классов, многие из которых дублируют функциональность друг друга. Кроме того, по причинам поддержания обратной совместимости, в java одновременно сосуществуют как классы из очень древних библиотек, написанных уже десяток лет назад, так и классы потокового вывода из обновленного API, привнесенного в java совсем недавно. Теперь разберем всю эту функциональность более подробно.
