• JavaSE

    1. Introducción

      1. Historia

        1. 1990: Diseñado inicialmente por James Gosling

        2. 1992: nombre "Oak", Duke es la mascota

        3. 1995: cambio de nombre a "Java", lanzamiento oficial de Sun

        4. 1996: JDK 1.0

        5. 1997: JDK 1.1

        6. 1998: J2SE 1.2

        7. 2000: J2SE 1.3

        8. 2002: J2SE 1.4

        9. 2004: J2SE 5.0

        10. 2006: Java es open source, JavaSE 6

        11. 2009: Oracle compra Sun

      2. Ediciones

        1. JavaEE

          1. Enterprise

        2. JavaSE

          1. Standard

        3. JavaME

          1. Mobile

      3. Principios

        1. Simple, orientado a objetos

        2. Robusto y seguro

        3. Arquitectura neutra y portable

        4. Alta performance

        5. Interpretado, multithreaded, dinámico

      4. Arquitectura

        1. Java Virtual Machine JVM

          1. Programa nativo

          2. Plataforma específica

          3. Ejecuta bytecode

            1. Generado por el compilador Java

            2. .class

          4. Verificador de bytecode

        2. Java Runtime Environment JRE

          1. Necesaria para ejecutar

        3. Java Development Kit JDK

          1. Necesaria para desarrollar

        4. Multiplataforma

        5. Garbage collector

      5. Compilación

        1. HolaMundo.java

        2. Se compila con javac

        3. HolaMundo.class

        4. Se ejecuta en la JVM

      6. IDE

        1. Eclipse

        2. NetBeans

        3. IntelliJ Idea

        4. JDeveloper

    2. Sintaxis

      1. Comentarios

        1. Una línea //

        2. Multilínea /* */

        3. Javadoc /** */

      2. Identificadores

        1. Case sensitive

        2. Comienza con letra, '_', '$'

        3. Incluye letras o números

        4. Java Keywords

      3. Variables

        1. Primitivos

          1. Entero

            1. byte

            2. short

            3. int

            4. long

          2. Real

            1. float

            2. double

          3. Booleano

            1. boolean

          4. Caracter

            1. char

      4. Operadores

        1. Aritméticos

          1. + - * / % ++ --

        2. Lógicos

          1. && || !

        3. Relacionales

          1. == != < > <= >=

        4. Asignación

          1. = += -= *= /=

        5. Ternario

          1. ?:

      5. Estructuras de control

        1. if / else

        2. switch / case

        3. while

        4. do while

        5. for

        6. break / continue

      6. Constantes

        1. public static final

      7. Arreglos

        1. Arreglos de objetos

        2. Arreglos de primitivos

      8. Strings

        1. String cadena = "cadena";

        2. Concatenar con +

    3. Programación orientada a objetos

      1. Beneficios

        1. Encapsulamiento

        2. Reutilización

        3. Bajo acoplamiento

        4. Alta cohesión

      2. Objeto

        1. Instanciar un objeto: MiObjeto obj = new MiObjeto()

        2. Utilizar un objeto: obj.metodo();

        3. Finalizando un objeto

          1. Llamado por el GC

          2. finalize()

      3. Clase

        1. atributos

        2. métodos

          1. Overloading

            1. Reutilizar el nombre del método

            2. Diferente argumentos

          2. Overriding

            1. Sobreescribir el método

            2. Mismos argumentos

        3. constructores

        4. Declaración una clase: class

      4. Interface

        1. Solo declara métodos

        2. No se puede instanciar

        3. Declarar una interface: interface

        4. Implementar una interface: implements

      5. Modificadores

        1. Acceso

          1. public

          2. protected

          3. default

          4. private

        2. Otros

          1. final

            1. No puede ser modificado

            2. Aplica

              1. Clases

              2. Variables

              3. Métodos

          2. abstract

            1. No puede ser instanciado

            2. Aplica

              1. Clases

              2. Métodos

          3. static

            1. Asociado a la clase, no a la instancia

            2. Aplica

              1. Variables

              2. Métodos

          4. native

            1. Su implementación está fuera de la JVM

            2. Aplica a métodos

          5. transient

            1. No se persiste

            2. Aplica a variables

          6. volatile

            1. No es de uso común

            2. Las variables no pueden ser modificadas de forma asíncrona

            3. Aplica a variables

          7. synchronized

            1. Controla el acceso concurrente en hilos

      6. Herencia

        1. Reutilizar atributos y métodos de la clase padre

        2. Heredar una clase: extends

      7. Encapsulación

        1. Ocultar información

        2. getters/setters

      8. Polimorfismo

        1. Un objeto se comporta de diferentes formas

    4. Paquetes

      1. Características

        1. Evita la colisión de nombres

        2. Organización de clases

        3. Correspondencia con estructura de directorios

      2. Uso

        1. Creación: package net.lshimokawa.mipaquete;

        2. Importar clases de otros paquetes: import

      3. Convención de nombres

        1. Dominio invertido

        2. Paquete base

        3. net.lshimokawa.paquete

    5. Excepciones

      1. Introducción

        1. Evento que ocurre dentro de la ejecución del programa

        2. Interrumpe el flujo normal de ejecución

        3. Separa el flujo normal del programa del tratamiento de excepciones

        4. Se pueden propagar las excepciones

      2. Uso de excepciones

        1. try

          1. Bloque de código que requiere tratamiento de excepciones

        2. catch

          1. Tratamiento de la excepción

          2. Excepciones específicas a genéricas

        3. finally

          1. Se ejecuta siempre

          2. Sea flujo normal o una excepción

        4. Propagación

          1. throw

          2. throws

      3. Tipos

        1. Checked

          1. Errores recuperables

          2. Heredan de Exception

          3. El compilador te obliga a tratarlas

          4. Bloque try-catch o throws

        2. Unchecked

          1. Errores no recuperables

          2. Heredan de RuntimeException

          3. El compilador no te obliga a tratarlas

      4. Buenas prácticas

        1. Cerrar los recursos, uso de finally

        2. No usar excepciones en control de flujo

        3. No suprimir ni ignorar excepciones

        4. No atrapar excepciones generales

        5. Loggear las excepciones solo una vez

    6. JDBC

      1. Introducción

        1. Java Database Connectivity

        2. API que permite ejecutar operaciones sobre BD

        3. Colección de interfaces

        4. Paquete: java.sql

      2. Drivers

        1. Independientes de la BD

        2. Tipos

          1. JDBC-ODBC bridge

            1. Open Database Connectivity de Microsoft

          2. Native-API partly Java technology-enabled driver

          3. Net-protocol fully Java technology-enabled driver

          4. Native-protocol fully Java technology-enabled driver

      3. API

        1. DriverManager

          1. Carga el driver de BD

        2. Connection

          1. Abre la conexión

          2. Cierra la conexión

          3. Commit

          4. Rollback

        3. Statement

          1. Prepara y ejecuta los querys

          2. PreparedStatement

          3. CallableStatement

            1. Para StoredProcedures

        4. ResultSet

          1. Almacena el resultado del query

          2. Itera sobre los resultados

    7. Threads

      1. Introducción

        1. Similar a un proceso real

        2. Flujo secuencial de control

        3. Considerado light, se ejecuta dentro del contexto del programa

        4. Propia pila de ejecución y contador de programa

      2. Implementación

        1. Heredar la clase Thread

        2. Implementar la interface Runnable

        3. Implementar el método run()

      3. Estados

        1. Thread states

      4. Thread scheduler

        1. Depende de la JVM

        2. Usa su propio algoritmo

        3. No es determinable

      5. Thread priorities

        1. Entero del 1 al 10

        2. Preferencia de la prioridad más alta

        3. Utilizado por el thread scheduler

        4. Prioridad por defecto: 5

      6. Sincronizando

        1. El método

          1. Utilizar el modificador synchronized en el método

        2. Bloque

          1. Abrir un bloque con synchronized

    8. Collections Framework

      1. Introducción

        1. Colección: objeto que agrupa varios elementos como una unidad

        2. Consta de

          1. Interfaces

          2. Implementaciones

          3. Algoritmos

      2. Beneficios

        1. Reduce el esfuerzo al programar

        2. Incrementa la performance y calidad

        3. Interoperatibilidad

        4. Reduce el esfuerzo de aprender nuevas APIs

        5. Reduce el esfuero de diseñar nuevas APIs

        6. Reutilización

      3. API

        1. Collection

          1. Set

            1. HashSet

            2. TreeSet

          2. List

            1. ArrayList

            2. LinkedList

        2. Map

          1. TreeMap

          2. HashMap

          3. WeekHashMap

        3. Collections

          1. Utilitario para manejo de colecciones

        4. Arrays

          1. Utilitario para el manejo de arreglos

  • All Comments ( 0 )

    JavaSE

    Added: 2010-02-02 04:46:29

    From: lshimokawa (Joined 2009-12-01 22:08:05)

    1511 views |0 downloads

    JavaSE

    More From: lshimokawa

    Kanban
    Kanban
    2011-11-12 16:31:26|522 views
    Lean Software Development
    Lean Software Development
    2011-11-09 01:27:21|903 views
    Agile Retrospectives
    Agile Retrospectives
    2011-10-29 01:34:44|27 views
    Scrum
    Scrum
    2011-10-19 20:29:40|550 views
    Agile Estimating and Planning
    Agile Estimating and Planning
    2011-10-18 23:12:09|434 views
    Agile Manifesto
    Agile Manifesto
    2011-10-18 01:08:23|63 views
    SOA Governance
    SOA Governance
    2011-10-06 21:11:38|6 views
    Messaging
    Messaging
    2011-10-04 20:49:55|78 views
    ESB
    ESB
    2011-06-10 00:58:10|84 views
    BPEL
    BPEL
    2011-06-09 20:43:51|71 views
    Design Patterns
    Design Patterns
    2011-06-09 00:30:13|12 views
    REST
    REST
    2011-05-31 05:17:28|63 views
    Web Services
    Web Services
    2011-05-09 22:17:13|111 views
    Service Oriented Architecture
    Service Oriented Architecture
    2011-05-05 23:16:09|571 views
    Sistemas Distribuidos
    Sistemas Distribuidos
    2011-05-05 00:17:34|193 views
    XP: String Calculator Kata
    XP: String Calculator Kata
    2011-04-29 23:42:24|90 views
    Agile Testing
    Agile Testing
    2011-04-29 23:34:44|51 views
    Calidad de Software
    Calidad de Software
    2011-04-29 23:34:12|429 views
    XP: Test Driven Development
    XP: Test Driven Development
    2011-04-29 22:17:41|24 views
    XP: Continuous Integration
    XP: Continuous Integration
    2011-04-29 22:16:59|12 views
    Enseñando ágilmente
    Enseñando ágilmente
    2010-10-05 16:49:57|571 views
    Spring Core
    Spring Core
    2010-09-23 16:11:48|27 views
    Arquitectura Web
    Arquitectura Web
    2010-09-10 21:22:01|180 views
    Struts 2
    Struts 2
    2010-08-18 23:50:33|63 views
    Spring JDBC
    Spring JDBC
    2010-08-11 01:52:17|33 views
    JavaSE: Exception
    JavaSE: Exception
    2010-08-11 01:35:49|24 views
    MVC
    MVC
    2010-08-11 00:39:04|48 views
    Logging
    Logging
    2010-08-05 02:37:21|6 views
    Design Principles
    Design Principles
    2010-07-30 23:36:59|9 views
    Acceptance Test Driven Development
    Acceptance Test Driven Development
    2010-07-30 23:35:04|54 views
    Agile: User Stories
    Agile: User Stories
    2010-07-30 23:33:09|139 views
    Apache Maven
    Apache Maven
    2010-07-30 23:31:47|145 views
    iBatis
    iBatis
    2010-07-30 23:00:20|9 views
    Object Relational Mapping
    Object Relational Mapping
    2010-07-28 00:27:19|30 views
    Aspect Oriented Programming
    Aspect Oriented Programming
    2010-07-09 21:30:41|903 views
    JavaEE: EJB
    JavaEE: EJB
    2010-06-28 14:10:51|36 views
    Extreme Programming
    Extreme Programming
    2010-06-17 20:19:25|2237 views
    Desarrollo para Entorno Web
    Desarrollo para Entorno Web
    2010-06-17 20:19:09|208 views
    JavaSE: JDBC
    JavaSE: JDBC
    2010-06-17 20:00:41|36 views
    JavaEE: Persistencia
    JavaEE: Persistencia
    2010-06-17 19:58:53|30 views
    JavaEE: Session Beans
    JavaEE: Session Beans
    2010-06-17 19:58:37|21 views
    AJAX
    AJAX
    2010-06-17 19:42:19|51 views
    JavaEE: JSP
    JavaEE: JSP
    2010-06-17 19:40:38|36 views
    JavaEE: Servlets
    JavaEE: Servlets
    2010-06-17 19:39:45|49 views
    JavaEE: Arquitectura
    JavaEE: Arquitectura
    2010-06-17 19:37:13|252 views
    JavaEE: Web
    JavaEE: Web
    2010-06-17 19:37:04|9 views
    XP: Simple Design
    XP: Simple Design
    2010-06-12 07:03:51|0 views
    XP: Refactoring
    XP: Refactoring
    2010-06-12 07:03:16|3 views
    XP: Pair Programming
    XP: Pair Programming
    2010-06-12 07:02:57|27 views
    XP: Collective Code Ownership
    XP: Collective Code Ownership
    2010-06-12 07:00:16|727 views
    Spring Core Kata
    Spring Core Kata
    2010-06-10 18:11:55|2518 views
    Domain Driven Design
    Domain Driven Design
    2010-05-19 22:29:33|1623 views