0% encontró este documento útil (0 votos)
48 vistas33 páginas

Características y Fundamentos de Java

Java es un lenguaje de programación de alto nivel, robusto y orientado a objetos, lanzado por primera vez en 1995. Sus características incluyen simplicidad, portabilidad, seguridad y soporte para programación multihilo, permitiendo la creación de aplicaciones distribuidas. Además, Java es independiente de la plataforma y utiliza un sistema de gestión de memoria eficiente a través de la recolección de basura automática.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas33 páginas

Características y Fundamentos de Java

Java es un lenguaje de programación de alto nivel, robusto y orientado a objetos, lanzado por primera vez en 1995. Sus características incluyen simplicidad, portabilidad, seguridad y soporte para programación multihilo, permitiendo la creación de aplicaciones distribuidas. Además, Java es independiente de la plataforma y utiliza un sistema de gestión de memoria eficiente a través de la recolección de basura automática.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIDAD-1(PARTE-2)

Introducción
Java es un lenguaje de programación y una plataforma informática que se lanzó por primera vez por Sun
Microsistemas en 1995.
Java es un lenguaje de programación y una plataforma.
Java es un lenguaje de programación de alto nivel, robusto, seguro y orientado a objetos.
Plataforma: Cualquier entorno de hardware o software en el que se ejecute un programa, es
conocido como una plataforma. Dado que Java tiene su propio entorno de ejecución (JRE) y API,
se llama plataforma.

Características de JAVA
A continuación se presentan las características de Java:

[Link]
[Link]-Oriented
[Link]átil
4. Independiente de la plataforma

[Link]
6. Robusto
[Link] neutral
[Link]ámico
9. Interpretado
10. Alto rendimiento
11. Multihilo
[Link]
[Link]
Según Sun, el lenguaje Java es simple porque:

La sintaxis se basa en C++ (por lo que es más fácil para los programadores aprenderlo después de C++)
Se eliminaron muchas características confusas y/o raramente utilizadas, por ejemplo, punteros explícitos.
sobrecarga de operadores, etc.
No es necesario eliminar objetos no referenciados porque hay recolección de basura automática.
Colección en java

2. Orientado a objetos
Orientado a objetos significa que organizamos nuestro software como una combinación de diferentes
tipos de objetos que incorporan tanto datos como comportamiento.
La programación orientada a objetos (OOP) es una metodología que simplifica el software
desarrollo y mantenimiento proporcionando algunas reglas.
Los conceptos básicos de OOP son:
Objeto
2. Clase
3. Herencia
4. Polimorfismo
5. Abstracción
6. Encapsulación

3. Independiente de la plataforma
Una plataforma es el entorno de hardware o software en el que se ejecuta un programa.
Hay dos tipos de plataformas: basadas en software y basadas en hardware. Java
proporciona una plataforma basada en software.

La plataforma Java se diferencia de la mayoría de las otras plataformas en el sentido de que es un


plataforma basada en software que se ejecuta sobre otras plataformas basadas en hardware.
Tiene dos componentes:
[Link] de Ejecución
[Link] (Interfaz de Programación de Aplicaciones)
El código Java se puede ejecutar en múltiples plataformas, por ejemplo, Windows, Linux, Sun Solaris.
El código Java en Mac/OS, etc., es compilado por el compilador y convertido en bytecode.
Este bytecode es un código independiente de la plataforma porque se puede ejecutar en múltiples
plataformas es decir, Escribe Una Vez y Ejecuta en Cualquier Lugar (WORA).

4. Asegurado
Java es seguro porque:
a) Sin puntero explícito
El lenguaje C/C++ usa punteros, lo que puede causar acceso no autorizado a la memoria.
bloques cuando otros programas obtienen los valores del puntero. A diferencia del C/C++ convencional
language, Java never uses any kind of pointers. Java has its internal mechanism
para la gestión de memoria. Solo permite el acceso a los datos al programa si tiene
autorización verificada apropiada.
b) Código de bytes

Cada vez que un usuario compila el programa Java, el compilador de Java crea un
archivo de clase con El bytecode, que es probado por la JVM en el momento de
ejecución de programas para virus y otros archivos maliciosos.

c) Protección contra ataques de seguridad


Permite a los desarrolladores declarar clases o métodos como FINAL. Todos sabemos que
cualquier clase o método declarado como final no puede ser sobreescrito, lo que ayuda
desarrolladores para proteger el código de ataques de seguridad como crear una subclase y
reemplazándolo con la clase original y sobrescribiendo métodos.

5. Robusto

Robusto simplemente significa fuerte. Java utiliza una gestión de memoria fuerte. Hay
falta de punteros que evitan problemas de seguridad. Hay recolección de basura automática
colección en java. Hay manejo de excepciones y un mecanismo de verificación de tipos en
java. Todos estos puntos hacen que java sea robusto.

Arquitectura neutral
No hay características dependientes de la implementación, por ejemplo, el tamaño de los tipos primitivos es
fijo.
En programación C, el tipo de dato int ocupa 2 bytes de memoria para 32 bits.
arquitectura y 4 bytes de memoria para arquitectura de 64 bits. Pero en java, se
ocupa 4 bytes de memoria tanto para arquitecturas de 32 como de 64 bits.

[Link]átil
Podemos llevar el bytecode de Java a cualquier plataforma.

8. Alto rendimiento
Java es más rápido que la interpretación tradicional ya que el código byte está "cerca" de lo nativo
el código sigue siendo algo más lento que un lenguaje compilado (por ejemplo, C++)
[Link]
Podemos crear aplicaciones distribuidas en Java. RMI y EJB se utilizan para crear
aplicaciones distribuidas. Podemos acceder a archivos llamando a los métodos de cualquier
máquina en internet.

