Submit Search
Upload
devday2012
•
2 likes
•
1,404 views
Juan Lopes
Follow
Palestra sobre Java no DevDay BH 2012
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
Dagger & rxjava & retrofit
Dagger & rxjava & retrofit
Ted Liang
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)
Alexey Fyodorov
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
julien.ponge
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
julien.ponge
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real world
tcurdt
Jakarta Commons - Don't re-invent the wheel
Jakarta Commons - Don't re-invent the wheel
tcurdt
Recommended
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
Dagger & rxjava & retrofit
Dagger & rxjava & retrofit
Ted Liang
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)
Alexey Fyodorov
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
julien.ponge
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
julien.ponge
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real world
tcurdt
Jakarta Commons - Don't re-invent the wheel
Jakarta Commons - Don't re-invent the wheel
tcurdt
Java 7 LavaJUG
Java 7 LavaJUG
julien.ponge
Understanding greenlet
Understanding greenlet
Saúl Ibarra Corretgé
Gevent what's the point
Gevent what's the point
seanmcq
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
Krzysztof Szafranek
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
Anton Arhipov
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
Simon Maple
Testing with Node.js
Testing with Node.js
Jonathan Waller
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
Eugeniy Tyumentcev
Performance is a feature! - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
Matt Warren
Qt Rest Server
Qt Rest Server
Vasiliy Sorokin
Server1
Server1
FahriIrawan3
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
Simon Maple
Nantes Jug - Java 7
Nantes Jug - Java 7
Sébastien Prunier
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
Guía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realista
Emilio García Garrido
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
Open Stack
More Related Content
What's hot
Java 7 LavaJUG
Java 7 LavaJUG
julien.ponge
Understanding greenlet
Understanding greenlet
Saúl Ibarra Corretgé
Gevent what's the point
Gevent what's the point
seanmcq
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
Krzysztof Szafranek
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
Anton Arhipov
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
Simon Maple
Testing with Node.js
Testing with Node.js
Jonathan Waller
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
Eugeniy Tyumentcev
Performance is a feature! - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
Matt Warren
Qt Rest Server
Qt Rest Server
Vasiliy Sorokin
Server1
Server1
FahriIrawan3
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
Simon Maple
Nantes Jug - Java 7
Nantes Jug - Java 7
Sébastien Prunier
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
What's hot
(20)
Java 7 LavaJUG
Java 7 LavaJUG
Understanding greenlet
Understanding greenlet
Gevent what's the point
Gevent what's the point
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
Testing with Node.js
Testing with Node.js
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
Performance is a feature! - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
Qt Rest Server
Qt Rest Server
Server1
Server1
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
Nantes Jug - Java 7
Nantes Jug - Java 7
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Viewers also liked
Guía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realista
Emilio García Garrido
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
Open Stack
产品经理的视角
产品经理的视角
envong
Do you really get class loaders?
Do you really get class loaders?
guestd56374
On The Road
On The Road
Abhishek Shah
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksista
PwC Suomi
After Real Time Advertising
After Real Time Advertising
Amil Husain
Why APIs are not SOA++
Why APIs are not SOA++
Apigee | Google Cloud
Emagineers - Design & Test Report
Emagineers - Design & Test Report
Alexis Polanco, Jr.
Learning with Digital Media
Learning with Digital Media
The New School
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.
[x]cube LABS
5050 project update
5050 project update
Made by Many
Dependency injection in scala
Dependency injection in scala
Michal Bigos
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Jess Duda
Secrets of a successful e-commerce website
Secrets of a successful e-commerce website
Troy Cox
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
UserZoom
High Performance Web Sites
High Performance Web Sites
Ravi Raj
Raymond - Social Media Strategy
Raymond - Social Media Strategy
Bhavna Vaja
KG이니시스 회사 소개서
KG이니시스 회사 소개서
Inicis
Embrace Uncertainty
Embrace Uncertainty
abcd82
Viewers also liked
(20)
Guía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realista
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
产品经理的视角
产品经理的视角
Do you really get class loaders?
Do you really get class loaders?
On The Road
On The Road
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksista
After Real Time Advertising
After Real Time Advertising
Why APIs are not SOA++
Why APIs are not SOA++
Emagineers - Design & Test Report
Emagineers - Design & Test Report
Learning with Digital Media
Learning with Digital Media
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.
5050 project update
5050 project update
Dependency injection in scala
Dependency injection in scala
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Secrets of a successful e-commerce website
Secrets of a successful e-commerce website
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
High Performance Web Sites
High Performance Web Sites
Raymond - Social Media Strategy
Raymond - Social Media Strategy
KG이니시스 회사 소개서
KG이니시스 회사 소개서
Embrace Uncertainty
Embrace Uncertainty
Similar to devday2012
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
PROIDEA
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
Mattias Karlsson
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
Viliam Elischer
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
Sven Efftinge
JavaScript Growing Up
JavaScript Growing Up
David Padbury
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
Azul Systems, Inc.
Clojure - A new Lisp
Clojure - A new Lisp
elliando dias
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
OSGi and Eclipse RCP
OSGi and Eclipse RCP
Eric Jain
Java Concurrency
Java Concurrency
Carol McDonald
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
Rick Warren
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
Igor Lozynskyi
Java util concurrent
Java util concurrent
Roger Xia
Clojure And Swing
Clojure And Swing
Skills Matter
From Java 6 to Java 7 reference
From Java 6 to Java 7 reference
Giacomo Veneri
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?
Scott Leberknight
What is new in java 8 concurrency
What is new in java 8 concurrency
kshanth2101
JS everywhere 2011
JS everywhere 2011
Oleg Podsechin
Java 7 & 8 New Features
Java 7 & 8 New Features
Leandro Coutinho
Similar to devday2012
(20)
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
JavaScript Growing Up
JavaScript Growing Up
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
Clojure - A new Lisp
Clojure - A new Lisp
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
OSGi and Eclipse RCP
OSGi and Eclipse RCP
Java Concurrency
Java Concurrency
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
Java util concurrent
Java util concurrent
Clojure And Swing
Clojure And Swing
From Java 6 to Java 7 reference
From Java 6 to Java 7 reference
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?
What is new in java 8 concurrency
What is new in java 8 concurrency
JS everywhere 2011
JS everywhere 2011
Java 7 & 8 New Features
Java 7 & 8 New Features
More from Juan Lopes
qconrio2015
qconrio2015
Juan Lopes
qconsp2015
qconsp2015
Juan Lopes
PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexos
Juan Lopes
devday2013
devday2013
Juan Lopes
dnarj20130504
dnarj20130504
Juan Lopes
uerj201212
uerj201212
Juan Lopes
rioinfo2012
rioinfo2012
Juan Lopes
tdc2012
tdc2012
Juan Lopes
dnarj-20120630
dnarj-20120630
Juan Lopes
dnad12
dnad12
Juan Lopes
More from Juan Lopes
(10)
qconrio2015
qconrio2015
qconsp2015
qconsp2015
PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexos
devday2013
devday2013
dnarj20130504
dnarj20130504
uerj201212
uerj201212
rioinfo2012
rioinfo2012
tdc2012
tdc2012
dnarj-20120630
dnarj-20120630
dnad12
dnad12
Recently uploaded
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
ChristopherTHyatt
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Recently uploaded
(20)
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
devday2012
1.
@juanplopes JAVA
PARA PROGRAMADORES .NET
2.
Rio de Janeiro
3.
Bel' Zonte
4.
Em comunidades, pessoas antes
de tecnologias.
5.
REVELAÇÃO!
6.
REVELAÇÃO! https://github.com/juanplopes/mublasters
7.
8.
VAMOS FALAR
MAL DE
9.
SISTEMA DE TIPOS
NÃO É UNIFICADO NÃO TEM STRUCTS GENERICS TEM TYPE ERASURE
10.
API DE DATAS
SOFRÍVEL NÃO TEM ITERATOR METHODS NÃO TEM CLOSURES OU LAMBDAS
11.
12.
java.util.concurrent
13.
NÃO CRIE THREADS new
Thread(new Runnable() { public void run() { } }).start();
14.
TRABALHANDO COM FUTURES Future
é a promessa do resultado de uma computação que ainda não terminou (ou sequer começou).
15.
TRABALHANDO COM FUTURES ExecutorService
executor = ... Future future = executor.submit(new Runnable() { public void run() { } }); //qualquer outro trabalho future.get(); //bloqueante
16.
TRABALHANDO COM FUTURES ExecutorService
executor = ... Future<String> future = executor.submit(new Callable<String>() { public String call() { return "42"; } }); //qualquer outro trabalho String result = future.get(); //bloqueante
17.
.NET TASK FACTORY TaskFactory
factory = ... var task = factory.StartNew(() => "42"); //qualquer outro trabalho String result = future.Result; //bloqueante
18.
.NET TASK FACTORY
Java 5 (2004) ExecutorService e Future<T> .NET 4 (2010) TaskFactory, TaskScheduler e Task<T>
19.
TRABALHANDO COM FUTURES Executors
newCachedThreadPool() newFixedThreadPool(n) newScheduledThreadPool(n) newSingleThreadExecutor() guava.MoreExecutors sameThreadExecutor() listeningDecorator(executor)
20.
E A SINCRONIZAÇÃO?
21.
COLEÇÕES CONCORRENTES ConcurrentMap<T, K>
putIfAbsent(key, value) remove(key, value) replace(key, value) replace(key, oldValue, newValue)
22.
COLEÇÕES CONCORRENTES ConcurrentNavigableMap<T, K>
headMap(toKey) tailMap(fromKey) subMap(fromKey, toKey)
23.
PROBLEMA DO PRODUTOR-
CONSUMIDOR produz consome A BUFFER B
24.
COLEÇÕES BLOQUEANTES ArrayBlockingQueue<T>, PriorityBlockingQueue<T> DelayQueue<T>
Exception: add, remove Retorna Flag: offer, poll Bloqueia: put, take Timeout: offer², poll²
25.
ESTRUTURAS DE DADOS
DE SINCRONIZAÇÃO Semaphore acquire(number) release(number)
26.
ESTRUTURAS DE DADOS
DE SINCRONIZAÇÃO CountDownLatch countDown() await()
27.
ESTRUTURAS DE DADOS
DE SINCRONIZAÇÃO CyclicBarrier await()
28.
OPEN SOURCE
29.
APACHE
Hadoop Lucene Maven Tomcat ZooKeeper HBase Solr ActiveMQ Ant Log4J
30.
RED HAT
Hibernate JBoss TorqueBox JGroups Infinispan AeroGear Drools EJB3 HornetQ RichFaces
31.
GOOGLE
Guava Guice ('Juice') Gson Protocol Buffers Contracts GWT Caliper
32.
OPEN JDK
33.
APACHE MAVEN <dependency>
<groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> </dependency>
34.
APACHE MAVEN
35.
JGROUPS JChannel channel =
new JChannel(); channel.setReceiver(new ReceiverAdapter() { public void receive(Message msg) { System.out.println( msg.getSrc() + ": " + msg.getObject()); } }); channel.connect("meuCanalDeChat"); BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); while(true) { String line = reader.readLine(); channel.send(null, line); }
36.
GUAVA Preconditions Immutable Collections Caching Functional Idioms Signed
Numbers Reflection Math Optimized Data Structures Simplified I/O
37.
GUAVA LoadingCache<Key, Graph> graphs
= CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .removalListener(MY_LISTENER) .build(new CacheLoader<Key, Graph>() { public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } });
38.
GUICE ou SPRING? É
mais rápido Mais usuários Sem XML Não é só IOC Menos Annotations Integra melhor Melhores convenções Mais documentação AOP embutido
39.
MOCKITO when(obj.method()).thenReturn(42); verify(obj).method();
40.
LINGUAGENS ALTERNATIVAS ●
JRuby ● Clojure ● Scala ● Groovy ● DynJS
41.
IDE
42.
IDEs
IDE
43.
HOTSPOT
44.
JIT E ADAPTIVE
OPTIMIZATION Loop Unrolling Method inlining Exact Type Inference Type Test Strength Reduction Dead Code Elimination Tiered Compilation Lock Elision Dereflection Autobox Elimination
45.
GC: CONCURRENT MARK
SWEEP
46.
JVISUALVM
47.
JVISUALVM
48.
YOURKIT PROFILER
49.
Tecnologia não é
religião, time de futebol ou partido político.
50.
Obrigado.
Download now