SlideShare a Scribd company logo
1 of 28
Немного истории
• 1990 - Oak, Green (James Gosling)
• 1995 - Java 1.0
• 1998 - Java 2 (Java 1.2)
• …
• 2011 - Java 7
Знакомство с Java
• Java Programming Language
• Java Platform
– Java 2 Platform, Standard Edition (Java SE)
– Java 2 Platform, Enterprise Edition (Java EE)
– Java 2 Platform, Micro Edition (Java ME)
– Java Card technology
Java Platform
Tools
• Java Runtime Environmen (JRE) и Java Development
Kit (JDK)
– JAVA_HOME
– %JAVA_HOME%binjava.exe
– %JAVA_HOME%binjavac.exe
• Integrated Development Environment (IDE)
– Eclipse
– IntelliJ IDEA
– NetBeans
Точка входа в программу
(пример: HelloWorld.java)
Точка входа в программу
public static void main(String[] args) {
// the very first lines of code follow
}
• Название метода – только main
• Аргументы метода – массив аргументов командной строки
Точка входа в программу
(пример: HelloWorld2.java)
Примитивные типы данных
• Логический
• Целые числа
• Вещественные числа
• Символы
Примитивные типы данных
• Основной тип – boolean
• Только два значения: true и false
• В отличие от C, булев и целочисленный тип различаются.
Логический
Примитивные типы данных
• Основной тип – int
• Есть расширенные и сокращённые диапазоны (byte, short,
long)
• Допускается запись в десятичном, восьмеричном и
шестнадцатеричном виде
• Для long надо указывать суффикс l
Целые числа
Примитивные типы данных
• Двойная точность IEEE 754 (double)
– Длина — 8 байт
– Используется по умолчанию
• Одинарная точность IEEE 754 (float)
– Длина — 4 байт
– Числа оканчиваются суффиксом f: 3.1415f
При записи чисел можно пользоваться как обычной, так и
экспоненциальной формой
Вещественные числа
Примитивные типы данных
• Основной тип – сhar
• Идеологически – коды символов в Unicode
• На самом деле, 16-битные целые
Символы
Примитивные типы данных
(пример: PrimitiveDataTypes.java)
Примитивные типы данных
• Арифметические и логические операции – так же, как и в C/C++
• Есть бинарные операции ~, ^, &,|, >>, <<, >>>. Последний
работает с беззнаковыми числами (заполняет левый бит нулём)
Операции
Простые типы данных
• Основной тип – String
• Идеологически – набор unicode-символов
• На самом деле, не просто массив!
• Строки нельзя менять
• Строки можно конкатенировать, используя операцию «+».
Результатом будет новая строка (!)
Строки
Простые типы данных
• Объявляются с ключевым словом enum
• Автоматически приводятся к строке или целому числу
• Можно получить значение из строковой константы
Перечисления
Простые типы данных
(пример: Enumerations.java)
Простые типы данных
• int → Integer
• float → Float
• double → Double
• char → Character
Классы-обёртки
Простые типы данных
Классы-обёртки
• Указанные классы – обёртки для простых типов
• Обрабатываются как объекты, а не просто как значения
• Имеют методы для преобразования строковых типов в
числовые, и обратно
Массивы
(пример: ArrayExamples.java)
Массивы
• Части массивов можно копировать
• Массивы можно сортировать
• Ссылка на массив – не то же самое, что сам массив
Работа с памятью
• Переменные объектного типа - ссылки
• Выделение памяти и создание нового объекта – после
ключевого слова new
• Следить за памятью не нужно: Сборщик Мусора учитывает
выделенную память, освобождая блоки, которые больше не
используются.
Ветвление
• Условный оператор (if (condition) { })
• Как вариант:
if (condition1) {} else if (condition2) {} else {}
Условия – только выражения типа boolean.
• Оператор выбора
switch (expr) {
case val1: stmt1; break;
default: stmt2;
}
Циклы
• Всё, как в С/C++:
– Предусловие (while (condition) { })
– Постусловие (do { } while (condition))
– For (for (int i; ;) { })
– Путешествие по массиву:
for (int i: new int[] {1, 2, 3}) { }
Работа с документацией
• Код можно содержать, если код документирован.
• Встроенные средства документации программ – javadoc.
• Можно документировать практически всё (классы, методы, …)
Работа с документацией
(пример: JavaDocExample.java)
Резюме
• Пишите красиво!
• Используйте комментарии
• Документируйте свой код
• Внимательнее с приведением типов
• Keep it simple and sweet :)

More Related Content

Viewers also liked

Viewers also liked (11)

Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
Date & Time in Java SE 8
Date & Time in Java SE 8Date & Time in Java SE 8
Date & Time in Java SE 8
 
