SlideShare una empresa de Scribd logo
Introducción a las Aplicaciones 
Web con Java 
Diplomado en Programación Java 
Primeros pasos con la 
plataforma Java 
Eudris Cabrera Rodríguez 
@eudriscabrera @eudriscabrera 
13 de septiembre 2014,Santiago, R. D.
Objetivos 
Introducir al participante en el mundo de la 
programación en la plataforma JAVA.
Agenda 
1. Entendiendo el ecosistema Java. 
2. Introducción a la programación en Java. 
3. Configuración del Entorno de Desarrollo. 
4. Definición de una clase
Entendiendo el ecosistema Java 
● Plataforma Java: 
○ Multi-plataforma. 
○ Utiliza una máquina virtual para su ejecución 
(JVM) 
○ Esta dividida en: 
■ Java SE 
■ Java EE 
■ Java ME 
■ Javafx 
○ El estandar es manejado por Java Community 
Process (JCP) James Gosling, 
Creador de Java
Ecosistema Java 
● Popularidad del lenguaje Java por TIOBE 
Septiembre 2014, http://www.tiobe.com/index.php/content/paperinfo/tpci/index. 
html
!Java donde quiera¡ 
● 5 trillones SIMS y Smart Cards 
● 3 trillones dispositivos móviles. 
● 80 millones TV, incluyendo Blu-ray, printers, maquinas bancarias, eBooks 
Reader y Carros 
Trillones, representa el término inglés de 10^12, http://www.oracle.com/us/technologies/java/embedded/overview/index.html
Introducción al lenguaje de programación Java
Introducción al lenguaje de programación Java 
El lenguaje Java se creó con cinco objetivos principales: 
1. Debería usar la metodología de la programación orientada a objetos. 
2. Debería permitir la ejecución de un mismo programa en múltiples sistemas 
operativos. 
3. Debería incluir por defecto soporte para trabajo en red. 
4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura. 
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a 
objetos, como C++.
Introducción al lenguaje 
Orientado a Objetos 
La primera característica, orientado a objetos (“OO”), se refiere a un método de 
programación y al diseño del lenguaje. 
Una primera idea es diseñar el software de forma que los distintos tipos de datos 
que use estén unidos a sus operaciones. 
Así, los datos y el código (funciones o métodos) se combinan en entidades 
llamadas objetos.
Introducción al lenguaje de programación Java 
Independencia de plataforma: 
La promesa inicial de James Gosling era Write Once, Run Anywhere (Escríbelo 
una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente 
de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las 
plataformas más populares de forma que los binarios (bytecode) de las aplicaciones 
Java pudiesen ejecutarse en cualquier plataforma.
Introducción al lenguaje de programación Java 
El recolector de basura: 
Un argumento en contra de lenguajes como C++ es que los programadores se 
encuentran con la carga añadida de tener que administrar la memoria solicitada 
dinámicamente de forma manual. 
En Java, este problema potencial es evitado en gran medida por el recolector 
automático de basura (o automatic garbage collector).
Introducción al lenguaje de programación Java 
Sintaxis : 
La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, 
que combina la sintaxis para programación genérica, estructurada y orientada a 
objetos, Java fue construido desde el principio para ser completamente orientado a 
objetos. 
Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en 
alguna clase (recordemos que una clase es un molde a partir del cual pueden 
crearse varios objetos).
Introducción al lenguaje de programación Java 
Cómo java compila e interpreta el código ?
Introducción al lenguaje de programación Java
Introducción al lenguaje de programación Java 
Rendimiento: 
El rendimiento de una aplicación está determinado por multitud de factores, por lo 
que no es fácil hacer una comparación que resulte totalmente objetiva. 
En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la 
eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del 
lenguaje. 
El bytecode de Java puede ser interpretado en tiempo de ejecución por la 
máquina virtual, o bien compilado al cargarse el programa, o durante la propia 
ejecución, para generar código nativo que se ejecuta directamente sobre el 
hardware. Si es interpretado, será más lento que usando el código máquina 
intrínseco de la plataforma destino.
Introducción al lenguaje de programación Java 
Si es compilado, durante la carga inicial o la ejecución, la penalización está en el 
tiempo necesario para llevar a cabo la compilación. 
El uso de un recolector de basura para eliminar de forma automática aquellos 
objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o 
ser apenas apreciable, dependiendo de la tecnología del recolector y de la 
aplicación en concreto. 
Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos 
de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse 
más eficientemente.
Configuración del Entorno de Desarrollo
Diagrama Conceptual de Java SE
Configuración del Entorno de Desarrollo 
Instalar el JDK (Java Development Kit) 
Antes de que pueda desarrollar aplicaciones Java, el JDK debe 
estar instalado en su sistema. Además, el sistema puede necesitar 
ser configurado para trabajar con el JDK. 
Una vez instalado el JDK, usted estará listo para crear su primera 
aplicación Java. 
http://java.com/en/download/help/index_installing.xml
Estructura del JDK (Java Development Kit) 
Un resumen de los directorios y archivos del JDK 
El directorio bin contiene todas las herramientas necesarias para desarrollar y 
probar un programa, incluyendo el compilador de Java. 
El directorio lib contiene librerías y ficheros de apoyo requeridos por las 
herramientas de desarrollo. 
El directorio jre contiene el intérprete de Java o Java Runtime Environment (JRE), 
que se necesita para ejecutar aplicaciones Java, una vez que han sido 
recopilados. Aunque el JDK utiliza esta versión interna de la JRE, también puede 
descargar una versión de JRE desde el sitio web de Java.
Configuración del Entorno de Desarrollo 
Java Virtual Machine: 
Entorno de ejecución para los programas Java. 
A pesar de que la JVM fue creada principalmente a ejecutar programas 
compilados en Java, ahora podemos ejecutar otros lenguajes en la misma 
maquina virtual java. 
Entre los cuales podemos mencionar a Clojure, Groovy, Scala, entre muchos 
más.
Configuración del Entorno de Desarrollo 
Lenguajes Alternativos de la Java Virtual Machine 
● Scala 
● Groovy 
● Xtend 
● Ceylon 
● Kotlin 
● Fantom
Configuración del Entorno de Desarrollo 
Lenguajes existentes con capacidad Java 
● Existe un grupo de lenguajes que pueden ser llevados a una JVM. Muchos 
lenguajes como Python o Ruby, pueden interactuar con los APIs de Java y 
son populares para generar escripts y prototipos en forma rápida. 
● Otro lenguaje muy popular que se puede llevar a la JVM es Clojure o Lisp. 
En forma adicional, Oracle recientemente lanzo Nashron, un proyecto que 
permite ejecutar código JavaScript en la JVM.
Definición de una clase 
Para definir una clase en Java, consideramos la siguiente sintaxis: 
Código: 
<control de acceso> class <nombre clase> 
{ 
<atributos> 
<constructores> 
<métodos> 
}
Definición de una clase 
donde: 
tipo de dato puede ser cualquiera, incluyendo otra clase. 
control de acceso puede ser: private, public o protected 
Nota: Veamos que los controles de acceso, son tal y como están escritos(en idioma 
ingles), que traducidos dicen: 
private = privado (declaramos una propiedad o evento privado) 
public = público (declaramos una propiedad, o evento publico, que puede ser 
llamado desde otra clase) 
protected = protegido (una propiedad de solo lectura, que no se puede modificar) 
Class, Public, Private,Protected... son palabras reservadas del lenguaje Java, y 
otros...
Definición de una clase 
Primer programa en Java 
Hola Mundo 
// Hola.java 
public class Hola 
{ 
public static void main(String[] args) { 
System.out.println("Hola, mundo!"); 
} 
}
Tipos de datos 
Java tiene dos grupos de tipos de datos, tipos de datos primitivos y referencias a 
objetos. 
Los tipos de datos primitivos de Java son: byte, short , int , long, float 
, double , char, boolean. 
Datos de tipo numérico 
- Números enteros byte, short, int, long 
- Números en coma flotante float, double 
Datos de tipo carácter char 
Datos de tipo booleano boolean
Tipos de datos 
La clase String 
-String no es un tipo primitivo, sino una clase predefinida 
- 
Una cadena (String) es una secuencia de caracteres 
-Las cadenas de caracteres, en Java, son inmutables: no se pueden modificar los 
caracteres individuales de la cadena. 
Concatenación de cadenas de caracteres 
El operador + sirve para concatenar cadenas de caracteres
Tipos de datos 
Datos de tipo boolean 
Representan algo que puede ser verdadero (true) o falso (false) y ocupa un bit en 
espacio de memoria. 
Expresiones de tipo booleano 
* Se construyen a partir de expresiones de tipo numérico con operadores 
relacionales. 
* Se construyen a partir de otras expresiones booleanas con operadores lógicos o 
booleanos.
Tipos de datos 
Referencias de objetos de Java 
Referencias a objetos de Java son variables que contienen referencias a los 
objetos. 
A diferencia de los tipos de datos primitivos de Java que almacenan los datos 
reales, las referencias objeto almacenar sólo una referencia a los datos reales 
objeto.
Operadores aritméticos 
Java incluye cinco operadores para realizar operaciones 
aritméticas: 
+ Suma 
- - Resta o cambio de signo 
* Multiplicación 
/ División 
% Módulo (resto de la división)
Operadores relacionales 
-Operadores de comparación válidos para números y caracteres 
- 
Generan un resultado booleano 
Operador Significado 
== Igual 
!= Distinto 
< Menor 
> Mayor 
<= Menor o igual 
>= Mayor o igual
Operadores lógicos / booleanos 
Tienen menos precedencia que los operadores de comparación. 
! NOT Negación lógica 
&& AND ‘y’ lógico 
|| OR ‘o’ inclusivo 
^ XOR ‘o’ exclusivo
Operadores lógicos / booleanos 
- NOT (!) cambia el valor booleano. 
- AND (&&) devuelve true si los dos son operandos son true. 
No evalúa el segundo operando si el primero es false 
- OR (||) devuelve false si los dos son false. 
No evalúa el segundo operando si el primero es true 
- XOR (^) devuelve true si los dos operandos son diferentes. 
Con operandos booleanos es equivalente a !=
Operadores a nivel de bits 
Se pueden utilizar a nivel de bits con números enteros. 
-No se pueden usar con datos de otro tipo (p.ej. reales). 
Los operadores NOT (~), AND (&), OR(|) y XOR (^) 
Si alguno de los operandos es de tipo long, el resultado es long. 
Si no, el resultado es de tipo int. 
-NOT (~) realiza el complemento a 1 de un número entero: 
Cambia los 0s por 1s y viceversa - AND(&), OR(|) y XOR(^) funcionan
Operadores de desplazamiento 
Los operadores de desplazamiento <<, >> y >>> 
-El operador de desplazamiento a la izquierda (<<) desplaza los bits del primer 
operando tantas posiciones a la izquierda como indica el segundo operando. Los 
nuevos bits se rellenan con ceros. 
El operador de desplazamiento a la derecha con signo (>>) desplaza los bits del 
primer operando tantas posiciones a la derecha como indica el segundo operando. 
Los nuevos bits se rellenan con unos (si el primer operando es negativo) y con 
ceros (si es positivo).
Libros para iniciarse en Java
Referencias 
Todas las marcas registradas, así como todos los logotipos, imágenes, 
fotografías, audio y vídeos mostrados en esta presentación son propiedad de 
sus respectivos propietarios y/o representantes. 
Su utilización es solamente para fines ilustrativos. 
Enlaces: 
http://www.oracle.com/technetwork/topics/newtojava/overview/index.html 
http://introcs.cs.princeton.edu/java/home/
¿Preguntas?
@eudriscabrera 
@eudris 
@ecabrerar 
@eudriscabrera 
Eudris Cabrera Rodríguez 
Ingeniero Telemático 
Desarrollador de Software / Consultor Informático 
eudris@gmail.com

Más contenido relacionado

La actualidad más candente

Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
maeusogo
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
Mariano Galvez
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
Mariano Galvez
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
Cursando Desarrollo Web
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVANoralma Yanez
 
Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I)
Cristian
 
