tema 14: java.lang

24
Tema 14: java.lang Antonio J. Sierra

Upload: lowell

Post on 10-Jan-2016

34 views

Category:

Documents


1 download

DESCRIPTION

Tema 14: java.lang. Antonio J. Sierra. Índice. 1. Introducción. 2. Gestión de cadenas. String StringBuffer 3. Clases para los tipos simples. Number Envolventes a los tipo de datos simples 4. Programación del sistema. Introducción. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tema 14: java.lang

Tema 14: java.lang

Antonio J. Sierra

Page 2: Tema 14: java.lang

Índice

1. Introducción.2. Gestión de cadenas.

– String– StringBuffer

3. Clases para los tipos simples.– Number– Envolventes a los tipo de datos simples

4. Programación del sistema.

Page 3: Tema 14: java.lang

Introducción

• Contienen las clases para los objetos fundamentales de Java.

• Se incluye en todas las plataformas.

• Se importa automáticamente.

• Estructura:– Contiene más de 28 clases, 4 interfaces y 5

paquetes.

Page 4: Tema 14: java.lang

Introducción. Clases generales.

• Object• Class• System• Thread y ThreadGroup

• Throwable• Excepciones• Error• Math• Process• Runtime

• String• StringBuffer• Number• Boolean• Integer• Character• Long• Double• Float

Page 5: Tema 14: java.lang

Gestión de Cadenas

• Secuencias de caracteres (char).

• Un char:16 bits.

• Dos clases:– String– StringBuffer

Page 6: Tema 14: java.lang

La clase String

• Secuencias de caracteres (char de 16 bits).

• Longitud fija y no modificable.

Page 7: Tema 14: java.lang

String: Ejemplos Ipackage Cadenas;

public class Cadenas0 { public static void main(String args[]){ byte ascii[] = {65,66,67,68,69,70}; String s1 = null;

try{ s1 = new String (ascii,"US-ASCII"); }catch(java.io.UnsupportedEncodingException e){ } System.out.println(s1);

char data[] = {'a', 'b', 'c'}; String str = new String(data);

String cde = new String(" cde "); cde = cde.trim(); System.out.println(str + cde);

String c = "abc".substring(2,3); System.out.println( c ); String d = cde.substring(1, 2); System.out.println( d ); System.out.println("d.length() = " + d.length()); }}

/*C:\F_Telematica\Texto\Tema14>javac .\Cadenas\Cadenas0.java

C:\F_Telematica\Texto\Tema14>java Cadenas.Cadenas0ABCDEFabccdecdd.length() = 1

C:\F_Telematica\Texto\Tema14>*/

ConstructoresString(byte[] bytes, String charsetName) String(char[] value) String(String original) MétodosString trim() String substring(int beginIndex) String substring(int beginIndex, int endIndex) int length()

Page 8: Tema 14: java.lang

String: Ejemplos IIpackage Cadenas;

public class Cadenas1 {

public static void main(String args[]){

String str = "abcdefghijklmnopqrstuvxyz" +"ABCDEFGHIJKLMNOPQRSTUVWXZ" +

"abcdefghijklmnopqrstuvxyz";

System.out.println(str );

System.out.println("str.compareTo(str)=" + str.compareTo(str));

System.out.println("str.compareTo(\"a\")=" + str.compareTo("a"));

System.out.println("str.indexOf(a)="+str.indexOf('a') );

System.out.println("str.lastIndexOf(a)="+str.lastIndexOf('a') );

System.out.println(str );

System.out.println("str.indexOf(a,1)="+str.indexOf('a',1) );

System.out.println("str.lastIndexOf(a,49)="+str.lastIndexOf('a',49));

System.out.println("str.indexOf(a,1)="+str.indexOf('a',1) );

System.out.println("str.indexOf(a,1)="+str.indexOf('a',1) );

}

}C:\F_Telematica\Texto\Tema14>java Cadenas.Cadenas1

abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvxyz

str.compareTo(str)=0

str.compareTo("a")=74

str.indexOf(a)=0

str.lastIndexOf(a)=50

abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvxyz

str.indexOf(a,1)=50

str.lastIndexOf(a,49)=0

str.indexOf(a,1)=50

str.indexOf(a,1)=50

C:\F_Telematica\Texto\Tema14>

Métodosint compareTo(Object o) int compareTo(String anotherString)

int indexOf(int ch) int indexOf(int ch, int fromIndex) int indexOf(String str) int indexOf(String str, int fromIndex)

int lastIndexOf(int ch) int lastIndexOf(int ch, int fromIndex) int lastIndexOf(String str) int lastIndexOf(String str, int fromIndex)

Page 9: Tema 14: java.lang

