La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Core Java Course No. CY420 Versión 4.0.

Presentaciones similares


Presentación del tema: "Core Java Course No. CY420 Versión 4.0."— Transcripción de la presentación:

1 Core Java Course No. CY420 Versión 4.0

2 API de Colecciones

3 Objetivos de aprendizaje
Describir el marco de trabajo de las colecciones Java Explicar las interfaces de colecciones Describir los algoritmos polimórficos del JDK que operan en colecciones Describir las implementaciones de colecciones

4 Estructura de las Colecciones en Java
Una colección puede ser vista básicamente como una Estructura de Datos Una colección es un objeto usado para agrupar múltiples objetos como una unidad La estructura de colecciones propuesta por Java está compuesta por interfaces, implementaciones y algoritmos (búsqueda y ordenamiento) todo esto forma las Estructuras de Datos El marco de trabajo de colecciones permite almacenar, acceder, recuperar y manipular los elementos de las colecciones

5 API de Colecciones

6 La Interfaz Collection
La raíz de la jerarquía de colecciones es la interfaz Collection Las clases concretas de colecciones implementan la interfaz Collection La interfaz Collection se usa para pasar colecciones entre métodos y manipularlos cuando se requiere de una máxima generalización Las implementaciones de colecciones de propósito general normalmente poseen un constructor con Collection como uno de sus parámetros