9. Multi-hilo
Un hilo es como un programa separado, ejecutándose concurrentemente. Podemos escribir Java
programas que manejan muchas tareas a la vez al definir múltiples hilos. El
La principal ventaja de la multi-tarea es que no ocupa memoria para cada uno.
hilo. Comparte un área de memoria común. Los hilos son importantes para multi-
medios, aplicaciones web, etc.

Diferencia entre JDK, JRE y JVM

JVM (Java Virtual Machine) es una máquina abstracta. Es una especificación


that provides runtime environment in which java byte code can be executed.
JVM es:
1. Una especificación donde se especifica el funcionamiento de la Máquina Virtual de Java. Pero
el proveedor de implementación es independiente para elegir el algoritmo. Su
la implementación ha sido proporcionada por Sun y otras empresas.

[Link] implementaciónSu implementación se conoce como JRE (Java Runtime


Medio ambiente).
3. Instancia de Ejecución Siempre que escribas el comando java en la línea de comandos
el comando para ejecutar la clase java, se crea una instancia de la JVM.

JVM está disponible para muchas plataformas de hardware y software. JVM, JRE y JDK
son dependientes de la plataforma porque la configuración de cada sistema operativo difiere. Pero, Java es
independiente de la plataforma.

La JVM realiza las siguientes tareas principales:

Cargas código

Verifica el código
Ejecuta código
Proporciona un entorno de ejecución
JRE (Java Runtime Environment)
JRE es un acrónimo de entorno de ejecución de Java. Se utiliza para proporcionar tiempo de ejecución.
entorno. Es la implementación de JVM. Existe físicamente. Contiene un conjunto
de bibliotecas + otros archivos que la JVM utiliza en tiempo de ejecución.

La implementación de JVM también es lanzada activamente por otras empresas además de


Sun Micro Systems.
El directorio jre contiene las instalaciones del Entorno de Ejecución de Java que se utilizan
cuando ejecutas un
Programa Java. Las clases en las bibliotecas de Java se almacenan en el directorio jre\lib.
JDK (Kit de Desarrollo de Java.)

JDK es un acrónimo de Java Development Kit. Existe físicamente. Contiene JRE +


herramientas de desarrollo.

Objeto y Clase en Java


Objeto
Una entidad que tiene estado y comportamiento se conoce como un objeto, por ejemplo, silla, bicicleta.
marker,pen, table, car etc.
Un objeto tiene tres características:
estado: representa los datos (valor) de un objeto.

comportamiento: representa el comportamiento (funcionalidad) de un objeto como


depositar, retirar, etc.
identidad: La identidad de objeto se implementa típicamente a través de un ID único. El valor
del ID no es visible para el usuario externo. Pero, se utiliza internamente por el
JVM para identificar cada objeto de manera única.

Por ejemplo: La pluma es un objeto. Su nombre es Reynolds, su color es blanco, etc. conocido como
su estado. Se utiliza para escribir, así que escribir es su comportamiento.
El objeto es una entidad en tiempo de ejecución.

Un objeto es una entidad que tiene estado y comportamiento.

Un objeto es una instancia de una clase.

Clase
Una clase es un grupo de objetos que tienen propiedades comunes. Es una plantilla o
plano a partir del cual se crean objetos. Es una entidad lógica. No puede ser
físico.
Una clase en Java puede contener:

campos
métodos
constructores
La clase es una plantilla o modelo del cual se crean objetos. Así que el objeto es el
instancia(result) de una clase.

Ejemplos
[Link] Simple{
public static void main(String args[]){
[Link]("Hola Java");
}
}

Explicación:
La palabra clave class se utiliza para declarar una clase en java.

La palabra clave pública es un modificador de acceso que representa la visibilidad, lo que significa
es visible para todos.
Estático es una palabra clave, si declaramos cualquier método como estático, se conoce como
método estático. La principal ventaja del método estático es que no hay necesidad
crear objeto para invocar el método estático. El método principal se ejecuta
por la JVM, así que no requiere crear un objeto para invocar el método principal
método. Así que ahorra memoria.

Void es el tipo de retorno del método, significa que no devuelve ningún valor.
Main representa el inicio del programa.
String[] args se utiliza para argumentos de línea de comando.

[Link]() se utiliza para imprimir declaraciones.

2. claseEstudiante{
intid=10;
String name=”Sachin”;

public static void main(String args[]){


Estudiante s1=nuevoEstudiante();//creando un objeto de Estudiante, la palabra clave nueva es
solía asignar memoria en tiempo de ejecución. Todos los objetos obtienen memoria en el Heap
área de memoria.
[Link]([Link]);//accediendo al miembro a través de la variable de referencia
[Link]([Link]);
}
}

Tipos de datos en Java

Variables en Java
Hay tres tipos de variables en java:-
local
instancia
estático

1) Variable Local
Una variable que se declara dentro del método se llama variable local.
2) Variable de instancia
Una variable que se declara dentro de la clase pero fuera del método, se llama
variable de instancia. No está declarada como estática.
3) Variable Estática
Si declaras cualquier variable como estática, se conoce como variable estática.

La variable estática se puede usar para referirse a la propiedad común de todos los objetos
(que no es único para cada objeto) p. ej. nombre de la empresa de
empleados, nombre de la universidad de los estudiantes, etc.

La variable estática obtiene memoria solo una vez en el área de clase en el momento de
cargando clase.

Ventaja de la variable estática


Hace que tu programa sea eficiente en memoria (es decir, ahorra memoria).

Ejemplo de variable estática


