miércoles, 25 de octubre de 2017

Ejemplo de programa de hilos secuencial

/* Es un programa que se ejecuta de manera sencuencial */
public class Secuencia
{
 public static void main(String a[])
 {
  Secuencia obj = new Secuencia();
  obj.ciclo(10);
  obj.dormir();          
  obj.ciclo(20);
  obj.dormir();
  System.out.println("He terminado.");                      
 }
 //este metodo ejecuta el ciclo desde 1 hasta n(15 o 20)
 public void ciclo(int valor)
 {
  int n=valor;
  System.out.println("Inicia ciclo de 1 hasta "+n);
  for (int i=1; i<=n; i++)
  {
   System.out.println("Valor de i "+i);
  }      
 }
 //dormir al procesador mediante Thread.sleep   
 public void dormir()
 {
  System.out.println("A dormir ");
  try
  {      
       Thread.sleep(4000); // duerme 4000 milisegundos
  }
  catch (InterruptedException exc)
  {   
    System.out.println("Algo anda mal");                  
  }
  System.out.println("Desperte.");
 }
}

lunes, 16 de octubre de 2017

Todo sobre el:Rol del Kernel


El kernel del sistema operativo es como un controlador de tráfico aéreo en un aeropuerto. El kernel determina que programa obtiene que pedazos de memoria, arranca y mata a los programas, y se encarga de mostrar texto en un monitor. Cuando una aplicación necesita escribir en disco, debe pedir al sistema operativo que lo haga. Si dos aplicaciones piden el mismo recurso, el kernel decide cuál de las dos lo recibe y en algunos casos, mata a una de las aplicaciones para salvar el resto del sistema.


El kernel también se encarga de cambiar entre aplicaciones. Un equipo tendrá un pequeño número de procesadores CPU y una cantidad finita de memoria. El kernel se encarga de descargar una tarea y cargar una nueva si hay más tareas que CPUs. Cuando la tarea actual se ha ejecutado una cantidad suficiente de tiempo, la CPU detiene la tarea para que otra pueda ejecutarse. Esto se llama multitarea preferente. Multitarea significa que la computadora realiza varias tareas a la vez, preferente significa que el kernel decide cuándo cambia el enfoque entre las tareas. Con las tareas de conmutación rápida, parece que el equipo está haciendo muchas cosas a la vez. Cada aplicación puede pensar que tiene un bloque grande de memoria en el sistema, pero es el kernel que mantiene esta ilusión, reasignando bloques más pequeños de memoria, intercambiando bloques de memoria con otras aplicaciones, o incluso sacando al disco bloques que aún no se hayan tocado.


Cuando el equipo arranca, carga un pequeño trozo de código llamado gestor de arranque. El gestor de arranque debe cargar el kernel y arrancarlo. Si estás más familiarizado con sistemas operativos como Microsoft Windows y Apple OS X, probablemente nunca ves al gestor de arranque, pero en el ambiente de UNIX es generalmente visible por lo que puedes modificar la manera en la que tu equipo arranque.

El gestor de arranque carga el kernel de Linux y luego transfiere el control. Linux continúa con el funcionamiento de los programas necesarios para hacer que el equipo sea útil, tales como conexión a la red o abrir un servidor web.

jueves, 27 de julio de 2017

Todo sobre: Sobrecarga de métodos y de constructores en Java

Sobrecarga de métodos y de constructores 

La firma de un método es la combinación del tipo de dato que regresa, su nombre y su lista de argumentos. 
La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferentes firmas y definiciones. Java utiliza el número y tipo de argumentos para seleccionar cuál definición de método ejecutar.
Java diferencia los métodos sobrecargados con base en el número y tipo de argumentos que tiene el método y no por el tipo que devuelve.


También existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores.

Ejemplo:

/* Métodos sobrecargados */
int calculaSuma(int x, int y, int z){
    ...
}
int calculaSuma(double x, double y, double z){
    ...
}

/* Error: estos métodos no están sobrecargados */
int calculaSuma(int x, int y, int z){
     ...
}
double calculaSuma(int x, int y, int z){
    ...
}



Ejemplo:

/* Usuario4.java */

class Usuario4
{
     String nombre;
     int edad;
     String direccion;

     /* El constructor de la clase Usuario4 esta sobrecargado */
     Usuario4( )
     {
        nombre = null;
        edad = 0;
        direccion = null;
     }

     Usuario4(String nombre, int edad, String direccion)
     {
        this.nombre = nombre;
        this.edad = edad;
        this.direccion = direccion;
     }

     Usuario4(Usuario4 usr)
     {
        nombre = usr.getNombre();
        edad = usr.getEdad();
        direccion = usr.getDireccion();
     }

     void setNombre(String n)
     {
        nombre = n;
     }

     String getNombre()
     {
        return nombre;
     }

     /* El metodo setEdad() está sobrecargado */
     void setEdad(int e)
     {
        edad = e;
     }

     void setEdad(float e)
     {
        edad = (int)e;
     }

     int getEdad()
     {
        return edad;
     }

     void setDireccion(String d)
     {
        direccion = d;
     }

     String getDireccion()
     {
        return direccion;
     }


}

Ejemplo de uso de los métodos toUpperCase y toLowerCase

Métodos toUpperCase y toLowerCase

public class EjemplosString {
public static void main(String[] args) {
String cadena=”Hola Mundo”;
System.out.println(“El texto normal es: “+cadena);
System.out.println(“El texto en mayúsculas es: “+
cadena.toUpperCase());
System.out.println(“El texto en minúsculas es: “+
cadena.toLowerCase());
}
}


Salida estándar
El texto normal es: Hola Mundo
El texto en mayúsculas es: HOLA MUNDO
El texto en minúsculas es: hola mundo