7 La Interfaz Collection
public interface Collection { // Operaciones Básicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); boolean remove(Object element); Iterator iterator(); // Operaciones en Lotes boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); void clear(); // Interoperabilidad Object[] toArray(); Object[] toArray(Object a[]); }

8 La Interfaz Collection
import java.util.*; public class PruebaCollection { public static void main(String[] args) { Collection c = new Vector(); c.add("Hola");c.add("Mundo"); // Utilizamos un iterador para recorrer // la lista entera Iterator i = c.iterator(); while(i.hasNext()){ System.out.println(i.next()); }

9 La Interfaz Set La interfaz Set representa a una colección de elementos donde ninguno de ellos está repetido El método add retorna false si se intenta agregar un elemento que ya existe, no ocurre ningún cambio en el conjunto Dos objetos Set que contengan los mismos objetos serán considerados iguales

10 La clase HashSet HashSet es una implementación de Set, no garantiza el orden de los elementos HashSet se usa para guardar los elementos de un Set en una tabla hash. import java.util.*; public class PruebaSet { public static void main(String[] args) { Set list = new HashSet(); //Continúa...

11 La clase HashSet Salida del programa o i a u e
list.add("a");list.add("e");list.add("i"); list.add("a");list.add("e");list.add("o"); list.add("i");list.add("u");list.add("u"); Iterator i = list.iterator(); while(i.hasNext()) System.out.println(i.next()); } }//Fin de la clase PruebaSet Salida del programa o i a u e

12 La Interfaz SortedSet La interfaz SortedSet extiende de la interfaz Set SortedSet permite establecer una relación de orden entre sus elementos El orden por defecto es ascendente y viene dado por la naturaleza del valor, o por un comparador que sea especificado en la instanciación La interfaz SortedSet provee otros tres tipos de operaciones: Rango-vista Extremos Acceso al comparador

13 La clase TreeSet TreeSet proporciona una implementación de la interfaz Set que garantiza el orden en la iteración. Los objetos se ordenan en orden ascendente y se almacenan en la forma de un árbol de búsqueda binaria import java.util.*; public class PruebaSortedSet{ public static void main(String[] args) { SortedSet list = new TreeSet(); list.add("a");list.add("e");list.add("i"); list.add("a");list.add("e");list.add("o"); list.add("i");list.add("u");list.add("u"); //Continúa...

14 La clase TreeSet Salida del programa a e i o u
Iterator i = list.iterator(); while(i.hasNext()){ System.out.println(i.next()); } }//Fin de la clase PruebaSortedSet Salida del programa a e i o u

15 La Interfaz List Una lista es una colección ordenada
Mantiene un índice de los elementos que denota la posición del elemento en la lista Las listas permiten elementos duplicados List provee operaciones que permiten: Acceder a un elemento especificando su posición Buscar un elemento específico Realizar operaciones de iteración en la lista Realizar operaciones de rango

16 La clase Vector Vector es una implementacion de List
El tamaño de un Vector se puede modificar dinámicamente Los vectores sólo pueden guardar referencias del tipo java.lang.Object Los vectores pueden almacenar cualquier combinación de tipos de datos de objetos. El método elementAt(index) de la clase Vector se usa para recuperar una referencia dada en el índice especificado

17 List y Vector import java.util.*; public class PruebaList {
public static void main(String[] args) { List list = new Vector(); for(int i=1;i<=20;i++) list.add(i+""); ListIterator i = list.listIterator(); while(i.hasNext()) if(Integer.parseInt(i.next()+"")%2 != 0) i.remove(); i.add("."); //Continúa...

18 List y Vector Salida del programa . 20 18 16 14 12 10 ...
while(i.hasPrevious()) System.out.println(i.previous()); } }//Fin de la clase PruebaList Salida del programa . 20 18 16 14 12 10 ...

19 La Clase ArrayList La Clase LinkedList
Provee un arreglo dinámico La lista contenida puede expandirse o contraerse dinámicamente, lo que no es posible hacer con arreglos No posee los métodos legados de Vector elementAt() addElement() La Clase LinkedList Provee al igual que las dos anteriores un arreglo dinámico Tiene un constructor sobrecargado LinkedList(Collection c), que construye una lista enlazada con los elementos de la colección c

20 La Interfaz Map Un mapa es una colección de pares de elementos clave-valor correlacionados entre sí Map El conjunto de claves, por ser un conjunto, no permite que hayan elementos duplicados Claves Valores 2342 Jose 8321 Maria 232 Carlos La colección de valores permite cualquier cantidad de elementos repetidos 9087 Juan 1232 Pedro

21 La Clase Hashtable La Clase HashMap
La clase Hashtable es una implementación de la interfaz Map Una tabla hash es una estructura de datos que relaciona claves con valores Se usa bajo las circunstancias donde un acceso secuencial no es necesario La Clase HashMap Implementa de mejor forma la interfaz Map a diferencia del Hashtable no es sincronizada y permite null

22 La Interfaz Map import java.util.*; public class PruebaMap {
private static final Integer ONCE = new Integer(1); public static void main(String args[]) { Map map = new HashMap(); for (int j=0; j<args.length; j++) { Integer frequency = (Integer) map.get(args[j]); map.put(args[j], (frequency==null ? ONCE : new Integer(frequency.intValue() + 1))); } System.out.println(" N# de palabras distintas: " + map.size()); //Continúa...

23 La Interfaz Map Dada la siguiente línea: La salida es:
System.out.println(map); } }//Fin de la clase PruebaMap Dada la siguiente línea: java PruebaMap Esta es la clase de Map de la materia Core Java La salida es: N# de palabras distintas: 9 {Core=1, Map=1, Java=1, de=2, clase=1, la=2, es=1, materia=1, Esta=1}

24 La Interfaz SortedMap La interfaz SortedMap es una subclase de la interfaz Map Mantiene sus entradas en orden ascendente, ordenando de acuerdo a la naturaleza de las claves, o de acuerdo al comparador provisto Las operaciones de comparaciones entre elementos se llevan a cabo con el método compareTo

25 La clase TreeMap TreeMap proporciona una implementación de la interfaz SortedMap que usa un árbol de búsqueda binario para el almacenamiento. Se guardan los objetos en orden ascendente. Los tiempos de acceso y recuperación son rápidos, lo que hace que la clase TreeMap sea una opción excelente para guardar cantidades grandes de información ordenada que necesita ser encontrada rápidamente.

26 La Interfaz Enumeration
La interfaz Enumeration se puede usar para recorrer cada elemento de la colección La Interfaz Iterator La interfaz Iterator permite recorrer de forma secuencial los distintos elementos que conforman una colección El iterador de una colección permite remover elementos de dicha colección basado en una semántica bien definida

27 La Interfaz ListIterator La Interfaz Comparator
Extiende de Iterator y provee métodos adicionales para la manipulación de de listas Esta interfaz permite recorrido hacia delante y hacia atrás en la lista La Interfaz Comparator Esta interfaz permite controlar el orden en colecciones ordenadas

28 La Clase Collections Esta clase, tiene un conjunto de métodos estáticos que son básicamente algoritmos asociados a estructuras de datos Los métodos incluyen: ordenamiento, búsqueda, desordenar, inversión del orden de la colección import java.util.*; public class PruebaCollection1{ public static void main(String[] args) { List l = new Vector(); for(int i = 65;i < 91;i++) l.add((char)i+""); Collections.shuffle(l); //Continúa...

29 La Clase Collections Salida del programa
System.out.println(l); Collections.sort(l); int pos = Collections.binarySearch(l,"P"); System.out.println("Encontrado en: "+pos); } }//Fin de la clase PruebaCollection1 Salida del programa [F, R, J, V, L, A, Y, N, P, Z, I, T, S, H, Q, K, W, C, M, E, X, G, U, D, O, B] [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z] Encontrado en: 15

30 Conjunto Unitario(Singleton Set)
En Java, se puede obtener un conjunto unitario a través del método Collections.singleton. Se puede usar para quitar todas las ocurrencias de un elemento específico en una colección La Clase Arrays Esta clase tiene un conjunto de métodos estáticos que permiten que los arreglos sean convertidos en listas Tiene operaciones para búsqueda y ordenamiento

31 Colecciones en Diferentes Escenarios

32 Resumen Se entendió la estructura de colecciones en Java
Se explicaron las interfaces collection Se aprendió acerca de algoritmos polimórficos del JDK que operan sobre colecciones Se aprendió acerca de algunas implementaciones de colecciones

33 JDBC

34 Objetivos de Aprendizaje
Aprender acerca de la conectividad a base de datos en Java Entender acerca de la API Java JDBC Discutir acerca de sentencias SQL usadas en programas Java Enseñar cómo tratar con el manejo de excepciones en JDBC

35 Introducción Java proporciona conectividad a muchos tipos de base de datos a través de su API de Conectividad a Base de Datos Java ( Java Data Base Connectivity - JDBC) Para desarrollar programas que interactuen con bases de datos en Java, se requiere esencialmente: Una base de datos relacional Una interfaz con Java (a través del API JDBC) Conocimiento básico de las sentencias SQL

36 Pasos Involucrados en el Acceso
a Bases de Datos Se debe cargar en memoria el controlador (driver) que habilitará la conexión entre el programa Java y el sistema de base de datos A través de este controlador, se establece una conexión a la base de datos Una vez establecida la conexión, por medio de esta se ejecutan las sentencias SQL que sean requeridas Al finalizar se debe cerrar todas las conexiones a bases de datos que estén activas

37 El API JDBC Algunas de las clases e interfaces de esta api son:
java.sql.DriverManager java.sql.Driver java.sql.Connection java.sql.Statement java.sql.ResultSet java.sql.ResultSetMetaData java.sql.DabataseMetaData java.sql.PreparedStatement java.sql.CallableStatement

38 Relación entre las Clases e
Interfaces JDBC DriverManager «interface» Connection ResultSet Statement DatabaseMetaData ResultSetMetaData Driver utiliza crea genera retorna

39 Tipos de Controladores JDBC
JDBC provee cuatro tipos de controladores: Controlador JDBC-ODBC (Tipo 1) Controlador API-Nativo (Tipo 2) Controlador de Protocolo de Red (Tipo 3) Controlador Protocolo-Nativo (Tipo 4)

40 Cargar el Controlador Para cargar el controlador, se debe usar el método forName en la clase Class con el nombre del controlador como argumento Ejemplos del proceso de carga de un driver: MS Access y MS SQL Server Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); IBM UDB DB2 Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); MySQL Class.forName("com.mysql.jdbc.Driver"); PostgreSQL Class.forName("org.postgresql.Driver");

41 Crear una Conexión La clase DriverManager es responsable por buscar las diferentes implementaciones JDBC que puedan existir en un sistema y administrar los controladores JDBC La clase DriverManager provee un método llamado getConnection(), por medio de este se puede obtener una conexión a una bases de datos Este método toma tres argumentos: El URL de la base de datos protocol:<subprotocol>:<subname> Identificación del usuario Clave del usuario

42 Crear una Conexión import java.sql.*; public class PruebasJDBC {
public static void main(java.lang.String[] args) { Connection conn = null; try { Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); System.out.println("Driver cargado..."); conn = DriverManager.getConnection( "jdbc:db2:Sample", "db2admin", "db2admin"); System.out.println("Conexión establecida..."); } catch (ClassNotFoundException e) { System.out.println("Driver no encontrado"); } catch (SQLException e) { System.out.println("Error DB: " + e); } finally { if (conn != null) conn.close(); } catch (SQLException se){} } Debemos realizar un manejo adecuado de las excepciones que pueden generarse

43 Crear Objetos Statement
Las sentencias SQL más usadas son las siguientes: UPDATE INSERT DELETE SELECT La interfaz Statement provee métodos para hacer estas llamadas El método executeUpdate() retorna el numero de registros afectados por la sentencia SQL El método executeQuery() retorna el conjunto de registros seleccionados por la consulta (ResultSet)

44 Crear Objetos Statement
import java.sql.*; public class PruebasJDBC1 { public static void main(String[] args) { Connection conn = null; String u = "db2admin"; String p = "db2admin"; String drv = "COM.ibm.db2.jdbc.app.DB2Driver"; try { Class.forName(drv); conn = DriverManager.getConnection( "jdbc:db2:IBM",u,p); Statement stmt = conn.createStatement(); String sql = "INSERT INTO ESTUDIANTE "+ "VALUES('Pedro','Perez',123)"; stmt.executeUpdate(sql); System.out.println("Actualización exitosa "); } catch (Exception e){ System.out.println("Error: "+e); }finally { try {if (conn != null)conn.close();} catch (SQLException se){} }

45 Usar ResultSet Al utilizar el método executeQuery() de un Statement, es necesario utilizar una referencia a la interfaz ResultSet para manipular los datos retornados por el Statement Para iterar a través de un ResultSet se utiliza el método next(), que permite mover el cursor desde su posición actual hasta el proximo registro Inicialmente el cursor del ResultSet se encuentra antes del primer registro

46 Usar ResultSet La interfaz ResultSet provee una serie de métodos que permiten extraer los datos contenidos en el registro apuntado por el cursor, entre estos se tienen: int getInt(String); int getInt(int); String getString(String); String getString(int); float getFloat(String); float getFloat(int); Existe un par de métodos similares para cada tipo de dato compatible con SQL

47 Usar ResultSet import java.sql.*; public class PruebasJDBC2 {
public static void main(String[] args) { ... try { Statement stmt = conn.createStatement(); String sql = "SELECT * FROM ESTUDIANTE"; ResultSet r = stmt.executeQuery(sql); while(r.next()) System.out.println(r.getString("nombre")+ " "+ r.getInt("ci")); } catch (Exception e){ System.out.println("Error: "+e); }finally { try {if (conn != null)conn.close();} catch (SQLException se){} }

48 Interfaces MetaData La palabra Metadata implica información acerca de información La interfaz ResultSetMetaData provee información acerca de los objetos ResultSet La clase DatabaseMetaData está relacionado con el objeto Connection. Por medio de esta se puede obtener información de la base de datos a la cual se está conectado por medio de Connection

49 ResultSetMetaData Algunos de los métodos contenidos en esta interfaz son los siguientes: int getColumnCount() String getColumnLabel(int column) String getColumnName(int column) String getTableName(int column) int isNullable(int column) boolean isReadOnly(int column)

50 DatabaseSetMetaData Alguno de los métodos contenidos en esta interfaz son los siguientes: String getDriverName() String getURL() String getUserName() boolean isReadOnly()

51 Resumen Se aprendió acerca de conectividad a base de datos en Java
Se entendió el Java JDBC API Se discutió acerca de sentencias SQL usadas en programas Java Se presentó cómo se trata el el manejo de excepciones

52 JDBC Avanzado

53 Objetivos de Aprendizaje
Describir el uso de las interfaces herederas de la interfaz Statement Explicar los procedimientos almacenados Explicar las funcionalidades de: manejo de transacciones soporte a cursores el procesamiento de múltiples resultados de JDBC Discutir algunas clases de soporte JDBC en Java

54 Extensiones de la Interfaz Statement
La especificación JDBC provee dos clases adicionales, provenientes de la interfaz Statement para permitir al programador realizar programación sofisticada de base de datos Estas interfaces son: PreparedStatement CallableStatement

55 PreparedStatement Existe una manera de crear sentencias SQL una vez y usarla cada vez que quiera correrla Esto se logra a través de PreparedStatement de JDBC Esta interfaz permite construir las sentencias SQL requeridas una vez y ejecutarlas cualquier número de veces en la aplicación Cuando un objeto PreparedStatement es creado, la sentencia SQL se da como argumento La sentencia SQL debe ser enviada al DBMS inmediatamente donde es compilada una vez

56 PreparedStatement En tiempo de construcción el PreparedStatement no conoce los valores que determinan el resultado de su ejecución Solo las posiciones de dichos valores son conocidas en el momento de su creación, las mismas son indicadas con el símbolo “?” PreparedStatement ps; ps = conn.preparedStatement("select * from tabla "+ "where c1=? ")

57 PreparedStatement import java.sql.*;
public class PruebasJDBCPrepared { static String db="jdbc:db2:IBM"; static String drv="COM.ibm.db2.jdbc.app.DB2Driver"; public static void main(String []args){ Connection conn = null; PreparedStatement ps = null; try{ Class.forName(drv); conn = DriverManager. getConnection(db,"db2admin","db2admin"); String sql = "select * from estudiante where ci=?"; ps = conn.prepareCall(sql); ps.setInt(1,123); ResultSet rs = ps.executeQuery(); //Continúa...

58 PreparedStatement if(rs.next()) System.out.println("Encontrado"); else
System.out.println("No Encontrado"); }catch(Exception e){ System.out.println("Error: "+e); }finally{ try{ if(conn!=null) conn.close(); }catch(Exception e){} } }//Fin de la clase PruebasJDBCPrepared

59 Procedimientos Almacenados
Un procedimiento almacenado (stored procedure) permite asociar un conjunto de sentencias SQL a un único nombre, para luego ejecutarlas haciendo uso de ese nombre en cualquier momento Los procedimientos almacenados son muy rápidos, ya que se ejecutan dentro de la base de datos y están previamente compilados Por medio de los objetos de la interfaz CallableStatement se pueden ejecutar dentro del código Java

60 Otras Funcionalidades JDBC
Administración de Transacciones Soporte de cursores Procesamiento de resultados múltiples Algunos de estos pueden no ser soportados por todas las implementaciones JDBC Se presenta la sintaxis básica de uso de estas funcionalidades. Dependiendo del DBMS, se contará con el soporte de estas características

61 Administración de Transacciones
Una transacción puede ser definida como un conjunto de operaciones que deben ser ejecutadas como una unidad De fallar una de las operaciones, falla en su totalidad la transacción Una transacción es una “unidad de trabajo” Cuando se realiza cualquier operación de INSERT, UPDATE o DELETE ésta se ejecuta con auto-commit explícito por omisión Para habilitar control sobre las transacciones de la base de datos se usa el método setAutoCommit(boolean autoCommit)

62 Administración de Transacciones
... try{ // Auto commit deshabilitado conn.setAutoCommit(false); // Insertamos en la primera tabla stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO table1 ..."); stmt.close(); // Insertamos en la segunda tabla stmt.executeUpdate("INSERT INTO table2 ..."); // Compromete los cambios en la base de datos conn.commit(); }catch(SQLException e){ try { conn.rollback(); }catch( SQLException sqle2 ){} }...

63 Soporte de Cursores JDBC provee soporte limitado de cursores.
Permite a una aplicación obtener un cursor asociado con el resultado a través del método de ResultSet.getCursorName() El desplazamiento dentro del cursor es provisto recientemente en las implementaciones de JDBC, algunos controladores pueden no permitirlo Para hacer uso de cursores desplazables se debe activar esta característica

64 Soporte de Cursores Lo primero es utilizar los siguientes métodos para crear las sentencias y las sentencias preparadas: - Statement createStatement(int type, int concurrency) PreparedStatement prepareStatement(String sql,int type, int concurrency) type puede ser cualquiera de las siguientes constantes: TYPE_FORWARD, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE concurrency puede ser cualquiera de las siguientes constantes: CONCUR_READ_ONLY, CONCUR_UPDATABLE

65 Soporte de Cursores Algunos de los métodos disponibles para el movimiento del cursor son: Método Descripción absolute(int) Para moverse a una fila específica en el resultado afterLast() Para moverse al final del resultado, después de la última fila beforeFirst() Para moverse al inicio del resultado, antes de la primera fila first() Para moverse a la primera fila del resultado last() Para moverse a la última fila del resultado previous() Para moverse a la fila anterior, similar a next()

66 Soporte de Cursores Uso típico de cursores:
stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); rs = stmt.executeQuery("SELECT * FROM tableName”); rs.absolute(7); System.out.println(rs.getString(1)); while (rs.next(){ // ... } rs.beforeFirst(); while (rs.next()) {

67 Múltiples Resultados Especialmente con procedimientos almacenados, se puede estar interesados en una aplicación que retorne múltiples resultados Para obtenerlos, se debe hacer uso de los siguientes métodos: boolean getMoreResults(); ResulSet getResultSet();

68 Múltiples Resultados Un uso típico de esta característica es el siguiente: ... while(stmt.getMoreResults()) { rs = stmt.getResultSet(); while (rs.next()) { // algunas tareas }

69 Clases de Soporte JDBC Algunas de las clases de soporte son las siguientes: SQLException SQLWarning DataTruncation Date, Time y Timestamp Types

70 Resumen Se entendió como usar clases heredadas de Statement
Se aprendió acerca de procedimientos almacenados Se discutió acerca de otras funcionalidades JDBC: como administración de transacciones, soporte de cursores y procesamiento de resultados múltiples. Se listaron algunas de las clases de soporte JDBC en Java

71 Características Avanzadas

72 Objetivos de Aprendizaje
Exponer los aspectos de seguridad que aplican cuando se trabaja con programas Java Describir los conceptos de internacionalización en Java Definir JavaBeans Discutir el empaquetado de componentes en Java Escribir código que use correctamente los métodos más importantes de la clase java.lang.Math

73 Seguridad El principal objetivo de la seguridad en Java es controlar el acceso a los recursos del computador incluyendo todos sus dispositivos Algunos conceptos importantes de la seguridad son: Identificación Autenticación Autorización Integridad de los datos Encriptamiento Auditoría

74 Modelo de Seguridad de Java

75 Modelo de Seguridad de Java
El Conjunto de Instrucciones de la JVM: Es la base de la seguridad de Java, las instrucciones de la JVM, no acceden directamente a la memoria sino que lo hacen de una forma simbólica El Cargador de Clases: Es responsable de verificar la clase que se esta cargando, verifica nombres, dependencias, prioridades en la carga, cache El Verificador de Bytecodes: Revisa el bytecode por inicialización de variables, verificación de métodos, reglas de acceso, desbordamiento de la pila El Administrador de Seguridad: Usa una política de seguridad para determinar los accesos

76 Archivo de Políticas de Seguridad
Una política de seguridad asocia al código fuente directamente con un conjunto de permisos y puede ser creada usando la herramienta de políticas del SDK El archivo jre\lib\security\java.security contiene entradas que identifican la política a ser usada El formato del archivo de políticas permite a los desarrolladores conceder confianza a código sin firmar de una localización específica, o código posiblemente sin firmar de cualquier situación

77 Firmas Digitales En la sección anterior, se hablaba acerca del archivo de políticas de seguridad y las formas de conceder acceso al recurso dependiendo de la firma. El tipo de firma referido aquí, es la firma digital. Una firma digital es el proceso en el que las llaves públicas y privadas son producidas y se relacionan matemáticamente

78 Certificados Digitales
Los certificados digitales se usan estrechamente con las firmas digitales Junto con la verificación de la identidad del desarrollador del código, los certificados pueden usarse para verificar, adicionalmente, si el código vino de una fuente no familiar confiable. Un certificado firmado presenta e identifica una llave pública. Una tercera autoridad de certificación verifica que puede confiarse en el emisor

79 Internacionalización
La Internacionalización es el proceso de diseñar una aplicación que pueda ser adaptada a varios lenguajes y regiones. Localización es el proceso de adaptar software a un lenguaje o región específica, por medio de la traducción de texto y la adición de componentes específicos a la región.

80 Internacionalización
Para poder incluir la internacionalización en programas Java, los siguientes pasos son esenciales: Crear un archivo properties Crear un objeto Locale. Crear un objeto ResourceBundle. Obtener la cadena del objeto ResourceBundle.

81 JavaBeans En Java, se tiene el concepto de componentes
Los componentes son unidades de software auto- contenidas y reusables. Las tecnologías de componentes se incorporan a la plataforma Java a través del concepto de JavaBeans Estos componentes reusables exponen sus características a las herramientas constructoras para manipulación visual. La tecnología de componentes ofrecida por Java es independiente de la plataforma.

82 JavaBeans Las características que distinguen un JavaBean de una simple clase de Java son: Introspección Persistencia Personalización Manejo de Eventos Propiedades

83 Empaquetar Componentes
El empaquetamiento asegura que cuando se instala una aplicación todos los archivos necesarios son parte de la aplicación El empaquetamiento ofrece además a los JavaBeans manejo de versiones, firmas electrónicas y sellado de paquetes Para crear un archivo JAR se usa el siguiente comando: jar cvf jar-name archivo-class1 archivo-class2... Para examinar los contenidos de un archivos JAR se usa: jar tvf jar-name

84 Clase java.lang.Math Esta clase contiene métodos para resolver operaciones numéricas básicas, tales como: cálculo de logaritmo, raíz cuadrada, valor absoluto, funciones trigonométricas Algunos de sus métodos son: Método Descripción abs(int a) Calcula el valor absoluto de a max(int a, int b) Retorna el máximo valor entre a y b min(int a, int b) Retorna el mínimo valor entre a y b round(float a) Realiza un redondeo del valor de a pow(double a, double b) Calcula y retorna el valor de a elevado al valor de b

85 Resumen Se explicaron los mecanismos de seguridad cuando se trabaja con programas Java Se describieron los conceptos de internacionalización Se explicí el concepto de JavaBeans Se explicó el empaquetamiento de componentes Se describió la clase java.lang.Math


Descargar ppt "Core Java Course No. CY420 Versión 4.0."

Presentaciones similares


Anuncios Google