classStudent8{
introllno;
String nombre;
staticString college="ITS";
Student8(intr,String n){
rollno=r;
name=n;
}
voiddisplay(){
[Link](rollno+""+name+""+college);
publicstatic voidmain(String args[]){
Estudiante8 s1=nuevoEstudiante8(111,"Karan");
Estudiante8 s2=nuevoEstudiante8(222,"Aryan");
[Link]();
[Link]();)}

Ejemplo de todos los tipos de variables


claseA{
intdata=50;//instance
static intm=100;//variable estática
métodovacío() {
intn=90;//variable local
}
}
Método en java
In order to call a method we need object of the class in which that method is
declarado.
1. Programa para encontrar el mínimo de números (el método no es estático)

public class EjemploNumeroMinimo {


public void minFunction(int n1, int n2)
{
int min;
si (n1 > n2)
min = n2;
else
min = n1;
[Link](min);
}

public static void main(String[] args) {


int a = 11;
int b = 6;
ExampleMinNumber mn=new ExampleMinNumber();
[Link](a, b);
}
}
2. Programa para encontrar el rango (el método es estático)

public class EjemploVacio {


public static void main(String[] args) {
methodRankPoints(255.7);
}
public static void methodRankPoints(double points) {
si (puntos >= 202.5) {
[Link]("Rango:A1");
}else if (puntos >= 122.4) {
[Link]("Rango:A2");
}else {
[Link]("Rango:A3");
} }}

3. Programa para encontrar el mínimo de números (el método es estático y retorna un)
valor)
public class EjemploNumeroMinimo {
public static void main(String[] args) {
int a = 11;
int b = 6;
int c = minFunction(a, b);
[Link]("MinimumValue = " + c);
}

/** devuelve el mínimo de dos números */


public static int minFunction(int n1, int n2) {
int min;
si (n1 > n2)
min = n2;
sino
min = n1;

devolver min;
}
}
OOP (Sistema de Programación Orientado a Objetos)
Conceptos
A continuación se presentan los conceptos de Oops:

1. Objeto
2. Clase
3. Herencia
4. Polimorfismo
5. Abstracción
6. Encapsulamiento
1. Objetivo
Cualquier entidad que tenga estado y comportamiento se conoce como un objeto. Por ejemplo: silla,
bolígrafo, mesa, teclado, bicicleta, etc. Puede ser físico y lógico.

[Link]
Una colección de objetos se llama clase. Es una entidad lógica.

3. Herencia
Cuando un objeto adquiere todas las propiedades y comportamientos del padre
objeto, es decir, conocido como herencia. Proporciona reutilización de código. Se utiliza para
lograr el polimorfismo en tiempo de ejecución.

ClaseAnimal{
String food=”nonveg”;
voideat(){[Link]("eating...");}
}
classPerroextiendeAnimal{
String drink=”milk”;
void ladrar(){[Link]("ladrando...");}
}
classPruebaHerencia{
public static void main(String args[]){
Dog d=newDog();
[Link]([Link]);

[Link]();
[Link]();
}}

[Link]
Cuando una tarea se realiza de diferentes maneras, se conoce como polimorfismo.
Por ejemplo: convencer al cliente de manera diferente, dibujar algo, por ejemplo, una forma.
o rectángulo etc.
En Java, usamos la sobrecarga de métodos y la anulación de métodos para lograr
polimorfismo.
Another example can be to speak something e.g. cat speaks meaw,dog barks
guau etc. Allí están dos tipos de polimorfismo tiempo de compilación
polimorfismo (sobrecarga de métodos) y polimorfismo en tiempo de ejecución (métodos)
anulando).
Sobrecarga de métodos
Si una clase tiene múltiples métodos con el mismo nombre pero diferentes firmantes, es
conocido como Sobrecarga de Métodos. Diferentes firmas significan los parámetros de
los métodos pueden diferir en:
a) no of arguments
b) their data types
b) su secuencia
Ejemplo
[Link] en el número de argumentos

classAdder{
public int agregar(int a, int b) { return a + b; }
public int añadir(int a, int b, int c){return a + b + c;}
}
classPruebaSobrecarga1{
public static void main(String[] args){
Adder r=new Adder();
[Link]([Link](11,11));
[Link]([Link](11,11,11));
}}

2. diferir en tipos de datos


Ejemplo
classAdder{
public int agregar(float a, float b) { return a + b; }
public int agregar(int a, int b) { return a + b + c; }
}
classPruebaSobrecarga1{
public static void main(String[] args){
Adder r=new Adder();
[Link]([Link](11.1,11.1));
[Link]([Link](11,11));
}}
3) la secuencia es diferente
classAdder{
public int agregar(int a, float b) { return a + b; }
public int añadir(float a, int b) { return a + b + c; }
}
classPruebaSobrecarga1{
public static void main(String[] args) {
Adder r=new Adder();
[Link]([Link](11,11.1));
[Link]([Link](11.1,11));
}}

Sobrescritura de métodos
El polimorfismo en tiempo de ejecución o la sobrescritura de métodos es un proceso en el que una llamada a
un método sobreescrito se resuelve en tiempo de ejecución en lugar de en tiempo de compilación.

En este proceso, un método sobreescrito se llama a través de la variable de referencia de


una superclase. La determinación del método a ser llamado se basa en el objeto
siendo referido por la variable de referencia.
ClaseBicicleta{

voidrun(){[Link]("corriendo");
}
classSplenderextendsBike{
voidrun(){[Link]("corriendo de manera segura a 60km");}
public static void main(String args[]) {
Bicicleta b = nueva Splender(); //upcasting
[Link]();
}
}

Diferencia entre la sobrecarga de métodos y el método


sobreescribir

No. Sobrecarga de métodos Sobrescritura de Métodos

La sobrescritura de métodos se utiliza para

La sobrecarga de métodos se utiliza para


proporcionar
aumentar
el específico
implementación de el
) la legibilidad del programa.
método que ya está
proporcionado por su superclase.

