SlideShare una empresa de Scribd logo
Librerías de Java



LSCA Alma Delia Otero Escobar
Existen diferentes librerías en Java, entre las cuales se encuentran:

   java.lang

   Colección de tipos básicos siempre importados a cualquier unidad de
   compilación. Aquí están las declaraciones de objetos, clases, threads,
   excepciones, wrappers de los tipos de datos primitivos y otras clases
   fundamentales.

   java.io

   Archivos de stream y acceso aleatorio. Librería estándar de entrada y
   salida.
java.net
Librería que apoya interfaces con telnet y URLs.

java.util
Clases como diccionarios, tabla de hash, stack, técnicas de
codificación y decodificación, hora, fecha, etcétera.

java.awt
Abstract Windowing Toolkit que proporciona una capa abstracta
que permite llevar una aplicación en Java de un sistema de
ventanas a otro. Contiene clases para componentes básicos de la
interfaz, tales como eventos, colores, tipos de letra, botones,
campos de texto, etc.
Identificadores
Los identificadores nombran variables,
funciones, clases y objetos; cualquier
cosa que el programador necesite
identificar o usar.
En Java, un identificador comienza con
una letra, un subrayado (_) o un símbolo
de dólar ($).
Los siguientes caracteres pueden ser letras o dígitos.
Se distinguen las mayúsculas de las minúsculas y no
hay longitud máxima.

    Serían identificadores válidos:   y su uso sería, por ejemplo:


            identificador
          nombre_usuario                 int contador_principal;
         Nombre_Usuario                 char _lista_de_ficheros;
       _variable_del_sistema           float $cantidad_en_Ptas;
            $transaccion
Literales
 Un valor constante en Java se crea
  utilizando una representación literal de él.
 Ejemplo:
     100
     98.6
     ‘X’
     <<Esto   es una prueba>>
Comentarios
   En java existen tres tipos de comentarios:
     De múltiples líneas /* */
     De una línea //
     De documentación /** */
Separadores
 ( ) Lista de parámetros, precedencia
 { } Inicialización de matrices, bloques
 [ ] Tipos de matrices y referencias
;    Separa sentencias
,    separa o bien encadena sentencias
.    Separa nombres de paquetes y
  subpaquetes, variables y métodos
Palabras clave
   Las siguientes son las palabras clave que
    están definidas en Java y que no se
    pueden utilizar como identificadores:
abstract   continue   for          new         switch
                                               synchroniz
boolean    default    goto         null
                                               ed
break      do         if           package     this
byte       double     implements   private     threadsafe
byvalue    else       import       protected   throw
case       extends    instanceof   public      transient
catch      false      int          return      true
char       final      interface    short       try
class      finally    long         static      void
const      float      native       super       while
Palabras
Reservadas
   Además, el lenguaje se reserva unas
    cuantas palabras más, pero que hasta
    ahora no tienen un cometido específico.
    Son:
cast         future    generic    inner




 operator    outer     rest       var
Literales
   Un valor constante en Java se crea
    utilizando una representación literal de él.
    Java utiliza cinco tipos de elementos:
    enteros, reales en coma flotante,
    booleanos, caracteres y cadenas, que se
    pueden poner en cualquier lugar del
    código fuente de Java.
   Cada uno de estos literales tiene un tipo
    correspondiente asociado con él.
Enteros
Tipo                     Por ejemplo
         8 bits
byte    complemento a
        dos
         16 bits
short   complemento a
        dos
                        21 077 0xDC00
         32 bits
int     complemento a
        dos
         64 bits
long    complemento a
        dos
Reales en coma flotante:


   Tipo                    Por ejemplo

            32 bits IEEE
    float
                754         3.18 2e12
            64 bits IEEE      3.1E12
   double
                754
Booleanos:



true
false
Caracteres:
Por ejemplo:
a t u???? [????] es un número unicode
Cadenas:
Por ejemplo:

           "Esto es una cadena"
Tipos de datos,
variables y matrices
Sintaxis
   Declaración de una variable:

            tipo nombre_variable;

                   byte b,c;
Ejemplos:
 int a, b, c;
 int d = 3, e, f = 5;
 byte z = 22;
 double pi = 3.14159;
 char X = ‘x’;
Inicialización dinámica
   Se hace utilizando expresiones validas en
    el instante en el que la variable es
    declarada.
Tipos simples
   Enteros
     byte,   short, int y long
   Números en coma flotante
     float
     double

   Caracteres
     Char

   Booleano
     boolean
•   Enteros:

•   Byte
•   Tamaño 8-bits.
•   Valores entre -128 y 127.
•   Enteros:

•   short
•   Tamaño 16-bits.
•   Entre -32,768 y 32,767.
•   Enteros:

•   int
•   Tamaño 32-bits.
•   Entre -2,147,483,648 y 2,147,483,647.
•   Enteros:

•   long
•   Tamaño 64-bits.
•   Entre -9,223,372,036,854,775,808 y
    9,223,372,036,854,775,807.
Ejercicio
   //calcula la distancia que recorre la luz.
    utiliza variables long
class Luz{
    public static void main(String args[]){
            int velocidadluz;
            long dias;
            long segundos;
            long distancia;


            //velocidad aproximada de la luz en kilometros por segundo = 30000;

            velocidadluz = 300000;

            dias = 1000; //especifica el número de dias
            segundos = dias * 24 * 60 * 60; //convierte a segundos
            distancia = velocidadluz * segundos; // calcula la distancia

            System.out.print("En " + dias);
            System.out.print("dias la luz recorrera cerca de");
            System.out.println(distancia + "kilometros");
    }
}
   Números en coma flotante:

 float
 Tamaño 32-bits
 Con un rango de 3.4e-038 a 3.4e+038
•   Números en coma flotante:

•   double
•   Tamaño 64-bits.
•   Con un rango de 1.7e-308 a 1.7e+308
Ejercicio
   //Calcula el área de un circulo
class Area{
   public static void main(String args[]){
       double pi, r, a;

        r = 10.8; //radio del circulo
        pi = 3.1416; //pi, aproximadamente
        a = pi * r * r; //calcula el area

        System.out.println("El area del circulo es " + a);
    }
}
•   Caracteres:

