SlideShare a Scribd company logo
1 of 50
Download to read offline
@juanplopes




JAVA
       PARA
       PROGRAMADORES
       .NET
Rio de Janeiro
Bel' Zonte
Em comunidades,
pessoas antes de tecnologias.
REVELAÇÃO!
REVELAÇÃO!




https://github.com/juanplopes/mublasters
VAMOS FALAR
  MAL DE
SISTEMA DE TIPOS NÃO É
        UNIFICADO



    NÃO TEM STRUCTS




GENERICS TEM TYPE ERASURE
API DE DATAS SOFRÍVEL




 NÃO TEM ITERATOR METHODS




NÃO TEM CLOSURES OU LAMBDAS
java.util.concurrent
NÃO CRIE THREADS


new Thread(new Runnable() {
    public void run() {

    }
}).start();
TRABALHANDO COM FUTURES


Future é a promessa do resultado de
    uma computação que ainda não
   terminou (ou sequer começou).
TRABALHANDO COM FUTURES

ExecutorService executor = ...

Future future = executor.submit(new Runnable() {
    public void run() {

      }
});

//qualquer outro trabalho

future.get(); //bloqueante
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
.NET TASK FACTORY

TaskFactory factory = ...

var task = factory.StartNew(() => "42");

//qualquer outro trabalho

String result = future.Result; //bloqueante
.NET TASK FACTORY


      Java 5 (2004)
ExecutorService e Future<T>

      .NET 4 (2010)
TaskFactory, TaskScheduler e
           Task<T>
TRABALHANDO COM FUTURES


Executors
   newCachedThreadPool()
   newFixedThreadPool(n)
   newScheduledThreadPool(n)
   newSingleThreadExecutor()

guava.MoreExecutors
   sameThreadExecutor()
   listeningDecorator(executor)
E A SINCRONIZAÇÃO?
COLEÇÕES CONCORRENTES


ConcurrentMap<T, K>

  putIfAbsent(key, value)
  remove(key, value)
  replace(key, value)
  replace(key, oldValue, newValue)
COLEÇÕES CONCORRENTES


ConcurrentNavigableMap<T, K>

  headMap(toKey)
  tailMap(fromKey)
  subMap(fromKey, toKey)
PROBLEMA DO PRODUTOR-
     CONSUMIDOR


     produz            consome



 A            BUFFER             B
COLEÇÕES BLOQUEANTES


ArrayBlockingQueue<T>,
PriorityBlockingQueue<T>
DelayQueue<T>

  Exception: add, remove
  Retorna Flag: offer, poll
  Bloqueia: put, take
  Timeout: offer², poll²
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

Semaphore

  acquire(number)
  release(number)
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

CountDownLatch

  countDown()
  await()
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

CyclicBarrier

  await()
OPEN SOURCE
APACHE

         Hadoop
         Lucene
         Maven
         Tomcat
         ZooKeeper
         HBase
         Solr
         ActiveMQ
         Ant
         Log4J
RED HAT

          Hibernate
          JBoss
          TorqueBox
          JGroups
          Infinispan
          AeroGear
          Drools
          EJB3
          HornetQ
          RichFaces
GOOGLE

         Guava
         Guice ('Juice')
         Gson
         Protocol Buffers
         Contracts
         GWT
         Caliper
OPEN JDK
APACHE MAVEN

<dependency>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
</dependency>
APACHE MAVEN
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);
}
GUAVA

Preconditions
Immutable Collections
Caching
Functional Idioms
Signed Numbers
Reflection
Math
Optimized Data Structures
Simplified I/O
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);
        }
    });
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
MOCKITO


when(obj.method()).thenReturn(42);

verify(obj).method();
LINGUAGENS ALTERNATIVAS

●   JRuby
●   Clojure
●   Scala
●   Groovy
●   DynJS
IDE
IDEs
       IDE
HOTSPOT
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
GC: CONCURRENT MARK SWEEP
JVISUALVM
JVISUALVM
YOURKIT PROFILER
Tecnologia não é religião,
time de futebol ou partido
         político.
Obrigado.

More Related Content

What's hot

Gevent what's the point
Gevent what's the pointGevent what's the point
Gevent what's the pointseanmcq
 
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~ikikko
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoinknight1128
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowKrzysztof Szafranek
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsAnton Arhipov
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)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 CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsYoshifumi Kawai
 
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleThierry Wasylczenko
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Takuya Okada
 
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The CoversDevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The CoversSimon Maple
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4Eugeniy Tyumentcev
 
Performance is a feature! - Developer South Coast - part 2
Performance is a feature!  - Developer South Coast - part 2Performance is a feature!  - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2Matt Warren
 
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGIs your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGSimon Maple
 
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestSpock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestHoward Lewis Ship
 

What's hot (20)

Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
 
Understanding greenlet
Understanding greenletUnderstanding greenlet
Understanding greenlet
 
Gevent what's the point
Gevent what's the pointGevent what's the point
Gevent what's the point
 
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory 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 gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
 
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The CoversDevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
 
Testing with Node.js
Testing with Node.jsTesting with Node.js
Testing with Node.js
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
Performance is a feature! - Developer South Coast - part 2
Performance is a feature!  - Developer South Coast - part 2Performance is a feature!  - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
 
Qt Rest Server
Qt Rest ServerQt Rest Server
Qt Rest Server
 
Server1
Server1Server1
Server1
 
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGIs 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 7Nantes Jug - Java 7
Nantes Jug - Java 7
 
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestSpock: 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 realistaGuía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realistaEmilio García Garrido
 
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011Gluster open stack dev summit 042011
Gluster open stack dev summit 042011Open Stack
 