La sobrecarga de métodos ocurre en


La sobrecarga de métodos se realiza dentro de
dos clases que tienen ES-UN
) clase.
relación (herencia).

3 En caso de sobrecarga de métodos, En caso de sobrecarga de métodos,


) el parámetro debe ser diferente. el parámetro debe ser el mismo.

La sobrescritura de métodos es el
La sobrecarga de métodos es un ejemplo de
ejemplo de correr tiempo
) polimorfismo en tiempo de compilación.
polimorfismo.

In java, method overloading can't be


realizado cambiando el tipo de retorno delEl
5 método solamente. El tipo de retorno puede ser el mismo o
tipo de retorno debe ser el mismo en
) sobreescritura de métodos.
diferente en la sobrecarga de métodos. Pero tú
debe cambiar el parámetro.
[Link]ón
Ocultar detalles internos y mostrar funcionalidad se conoce como abstracción.
Por ejemplo: llamada telefónica, no conocemos el procesamiento interno.
En Java, usamos clases abstractas e interfaces para lograr la abstracción.

6. Encapsulación
Unir (o envolver) código y datos en una sola unidad se conoce como
como encapsulación. Por ejemplo: cápsula, está envuelta con diferentes medicamentos.
A java class is the example of encapsulation. Java bean is the fully encapsulated
clase porque todos los miembros de datos son privados aquí.

Manejo de Cadenas
Generalmente, una cadena es una secuencia de caracteres. Pero en Java, una cadena es un objeto que
representa una secuencia de caracteres.
Cada vez que creas un literal de cadena, la JVM verifica el pool de constantes de cadena.
primero. Si la cadena ya existe en el grupo, se hace una referencia a la instancia agrupada.
devuelto. Si la cadena no existe en el pool, se crea una nueva instancia de cadena y
colocado en la piscina. Por ejemplo:
1. String s1="Bienvenido";
String s2="Bienvenido";//no creará una nueva instancia

En el ejemplo anterior, solo se creará un objeto. En primer lugar, la JVM no encontrará


cualquier objeto de cadena con el valor "Bienvenido" en el pool de constantes de cadena, así que se
crear un nuevo objeto. Después de eso, encontrará la cadena con el valor 'Bienvenido' en
la piscina, no creará un nuevo objeto sino que devolverá la referencia al mismo
instancia.
Tipos de cadena
[Link] inmutable
[Link] mutable

[Link] Inmutable
En Java, los objetos de tipo cadena son inmutables. Inmutable simplemente significa no modificable.
o inmutable.
Una vez que se crea un objeto de cadena, sus datos o estado no pueden cambiarse, pero se puede crear una nueva cadena.

el objeto es creado.
ClasePruebaCadenaInmutable{
public static void main(String args[]) {
String s="Jon";
[Link]("Nieve");//el método concat() agrega la cadena al final
[Link](s);//imprimirá Jon porque las cadenas son objetos inmutables
}
}

[Link] mutable

Mutable significa que puedes cambiar la cadena original. En Java podemos hacerla mutable.
cadena usando
[Link] StringBuffer
[Link] StringBuilder

Example
1.
claseCadenaBufferEjemplo{
public static void main(String args[]) {
StringBuffer sb=newStringBuffer("Winter is ");
[Link]("Viniendo ");// ahora la cadena original ha sido cambiada
[Link](sb);//prints Winter is coming
}
}

2.
classStringBuilderExample{
public static void main(String args[]){
StringBuilder sb=newStringBuilder("Tú sabes");
[Link]("nada");//ahora la cadena original ha cambiado
[Link](sb);//imprime Sabes nada
}
}
Difference between Stringbuffer and Stringbuilder class
La clase StringBuffer de Java es segura para hilos, es decir, múltiples hilos no pueden acceder a ella.
Simultáneamente. Así que es seguro y resultará en un pedido mientras StringBulider
la clase no es.

