miércoles, 18 de junio de 2014

Modulo2: Tipos Primitivos (8) de Java

Boolean
Dos valores (true, false)

Textual - Char (primitivo)
Representa 16-bit
Se utilizan 'a'
Se usan en la siguientes notaciones

Textual - String 
Es textual pero NO ES UN TIPO DE DATO PRIMITIVO.
Es una clase final Lo cual significa que ya no se pueden hacer más clases de esa clase

StringBuffer
Es más tardada pero segura

StringBuilder
Es menos tardado

Métodos para concatenar
Concat
Append


delete(inicio, fin-1)
repleace(inicio, fin , porque se reemplaza)
insert(posicion, "4" )


StringBuffer sb = new StringBuffer("123456789");
        StringBuffer sb1 = new StringBuffer("123456789");
        StringBuffer sb2 = new StringBuffer("123456789");

        sb.delete(0, 3).replace(1, 3, "24").delete(4, 6);
     
     
     
        System.out.println("sb= "+sb);
R> sb= 4247

Recordar que de los dos primeros no se toman en cuenta el número de fin pero si el inicio, y en el caso anterior se va haciendo de la nueva.

Ejercicio de String y StringBuffer

La respuesta es la E.
Debido a que en la linea 4 y 5 se crean dos objetos diferentes aunque contienen lo mismo (si fuesen String no se crearía otro objeto sólo se refenciaría).

Lo mismo pasa en para sb2 y sb3. Aunque el contenido es el mismo los objetos son diferentes y eso es lo que compara el equals; que los objetos sean diferentes.

Para el caso de los String, cuando se crea un objeto String se reserva un espacio en memoria, si llega otro que contiene lo mismo, entonces se refencía al objeto que ya esta.

String s = new String("hola");
String s2 = new String("hola");

si se aplica, saldría.
if(s.equals(s2)) System.out.println("Son iguales,");



Integral - byte, short, int, and long

byte n = 45; // 8 bits
int i = 1254; //32 bits
long l = 78546546546846L;  //64 bits
float f = 45.56F //32 bits (si no se pone la F por default es un double)
double d = 45.212 //64 bits



Tipos de Referencias en java


MyDate md = new MyDate(18,06,2014);
             <-   |   ->
Compilación |    Ejecución


Paso por Valor
Se le envía una copia de ese valor



Paso por Referencia
Se pasa la dirección de donde esta


This
this.a;  //Hacer referencia a un atributo
this.metodo();  //hacer referencia a un método
this();    //Hacer referencia a un constructor de la clase