•   char
•   Tamaño 16-bits.
•   Unicode. Desde 'u0000' a 'uffff' inclusive.
    Esto es desde 0 a 65535
Ejercicio
   //Muestra la utilización de variables de tipo
    char
class CharDemo{
   public static void main(String args[]){
       char ch1, ch2;

        ch1 = 88; //codigo de X
        ch2 = 'Y';

        System.out.print("ch1 y ch2: ");
        System.out.println(ch1 + " " + ch2);
    }
}
Ejercicio
   //las variables char se comportan como
    enteros
class CharDemo2{
   public static void main(String args[]){
       char ch1;

        ch1 = 'X';
        System.out.println("ch1 contiene " + ch1);

        ch1++; //incrementa ch1
        System.out.println("ch1 es ahora " + ch1);
    }
}
•   Booleano:

•   Boolean
•   Puede contener los valores true o false.
Ejercicio
 Usa ya operadores de comparación
 Expresiones condicionales como:
     If
     For
   //Muestra la utilización de variables
    booleanas
class BoolTest{
    public static void main(String args[]){
           boolean b;

          b = false;
          System.out.println("b es " +b);
          b = true;
          System.out.println("b es " +b);

          //un valor boleano puede controlar la sentencia if

          if(b)
                       System.out.println("Esta sentencia si se ejecuta.");

          b = false;
          if(b)
                       System.out.println("Esta sentencia no se ejecuta.");

          //el resultado de un operador relacional es un valor boleano
          System.out.println("10 > 9 es " + (10>9));
    }
}
Inicialización dinámica
   Java permite que las variables sean
    inicializadas dinámicamente utilizando
    expresiones válidas en el instante en el
    que la variable es requerida.
Ejercicio
   //Ejemplo de inicialización dinámica
class DynInit{
  public static void main(String args[]){
      double a = 3.0, b = 4.0;

        //inicializa dinámicamente la variable c
        double c = Math.sqrt(a * a + b * b);

        System.out.println("La hipotenusa es " + c);
    }
}
Ámbito y tiempo de vida de las
variables
 main()
 métodos
 públicas
 privadas
Ejercicio
   //Ejemplo del ámbito de un bloque
class Scope{
   public static void main(String args[]){
        int x; //visible por todo el código main

        x = 10;
        if(x==10){//comienza un nuevo ámbito
                int y = 20; //visible sólo en este bloque

        //x e y son visibles aqui
        System.out.println("x e y: " + x + " " + y );
        x = y * 2;
        }
        //y = 100; //Error! y no es visible aquí

        //x todavía es visible aquí
        System.out.println("x es " + x);
    }
}
   Las variables se crean cuando se entra en
    su ámbito y se destruyen cuando se sale
    de su ámbito
Conversiones de tipos
   Java convierte automáticamente:
     Compatibles:
          int, long
          byte, short, long
   Java realiza un cast o conversión explicita entre
    tipos no compatibles:
     No   compatibles:
          double, byte
          char, boolean
Conversiones automáticas de Java

   Condiciones:

     Los  dos tipos son compatibles
     El tipo destino es más grande que el tipo
      origen
   ¿Qué ocurre?
     Un ensanchamiento o promoción.
     Ejemplo:
         El tipo int es suficientemente grande como para
          almacenar un valor byte
Conversión de tipos incompatibles

   Por ejemplo si quiero convertir:
     inta byte
     byte es más pequeño que int
     Se le llama a este tipo de conversión
      estrechamiento
   Se usa un cast
         Es una conversión de tipo explicita y tiene la
          siguiente forma:

      (tipo) valor

      Donde:
       tipo indica el tipo al que se ha de convertir el valor
       especificado
   Ejemplo:
     Convierte   de int a byte

    int a;
    byte b;

    b = (byte) a;
Ejercicio
   //Ejemplo de conversión de tipo explícita
class Conversion{
   public static void main(String args[]){
         byte b;
         int i = 257;
         double d = 323.142;

         System.out.println("nConversion de int a byte.");
         b = (byte) i;
         System.out.println("i y b: " +i + " " + b);

         System.out.println("nConversion de double a int.");
         i = (int) d;
         System.out.println("d e i: " +d + " " + i);

         System.out.println("nConversion de double a byte.");
         b = (byte) d;
         System.out.println("d y b: " +d + " " + b);
    }
}
Promoción de tipo automática en
expresiones
 Se da cuando se supera el rango
  permitido por el tipo de dato.
 Ejemplo:
     byte  a = 40;
     byte b = 50;
     byte c = 100;
     Int d = a + b
 El resultado de a * b podría superar el
  rango de cualquiera de sus operandos de
  tipo byte
 Java promociona automáticamente los
  operandos de tipo byte o short a int 
  cuando calcula la expresión
Reglas de promoción de tipos
 byte, shor a int
 long a long
 float a float
 double a double
Ejercicio
   //Revisión de las reglas de promoción
class Promote{
   public static void main(String args[]){
        byte b = 42;
        char c = 'a';
        short s = 1024;
        int i = 50000;
        float f = 5.67f;
        double d = .1234;
        double result = (f * b) + (i / c) - (d * s);
        System.out.println((f * b) + " + " + (i / c) + " - " + (d *
   s));
        System.out.println("resultado = " + result);
   }
}
Arreglos
 Una matriz o arreglo es un grupo de
  variables del mismo tipo a las que se hace
  referencia con el mismo nombre.
 Se pueden crear matrices de cualquier
  tipo y pueden tener una o mas
  dimensiones
   Se pueden declarar en Java arrays de cualquier
    tipo:
     char  s[ ];
      int Array[ ];
   Incluso se pueden construir arrays de arrays:
     int   tabla[ ][ ] = new int[4][5];
   Los límites de los arrays se comprueban en
    tiempo de ejecución para evitar
    desbordamientos y la corrupción de memoria.
Matriz unidimensional
 1. tipo nombre_matriz [ ];

    int   dias[ ]; //declaración

 2. nombre_matriz = new tipo [tamaño]
    //new reserva memoria

    dias = new int [12];
   Java reserva memoria dinámicamente
Ejercicio
   /Ejemplo de una matriz unidimensional