Funciones de Cadena
Aquí hay algunas funciones de cadena:
public class StringTutorial {

public static void main(String[] args) {


String test = "John Snow";
[Link]([Link]("John Snow"));//compara carácter por carácter,
devolverá verdadero.
[Link]([Link]("john snow"));// devuelve verdadero ya que lo hará
ignorar mayúsculas y minúsculas.
[Link](test == new String("John Snow")); //retorna false ya que ==
verifica el código hash o la dirección y nueva
la palabra clave obliga a crear una nueva cadena, así que
el código hash no coincidirá.

[Link]([Link]("Ygritte"));// o/p-John Snow Ygritte, pero habrá


no habrá cambio en la cadena original
más bien se formará un nuevo objeto.
[Link]([Link](" S"));// o/p 5
[Link]([Link](6));// o/p n
[Link]([Link]());// John Snow, elimina espacios antes y al final
fin de cadena
[Link]([Link]("Robb")); //o/p-> -8 devuelve el primer no cero
diferencia entre el código ascii de los caracteres
Por ejemplo, el código ASCII de J y R son 74 y 82
respectivamente y 74-82=-8, por lo que devolverá -8.
}

Manejo de Excepciones
Excepción-Excepción es una condición anormal.
Una excepción es un evento que interrumpe el flujo normal del programa.
es un objeto que se lanza en tiempo de ejecución.
Una excepción de Java es un objeto que describe una situación excepcional (es decir, un error)
condición que ha ocurrido en un fragmento de código. Cuando una condición excepcional
surge, se crea y lanza un objeto que representa esa excepción en el
método que causó el error. Ese método puede optar por manejar la excepción
en sí mismo, o pasarlo. De cualquier manera, en algún momento, se captura la excepción y
procesados. Las excepciones pueden ser generadas por el sistema de ejecución de Java, o pueden
ser generadas manualmente por su código. Excepciones lanzadas por Java se relacionan con
errores fundamentales que violan las reglas del lenguaje Java o las restricciones
del entorno de ejecución de Java. Las excepciones generadas manualmente son típicamente
se utiliza para informar alguna condición de error al llamador de un método.

Manejo de Excepciones
El manejo de excepciones es un mecanismo para gestionar errores en tiempo de ejecución, como por ejemplo

ClassNotFound, IO, SQL, Remoto, etc.


La principal ventaja del manejo de excepciones es mantener el flujo normal de
la aplicación. La excepción normalmente interrumpe el flujo normal de la aplicación
por eso usamos el manejo de excepciones
El manejo de excepciones en Java se gestiona a través de cinco palabras clave: try, catch, throw, throws,
y finalmente

Probar bloque

Las declaraciones de programa que deseas monitorear para excepciones se encuentran


dentro de un bloque try. Si ocurre una excepción dentro del bloque try, se lanza.
Bloque catch
Tu código puede capturar esta excepción (usando catch) y manejarla de manera racional.
Las excepciones generadas por el sistema se lanzan automáticamente por la ejecución de Java.
sistema de tiempo.

Palabra clave throw y throws


To manually throw an exception, use the keyword [Link] exception that is
Las excepciones lanzadas por un método deben ser especificadas como tales mediante una cláusula throws.

Bloque finally
Cualquier código que debe ser ejecutado absolutamente después de que se complete un bloque try se pone en un
bloque finally. La naturaleza inmediata de una excepción lanzada significa que
la ejecución del código del bloque try se interrumpe, independientemente de la importancia del
código que sigue el punto en el que se lanzó la excepción. Esto introduce
la posibilidad de que la excepción deje las cosas en un estado insatisfactorio. Tú
podría haber abierto un archivo, por ejemplo, y debido a que se lanzó una excepción, el
el código para cerrar el archivo no se ejecuta.
El bloque finally proporciona los medios para que puedas limpiar al final de la ejecución de un
bloque try. Usas un bloque finally cuando necesitas estar seguro de que algún particular
el código se ejecuta antes de que un método devuelva, sin importar qué excepciones se lancen
dentro del bloque try asociado. Un bloque finally se ejecuta siempre, independientemente de
whether or not exceptions are thrown during the execution of the associated try
bloquear. Si un archivo necesita ser cerrado, o un recurso crítico liberado, puedes
garantiza que se realice si el código para hacerlo se coloca en un bloque finally. El finally
el bloque tiene una estructura muy simple:

finally { // Clean-up code to be executed last }


Al igual que un bloque catch, un bloque finally está asociado con un bloque try particular,
y debe estar ubicado inmediatamente después de cualquier bloque catch para el bloque try.
Si no hay bloques de captura, entonces tu posición
el bloque finally inmediatamente después del bloque try. Si no lo haces, tu
el programa no compila.
Nota
The primary purpose for the try block is to identify code that may result in an
exception being thrown. However,you can use it to contain code that doesn't
lanzar excepciones por conveniencia de usar un bloque finally. Esto puede ser útil
cuando el código en el bloque try tiene varios puntos de salida posibles — break o return
declaraciones, por ejemplo, pero siempre quieres tener un conjunto específico de
declaraciones ejecutadas después de que se ha ejecutado el bloque try para asegurarse de que las cosas
se organizan, como cerrar cualquier archivo abierto. Puedes poner estos en un bloque finally.
Tenga en cuenta que si se devuelve un valor dentro de un bloque finally, este retorno anula cualquier
la declaración de retorno se ejecutó en el bloque try.

Tipos de Excepciones

1) Excepción comprobada
The classes that extend Throwable class except RuntimeException and Error are
conocidas como excepciones comprobadas, por ejemplo, IOException, SQLException y Class Not
Se encontró una excepción, etc. Las excepciones comprobadas se verifican en tiempo de compilación.

2) Excepción no controlada
Las clases que extienden RuntimeException se conocen como excepciones no verificadas
e.j. ExcepciónAritmética, ExcepciónDePunteroNulo, ExcepciónDeÍndiceFueraDeRango
etc. Las excepciones no controladas no se verifican en tiempo de compilación, más bien son
verificado en tiempo de ejecución.

Ejemplo
[Link]=50/0;//ArithmeticException
[Link]=nulo;
[Link]([Link]());//NullPointerException

[Link][]=nuevo int[5];
a[10]=50; //ArrayIndexOutOfBoundsException

Programa de try-catch
clase Exc2 {
public static void main(String args[]) {
int d, a;
intenta { // monitorear un bloque de código.
d = 0; a = 42 / d;
[Link]("Esto no se imprimirá.");
}
capturar (ArithmeticException e) { // capturar error de división por cero
[Link]("División por cero."); }
[Link]("Después de la declaración catch.");
}}
output:
División por cero. Después de la declaración catch.

Ejemplo de lanzamiento
class ThrowDemo {
public void demoproc()
{
throw new NullPointerException("demo");
}

public static void main(String args[])


{
prueba
{
demoproc();
}
catch(NullPointerException e) {
[Link]("capturado: " + e);
}}}