产品经理的视角
产品经理的视角产品经理的视角
产品经理的视角envong
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders? guestd56374
 
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksistaCEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksistaPwC Suomi
 
After Real Time Advertising
After Real Time AdvertisingAfter Real Time Advertising
After Real Time AdvertisingAmil Husain
 
Emagineers - Design & Test Report
Emagineers - Design & Test ReportEmagineers - Design & Test Report
Emagineers - Design & Test ReportAlexis Polanco, Jr.
 
Learning with Digital Media
Learning with Digital MediaLearning with Digital Media
Learning with Digital MediaThe New School
 
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.[x]cube LABS
 
5050 project update
5050 project update5050 project update
5050 project updateMade by Many
 
Dependency injection in scala
Dependency injection in scalaDependency injection in scala
Dependency injection in scalaMichal Bigos
 
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015Jess Duda
 
Secrets of a successful e-commerce website
Secrets of a successful e-commerce websiteSecrets of a successful e-commerce website
Secrets of a successful e-commerce websiteTroy Cox
 
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...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 SitesHigh Performance Web Sites
High Performance Web SitesRavi Raj
 
Raymond - Social Media Strategy
Raymond - Social Media StrategyRaymond - Social Media Strategy
Raymond - Social Media StrategyBhavna Vaja
 
KG이니시스 회사 소개서
KG이니시스 회사 소개서KG이니시스 회사 소개서
KG이니시스 회사 소개서Inicis
 
Embrace Uncertainty
Embrace UncertaintyEmbrace Uncertainty
Embrace Uncertaintyabcd82
 

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 realistaGuí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 042011Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
 
产品经理的视角
产品经理的视角产品经理的视角
产品经理的视角
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders?
 
On The Road
On The RoadOn The Road
On The Road
 
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksistaCEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksista
 
After Real Time Advertising
After Real Time AdvertisingAfter Real Time Advertising
After Real Time Advertising
 
Why APIs are not SOA++
Why APIs are not SOA++Why APIs are not SOA++
Why APIs are not SOA++
 
Emagineers - Design & Test Report
Emagineers - Design & Test ReportEmagineers - Design & Test Report
Emagineers - Design & Test Report
 
Learning with Digital Media
Learning with Digital MediaLearning with Digital Media
Learning with Digital Media
 
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.
 
5050 project update
5050 project update5050 project update
5050 project update
 
Dependency injection in scala
Dependency injection in scalaDependency 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 2015Editorial 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 websiteSecrets 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...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 SitesHigh Performance Web Sites
High Performance Web Sites
 
Raymond - Social Media Strategy
Raymond - Social Media StrategyRaymond - Social Media Strategy
Raymond - Social Media Strategy
 
KG이니시스 회사 소개서
KG이니시스 회사 소개서KG이니시스 회사 소개서
KG이니시스 회사 소개서
 
Embrace Uncertainty
Embrace UncertaintyEmbrace Uncertainty
Embrace Uncertainty
 

Similar to devday2012

4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...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 OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevMattias Karlsson
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowViliam Elischer
 
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendSven Efftinge
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsAzul Systems, Inc.
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lispelliando dias
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?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 RCPOSGi and Eclipse RCP
OSGi and Eclipse RCPEric Jain
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaRick Warren
 
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]Igor Lozynskyi
 
Java util concurrent
Java util concurrentJava util concurrent
Java util concurrentRoger Xia
 
From Java 6 to Java 7 reference
From Java 6 to Java 7 referenceFrom Java 6 to Java 7 reference
From Java 6 to Java 7 referenceGiacomo 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)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
 
What is new in java 8 concurrency
What is new in java 8 concurrencyWhat is new in java 8 concurrency
What is new in java 8 concurrencykshanth2101
 

Similar to devday2012 (20)

4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...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 OredevJava 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 tomorrowRxJS101 - 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 XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lisp
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
 
Java Concurrency
Java ConcurrencyJava Concurrency
Java Concurrency
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
 
Java util concurrent
Java util concurrentJava util concurrent
Java util concurrent
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
 
From Java 6 to Java 7 reference
From Java 6 to Java 7 referenceFrom 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)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?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 concurrencyWhat is new in java 8 concurrency
What is new in java 8 concurrency
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
Java 7 & 8 New Features
Java 7 & 8 New FeaturesJava 7 & 8 New Features
Java 7 & 8 New Features
 

More from Juan Lopes

PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexosPIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexosJuan Lopes
 
dnarj-20120630
dnarj-20120630dnarj-20120630
dnarj-20120630Juan Lopes
 

More from Juan Lopes (10)

qconrio2015
qconrio2015qconrio2015
qconrio2015
 
qconsp2015
qconsp2015qconsp2015
qconsp2015
 
PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexosPIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexos
 
devday2013
devday2013devday2013
devday2013
 
dnarj20130504
dnarj20130504dnarj20130504
dnarj20130504
 
uerj201212
uerj201212uerj201212
uerj201212
 
rioinfo2012
rioinfo2012rioinfo2012
rioinfo2012
 
tdc2012
tdc2012tdc2012
tdc2012
 
dnarj-20120630
dnarj-20120630dnarj-20120630
dnarj-20120630
 
dnad12
dnad12dnad12
dnad12
 

Recently uploaded

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...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...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-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)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 educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
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...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 interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?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 organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu 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...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 ProcessorsExploring 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...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...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-MelissaKlemkeProductAnonymous-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 AutomationFrom 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 2024Finology 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 Men08448380779 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.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI 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 Men08448380779 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[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)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 educationpresentation 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...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 interpreterPresentation 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 MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech 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?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 organizationScaling 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...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