String: Ejemplos IIIpackage Cadenas;

public class Cadenas2 { public static void main(String args[]){ String str1 = new String("abc"); String str2 = new String("abc"); String str3 = new String("ABC"); System.out.println("str1.equals(str1) = "+str1.equals(str1)); System.out.println("str1.equals(str2) = "+str1.equals(str2)); System.out.println("str1.equals(str3) = "+str1.equals(str3)); System.out.println("str1.equalsIgnoreCase(str3) = "+str1.equalsIgnoreCase(str3)); int comienzo = 0, fin = str1.length(); char buf[] = new char[fin]; str1.getChars(comienzo, fin, buf,0); System.out.println(buf); }}

C:\F_Telematica\Texto\Tema14>javac .\Cadenas\Cadenas2.java

C:\F_Telematica\Texto\Tema14>java Cadenas.Cadenas2

str1.equals(str1) = true

str1.equals(str2) = true

str1.equals(str3) = false

str1.equalsIgnoreCase(str3) = true

abc

C:\F_Telematica\Texto\Tema14>

Métodosboolean equals(Object anObject) boolean equalsIgnoreCase(String anotherString) void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

Page 10: Tema 14: java.lang

La clase StringBuffer

• Secuencias de caracteres (char de 16 bits).

• Longitud variable y modificable.

• Constructores:– StringBuffer() reserva 16 caracteres.– StringBuffer(int dim) reserva dim

caracteres.– StringBuffer(String str) reserva el

tamaño del String mas 16 caracteres

Page 11: Tema 14: java.lang

StringBuffer y append

• Los bufers de String el compilador los usa para implementar la concatenación de cadenas binarias con el operador +.

• Por ejemplo, el código: x = "a" + 4 + "c" es compilado de forma equivalente a: x = new

StringBuffer().append("a").append(4).append("c").toString();

que crea un nuevo buffer para la cadena (inicialmente vacía), añade las cadenas de representación de cada uno de los valores y los convierte a para el String.

• Evita la creación de muchas cadenas temporales.

Page 12: Tema 14: java.lang

StringBuffer: Ejemplos Ipackage Cadenas;

package Cadenas;

public class Cadenas4{

public static void main(String args[]){

StringBuffer ab = new StringBuffer("Hola");

char c;

System.out.println(ab);

System.out.println( ab.length());

System.out.println( ab.capacity());

c = ab.charAt(0);

System.out.println(c);

ab.setCharAt(0,'h');

System.out.println(ab);

ab.setLength(3);

System.out.println(ab);

}

}

C:\F_Telematica\Texto\Tema14>java Cadenas.Cadenas4

Hola

4

20

H

hola

hol

C:\F_Telematica\Texto\Tema14>

Métodosvoid setCharAt(int index, char ch) void setLength(int newLength) char charAt(int index)

Page 13: Tema 14: java.lang

StringBuffer: Ejemplos IIpackage Cadenas;