մեթոդ և հնար
մեթոդ և հնարմեթոդ և հնար
մեթոդ և հնար
 
Մաթեմատիկա
ՄաթեմատիկաՄաթեմատիկա
Մաթեմատիկա
 
դաս մաթեմատիկա Հասմիկ Ավետիքյան
դաս մաթեմատիկա Հասմիկ Ավետիքյանդաս մաթեմատիկա Հասմիկ Ավետիքյան
դաս մաթեմատիկա Հասմիկ Ավետիքյան
 
մաթեմատիկա 4 րդ դասարան
մաթեմատիկա 4 րդ դասարանմաթեմատիկա 4 րդ դասարան
մաթեմատիկա 4 րդ դասարան
 
ուսուցման մեթոդներ
ուսուցման մեթոդներուսուցման մեթոդներ
ուսուցման մեթոդներ
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]
 
դասվար թեմատիկ պլան
դասվար թեմատիկ պլանդասվար թեմատիկ պլան
դասվար թեմատիկ պլան
 
Բաց դաս
Բաց դասԲաց դաս
Բաց դաս
 
Դասի պլան
Դասի պլանԴասի պլան
Դասի պլան
 

Similar to Java. Lecture 01. Introducing Java

Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Javaolegol
 
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Javaphearnot
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objectscolriot
 
Scala: что, как и зачем?
Scala: что, как и зачем?Scala: что, как и зачем?
Scala: что, как и зачем?Roman Timushev
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage CollectorOlexandra Dmytrenko
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"OdessaQA
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыPositive Development User Group
 
Join the python_side
Join the python_sideJoin the python_side
Join the python_sidePaul Dmitryev
 
ОПК № 2 – Алгоритмы и структуры данных, язык C
ОПК № 2 – Алгоритмы и структуры данных, язык CОПК № 2 – Алгоритмы и структуры данных, язык C
ОПК № 2 – Алгоритмы и структуры данных, язык CVladimir Parfinenko
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Javametaform
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)ScalaNsk
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?Vasil Remeniuk
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыUnguryan Vitaliy
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013ScalaNsk
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языковMax Lapshin
 

Similar to Java. Lecture 01. Introducing Java (20)

Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
 
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Java
 
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objects
 
Scala: что, как и зачем?
Scala: что, как и зачем?Scala: что, как и зачем?
Scala: что, как и зачем?
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage Collector
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
Join the python_side
Join the python_sideJoin the python_side
Join the python_side
 
ОПК № 2 – Алгоритмы и структуры данных, язык C
ОПК № 2 – Алгоритмы и структуры данных, язык CОПК № 2 – Алгоритмы и структуры данных, язык C
ОПК № 2 – Алгоритмы и структуры данных, язык C
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Java
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторы
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языков
 
Bytecode
BytecodeBytecode
Bytecode
 

More from colriot

Java. Lecture 12. Development Tools
Java. Lecture 12. Development ToolsJava. Lecture 12. Development Tools
Java. Lecture 12. Development Toolscolriot
 
Java. Lecture 10. Working with DBMS
Java. Lecture 10. Working with DBMSJava. Lecture 10. Working with DBMS
Java. Lecture 10. Working with DBMScolriot
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programmingcolriot
 
Java. Lecture 08. Multithreaded Programming
Java. Lecture 08. Multithreaded ProgrammingJava. Lecture 08. Multithreaded Programming
Java. Lecture 08. Multithreaded Programmingcolriot
 
Java. Lecture 07. Advanced XML
Java. Lecture 07. Advanced XMLJava. Lecture 07. Advanced XML
Java. Lecture 07. Advanced XMLcolriot
 
Java. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML BasicsJava. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML Basicscolriot
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/Ocolriot
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debuggingcolriot
 
Java. Lecture 04. Standart Library
Java. Lecture 04. Standart LibraryJava. Lecture 04. Standart Library
Java. Lecture 04. Standart Librarycolriot
 
Java. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UMLJava. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UMLcolriot
 

More from colriot (10)

Java. Lecture 12. Development Tools
Java. Lecture 12. Development ToolsJava. Lecture 12. Development Tools
Java. Lecture 12. Development Tools
 
Java. Lecture 10. Working with DBMS
Java. Lecture 10. Working with DBMSJava. Lecture 10. Working with DBMS
Java. Lecture 10. Working with DBMS
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programming
 
Java. Lecture 08. Multithreaded Programming
Java. Lecture 08. Multithreaded ProgrammingJava. Lecture 08. Multithreaded Programming
Java. Lecture 08. Multithreaded Programming
 
