Java-технологии Основные черты и перспективы развития.

Презентация:



Advertisements
Похожие презентации
Вперёд ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЦЕЛИ: ЦЕЛИ: 1. Средство для задания действий, которые должны быть выполнены машиной.(Машинный язык) 1. Средство для задания.
Advertisements

Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Сокеты TCP/IP Лекция Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня (класс URL обеспечивает выполнение только.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Web - сервисы. Веб-служба, веб-сервис (англ. web service) идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.англ.веб-адресоминтерфейсами.
Типы данных Инна Исаева. Переменные Переменная - это как ящик, в котором можно хранить данные. Каждая переменная имеет своё имя, она служит для хранения.
Язык программирования C# Дмитрий Сошников
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Исключения в Java. Исключения – это механизм взаимодействия между кодом, приведшим к ошибке, и кодом, обрабатывающим ошибку Исключение выбрасывается (throw),
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
ПОТОКИ Начальные сведенияПОТОКИ Начальные сведения.
Низкоуровневые операции в ИС. Сокеты в C#. Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня, в программе следует использовать.
Многопоточное программирование на Java Java Advanced.
Платформа Java SE: введение Андрей Дмитриев
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Транксрипт:

Java-технологии Основные черты и перспективы развития

Содержание Введение Компоненты Java- технологии Виртуальная Java-машина Происхождение Java-языка Основные преимущества Java-технологии Безопасность Эффективность Объектно-ориентированная направленность Устойчивость к ошибкам Поддержка многопоточности Независимость от архитектуры Преимущества интерпретированности в сравнении с высокой продуктивностью Распределенность Доступность инструментария и эффективность разработок Перспективы развития Интересный факт из истории создания Java-технологии, или удар по «пакету Windows» Вывод

Введение Технология Java язык Java виртуальная Java-машина специальные дополнительные меры для обеспечения безопасности и надежной работы сетевых устройств и ПО

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

Java-машина обрабатывает следующие типы данных : byte - байты, short - двухбайтные целые числа, integer - четырехбайтные целые числа, long - восьмибайтные целые числа, float - четырехбайтные вещественные числа, double - восьмибайтные вещественные числа, char - двухбайтные символы, object - четырехбайтные ссылки на объекты, returnAddress - четырехбайтные адреса возврата из метода.

Java-машина имеет следующие регистры: pc - счетчик команд, указывающий на код операции, которая будет выполняться следующей, vars - регистр для доступа к локальным переменным текущего метода, optop - указатель на стек операндов (так как основная часть операций выполняются именно через стек), frame - указатель на структуру окружения времени выполнения.

Три способа выполнения байт-кода Java

Происхождение Java-языка зародился в 1991 году в лабораториях компании Sun Microsystems разработка первой рабочей версии заняла 18 месяцев и имела название Oak, но в 1995 году проект был переименован на Java период становления Java совпал со временем расцвета международной информационной службы World Wide Web.

Основные преимущества Java-технологии Безопасность Эффективность Объектно-ориентированная направленность Устойчивость к ошибкам Поддержка многопоточности Независимость от архитектуры Преимущества интерпретированности в сравнении с высокой продуктивностью Распределенность Доступность инструментария и эффективность разработок

Безопасность Java имеет интерпретированный язык пространство ресурсов Java-программ ограничено так называемой виртуальной Java-машиной, которая может контролировать поведение программы и защищать систему от побочных эффектов, которые могут возникать по вине процессора в языке Java есть дополнительные ограничения, которые не позволяют процессору стать «троянским конем» Java-процессор не может получить доступ к локальному жесткому диску

Эффективность Интерпретация - это наипростейший путь к перенесению программ, реализованных в Java- технологии. Но Java не является интерпретированным языком в чистом понимании. Программа на Java компилируется. Результатом работы компилятора Java является байт- код (bytecode). Байт-код – это оптимизированный набор команд, предназначенный для исполнения виртуальной Java-машиной.

Java-машина имеет следующий набор команд: загрузки констант и переменных в стек операндов, записи переменных из стека операндов в локальные переменные, управления массивами, обработки стека, арифметические стековые, логические стековые, преобразования типов, передачи управления, вызова методов, возврата из метода, манипулирования полями объектов, возбуждения исключительной ситуации, синхронизации, прочие объектные операции.

Объектно-ориентированная направленность унаследовала механизм объектно- ориентированно программирования от С++ объектная модель Java просто и легко расширяется, в то время как о стальные типы остаются как данные, которые не являются объектами, что позволяет значительно увеличить скорость при их обработке.

Устойчивость к ошибкам Java имеет строго определенный язык программирования Исполнительная система Java берет на себя «сбор мусора», чтобы автоматически очистить память, недоступную для программы на смену С++ в Java обработка исключительных ситуаций является обязательной. Из-за этого невозможно скомпилировать программу, которая открывает файл, не обработав возможные ошибки типа «файл не найден», которые возникают при этом. Хорошо написанная Java-программа может сама обрабатывать все ошибки во время исполнения.

Поддержка многопоточности Выполнение Java-программы основано на элегантном, но в то же время высокоорганизованном решении многофункциональной синхронизации, которая позволяет создавать высокоэффективные интерактивные системы.

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

Распределенность Язык Java предназначен для создания программ, которые работают в распределенной среде Internet на базе протоколов TCP/IP в Java присутствует явный уклон передачи сообщений в границах внутреннего адресного пространства высокий уровень абстракции в программировании для среды клиент/сервер.

Доступность инструментария и эффективность разработок Простота программирования на Java. Простота программирования на Java. Переносимость программ на Java, поскольку ликвидируются затраты, связанные с адаптацией программ на конкретных платформах. Переносимость программ на Java, поскольку ликвидируются затраты, связанные с адаптацией программ на конкретных платформах. Интегрированные программы оболочки для разработки Java программ стоят намного дешевле, чем аналогичные продукты С++ Интегрированные программы оболочки для разработки Java программ стоят намного дешевле, чем аналогичные продукты С++ набор инструментария для пакетной компиляции Java программ JDK является freeware набор инструментария для пакетной компиляции Java программ JDK является freeware

Сhat-программа состоит из четырех классов: Server ClientConnection Client ServerConnection

Класс Server import java.net.*; import java.io.*; import java.util.*; public class Server implements Runnable { private int port = 6564; private Hashtable idcon = new Hashtable(); private int id = 0; static final String CRLF = "\r\n"; synchronized void addConnection(Socket s) { ClientConnection con = new ClientConnection(this, s, id); id++; }

Продолжение программы… synchronized void set(String the_id, ClientConnection con) { idcon.remove(the_id) ; con.setBusy(false); Enumeration e = idcon.keys(); while (e.hasMoreElements()) { String id = (String)e.nextElement(); ClientConnection other = (ClientConnection) idcon.get(id); if (!other.isBusy()) con.write("add " + other + CRLF); } idcon.put(the_id, con); broadcast(the_id, "add " + con); }

Продолжение программы… synchronized void sendto(String dest, String body) { ClientConnection con = (ClientConnection)idcon.get(dest); if (con != null) { con.write(body + CRLF); } } } synchronized void broadcast(String exclude, String body) { Enumeration e = idcon.keys(); while (e.hasMoreElements()) { String id = (String)e.nextElement(); if (!exclude.equals(id)) { ClientConnection con = (ClientConnection) idcon.get(id); con.write(body + CRLF); } } }

Продолжение программы… synchronized void delete(String the_id) { broadcast(the_id, "delete " + the_id); } synchronized void kill(ClientConnection c) { if (idcon.remove(c.getId()) == c) { delete(c.getId()); } } public void run() { try { ServerSocket acceptSocket = new ServerSocket(port); System.out.println("Server listening on port " + port); while (true) {

Окончание программы! Socket s = acceptSocket.accept(); addConnection(s); } } catch (IOException e) { System.out.println("accept loop IOException: " + e); } } public static void main(String args[]) { new Thread(new Server()).start(); try { Thread.currentThread().join(); } catch (InterruptedException e) { } }

Вывод Java-технология является очень перспективной в разработках некоммерческого использования Ограниченность инструментария Java не проявляется в проектах небольшого объема Простота программирования различных программ, которые работают в сети Internet/Intranet Переносимость Java программ вызывает необходимость обмена обучающими программами привлекательной с точки зрения эффективности остается идея внедрения в образовательные учреждения сетевых компьютеров (Network Computers), которые работают на базе Java), вместо привычных персональных компьютеров (Personal Computers)

СПАСИБО ЗА ВНИМАНИЕ!!! Надеюсь, вышеизложенная информация будет полезной в изучении Java- технологии и поможет Вам лучше сориентироваться в современном мире высоких технологий;)