Submit Search
Upload
El Lado Cool de Java
•
Download as KEY, PDF
•
1 like
•
1,629 views
L
Leonardo Soto
Follow
Technology
Education
Report
Share
Report
Share
1 of 52
Download now
Recommended
C# oop
C# oop
Ronald Rios Contreras
estructura de un programa en java
estructura de un programa en java
Beydasanchezhernandez
Semana 5 Java Swing
Semana 5 Java Swing
Richard Eliseo Mendoza Gafaro
J Flex Cup
J Flex Cup
Julio Santizo
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
mellcv
2 1 sintaxis_php
2 1 sintaxis_php
Juan José Taboada León
Sintaxisenjava
Sintaxisenjava
Victor Zapata
PDF 14
PDF 14
Edson Sergio Blanco Juarez
Recommended
C# oop
C# oop
Ronald Rios Contreras
estructura de un programa en java
estructura de un programa en java
Beydasanchezhernandez
Semana 5 Java Swing
Semana 5 Java Swing
Richard Eliseo Mendoza Gafaro
J Flex Cup
J Flex Cup
Julio Santizo
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
mellcv
2 1 sintaxis_php
2 1 sintaxis_php
Juan José Taboada León
Sintaxisenjava
Sintaxisenjava
Victor Zapata
PDF 14
PDF 14
Edson Sergio Blanco Juarez
Presentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic Club
GlobalLogic Latinoamérica
Tutorial de php
Tutorial de php
Robert Rodriguez
Java 8 introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api stream
Eudris Cabrera
01 fundamentos-java
01 fundamentos-java
JAVIER CAJAHUAMAN MALLCCO
Introduccion java
Introduccion java
Geovanny Manuel Mendoza Gonzalez
Clase 4 JAVA 2012
Clase 4 JAVA 2012
José Braganza
Clase 4 java 2011
Clase 4 java 2011
José Braganza
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
Karla Estefania Villanueva Epigmenio
2) introduccion al lenguaje java
2) introduccion al lenguaje java
Margarita Romero
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
Oscar V
Java 7- Java Day Guatemala
Java 7- Java Day Guatemala
Víctor Leonel Orozco López
Intro Java
Intro Java
Stefano Salvatori
Programación en java
Programación en java
web dos punto cero punto cero
JSP
JSP
Danii1204
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Ivan Luis Jimenez
Introduccion a Programacion Reactiva
Introduccion a Programacion Reactiva
Andres Almiray
Java world
Java world
Christian Jonathan
Preguntas de examen1
Preguntas de examen1
alexisrm11
S6-Contenedores
S6-Contenedores
Luis Fernando Aguas Bucheli
El arte oscuro de estimar v3
El arte oscuro de estimar v3
Leonardo Soto
Caching tips
Caching tips
Leonardo Soto
More Related Content
Similar to El Lado Cool de Java
Presentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic Club
GlobalLogic Latinoamérica
Tutorial de php
Tutorial de php
Robert Rodriguez
Java 8 introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api stream
Eudris Cabrera
01 fundamentos-java
01 fundamentos-java
JAVIER CAJAHUAMAN MALLCCO
Introduccion java
Introduccion java
Geovanny Manuel Mendoza Gonzalez
Clase 4 JAVA 2012
Clase 4 JAVA 2012
José Braganza
Clase 4 java 2011
Clase 4 java 2011
José Braganza
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
Karla Estefania Villanueva Epigmenio
2) introduccion al lenguaje java
2) introduccion al lenguaje java
Margarita Romero
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
Oscar V
Java 7- Java Day Guatemala
Java 7- Java Day Guatemala
Víctor Leonel Orozco López
Intro Java
Intro Java
Stefano Salvatori
Programación en java
Programación en java
web dos punto cero punto cero
JSP
JSP
Danii1204
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Ivan Luis Jimenez
Introduccion a Programacion Reactiva
Introduccion a Programacion Reactiva
Andres Almiray
Java world
Java world
Christian Jonathan
Preguntas de examen1
Preguntas de examen1
alexisrm11
S6-Contenedores
S6-Contenedores
Luis Fernando Aguas Bucheli
Similar to El Lado Cool de Java
(20)
Presentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic Club
Tutorial de php
Tutorial de php
Java 8 introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api stream
01 fundamentos-java
01 fundamentos-java
Introduccion java
Introduccion java
Clase 4 JAVA 2012
Clase 4 JAVA 2012
Clase 4 java 2011
Clase 4 java 2011
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
2) introduccion al lenguaje java
2) introduccion al lenguaje java
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
Java 7- Java Day Guatemala
Java 7- Java Day Guatemala
Intro Java
Intro Java
Programación en java
Programación en java
JSP
JSP
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Introduccion a Programacion Reactiva
Introduccion a Programacion Reactiva
Java world
Java world
Preguntas de examen1
Preguntas de examen1
S6-Contenedores
S6-Contenedores
More from Leonardo Soto
El arte oscuro de estimar v3
El arte oscuro de estimar v3
Leonardo Soto
Caching tips
Caching tips
Leonardo Soto
Una historia de ds ls en ruby
Una historia de ds ls en ruby
Leonardo Soto
Dos Años de Rails
Dos Años de Rails
Leonardo Soto
Dos años de Rails
Dos años de Rails
Leonardo Soto
Mi Arsenal de Testing en Rails
Mi Arsenal de Testing en Rails
Leonardo Soto
Mapas en la web con Cloudmade
Mapas en la web con Cloudmade
Leonardo Soto
Startechconf
Startechconf
Leonardo Soto
RabbitMQ
RabbitMQ
Leonardo Soto
Decent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivars
Leonardo Soto
The Hashrocket Way
The Hashrocket Way
Leonardo Soto
Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)
Leonardo Soto
Un tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y Javascript
Leonardo Soto
Lo que odiamos de la agilidad
Lo que odiamos de la agilidad
Leonardo Soto
Oss
Oss
Leonardo Soto
Javascript funcional
Javascript funcional
Leonardo Soto
App Engine
App Engine
Leonardo Soto
Introducción a Git
Introducción a Git
Leonardo Soto
Tres Gemas De Ruby
Tres Gemas De Ruby
Leonardo Soto
Jython: Python para la plataforma Java (EL2009)
Jython: Python para la plataforma Java (EL2009)
Leonardo Soto
More from Leonardo Soto
(20)
El arte oscuro de estimar v3
El arte oscuro de estimar v3
Caching tips
Caching tips
Una historia de ds ls en ruby
Una historia de ds ls en ruby
Dos Años de Rails
Dos Años de Rails
Dos años de Rails
Dos años de Rails
Mi Arsenal de Testing en Rails
Mi Arsenal de Testing en Rails
Mapas en la web con Cloudmade
Mapas en la web con Cloudmade
Startechconf
Startechconf
RabbitMQ
RabbitMQ
Decent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivars
The Hashrocket Way
The Hashrocket Way
Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)
Un tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y Javascript
Lo que odiamos de la agilidad
Lo que odiamos de la agilidad
Oss
Oss
Javascript funcional
Javascript funcional
App Engine
App Engine
Introducción a Git
Introducción a Git
Tres Gemas De Ruby
Tres Gemas De Ruby
Jython: Python para la plataforma Java (EL2009)
Jython: Python para la plataforma Java (EL2009)
Recently uploaded
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Keyla Dolores Méndez
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
JuanGallardo438714
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
Julian Lamprea
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
sgonzalezp1
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
Alan779941
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
losdiosesmanzaneros
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
BRAYANJOSEPHPEREZGOM
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
Maricarmen Sánchez Ruiz
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
LolaBunny11
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
MiguelAtencio10
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
mcerpam
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
vladimiroflores1
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
ssuserf18419
Recently uploaded
(15)
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
El Lado Cool de Java
1.
El lado cool
de Java Leo Soto M. @leosoto Java Day INACAP Osorno, Junio 2010
2.
¡Vamos a ir
rápido! 1. Collections 2. Generics 3. Misceláneos: autoboxing, varargs 4. Reflection API 5. Annotations 6. Java Compiler API 7. Scripting API
3.
1. Collections
4.
Array? Vector? Hashtable?
5.
Nope.
6.
7.
Implementaciones List visitas = new ArrayList(); Set alumnos = new HashSet(); Map notasPorAlumno = new HashMap(); Queue pendientes = new LinkedList();
8.
Algoritmos Collections.sort(visitas); Collections.binarySearch(visitas, v); Collections.shuffle(alumnos); Collections.max(notasPorAlumno.get(a)); Collections.reverse(pendientes);
9.
2. Generics
10.
¿Recuerdan? List visitas = new ArrayList(); Set alumnos = new HashSet(); Map notasPorAlumno = new HashMap(); Queue pendientes = new LinkedList();
11.
¡Con Generics! List<Visita> visitas = new ArrayList<Visita>(); Set<Alumno> alumnos =
new HashSet<Alumno>(); Map<Alumno, List<Integer>> notas = new HashMap<Alumno, List<Integer>(); Queue<Runnable> pendientes = new LinkedList<Runnable>();
12.
¿Y qué diablos
ganamos?
13.
Type Safety alumnos.add(“esto arroja error”); String foo = alumnos.get(0); // Esto tb
14.
Legibilidad Alumno primero = (Alumno)alumnos.get(0);
15.
Legibilidad Alumno primero = alumnos.get(0);
16.
3. Misceláneos: autoboxing,
varargs
17.
Autoboxing Integer boxed = new Integer(1); int unboxed = boxed.intValue();
18.
Autoboxing Integer boxed = 1; int unboxed = boxed;
19.
Autoboxing Integer boxed = null; int unboxed = boxed; // Oops
20.
Autoboxing List<Integer> notas; notas.add(4); notas.add(7); int suma = notas.get(0) + notas.get(1);
21.
Varargs public void saludar(String[] nombres) { for(String nombre: nombres) { System.out.printf(“Hola %s”, nombre) } }
22.
Varargs saludar(new String[] {“Pedro”, “Juan”});
23.
Varargs saludar(“Pedro”, “Juan”);
24.
Varargs public void saludar(String[] nombres) { for(String nombre: nombres) { System.out.printf(“Hola %s”, nombre) } }
25.
Varargs public void saludar(String... nombres) { for(String nombre: nombres) { System.out.printf(“Hola %s”, nombre) } }
26.
4. Reflection API
27.
¿Metaprogramación?
28.
Uhm, no exactamente
29.
¡Java dinámico!
30.
Algo así
31.
Demo https://github.com/leosoto/demos_javaday/tree/master/reflection/
32.
Sin reflection Java
no sería lo que es
33.
A veces para
bien y otras veces para mal
34.
Hint: Si usa
XML, probablemente es para mal ;)
35.
5. Annotations
36.
Metadatos para el
código
37.
Annotations @Deprecated public void metodoAntiguo() { // blah blah }
38.
Pero también se
pueden definir nuevas
39.
Annotations @Beta public class UntestedPlugin { }
40.
Annotations public @interface Beta {};
41.
Annotations Class pluginClass = loadPlugin(); if (pluginClass.isAnnotationPresent( Beta.class )) { // Alertar al usuario que esta usando // un plugin beta }
42.
Y las anotaciones
también pueden tener atributos
43.
Annotations public @interface Plugin { String author() default “unknown”; boolean beta() default false; };
44.
Annotations @Plugin(author=“Leo”, beta=true) public class UntestedPlugin { }
45.
6. Java Compiler
API
46.
Demo https://github.com/leosoto/demos_javaday/tree/master/compiler/
47.
Ugh
48.
7. Scripting API
49.
Demo https://github.com/leosoto/demos_javaday/tree/master/scripting/
50.
¿Con gusto a
poco? 8. Ejercicio para el auditor: ClassLoaders
51.
¡Muchas gracias!
@leosoto http://blog.leosoto.com
52.
¿Preguntas?
@leosoto http://blog.leosoto.com
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Download now