1 / 20

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. История версий • 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-компилятор, улучшенная производительность.

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

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

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

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

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

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

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

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

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

  15. Средства разработки ПО • 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

  16. import java.io.*; import java.net.*; publicclassEchoServer { staticServerSocket server; staticDataInputStreamdis; staticPrintStreamps; finalstaticbyte[] EOL={(byte)'\r',(byte)'\n'}; publicstaticvoid main(String[]args) { } }

  17. publicstaticvoid main(String[]args) { try { System.out.println("!!!!!!!!!!!!!!"); server=newServerSocket(5000); while(true) { Socket client=server.accept(); System.out.println("Client comming..."); dis=newDataInputStream(client.getInputStream()); ps=newPrintStream(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()");} }

  18. List of JVM languages • AspectJ, an aspect-oriented extension of Java • Clojure, a functional Lisp dialect • Groovy, a scripting language • JavaFXScript, 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

  19. AdaJGNAT • AWKJawk • CCto Java Virtual Machine compilers • CobolVeryantisCobol • ColdFusion Adobe ColdFusion / Railo / Open BlueDragon • Common Lisp Armed Bear Common Lisp[4] / CLforJava / Jatha (Common LISP) • Component Pascal Gardens Point Component Pascal • ErlangErjang • ForthmyForth • JavaScript Rhino • LOGO jLogo / XLogo • LuaKahlua/ Luaj / Jill • Oberon-2 Canterbury Oberon-2 for JVM • ObjectiveCaml (OCaml)OCaml-Java • PascalCanterbury Pascal for JVM • PHP IBM WebSpheresMash PHP / CauchoQuercus[14] • PythonJython • Rexx IBM NetRexx • RubyJRuby • SchemeBigloo / Kawa / SISC / JScheme • Tcl Jacl/ JTcl

More Related