SlideShare a Scribd company logo
A	trip	down	memory	lane:	
20	years	in	Java	and	JVM	land
Marcus	Lagergren
@lagergren
Safe	Harbor	Statement
@lagergren
Safe	Harbor	Statement
[This	is	my	story,	my	experiences.	
Official	and	other	peoples’	
versions	of	events	may	vary]
@lagergren
“Senior	Software	Architect”
https://www.klarna.com/careers/open-positions
What	have	I	been	doing	with	my	life	for	these	past	
20	years?
An	informative	keynote
A	historical	keynote
A	nostalgic	keynote
Agenda
• It’s	2015
• Java	has	been	around	for	20	years.
• Longer	if	you	count	the	
alphas/betas	of	Java	1.0
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
Or	even	simpler…
20	years	of	Java	and	runtimes	from	an	
engineer’s	perspective…
20 Years of Java
20 Years of Java
Take	us	back	to	1995!
20 Years of Java
Oops…	too	far
A	boy	gets	his	Commodore	64
20 Years of Java
1991-1993
• Project	“Green”	at	Sun	
Microsystems
1991-1993
• Project	“Green”	at	Sun	
Microsystems
• A	portable	architecture	
for	home	electronics
1991-1993
• Project	“Green”	at	Sun	
Microsystems
• A	portable	architecture	
for	home	electronics
• Remote	controls?
1994
• I’m	still	at	university
• Scraped	together	enough	money	to	build	a	high	
performance	mini	tower	PC
• Pentium	90
• “Wow!	CPU	frequencies	are,	like,	in	the	FM	the	
FM	band	these	days”
1994
• At	the	same	time	in	Santa	Clara
1994
• At	the	same	time	in	Santa	Clara
• Oak	has	better	applications	than	programming	
remote	controls
1994
• At	the	same	time	in	Santa	Clara
• Oak	has	better	applications	than	programming	
remote	controls
• Deal	with	Netscape	finalizing
1994
• At	the	same	time	in	Santa	Clara
• Oak	has	better	applications	than	programming	
remote	controls
• Deal	with	Netscape	finalizing
• Write	once	/	run	everywhere
1994
• At	the	same	time	in	Santa	Clara
• Oak	has	better	applications	than	programming	
remote	controls
• Deal	with	Netscape	finalizing
• Write	once	/	run	everywhere
• “Network	aware”	language
1995-1996
• 1995	was	the	year	where	Internet	suddenly	
meant	“The	World	Wide	Web”
• 1996:	JDK	1.02
• The	first	JDK	released	by	Sun
• Java	in	Netscape	Navigator
1996
I	worked	with	Alphas	of	JDK	1.0	at	Ericsson	
Medialab
1996
I	worked	with	Alphas	of	JDK	1.0	at	Ericsson	
Medialab
1996
I	worked	with	Alphas	of	JDK	1.0	at	Ericsson	
Medialab
The	JDK	fit	on	one	of	these
[Sneakernet,	back	and	forth	to	KTH	where	there	was	bandwidth	and	not	just	my	
v42’’	modem]
1996
Anyone	remember	gamelan.com?
1996
• Internship	at	Ericsson	Medialab
1996
• Internship	at	Ericsson	Medialab
• “Play	with	Ericsson’s	future”
• Use	“cutting	edge	technology”	to	do	something	
with	media	on	demand
1996
• Internship	at	Ericsson	Medialab
• “Play	with	Ericsson’s	future”
• Use	“cutting	edge	technology”	to	do	something	
with	media	on	demand
1996
• Basically	Spotify
1996
• Basically	Spotify
• …	and	Netflix
1996
• Basically	Spotify
• …	and	Netflix
• …	in	an	Applet
1996
• Basically	Spotify
• …	and	Netflix
• …	in	an	Applet
• …	with	mpeg	hardware	cards
1996
• Java	1.0
1996
• Java	1.0
• Pure	byte	code	interpretation
• University	professor	suddenly	proud	of	his	interpreted	
toy	language,	not	ashamed	as	previously
• “If	Java	gets	away	with	it,	I	can”
• But	did	it?
1996
• Java	1.0
• Pure	byte	code	interpretation
• University	professor	suddenly	proud	of	his	interpreted	
toy	language,	not	ashamed	as	previously
• “If	Java	gets	away	with	it,	I	can”
• But	did	it?
• Java	Memory	Model	(broken)
1996
• Java	1.0
• Pure	byte	code	interpretation
• University	professor	suddenly	proud	of	his	interpreted	
toy	language,	not	ashamed	as	previously
• “If	Java	gets	away	with	it,	I	can”
• But	did	it?
• Java	Memory	Model	(broken)
• Thread.stopand	all	its	friends	(@deprecated)
1996
• Java	1.0
• Pure	byte	code	interpretation
• University	professor	suddenly	proud	of	his	interpreted	
toy	language,	not	ashamed	as	previously
• “If	Java	gets	away	with	it,	I	can”
• But	did	it?
• Java	Memory	Model	(broken)
• Thread.stopand	all	its	friends	(@deprecated)
• “Very	1.0”
1996
• “Your	development	cycle	is	much	faster	because	Java	is	
interpreted.	The	compile-link-load-test-crash-debug-cycle	is	
obsolete”
- James	Gosling
1996
• “Your	development	cycle	is	much	faster	because	Java	is	
interpreted.	The	compile-link-load-test-crash-debug-cycle	is	
obsolete”
- James	Gosling	
Wait!	Isn’t	that	the	argument	the	JavaScript	kiddies	use	today?
1996
• Appeal	Software	Solutions	is	founded	in	
Stockholm
- All	members	had	extensive	Java	experience,	
having	used	the	language	from	the	start
- Java	Consulting
- …	and	…	*sigh*	UML/RUP
1996
1996
1996
1997
• Java	on	the	client	side	not	really	taking	off
1997
• Java	on	the	client	side	not	really	taking	off
• Write	once	/	run	everywhere	does,	however
• And	no	buffer	overruns
• And	no	pointers
• And	automatic	memory	management
• ==	fast	application	development
• The	JDK	is	a	great	library	for	development
1997
• Java	on	the	client	side	not	really	taking	off
• Write	once	/	run	everywhere	does,	however
• And	no	buffer	overruns
• And	no	pointers
• And	automatic	memory	management
• ==	fast	application	development
• The	JDK	is	a	great	library	for	development
• The	dawn	of	application	servers
1997
• Java	on	the	client	side	not	really	taking	off
• Write	once	/	run	everywhere	does,	however
• And	no	buffer	overruns
• And	no	pointers
• And	automatic	memory	management
• ==	fast	application	development
• The	JDK	is	a	great	library	for	development
• The	dawn	of	application	servers
• Prehistoric	trail	toward	Java	EE
1997
• Java	1.1
• Inner	classes
• JavaBeans
• JDBC
• RMI
• Limited	Reflection	(non	runtime)
• The	first	JITs	
• (Symantec	on	Windows)
• SERIALIZATION	– THE	HORROR!
1997:	BTH	– Win	a	trip	to	JavaOne
JavaOne	1997
• Sun	Microsystems	presents	the	HotSpot
virtual	machine
– “WOW!	This	is	the	way	to	do	it!	Adaptive	
runtimes!”
1998
• JDK	1.2
• Swing
• strictfp
• JIT	introduced	in	the	classic	VM
• Collections	API
• JDK	triples	in	size:	1520	classes,	59	packages
1998
• JDK	1.2
• Swing
• strictfp
• JIT	introduced	in	the	classic	VM
• Collections	API
• JDK	triples	in	size:	1520	classes,	59	packages
JavaOne	1998
• Sun	Microsystems	presents	the	HotSpot	
virtual	machine	again
JavaOne	1998
• Sun	Microsystems	presents	the	HotSpot	
virtual	machine	again
– “WTF!	This	is	slide-by-slide	the	exact	same	
presentation	as	last	year!?!”
– We	can’t	wait	any	longer.	Let’s	build	our	own	VM.	
How	hard	can	it	be?
Creating	our	own	JVM	- JRockit
Productize	a	narrower	domain?
• Server-side	usage	only.	Headless.	
– We	need	to	help	the	early	app	server	vendors	get	
performance	and	scalability
Productize	a	narrower	domain?
• Server-side	usage	only.	Headless.	
– We	need	to	help	the	early	app	server	vendors	get	
performance	and	scalability
• No	interpreter	
– “startup	time	doesn’t	matter	on	the	server	
anyway”
1998
• BEA	Acquires	WebLogic
• Weblogic becomes	one	the	first	drivers	for	J2EE	
specification
1998
1998
• TowerJ
• Excelsior	JET
• Convert	byte	code	to	C	code	and	run	gcc
• Fundementally incompatible	with	a	runtime	
language
• Rakes	in	$$$	anyway
1999
• Appeal	Software	Solutions	finance	JRockit
development
• Hunting	for	VC
• In	August	we	sell	the	first	part	of	our	souls
• We	spend	nights	reading	academic	papers
• Jalapeño	(to	become	Jikes RVM)
2000
• Java	is	now	the	fastest	growing	programming	
language	in	the	world
• Dot	com	bubble
• NASDAQ	hits	5.000	just	before	the	tech	
wreck
2000
• The	Java	License
• You	can’t	call	yourself	“Java”	without	a	Java	
license
• You	need	to	pass	the	TCK	test	suite
– Not	available	without	license
• To	get	a	Java	License	you	need	a	“value	add”
The	Java	License
• What’s	a	“value	add”?
The	Java	License
• What’s	a	“value	add”?
The	Java	License
The	Java	License
• What’s	a	“value	add”?
The	Java	License
• What’s	a	“value	add”?
– Superior	performance!
The	Java	License
• What’s	a	“value	add”?
– Superior	performance!
– What?	You	didn’t	like	that?
The	Java	License
• What’s	a	“value	add”?
– Superior	performance!
– What?	You	didn’t	like	that?
– OK…	Let’s	see…	Err..	“managability”
The	Java	License
2000
• JDK	1.3	“Kestrel”
– HotSpot released	before,	April	1999	J2SE	JVM
– But	Kestrel	bundles	HotSpot with	JDK
– JNDI
– JPDA
– RMI/Corba
– JavaSound
2000
• Q1	2000
– JRockit 1.0	released
– “Very	1.0”
– N	x	M	green	threads	hybrid
– We	actually	sell	some	licenses
• We	are	stupid	enough	to	write	it	in	the	year	end	
financial	statement
2001
2001
• Appeal	Virtual	Machines	is	broken	out	from	
Appeal	Software	Solutions
• Appeal	Virtual	Machines	finally	gets	its	Java	
License!
• “Managability value	add”
• Static	compiler	mindset	still	very	strong
• Very	hard	to	sell	adaptive	runtimes	as	concept
2001
• BEA	wants	performance	and	scalability	
YESTERDAY
• We	take	time	to	help	them	out
• Start	cooperating	on	benchmarks
2001
• Intel	/	BEA	discussions	about	JRockit
2001
• The	Itanium	gets	introduced
2001
• JavaOne 2001
• I	was	mostly	in	San	Mateo	getting	JRockit
to	run	on	IA64	in	binary	translation	mode
2002
2002
• JDK	1.4	“Merlin”
– First	platform	developed	under	JCP
– assert	keyword
– Regexps (sorta like	Perl	but	not	really)
– Exception.getCause()
– NIO
– Logging	API
– Image	I/O
– XML
– IPv6
2002
• Valentine’s	day:	BEA	acquires	Appeal	
Virtual	Machines
• Now:	how	do	we	make	money?
• Eventually	we	found	4	value	adds
2002
• Valentine’s	day:	BEA	acquires	Appeal	
Virtual	Machines
• Now:	how	do	we	make	money?
• Eventually	we	found	4	value	adds
2002
• Value	add	#1
– CCE/SE
– Implement	BEA’s	multi	tier	support	process
2002
• Value	add	#2
– Managability
– JSR	works	starts	on	JSR-174
– Management	console	is	the	first	part	of	Java	
Mission	Control	to	get	out	there
2003-2004
• Some	hardware	observations	are	in	order
2003-2004
• Some	hardware	observations	are	in	order
– Clock	rate	curves	start	to	flatten	out
2003-2004
• Some	hardware	observations	are	in	order
– Clock	rate	curves	start	to	flatten	out
– Multi	cores,	NUMA,	hyperthreading
2003-2004
• Some	hardware	observations	are	in	order
– Clock	rate	curves	start	to	flatten	out
– Multi	cores,	NUMA,	hyperthreading
– Java	still	has	explicit	Threads
2003-2004
• Some	hardware	observations	are	in	order
– Clock	rate	curves	start	to	flatten	out
– Multi	cores,	NUMA,	hyperthreading
– Java	still	has	explicit	Threads
– In-order	execution	is	a	bad	idea	for	JITs
2003-2004
• Some	hardware	observations	are	in	order
– Clock	rate	curves	start	to	flatten	out
– Multi	cores,	NUMA,	hyperthreading
– Java	still	has	explicit	Threads
– In-order	execution	is	a	bad	idea	for	JITs
Execution	Time	=	Runtime	Overhead	+	Program	Runtime
2004
• JDK	5.0	(“Tiger”,	JSR-176)
– Number	scheme	changed	from	1.x
– Biggest	Java	release	so	far!
– Generics
– Annotations
– Autoboxing/	unboxing
– Enums
– Varargs (Object…	)
– Static	imports
– java.util.concurrent
2004
• The	Java	Memory	Model	gets	fixed!
2004
• x86_64	released	– not	the	Itanium,	still	64	bit
– For	the	first	time	in	history	AMD	eats	Intel’s	
lunch
– Full	backwards	compatibility	towards	IA32
– Adoption	(recognize	the	parallel	to	Java)
– Wider	register	bandwidth
– 2x	the	number	of	registers
– EXABYTES	of	virtual	memory	space
The	Benchmark	Wars
The	Benchmark	Wars
• SPECjvm98	was	the benchmark	since	time	
immemorial
• SPECjbb2000,	2005
• SPECJAppServer
• Running	SPECjbb2005	is	a	quantifiable	
management	goal
The	Benchmark	Wars
• Brought	real	world	optimizations
– Compressed	references
– Non	contiguous	heaps	for	32	bits
– External	and	internal	heap	compaction
– Concurrent	GC
– Biased	locking
– Large	pages
– NUMA
– Prefetch heuristics
– Using	vectorized hardware	instructions	SSE3/4
– Partial	Escape	Analysis
– Off	heap	storage	prototypes
The	Benchmark	Wars
• Brought	real	world	optimizations
– Compressed	references
– Non	contiguous	heaps	for	32	bits
– External	and	internal	heap	compaction
– Concurrent	GC
– Biased	locking
– Large	pages
– NUMA
– Prefetch heuristics
– Using	vectorized hardware	instructions	SSE3/4
– Partial	Escape	Analysis
– Off	heap	storage	prototypes
The	Benchmark	Wars
• All	this	from	a	few	semi-synthetic	
benchmarks
• Competition	leads	to	Java	server	side	
performance	being	pushed	to	where	it’s	
never	been	before
• “Performance	releases”	not	always	great	for	
stability,	though
The	Benchmark	Wars
“-XXaggressive”	ಠ_ಠ
2004
• Meanwhile	at	Appeal	Virtual	Machines
– Value	add	#3
– Deterministic	GC
– QoS level	for	pause	times
– Modern	applications	want	low	latency	rather	
than	throughput
– Telco,	finance	sectors	went	wild
2004
java –XgcPrio:deterministic –XpauseTarget:5ms
2004
java –XgcPrio:deterministic –XpauseTarget:5ms
2004
• JSR-174	gets	finalized
• Mission	Control	ships	with	its	first	versions
– Production	time	zero	overhead	monitoring
– Limited	flight	recordings	(JRA)
– Extremely	cheap	– Just	use	data	available	from	
the	runtime	already
Latency	Analysis	Tool
Memory	Leak	Detector
2005
Halftime
2006
2006
• Sun	Microsystems	not	doing	all	too	well?
• JavaFX is	going	on.	
– Mobile	phones	are	everything.	
– It	gets	a	bit	quiet	from	our	side	of	the	scene.
2006
• Apache	Harmony
– Needed	to	rewrite	classes	from	scratch
– IBM	and	others	contribute	a	lot	of	code
• Asks	for	Java	license	which	it	doesn’t	get
– Field	of	use	restrictions	claimed	not	compliant	with	
JCP	rules
• Various	JCP	fights	ensue
• Sun	opens	up	JVM/JDK	sources	under	GPL	v2
2006
• JDK	6.0	(December,	JSR-270)	“Mustang”
– javax.scripting(built	in	Rhino	
integration)
– Compiler	API
– JDBC	4.0
– Dynamic	languages,	JSR-292	up	for	review
Fantom
Fortress
BeanShell
Jaskell
ANTLR
JudoScript
ABCL
Erjang
X10
myForth
jdart
jgo
Nice
Gosu
Jacl
2006
• Dynamic	languages	are	becoming	trendy
• JRuby leads	the	growth
• JSR-292,	invokedynamic
• BEA,	IBM,	Sun	all	in	the	process
– We	contribute	substantially	to	the	spec
• The	polyglot	JVM	effort	is	starting	to	be	coordinated
• Bytecode is	basically	serialized	Java
– No	runtime-only	dispatch
20 Years of Java
2006
• Virtualization	is	becoming	trendy
• “The	JVM	is	just	a	specialized	operating	
system	for	running	Java”
• BEA	Starts	building	JRockit Virtual	Edition	
(VE)
– Value	add	#4
2006
2006
• Why	is	virtualized	Java	powerful?
– Removal	of	abstraction
– Zero	copy	I/O
– Move	everything	we	can	to	userland
– Minimize	syscalls
– Threads	can	protect	memory	from	other	threads
• Cheap	read	barriers	for	low	latency	GC!
– But	device	drivers?
– That’s	what	we	have	the	Hypervisor	for
– Heavily	encouraged	by	the	investment	banking	industry
2007
• Apache	requests	TCK
• The	JCP	stalls
• JRockit needs	to	hedge	its	bets,	and	can	run	
Harmony	after	a	few	months
• BEA/Sun	Java	license	discussions
• No	language	updates	for	the	forseeable
future?
2008
• Oracle	acquires	BEA
2008
• Oracle	acquires	BEA
2008
• Oracle	acquires	BEA
• JRockit engineering	works	closely	with	
ExaData and	the	Oracle	server	stacks
• JRockit becomes	default	Oracle	JVM
2008
• Oracle	acquires	BEA
• JRockit engineering	works	closely	with	
ExaData and	the	Oracle	server	stacks
• JRockit becomes	default	Oracle	JVM
• Oracle	forces	the	move	from	VMWare to	
Xen for	Jrockit VE.
2008-2009
• Political	vacuum
• Sun	in	financial	trouble?
2010
• Oracle	acquires	Sun!
2010
• Oracle	acquires	Sun!
2010
• Oracle	acquires	Sun!
• HotRockit?
• JRockit VE	dies	:-(
20 Years of Java
2010
• Pause	music,	Marcus	does	a	startup
2011
• Sadly,	still	no	new	Java	release	since	2006
• IBM	joins	the	OpenJDK
• Harmony	retires
2011
• Sadly,	still	no	new	Java	release	since	2006
• IBM	joins	the	OpenJDK
• Harmony	retires
• Marcus	comes	back	to	the	Language	team
2011
• Java	7	“Dolphin”
– Plan	“A”
– Initial	(native)	implementation	of	invokedynamic bytecode
– Compressed	oops	default
– Project	Coin
• Try-with-resource,	switch	on	strings,	binary	literals,	
underscores,	multi	catch	with	|	separators
– Concurrency	utilities	finalized	(JSR-166)
– NIO-2	(JSR-203)
2011
• Java	7	extremely	well	received	by	
community!
• Tipping	point	and	community	goodwill
• Oracle’s	second	JavaOne extremely	well	
received
JVM	Architecture	observation
• We	have	the	backwards	compatibility	still
• We	will	always	maintain	it
– In	some	ways,	things	might	change,	e.g.	
Jigsaw,	but	fundamental	compatibility	will	
always	be	there
JVM	Architecture	observation
• Demo:	AkroMail,	binaries	compiled	easter 1997.
2011-2012
• Java	8	development	starts	picking	up	
speed
• Nashorn project	officially	starts
• JMC	/	servicability port	to	HotSpot
completes,	part	of	Java	8	(7u40)
• Better	build	and	test	infrastructure
2013
• Crunch	mode
2013
• Crunch	mode
• Huge	security	backlog	goes	away!
2014
• Java	8	(released	March	18)
– Biggest	and	best	Java	release	ever
– Perm	gen	removal
– Type	annotation
– Unsigned	integer	math
– Repeated	annotations
– Date	and	Time	API	(JSR-310)
– Nashorn
2014
2014
2014
List<?> costBeforeTax =
Arrays.asList(100, 200, 300, 400, 500);
for (Integer cost : costBeforeTax) {
double price = cost + .25*cost;
System.out.println(price);
}
2014
List<?> costBeforeTax =
Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.stream().
map((cost) -> cost .25*cost).
forEach(System.out::println);
2014
List<?> costBeforeTax =
Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.parallelStream().
map((cost) -> cost .25*cost).
forEach(System.out::println);
2014
• …and	the	build	process
• ./configure; make
– 5	minutes
– HUGE	breakthrough	for	productivity
2015
2015
• Java	9	in	the	works
– Jigsaw
– JShell REPL	(Project	Kulla)
– Nashorn partial	ES6	support,	huge	
performance	improvements
2015
• After	Java	9
– Value	types	(project	Valhalla)
– Foreign	function	interface	(project	Panama)
– Arrays	2.0
– Deterministic	and	Low	Latency	GC
– More	open	source	JVM	implementations:	J9,	
dynamic	language	applications.
2015
• Java	is	vibrant	again!
• Java	8	is	awesome!
• Java	9	had	an	awesome	JavaOne 2015
• Join	the	JCP!
Q	&	A?

More Related Content

PDF
From java-to-ruby-book-summary
PDF
Understand Java for Android the Hard Way
PPTX
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
PDF
Eclipse OMR: a modern toolkit for building language runtimes
PPTX
Meditación para tener más productividad.
PDF
Soais Payroll Outsourcing
PPT
Media kit planetaseminarov16
DOCX
Laryanna Santiago Final Resume
From java-to-ruby-book-summary
Understand Java for Android the Hard Way
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Eclipse OMR: a modern toolkit for building language runtimes
Meditación para tener más productividad.
Soais Payroll Outsourcing
Media kit planetaseminarov16
Laryanna Santiago Final Resume

Viewers also liked (19)

PPT
Opovo 6
PDF
Waarom verantwoorde kwekers samenwerken met DogCatandCo
PDF
Ask the Experts final
DOC
SantoshDengale
DOCX
geography Cape '09 u1 p2 #6
PDF
Javaのバージョニング問題の話しよっか
PPTX
Spring vs EJB
PPTX
Spring fundamentals
PPT
Javaでトランザクショナルメモリを使う
PPTX
RIW15: Как увеличить конверсию с сайта в 2 раза и более без ставки на ссылки
PDF
Email Marketing + Video: Descubre el potencial de esta combinación exitosa
PPTX
How to customize Spring Boot?
PDF
Modern Java web applications with Spring Boot and Thymeleaf
PPTX
Gradle入門
PPTX
Spring MVC Architecture Tutorial
PPTX
Using Music to Support and Enhance Speech & Language in Children with Cochlea...
PDF
Javaプログラミング入門
PDF
Spring MVC - The Basics
PDF
Springを何となく使ってる人が抑えるべきポイント
Opovo 6
Waarom verantwoorde kwekers samenwerken met DogCatandCo
Ask the Experts final
SantoshDengale
geography Cape '09 u1 p2 #6
Javaのバージョニング問題の話しよっか
Spring vs EJB
Spring fundamentals
Javaでトランザクショナルメモリを使う
RIW15: Как увеличить конверсию с сайта в 2 раза и более без ставки на ссылки
Email Marketing + Video: Descubre el potencial de esta combinación exitosa
How to customize Spring Boot?
Modern Java web applications with Spring Boot and Thymeleaf
Gradle入門
Spring MVC Architecture Tutorial
Using Music to Support and Enhance Speech & Language in Children with Cochlea...
Javaプログラミング入門
Spring MVC - The Basics
Springを何となく使ってる人が抑えるべきポイント
Ad

More from JavaDayUA (20)

PDF
STEMing Kids: One workshop at a time
PDF
Flavors of Concurrency in Java
PDF
What to expect from Java 9
PDF
Continuously building, releasing and deploying software: The Revenge of the M...
PDF
The Epic Groovy Puzzlers S02: The Revenge of the Parentheses
PDF
How to get the most out of code reviews
PDF
Unlocking the Magic of Monads with Java 8
PDF
Virtual Private Cloud with container technologies for DevOps
PPTX
JShell: An Interactive Shell for the Java Platform
PPTX
Interactive Java Support to your tool -- The JShell API and Architecture
PDF
MapDB - taking Java collections to the next level
PDF
Save Java memory
PDF
Design rationales in the JRockit JVM
PPTX
Next-gen DevOps engineering with Docker and Kubernetes by Antons Kranga
PPTX
Apache Cassandra. Inception - all you need to know by Mikhail Dubkov
PPTX
Solution Architecture tips & tricks by Roman Shramkov
PPTX
Testing in Legacy: from Rags to Riches by Taras Slipets
PDF
Reactive programming and Hystrix fault tolerance by Max Myslyvtsev
PDF
Spark-driven audience counting by Boris Trofimov
PDF
API first with Swagger and Scala by Slava Schmidt
STEMing Kids: One workshop at a time
Flavors of Concurrency in Java
What to expect from Java 9
Continuously building, releasing and deploying software: The Revenge of the M...
The Epic Groovy Puzzlers S02: The Revenge of the Parentheses
How to get the most out of code reviews
Unlocking the Magic of Monads with Java 8
Virtual Private Cloud with container technologies for DevOps
JShell: An Interactive Shell for the Java Platform
Interactive Java Support to your tool -- The JShell API and Architecture
MapDB - taking Java collections to the next level
Save Java memory
Design rationales in the JRockit JVM
Next-gen DevOps engineering with Docker and Kubernetes by Antons Kranga
Apache Cassandra. Inception - all you need to know by Mikhail Dubkov
Solution Architecture tips & tricks by Roman Shramkov
Testing in Legacy: from Rags to Riches by Taras Slipets
Reactive programming and Hystrix fault tolerance by Max Myslyvtsev
Spark-driven audience counting by Boris Trofimov
API first with Swagger and Scala by Slava Schmidt
Ad

Recently uploaded (20)

PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PDF
Cost to Outsource Software Development in 2025
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PPTX
Tech Workshop Escape Room Tech Workshop
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
assetexplorer- product-overview - presentation
PDF
Topaz Photo AI Crack New Download (Latest 2025)
PDF
Types of Token_ From Utility to Security.pdf
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
Website Design Services for Small Businesses.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PPTX
Custom Software Development Services.pptx.pptx
Oracle Fusion HCM Cloud Demo for Beginners
Wondershare Recoverit Full Crack New Version (Latest 2025)
Cost to Outsource Software Development in 2025
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Tech Workshop Escape Room Tech Workshop
iTop VPN Crack Latest Version Full Key 2025
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Advanced SystemCare Ultimate Crack + Portable (2025)
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
assetexplorer- product-overview - presentation
Topaz Photo AI Crack New Download (Latest 2025)
Types of Token_ From Utility to Security.pdf
Why Generative AI is the Future of Content, Code & Creativity?
Autodesk AutoCAD Crack Free Download 2025
Website Design Services for Small Businesses.pdf
Computer Software and OS of computer science of grade 11.pptx
How to Use SharePoint as an ISO-Compliant Document Management System
wealthsignaloriginal-com-DS-text-... (1).pdf
Monitoring Stack: Grafana, Loki & Promtail
Custom Software Development Services.pptx.pptx

20 Years of Java