O/p:
[Link]: demo
Aquí, new se utiliza para construir una instancia de NullPointerException. Muchos de
Las excepciones de tiempo de ejecución integradas de Java tienen al menos dos constructores: uno sin
parámetro y uno que toma un parámetro de cadena. Cuando se utiliza la segunda forma,
el argumento especifica una cadena que describe la excepción. Esta cadena es
se muestra cuando el objeto se utiliza como argumento para print() o println(). Puede
también se puede obtener mediante una llamada a getMessage( ), que está definida por Throwable.

Ejemplo de lanzamientos

clase ThrowsDemo
{
static void throwOne() throws IllegalAccessException
{
[Link]("Inside throwOne.");
throw new IllegalAccessException("demo");
}
public static void main(String args[])
{
intenta { lanzarUno();
}
capturar (IllegalAccessException e)
{
[Link]("Capturado " + e);
}}}
Salida:
dentro de throwOne atrapó [Link]: demo

Entrada/Salida de Java

Java I/O (Entrada y Salida) se utiliza para procesar la entrada y producir la salida.
Java utiliza el concepto de flujo para hacer que la operación de entrada/salida sea rápida. El paquete [Link]
contiene todas las clases requeridas para las operaciones de entrada y salida.

Transmisión
Un flujo es una representación abstracta de un dispositivo de entrada o salida que es un
fuente de, o destino para, datos.
El concepto de flujo te permite transferir datos hacia y desde diversas fuentes físicas
dispositivos como archivos de disco, enlaces de comunicación, o simplemente tu teclado, en
esencialmente de la misma manera.

En general, puedes escribir datos en un flujo o leer datos de un flujo. Puedes


visualiza un flujo como una secuencia de bytes que entra o sale de tu programa

Tipos de Corrientes
1. Flujo de bytes o binario
[Link] de caracteres

El paquete [Link] admite dos tipos de flujos: flujos binarios, que


contienen datos binarios y flujos de caracteres, que contienen datos de caracteres.
Flujo binario
Cuando escribes datos en un flujo binario, los datos se escriben en el flujo como un
serie de bytes, exactamente como aparece en la memoria. No transformación de los datos
takes place. Binary numerical values are just written as a series of bytes, 4 bytes
por cada valor de tipo int, 8 bytes para cada valor de tipo long, 8 bytes para cada uno
valor de tipo doble, y así sucesivamente.

Ejemplo
importar [Link];
Escáner sc = nuevo Escáner([Link]);
String str = nulo;
hacer {

str = [Link]();
[Link](str);
} mientras (![Link]("salir"));
[Link]();

Flujo de Carácter
Los flujos de caracteres se utilizan para almacenar y recuperar texto. También puede usar
flujos de caracteres para leer archivos de texto no escritos por un programa Java.

Todos los datos numéricos binarios tienen que convertirse en una representación textual antes de
ser escrito en un flujo de caracteres. Esto implica generar un carácter
representación del valor de datos binarios original.
Leer datos numéricos de un flujo que contiene texto implica mucho más trabajo.
que leer datos binarios.
Cuando lees un valor de tipo int de un flujo binario, sabes que consiste en
de 4 bytes. Cuando lees un entero de un flujo de caracteres, tienes que
determina cuántos caracteres del flujo conforman el valor. Para cada uno
valor numérico que lees de un flujo de caracteres, debes poder
reconocer dónde comienza y termina el valor y luego convertir el token — el
secuencia de caracteres que representa el valor — a su forma binaria.
Ejemplo
importar [Link];
BufferedInputStream bis = new BufferedInputStream([Link]);
Scanner sc = new Scanner(bis);
String str = null;
hacer{
str = [Link]();
[Link](str);
} mientras(![Link]("salir"));
[Link]();
Applet de Java
Applet es un tipo especial de programa que está incrustado en la página web para generar
el contenido dinámico. Se ejecuta dentro del navegador y funciona del lado del cliente.

Ventaja de Applet
Hay muchas ventajas de los applets. Son las siguientes:
Funciona del lado del cliente, por lo que hay menos tiempo de respuesta.

Asegurado
Puede ser ejecutado por navegadores que funcionan en muchas plataformas, incluyendo
Linux, Windows, Mac Os, etc.

Desventaja del Applet

Se requiere un complemento en el navegador del cliente para ejecutar el applet.

Ciclo de vida de un Applet de Java

1. El applet está inicializado.

2. El Applet se ha iniciado.

3. El applet está pintado.

4. El applet está detenido.

5. El applet ha sido destruido.

Métodos del ciclo de vida para Applet:

La clase [Link] proporciona 4 métodos del ciclo de vida y


La clase [Link] proporciona 1 ciclo de vida

métodos para un applet.

clase [Link]
Para crear cualquier applet, se debe heredar la clase [Link]. Proporciona 4
métodos del ciclo de vida de un applet.

[Link] void init(): se utiliza para inicializar el Applet. Se invoca solo una vez.

[Link] void start(): se invoca después del método init() o del navegador
maximizado. Se utiliza para iniciar el Applet.
[Link] void stop(): se utiliza para detener el Applet. Se invoca cuando el Applet es
detener o el navegador está minimizado.

4. public void destroy(): se utiliza para destruir el Applet. Se invoca solo una vez.

clase [Link]
La clase Component proporciona 1 método del ciclo de vida del applet.

1. public void paint(Graphics g): se utiliza para pintar el Applet. Proporciona


Objeto de la clase Graphics que se puede utilizar para dibujar óvalos, rectángulos, arcos, etc.

Example
importar [Link];
import [Link];
import [Link];
public class AppletEx extiende Applet
{
public void paint(Graphics g)
{
[Link](10,10,100,100);
[Link]([Link]);
[Link](120,120,100,100);
setBackground([Link]);
}
}

