SlideShare a Scribd company logo
1 of 10
Download to read offline
Java - wprowadzenie
TheDioniz
Java
1. Projekt Oak - 1991 rok,
a. autor: James Gosling, Sun Microsystems
b. nazwa zmieniona na „Green”, następnie na „Java”
c. public release - rok 1995, wersja 1.0
2. „Write Once Run Anywhere”
a. Java Virtual Machine - Oracle HotSpot, OpenJDK i wiele, wiele innych...
i. JRE czy JDK?
3. Paradygmaty:
a. obiektowy, proceduralny, strukturalny, imperatywny, generyczny,
wielowątkowy, funkcyjny
Duke, oficjalna maskotka Javy
CPL BCPL B C C++CPL
Wpływowe języki
1963 1966 1972 1983
1969
1995
Dlaczego Java?
1. Łatwiejsze zarządzanie kodem aplikacji
a. co gdy aplikacja ma więcej, niż 10 tys linii kodu?
i. kod spaghetti (goto), trudny do zrozumienia / przeanalizowania
2. Rozwój bogatych aplikacji internetowych
a. JSP, JSF, Servlet, EJB, JMS, JDBC, JPA, JNDI, JAXP, JAX-WS...
3. Separacja od architektury procesora
a. mikrokontrolery, procesory - dla każdej architektury kompilator, seriously…?
4. Zautomatyzowane zarządzanie pamięcią
a. Garbage Collector - odśmiecacz pamięci
C++
● „Write Once Run Anywhere”
● Wywołania C dostępne poprzez JNI
● Program kompilowany do kodu
bajtowego i wykonywany w JVM
● Dla wszystkich typów:
„pass by value”
● Pojedyncze dziedziczenie
● Automatyczne zarządzanie pamięcią
Java
● „Write Once Compile Anywhere”
● Kompatybilny z C*
● Program kompilowany do kodu
maszynowego, wykonywany bezpośrednio
● Przekazywanie parametrów przez:
wskaźniki, referencje i „pass by value”
● Pojedyncze i wielodziedziczenie
● Rdzennie manualne zarządzanie pamięcią
vs
*w większości przypadków
Rozwój i wersje Javy
● JDK 1.0 (Styczeń 23, 1996)
● JDK 1.1 (Luty 19, 1997) - klasy wewnętrzne, reflection API, i18n, Unicode, rozszerzenie dla AWT
● J2SE 1.2 (Grudzień 8, 1998) - kompilator JIT, framework „Collections”, Swing API
● J2SE 1.3 (Maj 8, 2000)
● J2SE 1.4 (Luty 6, 2002) - słowo kluczowe „assert”, Non-blocking IO, Java Web Start, Image I/O API
● J2SE 5.0 (Wrzesień 30, 2004) - typy generyczne, enhanced loop (foreach), „varargs”, statyczne importy,
automatyczne opakowywanie/odpakowywanie typów prymitywnych
● Java SE 6 (Grudzień 11, 2006)
● Java SE 7 (Lipiec 28, 2011) - łańcuchy znaków (String) w bloku „switch”, try-with-resources, multi-catch w
przechwytywaniu wyjątków, NIO2, „diamentowy operator”
● Java SE 8 (Marzec 18, 2014) - programowanie funkcyjne, stream API, nowe API czasu, domyślne i statyczne
metody w interfejsach...
● Java SE 9 (Lipiec 27, 2017) - modularność JDK, jshell, jlink, G1 jako domyślny GC… i wiele więcej...
Pierwszy program w Java
Punkt startowy
// plik Start.java
public class Start {
public static void main(String[ ] args) {
System.out.println(“Witaj świecie”);
}
}
Kompilacja kodu
Opcjonalnie punkt 1 i 2:
1. Ustawiona zmienna środowiskowa JAVA_HOME
2. Dodana JAVA_HOME/bin do zmiennej środowiskowej PATH
3. javac Start.java -> Start.class -> java Start
kod bajtowy
(produkt kompilacji)
wczytanie do JVM i
uruchomienie programu
kompilacja
Zadanie
1. Sprawdź wersję Javy zainstalowanej na swoim systemie
a. prócz wersji, jaka jest wersja JVM, Oracle HotSpot / OpenJDK?
b. czy zainstalowana JVM jest 32-bitowa czy 64?
2. Sprawdź gdzie wskazuje zmienna środowiskowa JAVA_HOME
a. czy jest w ogóle ustawiona?
3. Napisz, skompiluj i uruchom swój pierwszy program wyświetlający łańcuch znaków:
„Java to język bazujący na obiektach”.

More Related Content

Similar to Java początki

4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
PROIDEA
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005
Tomasz Bak
 

Similar to Java początki (6)

