M7: 1.The Java Platform

723 views

Published on

The firs

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
723
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

M7: 1.The Java Platform

  1. 1. The Magnificent 7 Платформата Java. Езикът за програмиране Java. Първи стъпки в Java.
  2. 2. In Memoriam
  3. 3. Божидар “Master” Бацов
  4. 4. Цветомила “Цвети” Михайлова
  5. 5. Васил “Най-добрия” Сакъров
  6. 6. Комуникация Сайт Пощенски списък http://groups.google.com/group/m7-java Twitter @bbatsov, #m7java Facebook група M7: Java
  7. 7. За курса 9 седмици 3 х 45 минути с 15 минутни почивки (забавни) задачи за упражнение (вълнуващ) курсов проект финален тест сертификат
  8. 8. Програмата 1. Платформата 2.Основи на езика 3.ООП 4.Swing 5.Генерично програмиране 6.Колекции 7.Потоци и файлове 8.Регулярни изрази 9.Бази данни 10.Уеб 11.Модерни езици
  9. 9. Защо Java? 5+ млрд. устройства 1 млрд. персонални компютри 2.5 млрд. мобилни устройства 550 хил. активации на Android дневно видео плеъри, нав. системи, мед. техника, банкови терминали
  10. 10. Защо Java? (част 2) 6.5 милиона разработчици са преобладаващо в Индия ;-) получават сериозни заплати :-) разработват предимно уеб и enterprise приложения разработват за мобилни устройства
  11. 11. If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis
  12. 12. Кратка история на програмирането В началото беше асемблер И после Бог каза... “Нека бъде Lisp!” На седмия ден архангел Ричи каза “Ще се коди на C!” Архангел Страуструп добави “И на С++!” И там някъде дойде ерата на Java ;-)
  13. 13. Програмирането през 1995 Големите С С++ Lisp Perl Претендентите Python Haskell Smalltalk
  14. 14. 1986 Position (1986) Language 1 C 2 Ada 3 Lisp 5 C++
  15. 15. 1996 Position Language 1 C 2 C++ 3 Basic 5 Java
  16. 16. 2006 Position Language 1 Java 2 C 3 C++ 4 Basic 5 PHP
  17. 17. 2011 Position Language 1 Java 2 C 3 C++ 4 C# 5 PHP 6 Objective C 7 Basic 8 Python 9 Perl 10 JavaScript
  18. 18. 2011 Other 40% PHP 7% C# 7% C++ 9% C 18% Java 19% Java C C++ C# PHP Other
  19. 19. Силата на Java Простота Обектно- ориентиран Архитектурна независимост Портативност Вградена мрежова поддръжка Надеждност Сигурност Паралелизъм Динамика
  20. 20. Простота Базиран на С++ Изчистен синтаксис Garbage collection
  21. 21. Обектно-ориентирано програмиране Проектиран за ООП Усъвършенстван обектен модел
  22. 22. Мрежова поддръжка и паралелизъм Мрежова поддръжка TCP/IP, HTTP, FTP Паралелизъм мултипроцесори истински нишки
  23. 23. Надеждност “Има указател - има проблем. Няма указател - няма проблем” - Сталин Имаш GC, нямаш течове на памет
  24. 24. Сигурност Stack overflow is a no go. Не може да се рови в чуждата памет Не могат да се четат файлове ей така
  25. 25. Преносимост Стандартизирани типове Вградена поддръжка на различни файлови системи Портативни графични интерфейси
  26. 26. Висока производителност Сравнима с на C(++) Легендарни оптимизации Just-in-time компилатор
  27. 27. Раждането на Java James Gosling и неговата мечта Проектът Green Езикът Oak Езикът Java
  28. 28. Ранните години Власт на аплетите Падението
  29. 29. Прераждане и възход Java EE Swing
  30. 30. Триумфът номер 1 при мобилните приложения номер 1 при enterprise приложенията номер 1 платформа в света
  31. 31. Еволюцията Версия Година Новости Класове 1.0 1996 самият език 211 1.1 1997 Вътрешни класове 477 1.2 1998 Няма 1524 1.3 2000 Няма 1840 1.4 2002 Assertions 2723 5.0 2004 Много и все важни :-) 3279 6 2006 Няма 3777 7 2011 Project Coin 4020
  32. 32. Значението на Java 7 Java все още е извор на иновация Фокусът се прехвърля все повече към виртуалната машина Oracle доказаха, че могат да управляват кораба
  33. 33. Мортал Джомбат Java vs .Net Java vs JavaScript Java vs Ruby Java vs C/C++ Java vs Scala Java vs Lisp
  34. 34. Java vs .Net C# Супер интеграция с Уиндоус технологии Много езици Модулярност Гъвкавост Няма портативност Затворена система Малка общност Малко интересни проекти Вързана за МС
  35. 35. Java vs Ruby Ruby е красив, елегантен език Производителността му, обаче, не е много висока JRuby е мост между Java и Ruby
  36. 36. Java vs JavaScript накратко - нямат нищо общо :-)
  37. 37. Java vs C/C++ подобен синтаксис подобна производителност царуват в различни царства
  38. 38. 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
  39. 39. Java vs Scala ООП + Функционално програмиране = Scala отлична поддръжка за паралелно програмиране още по-добър обектен модел компактен, но познат синтаксис същата производителност
  40. 40. Повече от език за програмиране Език за програмиране Среда за изпълнение на програми (виртуална машина) Набор от инструменти за разработка (компилатор, дебъгер, профайлър) Стандартна библиотека
  41. 41. Издания на Java Java Runtime Environment(JRE) необходим минимум за изпълняване на Java приложения Java Development Kit(JDK) Standard Edition Java Enterprise Edition (JEE) Java Micro Editon
  42. 42. Платформата Java
  43. 43. Имплементации на Java Sun (Oracle) HotSpot VM (OpenJDK) IBM J9 BEA (Oracle) JRockit Apache Harmony Google Dalvik (VM на Android) GNU Classpath
  44. 44. HotSpot VM референтна имплементация на Java основа на свободната OpenJDK най-подходяща за основния клас приложения (задачи) текуща версия - 1.7.0_02 обект на настоящия курс :-)
  45. 45. Основни инструменти java (стартира виртуалната машина) javac (Java compiler) jar (инструмент за работа с java архиви) javaws (стартира Java Web Start) jvisualvm (графичен инструмент, който показва данни за работата на JVM)
  46. 46. Мараба, Java public class Maraba { public static void main(String[] args) { System.out.println("Maraba, Java!"); } }
  47. 47. От изходен код до работеща програма Записваме изходния код във файл Компилираме Молим се Стартираме Пием по повод великия триумф
  48. 48. Програмистки редактор оцветяване и форматиране на кода интеграция с някои външни системи като shell, Version Control System... лек и бърз ограничени възможности за рефакториране постен дебъгер
  49. 49. Големите редактори Emacs (най-добър сред най-добрите) vi/vim (най-добър след най-добрия) Sublime Text 2 (най-добър след най- добрите) TextMate (само за OS X) jEdit (написан на Java)
  50. 50. Интегрирани среди за разработка разбират семантиката на кода интелигентен анализ на кода надеждно рефакториране интеграция с куп външни системи могъщ дебъгер и профайлър
  51. 51. IntelliJ IDEA най-интелигентното Java IDE написано на Java (Swing) изключително интелигентен анализ на кода изключително добра поддръжка за рефакториране
  52. 52. Eclipse Най-популярната среда за разработка на Java приложения Огромна общност Куп разширения Лош качествен контрол Малко иновация
  53. 53. NetBeans “Стандартната” среда за разработка на Java приложения Много добра поддръжка за Oracle-ски технологии (JSF, EJB, etc) Изчистен интерейс Малко разширения, лош качествен контрол
  54. 54. Упражнение Инсталирайте си Oracle JDK SE 7 Конфигурирайте си пътя на изпълнение (PATH environment variable) Изпробвайте някой от примерите от днешната лекция Изпийте една бира/сливова за добре свършената работа
  55. 55. Въпроси?
  56. 56. The End

×