MULTIHILOS
Java proporciona soporte integrado para la programación multihilo. Un programa multihilo
contiene dos o más partes que pueden ejecutarse de forma concurrente. Cada parte de dicho programa es
llamado a
hilo, y cada hilo define un camino de ejecución separado. Así, el multihilo es un
forma especializada de multitarea.
Hay dos tipos distintos de multitarea: basada en procesos y basada en hilos.
entender el A proceso es un programa que se está ejecutando. Por lo tanto, basado en procesos
La multitarea es la función que permite a tu computadora ejecutar dos o más programas.
concurrentemente. Por ejemplo, el multitasking basado en procesos te permite ejecutar el Java
compilador al mismo tiempo que estás usando un editor de texto.
En la multitarea basada en procesos, un programa es la unidad de código más pequeña que puede ser
dispatched by the [Link] a thread-based multitasking environment, the thread is
la unidad más pequeña de código despachable. Esto significa que un solo programa puede realizar
dos o más tareas simultáneamente. Por ejemplo, un editor de texto puede dar formato al texto al mismo
el momento en que se imprime, siempre que estas dos acciones sean realizadas por dos
hilos separados.

Ciclo de Vida de un Hilo:

Life Cycle of Thread goes through the following states:

• Nuevo− Un nuevo hilo comienza su ciclo de vida en el estado nuevo. Permanece en este estado
hasta que el programa inicie el hilo.

• Runnable− Después de que se inicia un nuevo hilo, el hilo se convierte en


ejecutable. Un hilo en este estado se considera que está ejecutando su tarea.
• No ejecutable− A veces, un hilo pasa al estado de espera
mientras el hilo espera a que otro hilo realice una tarea. Un hilo
las transiciones vuelven al estado ejecutable solo cuando otro hilo lo señala
esperando que el hilo continúe ejecutándose.

• Terminado (Muerto)− Un hilo ejecutable entra en el estado de terminado cuando


completa su tarea o de lo contrario termina.

Creando Hilo:
Podemos definir una clase que representará un hilo de dos maneras:
1. Definiendo una subclase de Thread que proporciona una definición del método run() que
sobrescribe el
método heredado.
2. Definiendo la clase como que implementa la interfaz Runnable, que declara el método run()
método
y luego crea un objeto Thread en tu clase cuando lo necesites.

Ejemplo1: Al extender la clase Thread