class Array{
   public static void main(String args[]){
        int dias[ ]; // p bien int dias[ ] = new int[12];
        dias = new int[12];
        dias[0] = 31;
        dias[1] = 28;
        dias[2] = 31;
        dias[3] = 30;
        dias[4] = 31;
        dias[5] = 30;
        dias[6] = 31;
        dias[7] = 31;
        dias[8] = 30;
        dias[9] = 31;
        dias[10] = 30;
        dias[11] = 31;
        System.out.println("Abril tiene " + dias[3] + "dias.");
   }
Inicialización de matrices al
declararse
 Es una listas de expresiones separadas
  por comas y entre llaves { }
 Los valores se separan con las comas
Ejercicio
   //Versión mejorada del programa anterior
class AutoArray{
  public static void main(String args[]){
      int dias[] =
  {31,28,31,30,31,30,31,31,30,31,30,31};
      System.out.println("Abril tiene " + dias[3] +
  "dias");
  }
}
Ejercicio
   //Calcula la media de los valores de una
    matriz
class Media{
   public static void main(String args[]){
      double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};
      double result = 0;
      int i;

        for(i=0; i<5; i++)
               result = result + nums[i];

        System.out.println("La media es " + result/5);
    }
}
 En Java un array es realmente un objeto,
  porque tiene redefinido el operador [ ].
 Tiene una función miembro: length. Se
  puede utilizar este método para conocer la
  longitud de cualquier array.
int a[][] = new int[10][3];

a.length; /* 10 */