Test Programación Orientada a Objetos
Test Programación Orientada a  ObjetosTest Programación Orientada a  Objetos
Test Programación Orientada a ObjetosLuis Arturo Vargas
 
Cuestionario
CuestionarioCuestionario
Cuestionario
Francisco Vallejo
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicosMariano Galvez
 
Cuestionario
CuestionarioCuestionario
Cuestionario
Leonardo Moctezuma
 
Test
TestTest
Aplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointAplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointMariviMartinezM
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 
Ppt java
Ppt javaPpt java
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
Santiago Sora
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosDoris Aguagallo
 

La actualidad más candente (20)

Curso Java Inacap
Curso Java InacapCurso Java Inacap
Curso Java Inacap
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I)
 
Test Programación Orientada a Objetos
Test Programación Orientada a  ObjetosTest Programación Orientada a  Objetos
Test Programación Orientada a Objetos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Test
TestTest
Test
 
Aplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointAplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power Point
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
Java world
Java worldJava world
Java world
 
Ppt java
Ppt javaPpt java
Ppt java
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 

Destacado

[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux
Eudris Cabrera
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7Eudris Cabrera
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux
Eudris Cabrera
 
[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux
Eudris Cabrera
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPAEudris Cabrera
 
[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux
Eudris Cabrera
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
Eudris Cabrera
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones Lambdas
Eudris Cabrera
 

Destacado (9)

[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux
 
[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPA
 
[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones Lambdas
 

Similar a [ES] Primeros pasos con la Plataforma Java

1.introduccion java
1.introduccion java1.introduccion java
1.introduccion java
Marisol Henao
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
Cristian Alexander
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
pbcanessa
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
Cristian Alexander
 
JAVA
JAVA JAVA
JAVA
arecerv
 
MANUAL DE JAVA
MANUAL DE JAVAMANUAL DE JAVA
MANUAL DE JAVA
Alfa Mercado
 
Tutorial de eclipse 2
Tutorial de eclipse 2Tutorial de eclipse 2
Tutorial de eclipse 2
ivan ramirez
 
Trabajo java
Trabajo javaTrabajo java
Trabajo javaamec0612
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de Java
LuzRom
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
Samuel Marrero
 
Clase2
Clase2Clase2
Clase2rilara
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdf
WillGuzman3
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
Miguel Angel Guevara Reyes
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
Juan Car Dioses Guerrero
 
JAVA
JAVAJAVA
JAVA
ale8819
 

Similar a [ES] Primeros pasos con la Plataforma Java (20)

1.introduccion java
1.introduccion java1.introduccion java
1.introduccion java
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
JAVA
JAVA JAVA
JAVA
 
JAVA 2
JAVA 2JAVA 2
JAVA 2
 
MANUAL DE JAVA
MANUAL DE JAVAMANUAL DE JAVA
MANUAL DE JAVA
 
MANUAL JAVA
MANUAL JAVA MANUAL JAVA
MANUAL JAVA
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
Tutorial de eclipse 2
Tutorial de eclipse 2Tutorial de eclipse 2
Tutorial de eclipse 2
 
Trabajo java
Trabajo javaTrabajo java
Trabajo java
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de Java
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
Clase2
Clase2Clase2
Clase2
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdf
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
JAVA
JAVAJAVA
JAVA
 

Último

Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 

Último (20)

Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 

[ES] Primeros pasos con la Plataforma Java

  • 1. Introducción a las Aplicaciones Web con Java Diplomado en Programación Java Primeros pasos con la plataforma Java Eudris Cabrera Rodríguez @eudriscabrera @eudriscabrera 13 de septiembre 2014,Santiago, R. D.
  • 2. Objetivos Introducir al participante en el mundo de la programación en la plataforma JAVA.
  • 3. Agenda 1. Entendiendo el ecosistema Java. 2. Introducción a la programación en Java. 3. Configuración del Entorno de Desarrollo. 4. Definición de una clase
  • 4. Entendiendo el ecosistema Java ● Plataforma Java: ○ Multi-plataforma. ○ Utiliza una máquina virtual para su ejecución (JVM) ○ Esta dividida en: ■ Java SE ■ Java EE ■ Java ME ■ Javafx ○ El estandar es manejado por Java Community Process (JCP) James Gosling, Creador de Java
  • 5. Ecosistema Java ● Popularidad del lenguaje Java por TIOBE Septiembre 2014, http://www.tiobe.com/index.php/content/paperinfo/tpci/index. html
  • 6. !Java donde quiera¡ ● 5 trillones SIMS y Smart Cards ● 3 trillones dispositivos móviles. ● 80 millones TV, incluyendo Blu-ray, printers, maquinas bancarias, eBooks Reader y Carros Trillones, representa el término inglés de 10^12, http://www.oracle.com/us/technologies/java/embedded/overview/index.html
  • 7. Introducción al lenguaje de programación Java
  • 8. Introducción al lenguaje de programación Java El lenguaje Java se creó con cinco objetivos principales: 1. Debería usar la metodología de la programación orientada a objetos. 2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos. 3. Debería incluir por defecto soporte para trabajo en red. 4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura. 5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
  • 9. Introducción al lenguaje Orientado a Objetos La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Una primera idea es diseñar el software de forma que los distintos tipos de datos que use estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos.
  • 10. Introducción al lenguaje de programación Java Independencia de plataforma: La promesa inicial de James Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.
  • 11. Introducción al lenguaje de programación Java El recolector de basura: Un argumento en contra de lenguajes como C++ es que los programadores se encuentran con la carga añadida de tener que administrar la memoria solicitada dinámicamente de forma manual. En Java, este problema potencial es evitado en gran medida por el recolector automático de basura (o automatic garbage collector).
  • 12. Introducción al lenguaje de programación Java Sintaxis : La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido desde el principio para ser completamente orientado a objetos. Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos).
  • 13. Introducción al lenguaje de programación Java Cómo java compila e interpreta el código ?
  • 14. Introducción al lenguaje de programación Java
  • 15. Introducción al lenguaje de programación Java Rendimiento: El rendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino.
  • 16. Introducción al lenguaje de programación Java Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación. El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnología del recolector y de la aplicación en concreto. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse más eficientemente.
  • 17. Configuración del Entorno de Desarrollo
  • 19. Configuración del Entorno de Desarrollo Instalar el JDK (Java Development Kit) Antes de que pueda desarrollar aplicaciones Java, el JDK debe estar instalado en su sistema. Además, el sistema puede necesitar ser configurado para trabajar con el JDK. Una vez instalado el JDK, usted estará listo para crear su primera aplicación Java. http://java.com/en/download/help/index_installing.xml
  • 20. Estructura del JDK (Java Development Kit) Un resumen de los directorios y archivos del JDK El directorio bin contiene todas las herramientas necesarias para desarrollar y probar un programa, incluyendo el compilador de Java. El directorio lib contiene librerías y ficheros de apoyo requeridos por las herramientas de desarrollo. El directorio jre contiene el intérprete de Java o Java Runtime Environment (JRE), que se necesita para ejecutar aplicaciones Java, una vez que han sido recopilados. Aunque el JDK utiliza esta versión interna de la JRE, también puede descargar una versión de JRE desde el sitio web de Java.
  • 21. Configuración del Entorno de Desarrollo Java Virtual Machine: Entorno de ejecución para los programas Java. A pesar de que la JVM fue creada principalmente a ejecutar programas compilados en Java, ahora podemos ejecutar otros lenguajes en la misma maquina virtual java. Entre los cuales podemos mencionar a Clojure, Groovy, Scala, entre muchos más.
  • 22. Configuración del Entorno de Desarrollo Lenguajes Alternativos de la Java Virtual Machine ● Scala ● Groovy ● Xtend ● Ceylon ● Kotlin ● Fantom
  • 23. Configuración del Entorno de Desarrollo Lenguajes existentes con capacidad Java ● Existe un grupo de lenguajes que pueden ser llevados a una JVM. Muchos lenguajes como Python o Ruby, pueden interactuar con los APIs de Java y son populares para generar escripts y prototipos en forma rápida. ● Otro lenguaje muy popular que se puede llevar a la JVM es Clojure o Lisp. En forma adicional, Oracle recientemente lanzo Nashron, un proyecto que permite ejecutar código JavaScript en la JVM.
  • 24. Definición de una clase Para definir una clase en Java, consideramos la siguiente sintaxis: Código: <control de acceso> class <nombre clase> { <atributos> <constructores> <métodos> }
  • 25. Definición de una clase donde: tipo de dato puede ser cualquiera, incluyendo otra clase. control de acceso puede ser: private, public o protected Nota: Veamos que los controles de acceso, son tal y como están escritos(en idioma ingles), que traducidos dicen: private = privado (declaramos una propiedad o evento privado) public = público (declaramos una propiedad, o evento publico, que puede ser llamado desde otra clase) protected = protegido (una propiedad de solo lectura, que no se puede modificar) Class, Public, Private,Protected... son palabras reservadas del lenguaje Java, y otros...
  • 26. Definición de una clase Primer programa en Java Hola Mundo // Hola.java public class Hola { public static void main(String[] args) { System.out.println("Hola, mundo!"); } }
  • 27. Tipos de datos Java tiene dos grupos de tipos de datos, tipos de datos primitivos y referencias a objetos. Los tipos de datos primitivos de Java son: byte, short , int , long, float , double , char, boolean. Datos de tipo numérico - Números enteros byte, short, int, long - Números en coma flotante float, double Datos de tipo carácter char Datos de tipo booleano boolean
  • 28. Tipos de datos La clase String -String no es un tipo primitivo, sino una clase predefinida - Una cadena (String) es una secuencia de caracteres -Las cadenas de caracteres, en Java, son inmutables: no se pueden modificar los caracteres individuales de la cadena. Concatenación de cadenas de caracteres El operador + sirve para concatenar cadenas de caracteres
  • 29. Tipos de datos Datos de tipo boolean Representan algo que puede ser verdadero (true) o falso (false) y ocupa un bit en espacio de memoria. Expresiones de tipo booleano * Se construyen a partir de expresiones de tipo numérico con operadores relacionales. * Se construyen a partir de otras expresiones booleanas con operadores lógicos o booleanos.
  • 30. Tipos de datos Referencias de objetos de Java Referencias a objetos de Java son variables que contienen referencias a los objetos. A diferencia de los tipos de datos primitivos de Java que almacenan los datos reales, las referencias objeto almacenar sólo una referencia a los datos reales objeto.
  • 31. Operadores aritméticos Java incluye cinco operadores para realizar operaciones aritméticas: + Suma - - Resta o cambio de signo * Multiplicación / División % Módulo (resto de la división)
  • 32. Operadores relacionales -Operadores de comparación válidos para números y caracteres - Generan un resultado booleano Operador Significado == Igual != Distinto < Menor > Mayor <= Menor o igual >= Mayor o igual
  • 33. Operadores lógicos / booleanos Tienen menos precedencia que los operadores de comparación. ! NOT Negación lógica && AND ‘y’ lógico || OR ‘o’ inclusivo ^ XOR ‘o’ exclusivo
  • 34. Operadores lógicos / booleanos - NOT (!) cambia el valor booleano. - AND (&&) devuelve true si los dos son operandos son true. No evalúa el segundo operando si el primero es false - OR (||) devuelve false si los dos son false. No evalúa el segundo operando si el primero es true - XOR (^) devuelve true si los dos operandos son diferentes. Con operandos booleanos es equivalente a !=
  • 35. Operadores a nivel de bits Se pueden utilizar a nivel de bits con números enteros. -No se pueden usar con datos de otro tipo (p.ej. reales). Los operadores NOT (~), AND (&), OR(|) y XOR (^) Si alguno de los operandos es de tipo long, el resultado es long. Si no, el resultado es de tipo int. -NOT (~) realiza el complemento a 1 de un número entero: Cambia los 0s por 1s y viceversa - AND(&), OR(|) y XOR(^) funcionan
  • 36. Operadores de desplazamiento Los operadores de desplazamiento <<, >> y >>> -El operador de desplazamiento a la izquierda (<<) desplaza los bits del primer operando tantas posiciones a la izquierda como indica el segundo operando. Los nuevos bits se rellenan con ceros. El operador de desplazamiento a la derecha con signo (>>) desplaza los bits del primer operando tantas posiciones a la derecha como indica el segundo operando. Los nuevos bits se rellenan con unos (si el primer operando es negativo) y con ceros (si es positivo).
  • 38. Referencias Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios y/o representantes. Su utilización es solamente para fines ilustrativos. Enlaces: http://www.oracle.com/technetwork/topics/newtojava/overview/index.html http://introcs.cs.princeton.edu/java/home/
  • 40. @eudriscabrera @eudris @ecabrerar @eudriscabrera Eudris Cabrera Rodríguez Ingeniero Telemático Desarrollador de Software / Consultor Informático eudris@gmail.com