jueves, 14 de mayo de 2020

Orden de inicialización

  • Así, en primer lugar se inicializan los campos estáticos de las clases, desde la primera superclase hay abajo;
  • Acontinuación, la primera superclase inicializa sus campos de instancia, y ejecuta el código contenido en ellos;
  • Acto seguido, la primera superclase ejecuta su constructor;
  • Luego, la siguiente subclase inicializa sus campos de instancia y ejecuta el código que contienen;
  • Por último, la subclase ejecutan su constructor.
  •  
  • Los últimos dos puntos se repiten por cada subclase, en orden de herencia.

    jueves, 2 de abril de 2020

    Arrays Unidimensionales

    • Estructura básica
     int[] myArray = new int[];

    int two[]=new int[];

    int[] three =new int[]{1,2,3}; //array 3 elementos con valores 1,2,3

    int[] four={};


    El tamaño de los arrays se pone en la inicialiación del mismo:

    int[3] prueba; //error de compilación

    Lo correcto sería:
    int[] prueba = new int[3]; 
    int[] prueba = {}; 
    int[] prueba2=new int[]{1,2,3}
    • Comparación de Arrays
    String[] animales = {"Perro","Gato","Pez"};
    String misAnimales = animales;
    String otrosAnimales =  {"Perro","Gato","Pez"};

    System.out.println(animales == misAnimales); //true
    System.out.println(animales.equals(misAnimales)); //true
    System.out.println(Arrays.equals(animales,misAnimales)); //true

    System.out.println(animales == otrosAnimales ); //false
    System.out.println(animales.equals(otrosAnimales )); //false
    System.out.println(Arrays.equals(animales,misAnimales)); //true

    * Arrays.equals(array1, array2) compara el contenido de los arrays.
    * ==  y equals compara dirección de memorias.

    Se utiliza la propiedad length para saber el tamaño del arrya.

    • Valores de los arrays 
    Pasando el valor en concreto que queremos recuperar (se empieza a contar desde 0):
                                            0         1          2
    String[] animales = {"Perro","Gato","Pez"}; 

     System.out.println(animales[0]); //Perro 
     System.out.println(animales[1]); //Gato
     System.out.println(animales[0]); //Pez.

     Mediante un for:

      for(int i=0;i
           System.out.println(animales[i]);                         
       }
    Se imprimirá Perro Gato  Pez .

    toString:

    Arrays.toString(array) se imprime los valores del array entre corchetes y separados por coma:

            System.out.println(Arrays.toString(dos)); [Perro,Gato,Pez]
        
    Hay que tener en cuenta que si usamos array.toString lo que se imprimirá es su representación en memoria de este objeto:

                                           System.out.println(dos.toString()); [Ljava.lang.String;@15db9742

    Ocurriría lo mismo si hacemos 

                                           System.out.println(dos); [Ljava.lang.String;@15db9742

    Se puede modificar los valores de los arrays:

                                                       animales[0]="Caballo";

    • Arrays.sort
     Se utiliza Arrays.sort(array);  para ordenar los elementos del array unidimensional.
    • Arrays.binarySearch
    Busca un elemento específico en toda una matriz unidimensional y ordenada,

    Arrays.binarySearch(array, valorBuscar);
     
    Sí encuentra el valor devuelve el indice de la posición donde se encuentra y si no exisie devuelve la posocion en negativo de donde debería estar el valor.
    Si el array no está ordenado devuelve un valor impredecible.








    lunes, 10 de febrero de 2020

    INSERT comprobando antes que no exista


    Se puede hacer de dos formas:

    Insert into TABLE (CAMPOS) select CAMPOS a insertar from dual where not exists (select null from table where codigo = CODIGO);

    O con un procedure:

    DECLARE   
         V_CONTADOR NUMBER(10):=0;  
    BEGIN
     
        SELECT count(*) INTO V_CONTADOR FROM TABLE WHERE CAMPO=VALOR;
     
      IF V_CONTADOR=0  then
        Insert into TABLE(CAMPOS) values (CAMPOS);   
      END IF; 
     
    END; 
     

    martes, 28 de enero de 2020

    Buscar una columna en el esquema BBDD

    Si necesitamos saber que tabla tiene una columna en concreto, podemos utilizar la siguiente sentencia:

    SELECT  user_tab_columns.table_name FROM user_tab_columns WHERE column_name like '%Textoabuscar%';