a[0].length; /* 3 */
   Para crear un array en Java hay dos
    métodos básicos.

    Crear un array vacío:

     int   lista[] = new int[50];
   o se puede crear ya el array con sus
    valores iniciales:

    String nombres[] =
    {"Juan","Pepe","Pedro","Maria“ };
   Esto que es equivalente a:
    String nombres[];
    nombres = new String[4];
    nombres[0] = new String( "Juan" );
    nombres[1] = new String( "Pepe" );
    nombres[2] = new String( "Pedro" );
    nombres[3] = new String( "Maria" );
   No se pueden crear arrays estáticos en
    tiempo de compilación:

   int lista[50]; // generará un error en tiempo
    de compilación
   Tampoco se puede rellenar un array sin
    declarar el tamaño con el operador new:

    int lista[];
    for(int i=0; i < 10; i++ )
    lista[i] = i;
   Es decir, todos los arrays en Java son
    estáticos. Para convertir un array en el
    equivalente a un array dinámico en C/C+
    +, se usa la clase vector, que permite
    operaciones de inserción, borrado, etc. en
    el array.
Matriz multidimensionales
   Son matrices de matrices
Declaración
   Bidimensional
     Int   dosD[][] = new int [4][5];
Ejercicio
   //Ejemplo de una matriz bidimensional
class DosDArray{
   public static void main(String args[]){
         int dosD[][] = new int[4][5];
         int i, j, k = 0;

         for(i=0; i<4; i++)
                    for(j=0; j<5; j++){
                               dosD[i][j] = k;
                               k++;
                    }
         for(i=0; i<4; i++){
                    for(j=0; j<5; j++)
                               System.out.println(dosD[i][j] + " ");
                    System.out.println("&&");
                    }
    }
}
   Cuando se reserva memoria para una
    matriz multidimensional, solo es necesario
    especificar la memoria que necesita la
    primera dimensión, después se reservara
    para las otras dimensiones
   Ejemplo:

     int
        dosD[][] = new int [4][];
     dosD[0] = new int[5];
     dosD[1] = new int[5];
     dosD[2] = new int[5];
     dosD[3] = new int[5];
Vista conceptual de matriz
bidimensional de 4 x 5
[0] [0]   [0] [1]   [0] [2]   [0] [3]   [0] [4]

[1] [0]   [1] [1]   [1] [2]   [1] [3]   [1] [4]

[2] [0]   [2] [1]   [2] [2]   [2] [3]   [2] [4]

[3] [0]   [3] [1]   [3] [2]   [3] [3]   [3] [4]
Ejercicio
   //Reserva distintos tamaños para la
    segunda dimensión de cada elemento
class DosDArrayN{
   public static void main(String args[]){
         int dosD[][] = new int[4][];
         dosD[0] = new int[1];
         dosD[1] = new int[2];
         dosD[2] = new int[3];
         dosD[3] = new int[4];

         int i, j, k = 0;

         for(i=0; i<4; i++)
                    for(j=0; j<i+1; j++){
                               dosD[i][j] = k;
                               k++;
                    }
         for(i=0; i<4; i++){
                    for(j=0; j<i+1; j++)
                               System.out.print(dosD[i][j] + " ");
                    System.out.println();
         }
    }
}
Inicialización de matrices
multidimensionales
   Es necesario encerrar entre llaves el
    inicializador de cada dimensión
Ejercicio
   //Inicializa una matriz bidimensional
class Matrix{
   public static void main(String args[]){
        double m[][] = {
                 { 0*0, 1*0, 2*0, 3*0 },
                 { 0*1, 1*1, 2*1, 3*1 },
                 { 0*2, 1*2, 2*2, 3*2 },
                 { 0*3, 1*3, 2*3, 3*3 }
        };
        int i,j;
        for(i=0; i<4; i++){
                 for(j=0; j<4; j++)
                         System.out.print(m[i][j] + " ");
                 System.out.println();
        }
   }
}
Ejercicio
   //Ejemplo de una matriz tridimensional
class threeDMatrix{
    public static void main(String args[]){
           int threeD[][][] = new int [3][4][5];
           int i,j,k;

           for(i=0; i<3; i++)
                       for(j=0; j<4; j++)
                                   for(k=0; k<5; k++)
                                   threeD[i][j][k] = i * j * k;

           for(i=0; i<3; i++){
                       for(j=0; j<4; j++){
                                   for(k=0; k<5; k++)
                                   System.out.print(threeD[i][j][k] + " ");
                                   System.out.println();
                       }
           System.out.println();
           }
    }
}
Operadores
   Los operadores de Java son muy
    parecidos en estilo y funcionamiento a los
    de C. En la siguiente tabla aparecen los
    operadores que se utilizan en Java, por
    orden de precedencia:
[]   ()

++   --

!    ~

*    /    %

+    -


<<   >>


<    >    <=   >=   ==   !=

&    ^    |

&&   ||
 Los operadores numéricos se comportan
  como esperamos:
 int + int = int
 Los operadores relacionales devuelven un
  valor booleano.
 Para las cadenas, se pueden utilizar los
  operadores relacionales para
  comparaciones además de + y += para la
  concatenación:
 String nombre = "nombre" + "Apellido";
   El operador = siempre hace copias de
    objetos, marcando los antiguos para
    borrarlos, y ya se encargará el garbage
    collector de devolver al sistema la
    memoria ocupada por el objeto eliminado.
Operadores aritméticos
   +    -    *          /

   %    ++   --         -=

   *=   /=   %=         --
Ejercicio
   //Muestra los operadores aritméticos
    básicos
class BasicMath{
     public static void main(String args[]){
              //operaciones aritmeticas con enteros
              System.out.println("Aritmetica con enteros");
              int a = 1 + 1;
              int b = a * 3;
              int c = b / 4;
              int d = c - a;
              int e = -d;
              System.out.println("a = " +a);
              System.out.println("b = " +b);
              System.out.println("c = " +c);
              System.out.println("d = " +d);
              System.out.println("e = " +e);

             //aritmetica utilizando el tipo double

             System.out.println("nAritmetica en coma flotante");
             double da = 1 + 1;
             double db = da * 3;
             double dc = db / 4;
             double dd = dc - a;
             double de = -dd;

             System.out.println("da = " + da);
             System.out.println("db = " + db);
             System.out.println("dc = " + dc);
             System.out.println("dd = " + dd);
             System.out.println("de = " + de);
     }
}
Operador Modulo
 Devuelve el resto de un división.
 Se aplica tanto a tipos flotantes como a
  enteros.
Ejercicio
   / El operador %
class Modulo{
  public static void main(String args[]){
      int x = 42;
      double y = 42.3;

        System.out.println("x mod 10 = " +x % 10);
        System.out.println("y mod 10 = " +y % 10);
    }
}
Asignaciones con operadores
aritméticos
 Combina una operación aritmética con
  una asignación
 Ejemplo:
    a  = a + 4;
     a += 4;
Sintaxis:
   var = var operador expresión;

   var operador = expresión;
Ejercicio
Control de Flujo
   Muchas de las sentencias de control del
    flujo del programa se han tomado del C:
Sentencias de Salto
if/else
      if( Boolean ) {
            sentencias;
            }
            else {
            sentencias;
            }
switch
         switch( expr1 ) {
                case expr2:
               sentencias;
                      break;
         case expr3:
               sentencias;
                      break;
         Default:
               sentencias;
                      break;
         }
Sentencias de Bucle
Bucles for

for( expr1 inicio; expr2 test; expr3 incremento ) 
  {
  sentencias;
  }
   El siguiente trocito de código Java que
    dibuja varias líneas en pantalla alternando
    sus colores entre rojo, azul y verde. Este
    fragmento sería parte de una función Java
    (método):
int contador;
    for( contador=1; contador <= 12; contador++ ) {
          switch( contador % 3 ) {
          case 0:
                   setColor( Color.red );
                   break;
         case 1:
                   setColor( Color.blue );
                   break;
         case 2:
                   setColor( Color.green );
                   break;
}
g.drawLine( 10,contador*10,80,contador*10 );
}
También se soporta el operador coma (,) en
 los bucles for

 for( a=0,b=0; a < 7; a++,b+=2 )
Bucles while

 while( Boolean ) {
 sentencias;
 }
Bucles do/while



 do {
 sentencias;
 }while( Boolean );
Manejo de memoria
y recolección de
basura
   Java tiene un colector automático de
    basura. El manejo de memoria en Java
    esta basado en objetos y referencias a
    objetos. No hay apuntadores en Java.
   El manejador de memoria de Java lleva
    un registro de las referencias a un objeto.
    Cuando un objeto no tiene referencias
    entonces se convierte en un candidato
    para ser considerado basura.
Por ejemplo, veamos la siguiente clase:
// Voltea una cadena de caracteres
    class CADENA_ALREVES
    {
     public static String volteala(String FUENTE)
     {
      int I,
      LONGITUD = FUENTE.length();
      StringBuffer DESTINO = new StringBuffer(LONGITUD);
       for ( I = (LONGITUD - 1); I >= 0; I--)
         {
         DESTINO.appendChar(FUENTE.charAt(I));
       }
     return DESTINO.toString();
     }
    }
   En este ejemplo la variable DESTINO es
    usada como un objeto temporal de
    referencia durante la ejecución del
    proceso de invertir una cadena. Cuando el
    método "volteala" llega a su return la
    referencia al objeto DESTINO ya no
    existe, siendo entonces DESTINO un
    candidato a ser basura.
   Los elementos de clase String (como FUENTE)
    tienen los métodos length y charAt (el cual
    regresa el caracter correspondiente a la posicion
    indicada). Los elementos de la clase
    StringBuffer tienen los métodos appendChar (el
    cual incluye un caracter al final del buffer) y
    toString (el cual transforma los datos del buffer
    en una representación de tipo String).

Más contenido relacionado

La actualidad más candente

Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
Nedoww Haw
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
Jorge Garcia
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
still01
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
Saul Mamani
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
ncrmax
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
Anel Sosa
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Sergio Sanchez
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
José Antonio Sandoval Acosta
 
Glosario Términos De JAVA
Glosario Términos De JAVAGlosario Términos De JAVA
Glosario Términos De JAVA
Stiven Rocha
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
myle22
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
itzayana bacilio
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
José Antonio Sandoval Acosta
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
Robedgar MX
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
Franklin Parrales Bravo
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
Mario Villaseñor
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
still01
 
Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
William Lozano
 

La actualidad más candente (20)

Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Glosario Términos De JAVA
Glosario Términos De JAVAGlosario Términos De JAVA
Glosario Términos De JAVA
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
 

Similar a LibreríAs De Java

Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
Manuel Antonio
 
Poo4
Poo4Poo4
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
Renny Batista
 
Act 2 y 3
Act 2 y 3Act 2 y 3
Java introduccion conceptos basicos una mira
Java introduccion conceptos basicos una miraJava introduccion conceptos basicos una mira
Java introduccion conceptos basicos una mira
ArisbethBernalSalina
 
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitaciónJava1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
FabiolaCastilloCanci
 
Java y xml
Java y xmlJava y xml
Introduccion java
Introduccion javaIntroduccion java
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
Carlos Luna
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJP
jcherrera
 
Unidad i poo
Unidad i pooUnidad i poo
Programacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsProgramacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para ems
CBTis
 
Java básico
Java  básicoJava  básico
Java básico
María Luisa Velasco
 
Sintaxisenjava
Sintaxisenjava Sintaxisenjava
Sintaxisenjava
Victor Zapata
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
Cindy Adriana Bohórquez Santana
 
Cap I
Cap ICap I
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
Cristian Reyes Molina
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
andreinagracielarojasadam
 
3. lenguaje c-
3. lenguaje c-3. lenguaje c-
3. lenguaje c-
JasonLennin
 
Lenguaje
LenguajeLenguaje
Lenguaje
Fernando Solis
 

Similar a LibreríAs De Java (20)

Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Poo4
Poo4Poo4
Poo4
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
Act 2 y 3
Act 2 y 3Act 2 y 3
Act 2 y 3
 
Java introduccion conceptos basicos una mira
Java introduccion conceptos basicos una miraJava introduccion conceptos basicos una mira
Java introduccion conceptos basicos una mira
 
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitaciónJava1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Introduccion java
Introduccion javaIntroduccion java
Introduccion java
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJP
 
Unidad i poo
Unidad i pooUnidad i poo
Unidad i poo
 
Programacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsProgramacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para ems
 
Java básico
Java  básicoJava  básico
Java básico
 
Sintaxisenjava
Sintaxisenjava Sintaxisenjava
Sintaxisenjava
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Cap I
Cap ICap I
Cap I
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
3. lenguaje c-
3. lenguaje c-3. lenguaje c-
3. lenguaje c-
 
Lenguaje
LenguajeLenguaje
Lenguaje
 

Último

_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
correodetareas
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
Henry W. Zavala
 
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
Rubén Cortes Zavala
 
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
ADELAIDA90
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
JessAdrinGonzlezCade
 
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
Navsat
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
GnesisOrtegaDeLen
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Rubén Cortes Zavala
 
Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
edgarcalle8
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
gregory760891
 
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
Telefónica
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
PanchoChangue
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
Eddy Nathaly Jaimes Villamizar
 
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docxDE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
lourdesuribe6
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
241578066
 
UiPath Community Data Service presentation
UiPath Community Data Service presentationUiPath Community Data Service presentation
UiPath Community Data Service presentation
DianaGray10
 

Último (16)

_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
 
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
400816850-Mantenimiento-de-Equipos-de-Espesamiento-pdf.pdf
 
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
PROTOCOLO DE NANOPOROS Kit de códigos de barras 16S (SQK-RAB204)
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
 
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
¿Cómo funciona el seguimiento por GPS y cómo puede ayudar al transporte y la ...
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
 
Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
 
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
Índice del libro "Metaverso y mundos virtuales: Tecnologías, Retos y Oportuni...
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
 
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docxDE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
DE LO HUMANO Y LO COMUNITARIO PROYECTO INTEGRADOR (2).docx
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
 
UiPath Community Data Service presentation
UiPath Community Data Service presentationUiPath Community Data Service presentation
UiPath Community Data Service presentation
 

LibreríAs De Java

  • 1. Librerías de Java LSCA Alma Delia Otero Escobar
  • 2. Existen diferentes librerías en Java, entre las cuales se encuentran: java.lang Colección de tipos básicos siempre importados a cualquier unidad de compilación. Aquí están las declaraciones de objetos, clases, threads, excepciones, wrappers de los tipos de datos primitivos y otras clases fundamentales. java.io Archivos de stream y acceso aleatorio. Librería estándar de entrada y salida.
  • 3. java.net Librería que apoya interfaces con telnet y URLs. java.util Clases como diccionarios, tabla de hash, stack, técnicas de codificación y decodificación, hora, fecha, etcétera. java.awt Abstract Windowing Toolkit que proporciona una capa abstracta que permite llevar una aplicación en Java de un sistema de ventanas a otro. Contiene clases para componentes básicos de la interfaz, tales como eventos, colores, tipos de letra, botones, campos de texto, etc.
  • 5. Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar. En Java, un identificador comienza con una letra, un subrayado (_) o un símbolo de dólar ($).
  • 6. Los siguientes caracteres pueden ser letras o dígitos. Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima. Serían identificadores válidos: y su uso sería, por ejemplo: identificador nombre_usuario int contador_principal; Nombre_Usuario char _lista_de_ficheros; _variable_del_sistema float $cantidad_en_Ptas; $transaccion
  • 8.  Un valor constante en Java se crea utilizando una representación literal de él.  Ejemplo:  100  98.6  ‘X’  <<Esto es una prueba>>
  • 10. En java existen tres tipos de comentarios:  De múltiples líneas /* */  De una línea //  De documentación /** */
  • 12.  ( ) Lista de parámetros, precedencia  { } Inicialización de matrices, bloques  [ ] Tipos de matrices y referencias ; Separa sentencias , separa o bien encadena sentencias . Separa nombres de paquetes y subpaquetes, variables y métodos
  • 14. Las siguientes son las palabras clave que están definidas en Java y que no se pueden utilizar como identificadores:
  • 15. abstract continue for new switch synchroniz boolean default goto null ed break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public transient catch false int return true char final interface short try class finally long static void const float native super while
  • 17. Además, el lenguaje se reserva unas cuantas palabras más, pero que hasta ahora no tienen un cometido específico. Son:
  • 18. cast  future  generic  inner  operator  outer  rest  var
  • 20. Un valor constante en Java se crea utilizando una representación literal de él. Java utiliza cinco tipos de elementos: enteros, reales en coma flotante, booleanos, caracteres y cadenas, que se pueden poner en cualquier lugar del código fuente de Java.
  • 21. Cada uno de estos literales tiene un tipo correspondiente asociado con él.
  • 22. Enteros Tipo  Por ejemplo 8 bits byte complemento a dos 16 bits short complemento a dos 21 077 0xDC00 32 bits int complemento a dos 64 bits long complemento a dos
  • 23. Reales en coma flotante: Tipo Por ejemplo 32 bits IEEE float 754 3.18 2e12 64 bits IEEE 3.1E12 double 754
  • 25. Caracteres: Por ejemplo: a t u???? [????] es un número unicode
  • 26. Cadenas: Por ejemplo: "Esto es una cadena"
  • 28. Sintaxis  Declaración de una variable: tipo nombre_variable; byte b,c;
  • 29. Ejemplos:  int a, b, c;  int d = 3, e, f = 5;  byte z = 22;  double pi = 3.14159;  char X = ‘x’;
  • 30. Inicialización dinámica  Se hace utilizando expresiones validas en el instante en el que la variable es declarada.
  • 31. Tipos simples  Enteros  byte, short, int y long  Números en coma flotante  float  double  Caracteres  Char  Booleano  boolean
  • 32. Enteros: • Byte • Tamaño 8-bits. • Valores entre -128 y 127.
  • 33. Enteros: • short • Tamaño 16-bits. • Entre -32,768 y 32,767.
  • 34. Enteros: • int • Tamaño 32-bits. • Entre -2,147,483,648 y 2,147,483,647.
  • 35. Enteros: • long • Tamaño 64-bits. • Entre -9,223,372,036,854,775,808 y 9,223,372,036,854,775,807.
  • 36. Ejercicio  //calcula la distancia que recorre la luz. utiliza variables long
  • 37. class Luz{ public static void main(String args[]){ int velocidadluz; long dias; long segundos; long distancia; //velocidad aproximada de la luz en kilometros por segundo = 30000; velocidadluz = 300000; dias = 1000; //especifica el número de dias segundos = dias * 24 * 60 * 60; //convierte a segundos distancia = velocidadluz * segundos; // calcula la distancia System.out.print("En " + dias); System.out.print("dias la luz recorrera cerca de"); System.out.println(distancia + "kilometros"); } }
  • 38. Números en coma flotante:  float  Tamaño 32-bits  Con un rango de 3.4e-038 a 3.4e+038
  • 39. Números en coma flotante: • double • Tamaño 64-bits. • Con un rango de 1.7e-308 a 1.7e+308
  • 40. Ejercicio  //Calcula el área de un circulo
  • 41. class Area{ public static void main(String args[]){ double pi, r, a; r = 10.8; //radio del circulo pi = 3.1416; //pi, aproximadamente a = pi * r * r; //calcula el area System.out.println("El area del circulo es " + a); } }
  • 42. Caracteres: • char • Tamaño 16-bits. • Unicode. Desde 'u0000' a 'uffff' inclusive. Esto es desde 0 a 65535
  • 43. Ejercicio  //Muestra la utilización de variables de tipo char
  • 44. class CharDemo{ public static void main(String args[]){ char ch1, ch2; ch1 = 88; //codigo de X ch2 = 'Y'; System.out.print("ch1 y ch2: "); System.out.println(ch1 + " " + ch2); } }
  • 45. Ejercicio  //las variables char se comportan como enteros
  • 46. class CharDemo2{ public static void main(String args[]){ char ch1; ch1 = 'X'; System.out.println("ch1 contiene " + ch1); ch1++; //incrementa ch1 System.out.println("ch1 es ahora " + ch1); } }
  • 47. Booleano: • Boolean • Puede contener los valores true o false.
  • 48. Ejercicio  Usa ya operadores de comparación  Expresiones condicionales como:  If  For  //Muestra la utilización de variables booleanas
  • 49. class BoolTest{ public static void main(String args[]){ boolean b; b = false; System.out.println("b es " +b); b = true; System.out.println("b es " +b); //un valor boleano puede controlar la sentencia if if(b) System.out.println("Esta sentencia si se ejecuta."); b = false; if(b) System.out.println("Esta sentencia no se ejecuta."); //el resultado de un operador relacional es un valor boleano System.out.println("10 > 9 es " + (10>9)); } }
  • 50. Inicialización dinámica  Java permite que las variables sean inicializadas dinámicamente utilizando expresiones válidas en el instante en el que la variable es requerida.
  • 51. Ejercicio  //Ejemplo de inicialización dinámica
  • 52. class DynInit{ public static void main(String args[]){ double a = 3.0, b = 4.0; //inicializa dinámicamente la variable c double c = Math.sqrt(a * a + b * b); System.out.println("La hipotenusa es " + c); } }
  • 53. Ámbito y tiempo de vida de las variables  main()  métodos  públicas  privadas
  • 54. Ejercicio  //Ejemplo del ámbito de un bloque
  • 55. class Scope{ public static void main(String args[]){ int x; //visible por todo el código main x = 10; if(x==10){//comienza un nuevo ámbito int y = 20; //visible sólo en este bloque //x e y son visibles aqui System.out.println("x e y: " + x + " " + y ); x = y * 2; } //y = 100; //Error! y no es visible aquí //x todavía es visible aquí System.out.println("x es " + x); } }
  • 56. Las variables se crean cuando se entra en su ámbito y se destruyen cuando se sale de su ámbito
  • 57. Conversiones de tipos  Java convierte automáticamente:  Compatibles:  int, long  byte, short, long  Java realiza un cast o conversión explicita entre tipos no compatibles:  No compatibles:  double, byte  char, boolean
  • 58. Conversiones automáticas de Java  Condiciones:  Los dos tipos son compatibles  El tipo destino es más grande que el tipo origen
  • 59. ¿Qué ocurre?  Un ensanchamiento o promoción.  Ejemplo:  El tipo int es suficientemente grande como para almacenar un valor byte
  • 60. Conversión de tipos incompatibles  Por ejemplo si quiero convertir:  inta byte  byte es más pequeño que int  Se le llama a este tipo de conversión estrechamiento
  • 61. Se usa un cast  Es una conversión de tipo explicita y tiene la siguiente forma: (tipo) valor Donde: tipo indica el tipo al que se ha de convertir el valor especificado
  • 62. Ejemplo:  Convierte de int a byte int a; byte b; b = (byte) a;
  • 63. Ejercicio  //Ejemplo de conversión de tipo explícita
  • 64. class Conversion{ public static void main(String args[]){ byte b; int i = 257; double d = 323.142; System.out.println("nConversion de int a byte."); b = (byte) i; System.out.println("i y b: " +i + " " + b); System.out.println("nConversion de double a int."); i = (int) d; System.out.println("d e i: " +d + " " + i); System.out.println("nConversion de double a byte."); b = (byte) d; System.out.println("d y b: " +d + " " + b); } }
  • 65. Promoción de tipo automática en expresiones  Se da cuando se supera el rango permitido por el tipo de dato.  Ejemplo:  byte a = 40;  byte b = 50;  byte c = 100;  Int d = a + b
  • 66.  El resultado de a * b podría superar el rango de cualquiera de sus operandos de tipo byte  Java promociona automáticamente los operandos de tipo byte o short a int  cuando calcula la expresión
  • 67. Reglas de promoción de tipos  byte, shor a int  long a long  float a float  double a double
  • 68. Ejercicio  //Revisión de las reglas de promoción
  • 69. class Promote{ public static void main(String args[]){ byte b = 42; char c = 'a'; short s = 1024; int i = 50000; float f = 5.67f; double d = .1234; double result = (f * b) + (i / c) - (d * s); System.out.println((f * b) + " + " + (i / c) + " - " + (d * s)); System.out.println("resultado = " + result); } }
  • 71.  Una matriz o arreglo es un grupo de variables del mismo tipo a las que se hace referencia con el mismo nombre.  Se pueden crear matrices de cualquier tipo y pueden tener una o mas dimensiones
  • 72. Se pueden declarar en Java arrays de cualquier tipo:  char s[ ]; int Array[ ];  Incluso se pueden construir arrays de arrays:  int tabla[ ][ ] = new int[4][5];  Los límites de los arrays se comprueban en tiempo de ejecución para evitar desbordamientos y la corrupción de memoria.
  • 73. Matriz unidimensional 1. tipo nombre_matriz [ ]; int dias[ ]; //declaración 2. nombre_matriz = new tipo [tamaño] //new reserva memoria dias = new int [12];
  • 74. Java reserva memoria dinámicamente
  • 75. Ejercicio  /Ejemplo de una matriz unidimensional
  • 76. class Array{ public static void main(String args[]){ int dias[ ]; // p bien int dias[ ] = new int[12]; dias = new int[12]; dias[0] = 31; dias[1] = 28; dias[2] = 31; dias[3] = 30; dias[4] = 31; dias[5] = 30; dias[6] = 31; dias[7] = 31; dias[8] = 30; dias[9] = 31; dias[10] = 30; dias[11] = 31; System.out.println("Abril tiene " + dias[3] + "dias."); }
  • 77. Inicialización de matrices al declararse  Es una listas de expresiones separadas por comas y entre llaves { }  Los valores se separan con las comas
  • 78. Ejercicio  //Versión mejorada del programa anterior
  • 79. class AutoArray{ public static void main(String args[]){ int dias[] = {31,28,31,30,31,30,31,31,30,31,30,31}; System.out.println("Abril tiene " + dias[3] + "dias"); } }
  • 80. Ejercicio  //Calcula la media de los valores de una matriz
  • 81. class Media{ public static void main(String args[]){ double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5}; double result = 0; int i; for(i=0; i<5; i++) result = result + nums[i]; System.out.println("La media es " + result/5); } }
  • 82.  En Java un array es realmente un objeto, porque tiene redefinido el operador [ ].  Tiene una función miembro: length. Se puede utilizar este método para conocer la longitud de cualquier array.
  • 83. int a[][] = new int[10][3]; a.length; /* 10 */ a[0].length; /* 3 */
  • 84. Para crear un array en Java hay dos métodos básicos. Crear un array vacío:  int lista[] = new int[50];
  • 85. o se puede crear ya el array con sus valores iniciales: String nombres[] = {"Juan","Pepe","Pedro","Maria“ };
  • 86. Esto que es equivalente a: String nombres[]; nombres = new String[4]; nombres[0] = new String( "Juan" ); nombres[1] = new String( "Pepe" ); nombres[2] = new String( "Pedro" ); nombres[3] = new String( "Maria" );
  • 87. No se pueden crear arrays estáticos en tiempo de compilación:  int lista[50]; // generará un error en tiempo de compilación
  • 88. Tampoco se puede rellenar un array sin declarar el tamaño con el operador new: int lista[]; for(int i=0; i < 10; i++ ) lista[i] = i;
  • 89. Es decir, todos los arrays en Java son estáticos. Para convertir un array en el equivalente a un array dinámico en C/C+ +, se usa la clase vector, que permite operaciones de inserción, borrado, etc. en el array.
  • 90. Matriz multidimensionales  Son matrices de matrices
  • 91. Declaración  Bidimensional  Int dosD[][] = new int [4][5];
  • 92. Ejercicio  //Ejemplo de una matriz bidimensional
  • 93. class DosDArray{ public static void main(String args[]){ int dosD[][] = new int[4][5]; int i, j, k = 0; for(i=0; i<4; i++) for(j=0; j<5; j++){ dosD[i][j] = k; k++; } for(i=0; i<4; i++){ for(j=0; j<5; j++) System.out.println(dosD[i][j] + " "); System.out.println("&&"); } } }
  • 94. Cuando se reserva memoria para una matriz multidimensional, solo es necesario especificar la memoria que necesita la primera dimensión, después se reservara para las otras dimensiones
  • 95. Ejemplo:  int dosD[][] = new int [4][];  dosD[0] = new int[5];  dosD[1] = new int[5];  dosD[2] = new int[5];  dosD[3] = new int[5];
  • 96. Vista conceptual de matriz bidimensional de 4 x 5 [0] [0] [0] [1] [0] [2] [0] [3] [0] [4] [1] [0] [1] [1] [1] [2] [1] [3] [1] [4] [2] [0] [2] [1] [2] [2] [2] [3] [2] [4] [3] [0] [3] [1] [3] [2] [3] [3] [3] [4]
  • 97. Ejercicio  //Reserva distintos tamaños para la segunda dimensión de cada elemento
  • 98. class DosDArrayN{ public static void main(String args[]){ int dosD[][] = new int[4][]; dosD[0] = new int[1]; dosD[1] = new int[2]; dosD[2] = new int[3]; dosD[3] = new int[4]; int i, j, k = 0; for(i=0; i<4; i++) for(j=0; j<i+1; j++){ dosD[i][j] = k; k++; } for(i=0; i<4; i++){ for(j=0; j<i+1; j++) System.out.print(dosD[i][j] + " "); System.out.println(); } } }
  • 99. Inicialización de matrices multidimensionales  Es necesario encerrar entre llaves el inicializador de cada dimensión
  • 100. Ejercicio  //Inicializa una matriz bidimensional
  • 101. class Matrix{ public static void main(String args[]){ double m[][] = { { 0*0, 1*0, 2*0, 3*0 }, { 0*1, 1*1, 2*1, 3*1 }, { 0*2, 1*2, 2*2, 3*2 }, { 0*3, 1*3, 2*3, 3*3 } }; int i,j; for(i=0; i<4; i++){ for(j=0; j<4; j++) System.out.print(m[i][j] + " "); System.out.println(); } } }
  • 102. Ejercicio  //Ejemplo de una matriz tridimensional
  • 103. class threeDMatrix{ public static void main(String args[]){ int threeD[][][] = new int [3][4][5]; int i,j,k; for(i=0; i<3; i++) for(j=0; j<4; j++) for(k=0; k<5; k++) threeD[i][j][k] = i * j * k; for(i=0; i<3; i++){ for(j=0; j<4; j++){ for(k=0; k<5; k++) System.out.print(threeD[i][j][k] + " "); System.out.println(); } System.out.println(); } } }
  • 105. Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. En la siguiente tabla aparecen los operadores que se utilizan en Java, por orden de precedencia:
  • 106. [] () ++ -- ! ~ * / % + - << >> < > <= >= == != & ^ | && ||
  • 107.  Los operadores numéricos se comportan como esperamos:  int + int = int  Los operadores relacionales devuelven un valor booleano.
  • 108.  Para las cadenas, se pueden utilizar los operadores relacionales para comparaciones además de + y += para la concatenación:  String nombre = "nombre" + "Apellido";
  • 109. El operador = siempre hace copias de objetos, marcando los antiguos para borrarlos, y ya se encargará el garbage collector de devolver al sistema la memoria ocupada por el objeto eliminado.
  • 110. Operadores aritméticos  + - * /  % ++ -- -=  *= /= %= --
  • 111. Ejercicio  //Muestra los operadores aritméticos básicos
  • 112. class BasicMath{ public static void main(String args[]){ //operaciones aritmeticas con enteros System.out.println("Aritmetica con enteros"); int a = 1 + 1; int b = a * 3; int c = b / 4; int d = c - a; int e = -d; System.out.println("a = " +a); System.out.println("b = " +b); System.out.println("c = " +c); System.out.println("d = " +d); System.out.println("e = " +e); //aritmetica utilizando el tipo double System.out.println("nAritmetica en coma flotante"); double da = 1 + 1; double db = da * 3; double dc = db / 4; double dd = dc - a; double de = -dd; System.out.println("da = " + da); System.out.println("db = " + db); System.out.println("dc = " + dc); System.out.println("dd = " + dd); System.out.println("de = " + de); } }
  • 113. Operador Modulo  Devuelve el resto de un división.  Se aplica tanto a tipos flotantes como a enteros.
  • 114. Ejercicio  / El operador %
  • 115. class Modulo{ public static void main(String args[]){ int x = 42; double y = 42.3; System.out.println("x mod 10 = " +x % 10); System.out.println("y mod 10 = " +y % 10); } }
  • 116. Asignaciones con operadores aritméticos  Combina una operación aritmética con una asignación  Ejemplo: a = a + 4;  a += 4;
  • 117. Sintaxis:  var = var operador expresión;  var operador = expresión;
  • 120. Muchas de las sentencias de control del flujo del programa se han tomado del C:
  • 121. Sentencias de Salto if/else if( Boolean ) { sentencias; } else { sentencias; }
  • 122. switch switch( expr1 ) { case expr2: sentencias; break; case expr3: sentencias; break; Default: sentencias; break; }
  • 125. El siguiente trocito de código Java que dibuja varias líneas en pantalla alternando sus colores entre rojo, azul y verde. Este fragmento sería parte de una función Java (método):
  • 126. int contador; for( contador=1; contador <= 12; contador++ ) { switch( contador % 3 ) { case 0: setColor( Color.red ); break; case 1: setColor( Color.blue ); break; case 2: setColor( Color.green ); break; } g.drawLine( 10,contador*10,80,contador*10 ); }
  • 127. También se soporta el operador coma (,) en los bucles for for( a=0,b=0; a < 7; a++,b+=2 )
  • 128. Bucles while while( Boolean ) { sentencias; }
  • 129. Bucles do/while do { sentencias; }while( Boolean );
  • 130. Manejo de memoria y recolección de basura
  • 131. Java tiene un colector automático de basura. El manejo de memoria en Java esta basado en objetos y referencias a objetos. No hay apuntadores en Java.
  • 132. El manejador de memoria de Java lleva un registro de las referencias a un objeto. Cuando un objeto no tiene referencias entonces se convierte en un candidato para ser considerado basura.
  • 133. Por ejemplo, veamos la siguiente clase: // Voltea una cadena de caracteres class CADENA_ALREVES { public static String volteala(String FUENTE) { int I, LONGITUD = FUENTE.length(); StringBuffer DESTINO = new StringBuffer(LONGITUD); for ( I = (LONGITUD - 1); I >= 0; I--) { DESTINO.appendChar(FUENTE.charAt(I)); } return DESTINO.toString(); } }
  • 134. En este ejemplo la variable DESTINO es usada como un objeto temporal de referencia durante la ejecución del proceso de invertir una cadena. Cuando el método "volteala" llega a su return la referencia al objeto DESTINO ya no existe, siendo entonces DESTINO un candidato a ser basura.
  • 135. Los elementos de clase String (como FUENTE) tienen los métodos length y charAt (el cual regresa el caracter correspondiente a la posicion indicada). Los elementos de la clase StringBuffer tienen los métodos appendChar (el cual incluye un caracter al final del buffer) y toString (el cual transforma los datos del buffer en una representación de tipo String).