Основы технологии Java. Java объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая.

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



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

Jav a ЯЗЫК ПРОГРАММИРОВАНИЯ Java ИСТОРИЯ СОЗДАНИЯ Изначально язык назывался Oak («Дуб»), разрабатывался Джеймсом Гослингом для программирования бытовых.
Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Java: современные технологии разработки ПО Вашенков О.Е. ООО «РСС», разработчик ПО.
Работа с программами на языке JAVA. JAVA объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems. Приложения Java обычно.
Сокеты TCP/IP Лекция Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня (класс URL обеспечивает выполнение только.
Java как язык Веба: эволюция или ребрендинг? Анатолий Филин, ЗАО «Грамант»
1 Java. Введение JDK, JRE, JVM, IDE Ерофеева Елена Анатольевна ассистент кафедры МПУ.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
JavaScript JavaScript – объектно-ориентированный скриптовый язык программирования, разрабатываемый компанией Sun Microsystems. Является диалектом языка.
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Разработка сред управляемого исполнения на примере виртуальной машины Java Занятие 1 Салищев С. И.
Платформа Java SE: введение Андрей Дмитриев
1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Транксрипт:

Основы технологии Java

Java объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. Так называют не только сам язык, но и платформу для создания приложений уровня предприятий на основе данного языка. Класс языка: объектно-ориентированный, структурный, императивный Появился в: 1995 г. Автор: Sun Microsystems Последняя версия: Java Standard Edition 6 (1.6.12) Типизация данных: строгая полиморфная, статическая Основные реализации:многочисленные Предки: Objective-C, C++, Smalltalk, Eiffel Потомки: Groovy, C#, J#, VJ#, PHP

Основные особенности Изначально новый язык программирования назывался Oak (русск. Дуб) и разрабатывался Джеймсом Гослингом для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Программы на Java транслируются в байт-код, выполняемый виртуальной java-машиной (JVM).

Основные особенности Достоинства: – байтовый код, в отличие от текста, обрабатывается значительно быстрее – полная независимости байт-кода от ОС и оборудования – гибкая система безопасности Недостатки: – байт-кода виртуальной машиной может снижать производительность программ и алгоритмов Решения: – JIT (Just-In-Time compilation), позволяющей переводить байт-код в машинный код во время исполнения программы с возможностью сохранения версий класса в машинном коде – широкое использование native-кода в стандартных библиотеках – аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM)

История версий Java 1.0 Разработка Java началась в 1990 году, первая официальная версия Java 1.0, была выпущена только в 1995 году. Java 2.0 К 1998 году была разработана обновлённая спецификация JDK 1.2, вышедшая под наименованием Java 2. Собственно языковых изменений в данной версии не появилось. Платформа получила следующие дополнения: Набор средств для создания визуального интерфейса пользователя Swing. Коллекции. Поддержка файлов Policy и цифровых сертификатов пользователя. Java 2D. Поддержка технологии drag-and-drop. Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках. Поддержка воспроизведения аудио-файлов нескольких популярных форматов. Полная поддержка технологии CORBA. JIT-компилятор, улучшенная производительность.

История версий. Java 5 Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений: Перечислимые типы (enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей. – Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные. – Перечисление может реализовывать интерфейсы. – Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым. Аннотации возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одновременно выпущен инструментарий для использования аннотированного кода. Одно из применений аннотаций упрощение создания тестовых модулей для Java-кода. Средства обобщённого программирования (generics) механизм, аналогичный шаблонам в C++ или C#, дающий возможность создавать классы и методы с полями и параметрами произвольного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.

Классификация платформ Java J2EE или Java EE (начиная с v1.5) Java Enterprise Editon, для создания программного обеспечения уровня предприятия; J2SE или Java SE (начиная с v1.5) Java Standard Editon, для создания пользовательских приложений, в первую очередь для настольных систем; J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах Самыми популярными считаются серверные технологии семейства J2EE. Последним релизом является версия 1.6

Применения платформы Java Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: Amazon, eBay, Flickr, Google (Gmail), Yandex, LinkedIn. Следующие компании в основном фокусируются на Java (J2EE) технологиях, а не на.NET, хотя имеют дело также и с последними: SAP, IBM, Oracle.

Основные возможности автоматическое управление памятью расширенные возможности обработки исключительных ситуаций; богатый набор средств фильтрации ввода/вывода; набор стандартных коллекций, таких как массив, список, стек и т. п.; наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI); наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы; встроенные в язык средства создания многопоточных приложений; унифицированный доступ к базам данных на основе JDBC и SQLJ. поддержка шаблонов (начиная с версии 1.5)

Пример программы

Примитивные типы

