Documente Academic
Documente Profesional
Documente Cultură
»Conocer la programación
»La comparación de
Java con otros
lenguajes de
programación
»La comprensión de los
números de versión de
Java incomprensibles
Capítulo 1
Bienvenido a Java
su capítulo es una suave introducción al mundo de Java. En las siguientes
T
páginas, se entera de lo que Java es, de dónde viene y hacia dónde va.
También descubre algunas de las fortalezas únicas de Java, así como
algunos de
sus debilidades. Además, se ve cómo Java compara con otros programas
populares
idiomas, incluyendo C, C ++, C # y Visual Basic.
Por cierto, supongo que en este capítulo que tiene al menos lo suficiente como fondo para saber lo que la
programación informática se trata. Eso no quiere decir que supongo que eres un experto o un
programador profesional. Sólo quiere decir que no me tomo el tiempo para explicar conceptos básicos
tales como lo que es un programa de ordenador, lo que es un lenguaje de programa-ming es, y así
sucesivamente. Si usted no tiene absolutamente ninguna experiencia en programación, puedo sugerir que
usted toma una copia de Java para los maniquíes, 5ª Edición, o Programación Comenzando con Java para
los maniquíes, 3ª edición, tanto por parte de Barry Burd (Wiley).
independencia de la
plataforma
Una de las principales razones de Java es tan popular es su independencia de la
plataforma, lo que simplemente significa que los programas Java pueden ejecutarse en
muchos tipos de ordenadores. Un programa Java se ejecuta en cualquier computadora
con un entorno de ejecución de Java, también conocido como un JRE instalado. Un JRE
está disponible para casi cualquier tipo de equipo que se pueda imaginar: ordenadores
que ejecuten cualquier versión de Windows, Macintosh, Unix y Linux, grandes
ordenadores centrales, y los teléfonos celulares pares.
Bienvenido a
inteligentes u ordenadores tipo tableta.
Java
Mientras yace despierto esta noche ponderar la importancia de la plataforma de Java
inde- pendencia, aquí están algunas ideas adicionales para reflexionar:
» El JRE es independiente del compilador de Java. Como resultado, usted no tiene que instalar
un compilador de Java para ejecutar programas Java compilados. Todo lo que necesita es el
JRE.
» independencia de la plataforma sólo llega hasta ahí. Si tiene algún tipo de oscura
sistema informático - tales como una antigüedad Olivetti Programma 101 - y un
JRE
No está disponible para ello, no se puede ejecutar programas Java en él.
No hice la Olivetti Programma 101. Era una computadora de escritorio hecho a principios de 1960, y pasó a
ser mi introducción a la computadora pro gramación. (Mi profesor de matemáticas de la escuela secundaria
tenía una en la parte posterior de su clase, y él me dejó jugar con él durante el almuerzo.) Haga una
búsqueda en Google de Olivetti Programma 101 y se pueden encontrar varios sitios web interesantes sobre
ella.
» Si está interesado, la JVM está completamente orientado a pila; que no tiene registros para
almacenar datos locales. (No voy a explicar lo que significa ese término, por lo que si
no tiene sentido para ti, evitarlo. No es importante. Es sólo interesante
para los empollones que saben de pilas, registros, y cosas de esa calaña.)
básicas:
» Los objetos tienen datos, también conocido como estado. Un objeto que representa
un libro, por
ejemplo, tiene datos tales como el libro de título, el autor y el editor.
» Los objetos también tienen comportamiento, lo que significa que pueden realizar
ciertas tareas.
En Java, estas tareas se llaman métodos. Un objeto que representa un automóvil podría
tener métodos tales comocomienzo, detener, conduciry choque. Algunos
métodos simplemente le permiten acceder a los datos del objeto. Un objeto puede tener
un librogetTitle método que te dice el título del libro.
Las clases están estrechamente relacionados con los objetos. Una clase es el
código del programa que se escribe en CRE objetos Ate. La clase describe los
datos y métodos que definen el estado y el comportamiento del objeto. Cuando se
ejecuta el programa, las clases se utilizan para crear objetos.
El API Java
El lenguaje Java en sí es muy simple, pero Java viene con una biblioteca de clases
que proporcionan funciones de utilidad de uso común que la mayoría de los
programas Java no se puede prescindir. Esta biblioteca de clases, llamada a la API
de Java (abreviatura de interfaz de programación de aplicaciones), es tanto una
parte de Java como el lenguaje mismo. De hecho, el verdadero reto de encontrar la
manera de utilizar Java no es el dominio de la lengua; que es maestro-ing la API.
El lenguaje Java tiene sólo alrededor de 50 palabras clave, pero la API de Java
tiene varios miles de clases, con decenas de miles de métodos que se pueden
utilizar en sus programas.
Bienvenido a
alguna clase de la API que aún no está familiarizado con, usted puede buscar lo
que hace la clase en la documentación de la API de Java
enhttp://download.java.net/jdk9/docs/api.
Java
La Internet
Java es a menudo asociada con la Internet, y con razón, porque Al Gore inventó
Java tan sólo unos días después de haber inventado Internet. Está bien, Java no
fue realmente inventado por Al Gore. Fue desarrollado correcto en el momento
de la World Wide Web se estaba convirtiendo en un fenómeno, y Java fue
diseñado específicamente para sacar ventaja de la web. En particular, todo el
concepto detrás de la JVM es permitir a cualquier ordenador conectado a
Internet para ejecutar programas Java, independientemente del tipo de ordenador
o el sistema operativo que se ejecuta.
» aplicaciones Web Start: Un Web Start es una aplicación Java que está diseñado para ser
lanzado desde una página web, pero ejecutar directamente en la computadora de un usuario en vez
que dentro de un navegador web.
principal()
{
printf ( "Hola, mundo!");
}
Aunque la versión de Java es un poco más detallado, los dos tienen varias
similitudes:
» Ambos requieren cada instrucción ejecutable para terminar con un punto y coma (;).
» Ambos utilizan una rutina llamada principal como el principal punto de entrada para el
programa.
Muchas otras similitudes no son evidentes en estos ejemplos simples, pero los
ejemplos traer la principal diferencia entre C y delante de Java y el centro de:
Programación orientada a objetos asoma su fea cabeza incluso en ejemplos sencillos.
Tenga en cuenta los siguientes puntos:
» En Java, aunque el programa más simple es una clase, así que hay que proporcionar una
línea que dice que el nombre de la clase. En este ejemplo, la clase se llamaHelloApp.
HelloApp tiene un método denominado principal, Que la JVM llama
automáticamente cuando
se ejecuta un programa.
Bienvenido a
obtiene el PrintStream objeto que escribe en la consola. losPrintStream
clase a su vez tiene un método denominado println que escribe una línea a
Java
la consola.
Asi que System.out.println Realmente hace dos cosas, en el siguiente orden:
1. Utiliza el afuera Campo de la Sistema clase para obtener una PrintStream objeto.
cuando se lee
acerca de la programación orientada a objetos en el libro 3, capítulo 1.
La verificación
de tipos
Todos los lenguajes de programación tienen que hacer frente de un modo u otro con la comprobación de
tipos - la forma en que una lengua maneja las variables que almacenan diferentes tipos de datos. Los
números, cadenas y fechas, por ejemplo, se utilizan comúnmente tipos de datos disponibles en la
mayoría de los lenguajes de programación. La mayoría de los lenguajes de programación también tienen
varios tipos de números, como los números enteros y números reales.
$a = 5
$a = "Strategery"
$a = 3.14159
Here three different types of data — integer, string, and double — have been
assigned to the same variable.
Java, on the other hand, does complete type checking at runtime. As a result,
you must declare all variables as a particular type so that the compiler can make
sure you use the variables correctly. The following bit of Java code, for
example, won’t compile:
int a = 5;
String b = "Strategery";
String c = a * b;
If you try to compile these lines, you get an error message saying that Java can’t multiply an integer and
a string.
In Java, every class you define creates a new type of data for the language to work
with. Thus, the data types you have available to you in Java aren’t just simple
predefined types, such as numbers and strings. You can create your own types. If
you’re writing a payroll system, you might create an Employee type. Then you
can declare variables of type Employee that can hold only Employee objects.
This
capability prevents a lot of programming errors. Consider this code
snippet:
Employee newHire;
newHire = 21;
This code creates a variable (newHire) that can hold only Employee objects. Then
it tries to assign the number 21 to it. The Java compiler won’t let you run this
program because 21 is a number, not an employee.
An important object-oriented programming feature of Java called inheritance adds an interesting — and
incredibly useful — twist to type checking. Inheritance is way too complicated to dive into just yet, so
I’ll be brief here: In Java, you can create your own data types that are derived from other data types.
Employees are people, for example, and customers are people too, so you might create a Person
Welcome to Java
class. Then you can write code like this:
Person p;
Employee e;
Customer c;
p = e; // this is allowed because an Employee is also a
Person.
c = e; // this isn't allowed because an Employee is not a
Customer.
Confused yet? If so, that’s my fault. Inheritance is a pretty heady topic for Chap- ter
1 of a Java book. Don’t panic if it makes no sense just yet. It will all be clear by the
time you finish reading Book 3, Chapter 4, which covers all the subtle nuances of
using inheritance.
In C++ and similar languages, you must write code that explicitly releases that
memory so that other programs can access it. If you don’t do this, or if you do
it wrong, your program might develop a memory leak. In a memory leak, your
pro- gram slowly but surely sucks memory away from other programs until the
oper- ating system runs out of memory and the computer grinds to a halt.
In Java, you don’t have to explicitly release memory when you’re done with it;
instead, memory is freed automatically when it’s no longer needed. The JVM
includes a special process called the garbage collector that snoops around the vir-
tual machine’s memory; determines when data is no longer being used; and auto-
matically deletes that data, freeing the memory that it occupied.
A feature related to garbage collection is bounds checking, which guarantees that programs can’t access
memory that doesn’t belong to them. Languages such as C and C++ don’t have this type of safety net. As
a result, programming errors in C or C++ can cause one program to trample over memory that’s being
used by another program, which in turn can cause your computer to crash.
Java has a unique approach to error handling that’s superior to that of any other
language (except C#, which just copies Java’s approach, as I mention earlier in
the chapter). In Java, the JRE intercepts and folds errors of all types into a
special type of object called an exception object. After all, Java is object-
oriented through and through, so why shouldn’t its exception-handling features
be object-oriented?
Java requires any statements that can potentially cause an exception to be brack -
eted by code that can catch and handle the exception. In other words, you, as the
programmer, must anticipate errors that can happen while your program is run-
ning and make sure that those errors are dealt with properly. Although this neces -
sity can be annoying, it makes the resulting programs more reliable.
» El API es demasiado grande. Incluye tantas clases y métodos que es probable que nunca
uso ni la mitad de ellos. Además, el gran tamaño de la API de Java no hace
le permiten pasear a través de él por su cuenta, con la esperanza de descubrir la clase que
es perfecta para el problema que está trabajando.
» La API está sobredimensionado. En algunos casos, parece que el ERS Java diseño- salen
de su manera de complicar las cosas que deben ser simples de usar. los
API clase que define un área de entrada de texto de varias líneas no tiene una barra de
desplazamiento, por ejemplo. En su lugar, una clase separada define un panel que tiene una barra
de desplazamiento. Para crear un área de texto de varias líneas con una barra de desplazamiento,
usted tiene que utilizar ambas clases. Eso está bien si alguna vez desea crear un área de texto que
no tiene una barra de desplazamiento, pero nunca se podrá. Los diseñadores de Java complican el
diseño de las clases del área de texto y del panel de desplazamiento para prever un caso que nadie
utiliza o querría usar.
Bienvenido a
with remnants of Java’s early days.
» In my opinion, the biggest weakness of Java is that it doesn’t directly support true
Java
decimal data. This issue is a little too complicated to get into
right now, but the implication is this: Without special coding (which few Java books
explain and few Java programmers realize), Java doesn’t know how to add. Consider
this bit of code:
double x = 5.02;
double y = 0.01;
double z = x + y;
System.out.println(z);
This little program should print 5.03, right? It doesn’t. Instead, it prints
5.029999999999999. Este pequeño error puede no parecer mucho, pero puede sumar. Si alguna vez
se realiza una compra en una tienda online y el aviso de que el impuesto sobre las ventas es un centavo
fuera, esta es la razón. La explicación de por qué estos errores ocurren - y cómo prevenirlos - es bastante
técnica, pero es algo que todos los mer programa- Java tiene que entender.
» Java 1.0: Esta versión fue la versión original de Java, lanzado en 1996. La mayor parte
de la lengua sigue siendo más o menos la misma que en la versión 1.0, pero el
API ha cambiado mucho desde esta versión.
» Java 1.1: Esta versión fue la primera actualización a Java, lanzado en 1997. Este
liberación es importante porque la mayoría de los navegadores de Internet
incluyen soporte integrado para los applets basados en Java 1.1. Para
ejecutar applets basados en versiones posteriores de Java, en la mayoría de
los casos hay que descargar e instalar un JRE actual.
» Java 1.2: Esta versión, lanzada a finales de 1998, fue una gran mejora con respecto
» Java 1.4: Publicado en 2001, esta versión ofrece una serie de mejoras. Como
se puede adivinar, se llama Java 2 versión 1.4. Mantener cálculos. . . .
» Java 1.5: Publicado en 2004, esta versión incluye más cambios y mejoras que
cualquier otra versión. Para añadir a la aparente imprevisibilidad del Sol en su
numeración de versiones, esta versión tiene oficialmente dos números de versión. El
sol de
web oficial de Java lo explica así:
Ambos números de versión “1.5.0” y “5.0” se utilizan para identificar esta versión de
la plataforma Java 2 Standard Edition. Versión “5.0” es la versión del producto,
mientras que “1.5.0” es la versión de desarrollo.
Para Java 1.6, la versión del producto es de 6 (no 6.0). Recuerde que el extra de 2
mágicamente apareció en 1998? Pues bien, el 2 se ha ido en Java 1.6. Así que a diferencia
de las versiones entre 1998 y 2006, Java 1.6 es el nombre oficial de la plataforma Java (no
la plataforma Java 2). En lo personal, creo que alguien en Sun ha estado hablando con
George Lucas. Me totalmente de esperar la próxima versión de Java para ser una precuela
llamada Java 0 Episodio 1.
Es posible que tenga que ser conscientes de las diferencias de versión si usted está escribiendo
aplicaciones que desea ser capaz de funcionar en las versiones anteriores de Java. Tenga en cuenta, sin
embargo, que uno de los principales beneficios de Java es que el sistema de tiempo de ejecución es libre
y puede ser fácilmente descargado e instalado por los usuarios finales. Como resultado de ello, no se
debe dudar en utilizar las características de Java 9 cuando los necesite.
Bienvenido a
diferentes piezas que componen la tecnología de Java - específicamente, las
siglas que con- constantemente vienen a través de cada vez que lee o habla de
Java, como JVM, JRE, JDK, y J2EE. Aquí están, en ningún orden de
Java
importancia:
» JDK: Java Development Kit - es decir, el conjunto de herramientas para desarrolladores que incluye el
compilador de Java y el entorno de ejecución. Para escribir programas Java, se necesita el
JDK. Este término se utilizó con las versiones originales de Java (1.0 y 1.1) y abandonado
con la versión 1.2 a favor de SDK. Pero con las versiones 5.0, 6 y 7,
el término JDK es oficialmente de nuevo en boga.
» SDK: Kit de desarrollo de software - Sun lo llamó el JDK para las versiones 1.2, 1.3,
y 1.4.
» JRE: Java Runtime Environment - el programa que emula la JVM para que
los usuarios pueden ejecutar programas Java. Para ejecutar programas
Java, sólo tiene que descargar e instalar el JRE.
» Java SE: Java Standard Edition - un término que describe el lenguaje Java y
el conjunto básico de las bibliotecas de API que se utilizan para crear
programas Java que se pueden ejecutar en Windows, Linux y otras
plataformas, tales como Macintosh. Java SE también puede crear
programas, llamados applets, que se ejecutan en una ventana del
navegador. La mayor parte de este libro se centra en Java SE.
» J2SE: Java 2 Standard Edition - un término más antiguo para el lenguaje Java y básica
bibliotecas (para las versiones de Java 1.2 a 1.5).
» Java EE: Java Enterprise Edition, también conocido como J2EE (Java 2 Enterprise Edition) -
un conjunto ampliado de las bibliotecas de API que proporcionan funciones
especiales, tales como los servlets.