Java. Lecture 07. Advanced XML
Java. Lecture 07. Advanced XMLJava. Lecture 07. Advanced XML
Java. Lecture 07. Advanced XML
 
Java. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML BasicsJava. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML Basics
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/O
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debugging
 
Java. Lecture 04. Standart Library
Java. Lecture 04. Standart LibraryJava. Lecture 04. Standart Library
Java. Lecture 04. Standart Library
 
Java. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UMLJava. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UML
 

Java. Lecture 01. Introducing Java

  • 1.
  • 2. Немного истории • 1990 - Oak, Green (James Gosling) • 1995 - Java 1.0 • 1998 - Java 2 (Java 1.2) • … • 2011 - Java 7
  • 3. Знакомство с Java • Java Programming Language • Java Platform – Java 2 Platform, Standard Edition (Java SE) – Java 2 Platform, Enterprise Edition (Java EE) – Java 2 Platform, Micro Edition (Java ME) – Java Card technology
  • 5. Tools • Java Runtime Environmen (JRE) и Java Development Kit (JDK) – JAVA_HOME – %JAVA_HOME%binjava.exe – %JAVA_HOME%binjavac.exe • Integrated Development Environment (IDE) – Eclipse – IntelliJ IDEA – NetBeans
  • 6. Точка входа в программу (пример: HelloWorld.java)
  • 7. Точка входа в программу public static void main(String[] args) { // the very first lines of code follow } • Название метода – только main • Аргументы метода – массив аргументов командной строки
  • 8. Точка входа в программу (пример: HelloWorld2.java)
  • 9. Примитивные типы данных • Логический • Целые числа • Вещественные числа • Символы
  • 10. Примитивные типы данных • Основной тип – boolean • Только два значения: true и false • В отличие от C, булев и целочисленный тип различаются. Логический
  • 11. Примитивные типы данных • Основной тип – int • Есть расширенные и сокращённые диапазоны (byte, short, long) • Допускается запись в десятичном, восьмеричном и шестнадцатеричном виде • Для long надо указывать суффикс l Целые числа
  • 12. Примитивные типы данных • Двойная точность IEEE 754 (double) – Длина — 8 байт – Используется по умолчанию • Одинарная точность IEEE 754 (float) – Длина — 4 байт – Числа оканчиваются суффиксом f: 3.1415f При записи чисел можно пользоваться как обычной, так и экспоненциальной формой Вещественные числа
  • 13. Примитивные типы данных • Основной тип – сhar • Идеологически – коды символов в Unicode • На самом деле, 16-битные целые Символы
  • 15. Примитивные типы данных • Арифметические и логические операции – так же, как и в C/C++ • Есть бинарные операции ~, ^, &,|, >>, <<, >>>. Последний работает с беззнаковыми числами (заполняет левый бит нулём) Операции
  • 16. Простые типы данных • Основной тип – String • Идеологически – набор unicode-символов • На самом деле, не просто массив! • Строки нельзя менять • Строки можно конкатенировать, используя операцию «+». Результатом будет новая строка (!) Строки
  • 17. Простые типы данных • Объявляются с ключевым словом enum • Автоматически приводятся к строке или целому числу • Можно получить значение из строковой константы Перечисления
  • 19. Простые типы данных • int → Integer • float → Float • double → Double • char → Character Классы-обёртки
  • 20. Простые типы данных Классы-обёртки • Указанные классы – обёртки для простых типов • Обрабатываются как объекты, а не просто как значения • Имеют методы для преобразования строковых типов в числовые, и обратно
  • 22. Массивы • Части массивов можно копировать • Массивы можно сортировать • Ссылка на массив – не то же самое, что сам массив
  • 23. Работа с памятью • Переменные объектного типа - ссылки • Выделение памяти и создание нового объекта – после ключевого слова new • Следить за памятью не нужно: Сборщик Мусора учитывает выделенную память, освобождая блоки, которые больше не используются.
  • 24. Ветвление • Условный оператор (if (condition) { }) • Как вариант: if (condition1) {} else if (condition2) {} else {} Условия – только выражения типа boolean. • Оператор выбора switch (expr) { case val1: stmt1; break; default: stmt2; }
  • 25. Циклы • Всё, как в С/C++: – Предусловие (while (condition) { }) – Постусловие (do { } while (condition)) – For (for (int i; ;) { }) – Путешествие по массиву: for (int i: new int[] {1, 2, 3}) { }
  • 26. Работа с документацией • Код можно содержать, если код документирован. • Встроенные средства документации программ – javadoc. • Можно документировать практически всё (классы, методы, …)
  • 28. Резюме • Пишите красиво! • Используйте комментарии • Документируйте свой код • Внимательнее с приведением типов • Keep it simple and sweet :)