SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

CJ02 – Técnicas avanzadas en java 1.4 y 5.0
2. Manejo de memoria Manejo de memoria estática
Curso de java básico (scjp)
Introducción a la programación en JAVA
Definición de Clases y Variables de referencia.
Programación Interactiva Manejo de Excepciones
Herencia en C#.
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Uso de variables de tipo referencia
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Orientación a Objetos con Java SE
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
Conceptos más avanzados de Programación Orientada a Objetos Programación 2005 Licenciatura de Lingüística y Nuevas Tecnologías.
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Tema 1. Introducción a la programación (Lenguaje java).
Tratamiento de listas en Java
Programación Orientada a Objetos en Java
Unit 1: Overview and Positioning
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Material de apoyo Unidad 2 Estructura de datos
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Input – Scanner y Cajas de diálogo
SCJP Sun Certified Programmer for Java 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Programación III Clase 07 Funciones.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
JAVA J.A.C..
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Conversión cadena a número
Sintaxis de C# (Declaraciones y Tipos)
Prof. Mayra M. Méndez Anota.  Herramientas  Características  Convenciones  Estructura de una clase  Sintaxis de: métodos, atributos, constructores.
ESTRUCTURA DE DATOS EN JAVA
Lenguaje Java Fundamentos del lenguajes de programación
Curso Programación en Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
Resumen Fundamentos de Programación/ Programación I
Manejo de Punteros y objetos en memoria dinámica en C++
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Java.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
Sun Certified Java Programmer (SCJP) Capítulo 3: Asignaciones
Arreglos de Objetos.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación CLASES DE JAVA Diciembre de 2008.
Conceptos y Lenguaje Imperativo
Clases “ Es una Abstracción de un elemento del mundo real ”
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Transcripción de la presentación:

SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6 1

Repaso Wrapper Classes Las clases Wrapper (Envolventes) se relacionan con los datos primitivos Cada dato primitivo tiene su propia Wrapper Class Las clases Wrapper tiene dos principales funciones: Envolver a los primitivos para que puedan ser tomados como objetos. Proporciona metodos para primitivos (generalmente conversiones)

Repaso Wrapper Classes Los tres metodos mas importantes son: xxxValue(), no toma argumentos y regresan un primitivo parseXxx(), Toma un String, regresa un primitivo y puede lanzar una NumberFormatException valueOf() Toma un String, regresa un objeto Wrapped, puede lanzar una NumberFormatException Los constructores de las Wrapper pueden tomar un String o su primitivo, excepto Character que solo toma un char Radix se refiere a la base, Base Octal es 8 Base hexadecimal es 16

SEMANA TRES AUTOBOXING

AUTOBOXING En Java 5 se introdujo el autoboxing, antes de esta version las clases Wrapper se manejaban de esta forma:

AUTOBOXING Desde Java 5 se hace de esta forma:

AUTOBOXING En el caso de asignacion de referencias tiene el mismo efecto:

OPERADOR(==) VS MÉTODO(EQUALS()) EN BOXING El operador == es sirve para saber si 2 referencias apuntan al mismo objeto con algunas excepciones Si el objeto contiene los siguientes datos: Boolean Byte Character desde \u0000 hasta \u007f (7f es 127 en decimal) Short e Integer desde -128 hasta 127 Lo que se compara son sus valores, no sus referencias. El método equals, sirve para saber si 2 objetos son equivalentes (que tengan el mismo valor aunque cada uno haga referencia a un objeto diferente)

OPERADOR(==) VS MÉTODO(EQUALS()) EN BOXING Ejemplo:

OPERADOR(==) VS MÉTODO(EQUALS()) EN BOXING Ejemplo:

OPERADOR(==) VS MÉTODO(EQUALS()) EN BOXING Recuerda: Cuando usamos == para comparar un primitivo con un Wrapper, el wrapper sera desenvuelto y la comparacion se hara primitivo a primitivo

SOBRECARGA

Sobre-carga con datos primitivos La sobrecarga en el caso de primitivos y clases wrapper es a veces engañosa:

Sobre-carga con datos primitivos Cuando no se encuentra el tipo exacto de dato, la JVM usa el método con el tipo de dato mas grande y próximo al que se esta pasando como argumento en el caso de datos primitivos.

Sobre-carga con var-args y boxing Para el caso de clases wrapper funciona diferente:

Sobre-carga con var-args y boxing Los var-args, son los últimos que se toman en cuenta, ya que Java siempre toma en cuenta el mas antiguo primero:

Sobre-carga con var-args y boxing El orden en que se crearon es: Primitivos Clases Wrapper Var-args

Recordando polimorfismo

RECORDANDO POLIMORFISMO El Polimorfismo no funciona entre clases Wrapper

SOBRECARGA

SOBRECARGA

SOBRECARGA

Resumen de sobre-carga avanzada de métodos Los datos primitivos usan el argumento mas pequeño del método, siempre y cuando sean compatibles No se puede hacer casting implícito en los métodos cuando se trata de clases wrapper (no pasan el test IS- A) No se puede usar casting implícito entre primitivos y clases wrapper (un int no se puede convertir en un Long) La única forma en que se puede hacer casting implícito con clases wrapper es con la clase Object (Un int se puede convertir en un Object) Se puede combinar var-args, con boxing y primitivos

RECOLECTOR DE BASURA (Garbage Collection)

Recolector de basura La memoria Heap es en donde el recolector de basura hacer su trabajo El recolector de basura es un programa interno de la JVM que elimina los objetos que el considere. Se puede mandara a llamar un comando para sugerir que se corra el GC, pero no se garantiza que correrá cuando se mande a llamar

GC en SCJP Lo que se evaluara en el examen es identificar que objetos son elegibles para el GC. No se evaluara que condiciones se deben cumplir para que se ejecute el GC Lo único que hace el GC es tratar de manejar la memoria lo mas eficientemente posible Se puede mandar a llamar el GC con System.gc(); pero no se garantiza que corra en el momento en que se mande a llamar

RECOLECTOR DE BASURA Codigo que explicitamente hace elegibles objetos para el GC: Referencia a null.

RECOLECTOR DE BASURA Reasignando una variable de referencia.

RECOLECTOR DE BASURA Los objetos que son creados dentro de los métodos también deben ser considerados:

REFERENCIAS AISLADAS

Referencias aisladas

El metodo finalize() Este método es heredado de la clase Object Cuando se sobre-escribe, lo que esta dentro del método se ejecuta justo antes de ser eliminado el objeto No se debe poner código importante aquí, ya que no se esta 100% seguro de que el objeto sea elegible por el GC. Por lo tanto no se garantiza que el metodo se ejecute.

RESUMEN Mucha información…. (tratar de formatear el disco duro mental y ahora solo pensar, respirar, comer, soñar, dormir, caminar, trabajar, …. con Java). Stack y heap Que es lo que vive en cada parte de la memoria Valores literales legales para primitivos y para String El alcance de las variables: static, instancia, local, bloque

RESUMEN Valor por default de variables de instancia sin inicializar explícitamente Las variables locales y de bloque, siempre se deben inicializar Arreglos: declarando, creando e inicializando Bloques de inicializacion: estaticos y de instancia Clases Wrapper: son Objetos inmutables debido al autoboxing

RESUMEN Diferencias entre == y el método equals() Sobrecarga avanzada Recolector de basura Cuando un objeto es elegible para el GC Que función tiene el método finalize()

RECOMENDACIONES… Se recomienda estudiar la seccion que viene al final de cada capitulo del libro, la seccion Two- Minute Drill En esta seccion viene el resumen, las reglas, de todos los temas que se vieron en ese capitulo.

3. public class Ouch { 4. static int ouch = 7; 5 3. public class Ouch { 4. static int ouch = 7; 5. public static void main(String[] args) { 6. new Ouch().go(ouch); 7. System.out.print(" " + ouch); 8. } 9. void go(int ouch) { 10. ouch++; 11. for(int ouch = 3; ouch < 6; ouch++) 12. ; 13. System.out.print(" " + ouch); 14. } 15. } Cual es el resultado? A. 5 7 B. 5 8 C. 8 7 D. 8 8 E. Compilation fails F. An exception is thrown at runtime

3. class Box { 4. int size; 5. Box(int s) { size = s; } 6. } 7 3. class Box { 4. int size; 5. Box(int s) { size = s; } 6. } 7. public class Laser { 8. public static void main(String[] args) { 9. Box b1 = new Box(5); 10. Box[] ba = go(b1, new Box(6)); 11. ba[0] = b1; 12. for(Box b : ba) System.out.print(b.size + " "); 13. } 14. static Box[] go(Box b1, Box b2) { 15. b1.size = 4; 16. Box[] ma = {b2, b1}; 17. return ma; 18. } 19. }