public class TutorialHilo {

public static void main(String[] args) {


ThreadEx3 thread3 = new ThreadEx3();
[Link]();

[Link]("Hilo Principal");
}
}
clase ThreadEx2 extiende Thread {

@Override
public void run() {

para (int i = 0; i < 5; i++) {


[Link]("Hilo hijo: " + i);
}
}
Hilo Principal 0 1 2 3 4

Ejemplo2: Implementando la interfaz runnable.

public class ThreadTutorial {


public static void main(String[] args) {
Runnable obj = new ThreadEx();
Thread th = new Thread(obj);
[Link]();
[Link]("Hilo Principal");
}
}
clase ThreadEx implementa Runnable {
@Override
public void run() {
por (int i = 0; i < 5; i++) {
[Link]("Hilo Hijo: " + i);
}}
Hilo principal 0 1 2 3 4

Método de sueño del hilo:


El método sleep de la clase Thread se utiliza para poner a dormir un hilo durante el tiempo especificado
cantidad de tiempo.

Syntax:public static void sleep(long miliseconds)throws InterruptedException

Ejemplo:
public class ThreadTutorial {
public static void main(String[] args) {
ThreadEx3 thread3 = new ThreadEx3();
[Link]();
[Link]("Hilo principal");
}
}
clase ThreadEx3 extiende Thread {
@Override
public void run() {
intentar {

for (int i = 0; i < 20; i++) {


si(i == 5) {
[Link](5000);
}

[Link]("Hijo 2: " + i);


}
} catch(InterruptedException ex) {
[Link]([Link]());
}
}
}

AWT (CONJUNTO DE HERRAMIENTAS DE VENTANA ABSTRACTA)

AWT es una API a través de la cual podemos crear aplicaciones GUI o de escritorio
aplicación. Es una API dependiente de la plataforma para crear (GUI) para programas en Java.
es decir, los controles de la interfaz gráfica de AWT tendrán diferentes plataformas como Windows, MAC, Unix
etc.

Las clases AWT están contenidas en el paquete [Link]. Es uno de los más grandes de Java.
paquetes. Afortunadamente, porque está organizado lógicamente de manera jerárquica y de arriba hacia abajo
moda, es más fácil de entender.
Fig: Jerarquía AWT

Componente
En la parte superior de la jerarquía AWT se encuentra la clase Component. Component es una clase abstracta.
clase que encapsula todos los atributos de un componente visual. Toda la interfaz de usuario
elementos que se muestran en la pantalla y que interactúan con el usuario son
subclases de Componente. Define más de cien métodos públicos que son
responsable de gestionar eventos, como la entrada del mouse y del teclado, y la posición
dimensionar la ventana y repintar. Un objeto Componente es responsable de
recordando los colores de primer plano y de fondo actuales y el actualmente
fuente de texto seleccionada.

Contenedor
La clase Container es una subclase de Component. Tiene métodos adicionales que permiten
otros objetos de componente que se pueden anidar dentro de él. Otros objetos contenedores pueden ser almacenados
dentro de un Contenedor (ya que ellos mismos son instancias de Componente).
Ventana
La clase Window crea una ventana de nivel superior. Una ventana de nivel superior no está contenida dentro de
cualquier otro objeto; se sienta directamente en el escritorio. Generalmente, no crearemos Ventana
objetos directamente. En su lugar, usaremos una subclase de Window llamada Frame.

Marco
El marco encapsula lo que comúnmente se considera una 'ventana'. Es una subclase de
Ventana y tiene una barra de título, barra de menú, bordes y esquinas de redimensionamiento.

Controles AWT:
La lista de controles comúnmente utilizados al diseñar una GUI utilizando AWT es la siguiente:

1. TextField
[Link]ón
[Link]
[Link]
[Link]
[Link] de texto
[Link]álogo
[Link] etc.
To create any of the above control in GUI we need to create object for that class.
Ejemplo: Creando botón en AWT.
import [Link].*;
import [Link].*;

public class ButtonEX extiende Marco


{
public ButtonEx()
{

Botón btn=new Botón("Hola Mundo");


añadir(btn); //agregando un nuevo botón.
setSize(400, 500); //ajustando el tamaño.
setTitle("AWT EXAMPLE"); //setting title.
[Link](50,50,100,100); // configurando la posición del botón.
setVisible(true); //establecer visibilidad del marco en verdadero.

}
public static void main (String[] args)
{
ButtonEx t = new ButtonEx(); //creando un marco.
}
}

Layout Managers
El gestor de diseño es responsable de posicionar los controles dentro del contenedor.
Eliminan la necesidad de que el usuario coloque el control por sí mismo. Un diseño
el gestor es una interfaz que organiza automáticamente tus controles dentro de una ventana por
utilizando algún tipo de algoritmo. Esta interfaz tiene varias clases.
[Link]:
FlowLayout es el administrador de diseño predeterminado. FlowLayout implementa un diseño simple.
estilo, que es similar a cómo fluyen las palabras en un editor de texto. La dirección del diseño es
gobernado por la propiedad de orientación de componentes del contenedor, que por defecto es izquierda
to right, top to bottom. Therefore, by default, components are laid out line-by-line
comenzando en la esquina superior izquierda. En todo
casos, cuando una línea está llena, el diseño avanza a la siguiente línea. Se deja un pequeño espacio
entre cada componente, arriba y abajo, así como a la izquierda y a la derecha. Constructores para
los layouts de flujo son:
FlowLayout( )
FlowLayout(int cómo)
FlowLayout(int cómo,int horz, int vert )
The first form creates the default layout, which centers components and leaves five
píxeles de espacio entre cada componente. La segunda forma te permite especificar cómo cada
la línea está alineada. Los valores válidos para cómo son los siguientes:
[Link]
[Link]
[Link]
[Link]
[Link]
Estos valores especifican la alineación a la izquierda, al centro, a la derecha, el borde líder y el borde de salida.
respectivamente.

Example:

2. Disposición de cuadrícula: La Disposición de cuadrícula se utiliza para organizar los componentes en


rejilla rectangular. Un componente se muestra en cada rectángulo. Los constructores
soportado por GridLayout
son:
GridLayout( )
GridLayout(int numFilas, int numColumnas)

La primera forma crea un diseño de cuadrícula de una sola columna. La segunda forma crea una cuadrícula.
diseño con el número especificado de filas y columnas. O bien numRows o
numColumns can be zero.

Ejemplo:

3. Diseño de Caja: El Diseño de Caja


se utiliza para organizar el
componentes ya sea verticalmente o
horizontalment. Constructor de
Clase BoxLayout
BoxLayout(Contenedor c, int
eje): crea un diseño en caja que
organiza los componentes con
el eje dado.
Nota: La clase BoxLayout es
encontrado en el paquete [Link].

Campos de la clase BoxLayout


[Link] static final int EJE_X
[Link] static final int Y_AXIS

Ejemplo:

Manejo de eventos:
Evento: Cualquier actividad que interrumpe la actividad actual en curso. La fuente del evento es
the object that generates the event. The task of handling event is done by event-
[Link] ocurre un evento, se crea un objeto del tipo apropiado. Entonces
ese objeto se pasa a un oyente. Un oyente debe implementar eso.
interfaz que tiene el método para el manejo de eventos.

Clases de Eventos Interfaces de oyente


ActionEvent ActionListener
Evento de ratón MouseListener
Evento de tecla KeyListener
EventoElemento ItemListener
EventoDeTexto EscuchaTexto
EventoVentana Escucha de Ventana
Evento de enfoque FocusListener

Ejemplo: Programa para mostrar texto en el campo de texto al hacer clic en el botón

import [Link];
importar [Link];
import [Link];
importar [Link];
importar [Link];
importar [Link];
import [Link];

public class AwtFrame extiende Frame {


public AwtFrame() lanza HeadlessException {
Botón btn = nuevo Botón("Haz clic aquí");
TextField t = new TextField(20);
TextField tf1 = new TextField(20);
[Link](new ButtonActionListener(tf));
FlowLayout fl = new FlowLayout([Link]);
setLayout(fl);
añadir(btn);
agregar(t); // O (Podemos usar cualquiera de los diseños, el resultado será)
cambio
GridLayout gl = nuevo GridLayout(2, 1);
setLayout(gl);
agregar(btn);
agregar(t);O
BoxLayout bl = new BoxLayout(this, BoxLayout.Y_AXIS);
setLayout(bl);
agregar(btn);
agregar(tf);
agregar(tf1);
setTitle("Tutorial de Awt");
setSize(300, 300);
setVisible(true);
}

public static void main(String[] args) {


nuevo AwtFrame();
}
}

class ButtonActionListener implementa ActionListener {


CampoDeTexto tf;
public ButtonActionListener(TextField tf) {
[Link] = tf;
}
@Override
public void actionPerformed(ActionEvent ae) {
[Link]("Botón Clicado");
}
}

También podría gustarte