Más contenido relacionado La actualidad más candente (20) Similar a devday2012 (20) devday201210. API DE DATAS SOFRÍVEL
NÃO TEM ITERATOR METHODS
NÃO TEM CLOSURES OU LAMBDAS
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)
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
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);
}
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
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