Soumettre la recherche
Mettre en ligne
El Lado Cool de Java
•
Télécharger en tant que KEY, PDF
•
1 j'aime
•
1,627 vues
L
Leonardo Soto
Suivre
Technologie
Formation
Signaler
Partager
Signaler
Partager
1 sur 52
Télécharger maintenant
Recommandé
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
Recommandé
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 2011
Clase 4 java 2011
José Braganza
Clase 4 JAVA 2012
Clase 4 JAVA 2012
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
Contenu connexe
Similaire à 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 2011
Clase 4 java 2011
José Braganza
Clase 4 JAVA 2012
Clase 4 JAVA 2012
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
Similaire à 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 2011
Clase 4 java 2011
Clase 4 JAVA 2012
Clase 4 JAVA 2012
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
Plus de 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
Plus de 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)
Dernier
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
SergioMendoza354770
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
241514949
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
arkananubis
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Nombre Apellidos
La era de la educación digital y sus desafios
La era de la educación digital y sus desafios
Fundación YOD YOD
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
Alexander López
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
RobertoGumucio2
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
JOSEFERNANDOARENASCA
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
MiguelAtencio10
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
azmysanros90
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
MariaBurgos55
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
Alexander López
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
241522327
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
maryfer27m
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
JavierHerrera662252
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
MidwarHenryLOZAFLORE
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
JOSEMANUELHERNANDEZH11
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante que son
241514984
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
MiguelAngelVillanuev48
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
241523733
Dernier
(20)
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
La era de la educación digital y sus desafios
La era de la educación digital y sus desafios
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante que son
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
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
Notes de l'éditeur
\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
Télécharger maintenant