Объектные переменные, объекты, ссылки и указатели В языке Java имеются только динамически создаваемые объекты. Причем переменные объектного типа и объекты в Java совершенно разные сущности. Переменные объектного типа являются ссылками, то есть неявными указателями на динамически создаваемые объекты. Это подчёркивается синтаксисом описания переменных. Так, в Java нельзя писать: double a[10][20]; Foo b(30); а нужно: double[][] a = new double[10][20]; Foo b = new Foo(30);

Объектные переменные, объекты, ссылки и указатели При присваиваниях, передаче в подпрограммы и сравнениях объектные переменные ведут себя как указатели, то есть присваиваются, копируются и сравниваются адреса объектов. А при доступе с помощью объектной переменной к полям данных или методам объекта не требуется никаких специальных операций разыменовывания этот доступ осуществляется так, как если бы объектная переменная была самим объектом. Объектными являются переменные любого типа, кроме простых числовых типов. Явных указателей в Java нет. В отличие от указателей C, C++ и других языков программирования, ссылки в Java в высокой степени безопасны благодаря жёстким ограничениям на их использование, в частности: Нельзя преобразовывать объект типа int или любого другого примитивного типа в указатель или ссылку и наоборот. Над ссылками запрещено выполнять операции ++,, +, или любые другие арифметические операции.

Объектные переменные, объекты, ссылки и указатели Преобразование типов между ссылками жёстко регламентировано. За исключением ссылок на массивы, разрешено преобразовывать ссылки только между наследуемым типом и его наследником, причём преобразование наследуемого типа в наследующий должно быть явно задано и во время выполнения производится проверка его осмысленности. Преобразования ссылок на массивы разрешены лишь тогда, когда разрешены преобразования их базовых типов, а также нет конфликтов размерности. В Java нет операций взятия адреса (&) или взятия объекта по адресу (*). Звёздочка в Java означает умножение, и только. Амперсанд (&) означает всего лишь «побитовое и» (двойной амперсанд «логическое и»). Благодаря таким специально введенным ограничениям в Java невозможно прямое манипулирование памятью на уровне физических адресов (хотя ссылки, не указывающие ни на что, есть: значение такой ссылки обозначается null).

Средства разработки ПО JDK помимо набора библиотек для платформ Java SE и Java EE содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.В Java нет операций взятия адреса (&) или взятия объекта по адресу (*). Звёздочка в Java означает умножение, и только. Амперсанд (&) означает всего лишь «побитовое и» (двойной амперсанд «логическое и»). NetBeans IDE бесплатная интегрированная среда разработки для всех платформ Java Java ME, Java SE и Java EE. Пропагандируется Sun Microsystems, разработчиком Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Ruby, Fortran и др.). Eclipse бесплатная интегрированная среда разработки для Java SE и Java EE. Ведутся работы по поддержке в Eclipse платформы Java ME. Пропагандируется IBM, одним из важнейших разработчиков корпоративного ПО, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Ruby, Fortran и др.) IntelliJ IDEA коммерческая среда разработки для платформ Java SE, Java EE и Java ME. Oracle JDeveloper

import java.io.*; import java.net.*; public class EchoServer { static ServerSocket server; static DataInputStream dis; static PrintStream ps; final static byte[] EOL={(byte)'\r',(byte)'\n'}; public static void main(String[] args) { }

public static void main(String[] args) { try { System.out.println("!!!!!!!!!!!!!!"); server=new ServerSocket(5000); while(true) { Socket client=server.accept(); System.out.println("Client comming..."); dis=new DataInputStream(client.getInputStream()); ps=new PrintStream(client.getOutputStream()); ps.print("Welcome!"); ps.write(EOL); ps.flush(); String line; do { line=dis.readLine(); if(line!=null) { ps.print("Echo: "+line); ps.write(EOL); } }while (!line.trim().equals("bye")); ps.print("See ya!"); ps.write(EOL); client.close(); } }catch(IOException e) {System.out.println("Error in main()");} }

List of JVM languages AspectJ, an aspect-oriented extension of Java Clojure, a functional Lisp dialect Groovy, a scripting language JavaFX Script, a scripting language targeting the Rich Internet Application domain JRuby, an implementation of Ruby Jython, an implementation of Python Rhino, an implementation of JavaScript Scala, an object-oriented and functional programming language

AdaJGNAT AWKJawk CC to Java Virtual Machine compilers Cobol Veryant isCobol ColdFusionAdobe ColdFusion / Railo / Open BlueDragon Common LispArmed Bear Common Lisp[4] / CLforJava / Jatha (Common LISP) Component PascalGardens Point Component Pascal ErlangErjang Forth myForth JavaScriptRhino LOGO jLogo / XLogo LuaKahlua / Luaj / Jill Oberon-2Canterbury Oberon-2 for JVM Objective Caml (OCaml)OCaml-Java PascalCanterbury Pascal for JVM PHPIBM WebSphere sMash PHP / Caucho Quercus[14] PythonJython RexxIBM NetRexx RubyJRuby SchemeBigloo / Kawa / SISC / JScheme TclJacl / JTcl