Ejemplo de uso del método substring

Método substring

public class EjemplosString {
public static void main(String[] args) {
String cadena=”Hola planeta tierra”;
System.out.println(“La cadena es: “+cadena);
System.out.println(“La sub cadena del caracter 2 al 10 es:
“+cadena.substring(2, 10));
}
}


Salida estándar
La cadena es: Hola planeta tierra
La subcadena del caracter 2 al 10 es: la plane

Ejemplo de uso del método split

Método split

public class EjemplosString {
public static void main(String[] args) {
String cadena=”Hola planeta tierra”;
String cadenas[]=cadena.split(“ “);
for(int i=0; i<cadenas.length; i++){
System.out.println(“La cadena “+i+” es: “+cadenas[i]);
}
}
}


Salida estándar
La cadena 0 es: Hola
La cadena 1 es: planeta
La cadena 2 es: tierra

Ejemplo de uso del método replace

Método replace

public class EjemplosString {
public static void main(String[] args) {
String cadena=”Este es el texto original”;
System.out.println(“La cadena es: “+cadena);
System.out.println(“La cadena modificada es: “+
cadena.replace(‘e’, ‘?’));
}
}


Salida estándar
La cadena es: Este es el texto original
La cadena modificada es: Est? ?s ?l t?xto original

Ejemplo de uso del método concat

Método concat

public class EjemplosString {
public static void main(String[] args) {
String cadena1=”Hola”;
String cadena2=”Mundo”;
System.out.println(“La cadena 1 es: “+cadena1);
System.out.println(“La cadena 2 es: “+cadena2);
System.out.println(“El texto concatenado es: “+
cadena1.concat(cadena2));
}
}



Salida estándar
La cadena 1 es: Hola
La cadena 2 es: Mundo
El texto concatenado es: HolaMundo

Ejemplo de uso del método length y charAt

Método length y charAt

public class EjemplosString {

public static void main(String[] args) {
String cadena=”Hola Mundo”;
char caracter;
System.out.println(“La cadena tiene “+cadena.length()+
”caracteres”);
for(int i=0; i<cadena.length(); i++){
caracter=cadena.charAt(i);
System.out.println(“El caracter en la posición “+
i+” es: “+caracter);
}
}
}



Salida estándar
La cadena tiene 10 caracteres
El caracter en la posición 0 es: H
El caracter en la posición 1 es: o
El caracter en la posición 2 es: l
El caracter en la posición 3 es: a
El caracter en la posición 4 es:
El caracter en la posición 5 es: M
El caracter en la posición 6 es: u
El caracter en la posición 7 es: n
El caracter en la posición 8 es: d
El caracter en la posición 9 es: o

Todo sobre: Clase String

Clase String
La clase String está orientada al manejo de cadenas de caracteres y pertenece al paquete java.lang del API de Java. Los objetos que son instancia de la clase String, se pueden crear a partir de cadenas constantes también llamadas literales, las cuales deben estar contenidas entre comillas dobles. En la clase String, se puede asignar cadenas de las dos formas siguientes:

String cadena1 = new String(“Hola”); //Creación a través de constructor
String cadena2 = “Hola”; //Creación a través de literal

El método de creación a través de la literal es el más eficiente, porque al encontrar un texto entre comillas se crea automáticamente un objeto de la clase String.

Métodos principales de la clase String

Retorno
Método
Descripción

void

String()
Constructor que inicializa un objeto con una secuencia de caracteres vacía.

void

String(char[] value)
Constructor que crea un String inicializa un objeto con una secuencia de caracteres tipo char.

char

charAt(int index)
Retorna el carácter especificado en la posición index.


int


compareTo(String anotherString)
Compara dos cadenas de caracteres alfabéticamente.
Retorna 0 si son iguales, entero negativo si la primera es menor o entero positivo si la primera es mayor.

String

concat(String str)
Concatena la cadena del parametro al final de la primera cadena.

boolean

contains(CharSequence s)
Retorna true si la cadena contiene la secuencia tipo char del parámetro.

boolean

endsWith(String suffix)
Retorna verdadero si el final de la cadena es igual al sufijo del parámetro.

boolean

equals(Object anObject)
Retorna verdadero si la cadena es igual al objeto del parámetro.

int

indexOf(String str)
Retorna el índice de la primera ocurrencia de la cadena del parámetro.
boolean
isEmpty()
Retorna verdadero si la longitud de la cadena 0.
int
length()
Retorna la longitud de la cadena.


String


replace(char oldChar,
char newChar)
Retorna una nueva cadena reemplazando los caracteres del primer parámetro con el carácter del segundo parámetro.

String[]

split(String regex)
Retorna un conjunto de cadenas separadas por la cadena del parámetro.

boolean

startsWith(String prefix)
Retorna verdadero si el comienzo de la cadena es igual al prefijo del parámetro.
String
substring(int beginIndex)
Retorna la subcadena desde el carácter del parámetro.

String

substring(int beginIndex,
int endIndex)
Retorna la subcadena desde el carácter del primer parámetro hasta el carácter del segundo parámetro.

char[]

toCharArray()
Retorna el conjunto de caracteres de la cadena.

String

toLowerCase()
Retorna la cadena en mayúsculas.

String

toUpperCase()
Retorna la cadena en mayúsculas.

static
String

valueOf(char[] data)
Convierte en cadena el conjunto de caracteres del parámetro.

static
String

valueOf(double d)
Convierte en cadena el dato del parámetro.

static
String

valueOf(float f)
Convierte en cadena el dato del parámetro.

static
String

valueOf(int i)
Convierte en cadena el dato del parámetro.

static
String

valueOf(long l)
Convierte en cadena el dato del parámetro.

static
String

valueOf(Object obj)
Convierte en cadena el objeto del parámetro.