Upload
davinci-software
View
90
Download
3
Embed Size (px)
Citation preview
Ladislav Božek
Senior Java Developer
Davinci Software, s.r.o.
Skúsenosti
15 rokov vývoj software,
web aplikácie,
online systémy,
desktopové aplikácie
Speaker
1. Java SE 8
História JDK a aktuálne novinky v Java SE 8
2. Niektoré zaujímavé témy z oblasti Java a JVM
Zopár zaujímavostí, ktoré je dobré vedieť o jazyku Java
Agenda
Holandská IT organizácia založená v roku 1991,
v súčastnosti s viac než 180 zamestnancami.
Pobočka na Slovensku v Bratislave a od Novembra 2013 aj v Žiline.
Spoločnosť
História
5
- autor James Gosling- Sun Microsystems- prvá verzia 1995- pôvodný názov Oak- Oracle
JDK 1.0 (1996)- prvá stabilná verzia
JDK 1.1 (1997)- AWT- vnorené triedy- JDBC- RMI (Remote Method Invocation)- reflection- JIT - Just In Time
James Gosling
História
6
J2SE 1.2 (1998)
- strictfppublic strictfp class Calculation { }
- Swing- Collections - List, Stack, Queue, Set, Map
J2SE 1.3 (2000)
- HotSpot JVM - Client, Server
História
7
J2SE 1.4 (2002)
- assertx = 1;
assert (x > 0)
- vylepšené regulárne výrazy (Perl) ^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-
z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
- Exception chaining- Preferences API
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
História
8
J2SE 5.0 (2004)
- Generics- Anotácie- Autoboxing- Varargs- static imports
import static java.lang.Integer.MAX_VALUE;
System.out.println("Integer.MAX_VALUE: " + MAX_VALUE);
História
9
Java SE 6 (2006)
- dramatické zlepšenie performance- vstavaná integrácia pre skriptovacie jazyky - JavaScript Rhino- zlepšenie Java Web Start- GUI improvements, SwingWorker
Java SE 7 (2011)- Strings in switch statement- try-with-resources statement
Java SE 8 (Marec, 2014)Java SE 9Java SE 10
1. Lambda Expressions2. Method References3. Default Methods4. Stream API5. Opakované anotácie6. Java Time
Java SE 8
10
1. Lambda Expressions
12
- umožňuje zadať funkčnosť ako parameter do metódy- formát: (params) -> statement- funguje iba pre interface s jednou abstract metódou -functional interface
2. Method References
15
použitie v rámci Lambda Expressions, ak - chceme referencovat existujúce metódy- v rámci lambda bloku voláme iba jednu metódu
(a, b) -> a.compareToIgnoreCase(b)
3. Default Methods
16
umožňuje pridávať nové funkcie do existujúceho interface, bez nutnosti meniť jeho implementáciu pomocou nového kľúčového slova: default
3. Default Methods
17
umožňuje pridávať nové funkcie do existujúceho interface, bez nutnosti meniť jeho implementáciu pomocou nového kľúčového slova: default
4. Stream API
18
- java.util.stream package- Intermediate Operations: map, filter, limit, distinct, sorted- Terminal Operations: collect, findAny, findFirst, reduce- neukladajú žiadne elementy
4. Stream API
19
- java.util.stream package- Intermediate Operations: map, filter, limit, distinct, sorted- Terminal Operations: collect, findAny, findFirst, reduce- neukladajú žiadne elementy
4. Stream API
20
Numerical Ranges
Java 8 Streams API prichádza s troma užitočnými rozhraniami- IntStream- DoubleStream- LongStream
7. Java Time API
23
Súčasné riešenie- náročná práca s Date() a Time() a zónami- žiadne štandartné API pre prácu s dátumom a časom- náhrada Joda-Time
Nové balíky- java.time- java.time.format- java.time.zone
Niektoré zaujímavé témy z oblasti Java a JVM
24
1. Java Equals and Hashcode General Contract2. JVM Shutdown Hooks 3. Profiling4. Remote Debugging5. Spring
JVM Shutdown Hooks
28
- od verzie 1.3 v triede java.lang.Runtime- nie je veľmi známe medzi Java developermi- zavolá sa príslušný Thread, keď sa ukončuje VM (CTRL-C alebo kill signal)- umožňuje pridať niekoľko vlákien - multiple Threads
Profiling
30
Možnosti profilovania Java aplikácie pomocou vstavaných príkazov JDK
- JMap - command line tool
- JConsole
- JVisualVM - od verzie 1.6 update 7
Remote Debug
36
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y <class>
Listening for transport dt_socket at address: 8000
1.spustenie aplikácie
2.napojenie na aplikáciu 3.remote debug
Spring
37
- autor Rod Jonson- Expert One-on-One J2EE Design and Development- J2EE without EJB
- alternatíva ku Enterprise JavaBeans (EJB)- Najpopulárnejší nástroj na vývoj Java aplikácí- IoC Container
Spring
42
Spring aplikácia
public class SpringDemo {
public static void main(String[] args) {
ApplicationContext contex = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml");
TextEditor editor = (TextEditor) contex.getBean("TextEditorBean");
editor.open();
}
}
Ďakujem
http://javabrains.koushik.org/
http://spring.io/
www.cvlite.sk/p/ladislav.bozek