m7: 1.the java platform

56
The Magnificent 7 Платформата Java. Езикът за програмиране Java. Първи стъпки в Java.

Upload: bozhidar-batsov

Post on 20-Jun-2015

492 views

Category:

Technology


5 download

DESCRIPTION

The firs

TRANSCRIPT

Page 1: M7: 1.The Java Platform

The Magnificent 7Платформата Java. Езикът за програмиране

Java. Първи стъпки в Java.

Page 2: M7: 1.The Java Platform

In Memoriam

Page 3: M7: 1.The Java Platform

Божидар “Master” Бацов

Page 4: M7: 1.The Java Platform

Цветомила “Цвети” Михайлова

Page 5: M7: 1.The Java Platform

Васил “Най-добрия”Сакъров

Page 6: M7: 1.The Java Platform

КомуникацияСайт

Пощенски списък

http://groups.google.com/group/m7-java

Twitter

@bbatsov, #m7java

Facebook група

M7: Java

Page 7: M7: 1.The Java Platform

За курса

9 седмици

3 х 45 минути с 15 минутни почивки

(забавни) задачи за упражнение

(вълнуващ) курсов проект

финален тест

сертификат

Page 8: M7: 1.The Java Platform

Програмата1. Платформата

2.Основи на езика

3.ООП

4.Swing

5.Генерично програмиране

6.Колекции

7.Потоци и файлове

8.Регулярни изрази

9.Бази данни

10.Уеб

11.Модерни езици

Page 9: M7: 1.The Java Platform

Защо Java?

5+ млрд. устройства

1 млрд. персонални компютри

2.5 млрд. мобилни устройства

550 хил. активации на Android дневно

видео плеъри, нав. системи, мед. техника, банкови терминали

Page 10: M7: 1.The Java Platform

Защо Java? (част 2)

6.5 милиона разработчици

са преобладаващо в Индия ;-)

получават сериозни заплати :-)

разработват предимно уеб и enterprise приложения

разработват за мобилни устройства

Page 11: M7: 1.The Java Platform

If art interprets our dreams, the computer executes them in the guise of

programs!

Alan J. Perlis

Page 12: M7: 1.The Java Platform

Кратка история на програмирането

В началото беше асемблер

И после Бог каза... “Нека бъде Lisp!”

На седмия ден архангел Ричи каза “Ще се коди на C!”

Архангел Страуструп добави “И на С++!”

И там някъде дойде ерата на Java ;-)

Page 13: M7: 1.The Java Platform

Програмирането през 1995

Големите

С

С++

Lisp

Perl

Претендентите

Python

Haskell

Smalltalk

Page 14: M7: 1.The Java Platform

1986

Position (1986) Language

1 C

2 Ada

3 Lisp

5 C++

Page 15: M7: 1.The Java Platform

1996

Position Language

1 C

2 C++

3 Basic

5 Java

Page 16: M7: 1.The Java Platform

2006

Position Language

1 Java

2 C

3 C++

4 Basic

5 PHP

Page 17: M7: 1.The Java Platform

2011Position Language

1 Java2 C3 C++4 C#5 PHP6 Objective C7 Basic8 Python9 Perl10 JavaScript

Page 18: M7: 1.The Java Platform

2011

Other40%

PHP7%

C#7%

C++9%

C18%

Java19%

Java C C++ C# PHP Other

Page 19: M7: 1.The Java Platform

Силата на JavaПростота

Обектно-ориентиран

Архитектурна независимост

Портативност

Вградена мрежова поддръжка

Надеждност

Сигурност

Паралелизъм

Динамика

Page 20: M7: 1.The Java Platform

Простота

Базиран на С++

Изчистен синтаксис

Garbage collection

Page 21: M7: 1.The Java Platform

Обектно-ориентирано програмиране

Проектиран за ООП

Усъвършенстван обектен модел

Page 22: M7: 1.The Java Platform

Мрежова поддръжка и паралелизъм

Мрежова поддръжка

TCP/IP, HTTP, FTP

Паралелизъм

мултипроцесори

истински нишки

Page 23: M7: 1.The Java Platform

Надеждност

“Има указател - има проблем. Няма указател - няма проблем” - Сталин

Имаш GC, нямаш течове на памет

Page 24: M7: 1.The Java Platform

Сигурност

Stack overflow is a no go.

Не може да се рови в чуждата памет

Не могат да се четат файлове ей така

Page 25: M7: 1.The Java Platform

Преносимост

Стандартизирани типове

Вградена поддръжка на различни файлови системи

Портативни графични интерфейси

Page 26: M7: 1.The Java Platform

Висока производителност

Сравнима с на C(++)

Легендарни оптимизации

Just-in-time компилатор

Page 27: M7: 1.The Java Platform

Раждането на Java

James Gosling и неговата мечта

Проектът Green

Езикът Oak

Езикът Java

Page 28: M7: 1.The Java Platform

Ранните години

Власт на аплетите

Падението

Page 29: M7: 1.The Java Platform

Прераждане и възход

Java EE

Swing

Page 30: M7: 1.The Java Platform

Триумфът

номер 1 при мобилните приложения

номер 1 при enterprise приложенията

номер 1 платформа в света

Page 31: M7: 1.The Java Platform

