Язык Java Лекция 1. Галибус Т. В. 2012
История Java • Джеймс Гослинг, 1995, Oak – для бытовых устройств, Sun Microsystems (Oracle) • Java 7: июль 2011 г.
Преимущества Java • Простота использования • Удобный синтаксис (близок к C++) • Переносимость (различные платформы и процессоры) • Гибкость (различные ОС) • Безопасность (выполняется с помощью дополнительной программы-буфера)
Java Virtual Machine • Обеспечивает переносимость программ, написанных на Java и независимость от платформы. • JVM: обладает функциями компилятора и интерпретатора • Программа на Java -> Java bytecode -> JVM -> машинный язык. • JVM обеспечивает безопасность программапплетов, которые выполняются с помощью браузера • Другие языки наподобие Jython, Jruby и тд
Java just-in-time compiler • Обеспечивает быстродействие программ написанных на Java • Во время выплнения программы куски кода Java bytecode транслируются в машинный язык процессора
Поддержка потоков • Асинхронные события • Java включает поддержку потоков, классы для обработки многопоточности включены в средства языка Java
ООП • Принципы ООП: инкапсуляция, полиморфизм, наследование • Любая программа на Java – это класс • Все классы - наследники Object • Библиотеки классов Java включают методы криптографии и сжатия данных (стандартные), поддержки звука, 3 d графики (распространяются бесплатно)
Развитие Java • Бесплатное распространение • Eclipse и Netbeans – основные среды разработки • Java ME – разработка мобильных приложений • Один из самых распространенных и широко изучаемых языков программирования
Типы данных в Java • Строго типизированный язык, безопасная типизация. • Int, long short, double, float, boolean, String Тип Длина (в байтах) Диапазон или набор значений boolean 1 в массивах, 4 в переменных true, false byte 1 − 128. . 127 char 2 0. . 216− 1, или 0. . 65535 short 2 − 215. . 215− 1, или − 32768. . 32767 int 4 − 231. . 231− 1, или − 2147483648. . 2147483647 long 8 − 263. . 263− 1, или примерно − 9. 2· 1018. . 9. 2· 1018 float 4 -(2 -2− 23)· 2127. . (2 -2− 23)· 2127, или примерно − 3. 4· 1038. . 3. 4· 1038 double 8 -(2 -2− 52)· 21023. . (2 -2− 52)· 21023, или примерно − 1. 8· 10308. . 1. 8· 10308
Hello World Application • • • public class Hello. World { // объявление класса /** * @param args */ public static void main(String[] args) { // метод main // TODO Auto-generated method stub System. out. println("Hello world! "); // Это единственная строка, которую вы вводите в Eclipse } • }
Работа в Eclipse • Создание/импорт проекта • Добавление классов • Автозаполнение: Ctrl+Space
Вывод на консоль • Для вывода на консоль служит класс Print. Stream (стандартный поток вывода) • Экземпляр класса уже создан и открыт для вывода при вызове метода • System. out. print или System. out. println • Метод перегружен для различных значений типа параметра
Ввод из консоли • Существует несколько классов для ввода из консоли: java. util. Scanner или классы из пакета java. io • Для использования Scanner необходимо подключить пакет: import java. util. Scanner; • Необходимо создать экземпляр данного класса: • Scanner myscan = new Scanner( System. in ); • System. in – в данном случае стандартный поток ввода (Input. Stream)
Методы класса Scanner • функция чтения данных (next. Int, next. Double и тд) • Проверка типа входных данных (has. Next. Int, has. Next. Double и тд) • Установка разделителя (по умолчанию пробел). Разделитель входных данных определяется при создании экземпляра Scanner • Scanner s = new Scanner(input). use. Delimiter(“, ");
Задание • Почему для System. in необходимо создавать экземпляр класса, а для System. out нет?
Операции со строками http: //kostin. ws/java-input-stream. html • • • int length() — возвращает длину строки (количество символов в ней); boolean is. Empty() — проверяет, пустая ли строка; String replace(a, b) — возвращает строку, где символ a (литерал или переменная типа char) заменён на символ b; String to. Lower. Case() — возвращает строку, где все символы исходной строки преобразованы к строчным; String to. Upper. Case() — возвращает строку, где все символы исходной строки преобразованы к прописным; boolean equals(s) — возвращает истинну, если строка к которой применён метод, совпадает со строкой s указанной в аргументе метода (с помощью оператора == строки сравнивать нельзя, как и любые другие объекты); int index. Of(ch) — возвращает индекс символа ch в строке (индекс это порядковый номер символа, но нумероваться символы начинают с нуля). Если символ совсем не будет найден, то возвратит -1. Если символ встречается в строке нескольо раз, то вовзвратит индекс его первого вхождения. int last. Index. Of(ch) — аналогичен предыдущему методу, но возвращает индекс последнего вхождения, если смивол встретился в строке несколько раз. int index. Of(ch, n) — возвращает индекс символа ch в строке, но начинает проверку с индекса n (индекс это порядковый номер символа, но нумероваться символы начинают с нуля). char. At(n) — возвращает код символа, находящегося в строке под индексом n (индекс это порядковый номер символа, но нумероваться символы начинают с нуля).
Класс Math http: //www. intuit. ru/department/pl/javapl/13/3. html Возвращаемое значение … Имя метода и параметры abs(… a) Описание double acos(double asin(double atan(double ceil(double арккосинус арктангенс наименьшее целое число, большее a double floor(double a) IEEEremainder (double a, double b) double sin(double a) double … cos(double tan(double exp(double log(double max(… a, … … min(… a, … b) double … pow(double a, double b) random() rint(double a) round(… a) double sqrt(double a) to. Degrees(double a) double to. Radians(double a) a) a) b) абсолютное значение (модуль) для типов double, float, int, long целое число, меньшее a остаток по стандарту IEEE 754 (подробно рассматривался в лекции 3) синус (здесь и далее: аргумент должен быть в радианах) косинус тангенс e в степени a натуральный логарифм a большее из двух чисел (для типов double, float, long, int ) меньшее из двух чисел (для типов double, float, long, int ) a в степени b случайное число от 0. 0 до 1. 0 значение int, ближайшее к a значение long для double ( int для fl oat ), ближайшее к a квадратный корень числа a преобразование из радианов в градусы преобразование из градусов в радианы