4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
4Developers 2015: Czterej jeźdźcy apokalipsy, gdy Armagedon w JVM nadchodzi. ...
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005
 
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
ES2015 / ES6 Podstawy nowoczesnego JavaScriptuES2015 / ES6 Podstawy nowoczesnego JavaScriptu
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
 
Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-a
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 

Java początki

  • 2. Java 1. Projekt Oak - 1991 rok, a. autor: James Gosling, Sun Microsystems b. nazwa zmieniona na „Green”, następnie na „Java” c. public release - rok 1995, wersja 1.0 2. „Write Once Run Anywhere” a. Java Virtual Machine - Oracle HotSpot, OpenJDK i wiele, wiele innych... i. JRE czy JDK? 3. Paradygmaty: a. obiektowy, proceduralny, strukturalny, imperatywny, generyczny, wielowątkowy, funkcyjny Duke, oficjalna maskotka Javy
  • 3. CPL BCPL B C C++CPL Wpływowe języki 1963 1966 1972 1983 1969 1995
  • 4. Dlaczego Java? 1. Łatwiejsze zarządzanie kodem aplikacji a. co gdy aplikacja ma więcej, niż 10 tys linii kodu? i. kod spaghetti (goto), trudny do zrozumienia / przeanalizowania 2. Rozwój bogatych aplikacji internetowych a. JSP, JSF, Servlet, EJB, JMS, JDBC, JPA, JNDI, JAXP, JAX-WS... 3. Separacja od architektury procesora a. mikrokontrolery, procesory - dla każdej architektury kompilator, seriously…? 4. Zautomatyzowane zarządzanie pamięcią a. Garbage Collector - odśmiecacz pamięci
  • 5. C++ ● „Write Once Run Anywhere” ● Wywołania C dostępne poprzez JNI ● Program kompilowany do kodu bajtowego i wykonywany w JVM ● Dla wszystkich typów: „pass by value” ● Pojedyncze dziedziczenie ● Automatyczne zarządzanie pamięcią Java ● „Write Once Compile Anywhere” ● Kompatybilny z C* ● Program kompilowany do kodu maszynowego, wykonywany bezpośrednio ● Przekazywanie parametrów przez: wskaźniki, referencje i „pass by value” ● Pojedyncze i wielodziedziczenie ● Rdzennie manualne zarządzanie pamięcią vs *w większości przypadków
  • 6. Rozwój i wersje Javy ● JDK 1.0 (Styczeń 23, 1996) ● JDK 1.1 (Luty 19, 1997) - klasy wewnętrzne, reflection API, i18n, Unicode, rozszerzenie dla AWT ● J2SE 1.2 (Grudzień 8, 1998) - kompilator JIT, framework „Collections”, Swing API ● J2SE 1.3 (Maj 8, 2000) ● J2SE 1.4 (Luty 6, 2002) - słowo kluczowe „assert”, Non-blocking IO, Java Web Start, Image I/O API ● J2SE 5.0 (Wrzesień 30, 2004) - typy generyczne, enhanced loop (foreach), „varargs”, statyczne importy, automatyczne opakowywanie/odpakowywanie typów prymitywnych ● Java SE 6 (Grudzień 11, 2006) ● Java SE 7 (Lipiec 28, 2011) - łańcuchy znaków (String) w bloku „switch”, try-with-resources, multi-catch w przechwytywaniu wyjątków, NIO2, „diamentowy operator” ● Java SE 8 (Marzec 18, 2014) - programowanie funkcyjne, stream API, nowe API czasu, domyślne i statyczne metody w interfejsach... ● Java SE 9 (Lipiec 27, 2017) - modularność JDK, jshell, jlink, G1 jako domyślny GC… i wiele więcej...
  • 8. Punkt startowy // plik Start.java public class Start { public static void main(String[ ] args) { System.out.println(“Witaj świecie”); } }
  • 9. Kompilacja kodu Opcjonalnie punkt 1 i 2: 1. Ustawiona zmienna środowiskowa JAVA_HOME 2. Dodana JAVA_HOME/bin do zmiennej środowiskowej PATH 3. javac Start.java -> Start.class -> java Start kod bajtowy (produkt kompilacji) wczytanie do JVM i uruchomienie programu kompilacja
  • 10. Zadanie 1. Sprawdź wersję Javy zainstalowanej na swoim systemie a. prócz wersji, jaka jest wersja JVM, Oracle HotSpot / OpenJDK? b. czy zainstalowana JVM jest 32-bitowa czy 64? 2. Sprawdź gdzie wskazuje zmienna środowiskowa JAVA_HOME a. czy jest w ogóle ustawiona? 3. Napisz, skompiluj i uruchom swój pierwszy program wyświetlający łańcuch znaków: „Java to język bazujący na obiektach”.