ЕволюциятаВерсия Година Новости Класове

1.0 1996 самият език 2111.1 1997 Вътрешни класове 4771.2 1998 Няма 15241.3 2000 Няма 18401.4 2002 Assertions 27235.0 2004 Много и все важни :-) 32796 2006 Няма 37777 2011 Project Coin 4020

Page 32: M7: 1.The Java Platform

Значението на Java 7

Java все още е извор на иновация

Фокусът се прехвърля все повече към виртуалната машина

Oracle доказаха, че могат да управляват кораба

Page 33: M7: 1.The Java Platform

Мортал Джомбат

Java vs .Net

Java vs JavaScript

Java vs Ruby

Java vs C/C++

Java vs Scala

Java vs Lisp

Page 34: M7: 1.The Java Platform

Java vs .Net

C#

Супер интеграция с Уиндоус технологии

Много езици

Модулярност

Гъвкавост

Няма портативност

Затворена система

Малка общност

Малко интересни проекти

Вързана за МС

Page 35: M7: 1.The Java Platform

Java vs Ruby

Ruby е красив, елегантен език

Производителността му, обаче, не е много висока

JRuby е мост между Java и Ruby

Page 36: M7: 1.The Java Platform

Java vs JavaScript

накратко - нямат нищо общо :-)

Page 37: M7: 1.The Java Platform

Java vs C/C++

подобен синтаксис

подобна производителност

царуват в различни царства

Page 38: M7: 1.The Java Platform

Java vs Lisp

We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.

Guy Steele, co-author of the Java spec

Page 39: M7: 1.The Java Platform

Java vs Scala

ООП + Функционално програмиране = Scala

отлична поддръжка за паралелно програмиране

още по-добър обектен модел

компактен, но познат синтаксис

същата производителност

Page 40: M7: 1.The Java Platform

Повече от език за програмиране

Език за програмиране

Среда за изпълнение на програми (виртуална машина)

Набор от инструменти за разработка (компилатор, дебъгер, профайлър)

Стандартна библиотека

Page 41: M7: 1.The Java Platform

Издания на Java

Java Runtime Environment(JRE)

необходим минимум за изпълняване на Java приложения

Java Development Kit(JDK) Standard Edition

Java Enterprise Edition (JEE)

Java Micro Editon

Page 42: M7: 1.The Java Platform

Платформата Java

Page 43: M7: 1.The Java Platform

Имплементации на Java

Sun (Oracle) HotSpot VM (OpenJDK)

IBM J9

BEA (Oracle) JRockit

Apache Harmony

Google Dalvik (VM на Android)

GNU Classpath

Page 44: M7: 1.The Java Platform

HotSpot VM

референтна имплементация на Java

основа на свободната OpenJDK

най-подходяща за основния клас приложения (задачи)

текуща версия - 1.7.0_02

обект на настоящия курс :-)

Page 45: M7: 1.The Java Platform

Основни инструменти

java (стартира виртуалната машина)

javac (Java compiler)

jar (инструмент за работа с java архиви)

javaws (стартира Java Web Start)

jvisualvm (графичен инструмент, който показва данни за работата на JVM)

Page 46: M7: 1.The Java Platform

Мараба, Java

public class Maraba { public static void main(String[] args) { System.out.println("Maraba, Java!"); }}

Page 47: M7: 1.The Java Platform

От изходен код до работеща програма

Записваме изходния код във файл

Компилираме

Молим се

Стартираме

Пием по повод великия триумф

Page 48: M7: 1.The Java Platform

Програмистки редактор

оцветяване и форматиране на кода

интеграция с някои външни системи като shell, Version Control System...

лек и бърз

ограничени възможности за рефакториране

постен дебъгер

Page 49: M7: 1.The Java Platform

Големите редактори

Emacs (най-добър сред най-добрите)

vi/vim (най-добър след най-добрия)

Sublime Text 2 (най-добър след най-добрите)

TextMate (само за OS X)

jEdit (написан на Java)

Page 50: M7: 1.The Java Platform

Интегрирани среди за разработка

разбират семантиката на кода

интелигентен анализ на кода

надеждно рефакториране

интеграция с куп външни системи

могъщ дебъгер и профайлър

Page 51: M7: 1.The Java Platform

IntelliJ IDEA

най-интелигентното Java IDE

написано на Java (Swing)

изключително интелигентен анализ на кода

изключително добра поддръжка за рефакториране

Page 52: M7: 1.The Java Platform

Eclipse

Най-популярната среда за разработка на Java приложения

Огромна общност

Куп разширения

Лош качествен контрол

Малко иновация

Page 53: M7: 1.The Java Platform

NetBeans

“Стандартната” среда за разработка на Java приложения

Много добра поддръжка за Oracle-ски технологии (JSF, EJB, etc)

Изчистен интерейс

Малко разширения, лош качествен контрол

Page 54: M7: 1.The Java Platform

Упражнение

Инсталирайте си Oracle JDK SE 7

Конфигурирайте си пътя на изпълнение (PATH environment variable)

Изпробвайте някой от примерите от днешната лекция

Изпийте една бира/сливова за добре свършената работа

Page 55: M7: 1.The Java Platform

Въпроси?

Page 56: M7: 1.The Java Platform

The End