public class Cadenas5{ public static void main(String args[]){ StringBuffer ab = new StringBuffer("Hola

Adios"); ab.insert(5,"y "); System.out.println(ab); ab.reverse(); System.out.println(ab); }}

C:\F_Telematica\Texto\Tema14>java Cadenas.Cadenas5Hola y AdiossoidA y aloH

C:\F_Telematica\Texto\Tema14>

MétodosStringBuffer reverse() StringBuffer insert(int offset, boolean b) StringBuffer insert(int offset, char c) StringBuffer insert(int offset, char[] str) StringBuffer insert(int index, char[] str, int offset, int len) StringBuffer insert(int offset, double d) StringBuffer insert(int offset, float f) StringBuffer insert(int offset, int i) StringBuffer insert(int offset, long l) StringBuffer insert(int offset, Object obj) StringBuffer insert(int offset, String str)

Page 14: Tema 14: java.lang

Number

• Es una clase abstracta.• Superclase de las clases BigDecimal(java.math), BigInteger(java.math), Byte, Double, Float, Integer, Long, y Short.

• Métodos de Number: byte byteValue() abstract double doubleValue() abstract float floatValue() abstract int intValue() abstract long longValue() short shortValue()

Page 15: Tema 14: java.lang

Envolventes (wrap) a los tipos de datos simples

• Boolean• Integer• Character• Long• Double• Float

Page 16: Tema 14: java.lang

Integer

• Atributosstatic int MAX_VALUE (231-1)static int MIN_VALUE (-231)static Class TYPE (Instancia de Class

representando a Integer)• ConstructoresInteger(int value) Integer(String s) • Y métodos

Page 17: Tema 14: java.lang

Integer Ejemplo I

class UnEntero{ public static void main(String args[]){ String s ="22"; Integer miEntero = new Integer(s); System.out.println("el valor el entero "+ miEntero); }}/*el valor el entero 22*/

Page 18: Tema 14: java.lang

Character

package Number;

public class Character0{ public static void main(String args[]){ char a[] = {'a','b','5','?','A',' '}; for(int i = 0; i < a.length; i++){ if(Character.isDigit(a[i])) System.out.println(a[i]+" es un digito"); if(Character.isLetter(a[i])) System.out.println(a[i]+" es una letra"); if(Character.isWhitespace(a[i])) System.out.println(a[i]+" es un espacio");

if(Character.isUpperCase(a[i])) System.out.println(a[i]+" es un mayuscula");

if(Character.isLowerCase(a[i])) System.out.println(a[i]+" es un minuscula"); } }}

C:\F_Telematica\Texto\Tema14>java Number.Character0a es una letraa es un minusculab es una letrab es un minuscula5 es un digitoA es una letraA es un mayuscula es un espacio

C:\F_Telematica\Texto\Tema14>

Métodosstatic boolean isLetter(char ch) static boolean isDigit(char ch) static boolean isWhitespace(char ch) static boolean isUpperCase(char ch) static char toLowerCase(char ch)

Page 19: Tema 14: java.lang

Programación del sistema

• Permite interactuar con el sistema operativo. Hay tres clases principales:

1. System

2. Runtime

3. Process

Page 20: Tema 14: java.lang

System

• Atributos– static PrintStream err: Flujo de salida de error estándar. – static InputStream in: El flujo de entrada estándar. – static PrintStream out: El flujo de salida estándar.

• Métodos estáticos para el manejo del sistema– static void arraycopy(Object src, int srcPos,

Object dest, int destPos, int length) • Copia un array desde un lugar a otro.

– static long currentTimeMillis() • Devuelve la hora actual en milisegundos.

– static void exit(int status) • Termina el hilo actual que se ejecuta en la Java Virtual Machine.

– static void gc() • Ejecuta el garbage collector.

Page 21: Tema 14: java.lang

Runtime• Toda aplicación Java tiene una instancia de la clase Runtime que permite a la

aplicación tener una interfaz con el entorno en el que se ejecuta.• Métodos

– long freeMemory()/long totalMemory() Devuelve la memoria libre/total de la Máquina Virtual de Java.

– static Runtime getRuntime() Devuelve el objeto de ejecución asociado con la aplicación Java actual.

– Process exec(String command) – Process exec(String[] cmdarray) – Process exec(String[] cmdarray, String[] envp) – Process exec(String[] cmdarray, String[] envp, File dir) – Process exec(String cmd, String[] envp) – Process exec(String command, String[] envp, File dir)

– void exit(int status)

Page 22: Tema 14: java.lang

Ejemplopackage Sistema;

public class Sistema0{ public static void main(String args[]){ Runtime r = Runtime.getRuntime(); long mem1 = 0, mem2 = 0; long tiempo1 = 0L,tiempo2 = 0L;

System.out.println( "Memoria disp. " + r.totalMemory()+" bytes"); mem1 = r.freeMemory(); System.out.println( "Mem. libre antes " + mem1 + " bytes");

tiempo1 = System.currentTimeMillis();

for(int i = 0; i < Integer.MAX_VALUE;i++){ new Integer(i); } tiempo2 = System.currentTimeMillis(); mem2 = r.freeMemory(); System.out.println( "Mem. libre desp. " + mem2 + " bytes"); System.out.println( "Milisegundos = " + (tiempo2 - tiempo1));

}}

C:\F_Telematica\Texto\Tema14>java Sistema.Sistema0Memoria disp. 2031616 bytesMem. libre antes 1870032 bytesMem. libre desp. 1691224 bytesMilisegundos = 32609

C:\F_Telematica\Texto\Tema14>

Page 23: Tema 14: java.lang

Process

• El método Runtime.exec crea un proceso nativo y devuelve una instancia de una subclase de Process que puede ser usado para controlar el proceso y obtener información.

• Métodos– abstract int waitFor() hace que el hilo actual espere, si fuera

necesario, hasta que el proceso representado mediante este objeto Process se termine.

– abstract void destroy() mata el subproceso.– abstract int exitValue() devuelve el valor de salida del

subproceso.– Flujos del subproceso– abstract InputStream getErrorStream() de error.– abstract InputStream getInputStream() de entrada.– abstract OutputStream getOutputStream() de salida.

Page 24: Tema 14: java.lang

Ejemplo

package Sistema;

public class Sistema1{ public static void main(String args[]){ Runtime r = Runtime.getRuntime(); Process p = null; try{ p = r.exec("notepad"); p.waitFor(); }catch(Throwable e){ System.out.println(e); } }}