Esta presentación aborda los fundamentos esenciales de la programación, enfocándose en la comprensión de conceptos clave como variables, tipos de datos, operadores, estructuras de control (condicionales y bucles) y funciones. Se incluyen ejemplos prácticos y ejercicios que permiten aplicar la t...
Esta presentación aborda los fundamentos esenciales de la programación, enfocándose en la comprensión de conceptos clave como variables, tipos de datos, operadores, estructuras de control (condicionales y bucles) y funciones. Se incluyen ejemplos prácticos y ejercicios que permiten aplicar la teoría en situaciones reales de programación. El objetivo es que los estudiantes desarrollen habilidades básicas de codificación, lógica computacional y resolución de problemas mediante la construcción de programas simples pero funcionales. Además, se enfatiza la importancia de seguir buenas prácticas de programación, como la claridad en el código, la modularidad y la correcta documentación, sentando así las bases para avanzar en cursos más avanzados de desarrollo de software y algoritmos.
Size: 1.53 MB
Language: es
Added: Sep 18, 2025
Slides: 92 pages
Slide Content
FUNDAMENTOS DE
PROGRAMACION
Ing. Franklin Rene Castro Castellanos
Especialista en Tecnologías
Especialista en Auditorias
Candidato a Magister en Gestión, Aplicación y
Desarrollo de Software
JUSTIFICACION
●En la asignatura de Fundamentos de
Programación se sientan las bases para que el
estudiante desarrolle el pensamiento algorítmico y
pueda aplicarlas en la generación de programas de
computadora que realicen eficientemente
procesos de cálculo.
●Estas bases de programación le serán útiles al
estudiante, en todas las asignaturas que hacen
parte del área de aplicación profesional y que
están relacionadas con programación de
computadores.
EJE TEMATICO
●Diseño de algoritmos
●Codificación de programas en lenguaje de alto
nivel
●Arreglos
CONTENIDOS TEMATICOS
●Diseño de algoritmos
●Funcionamiento básico del computador
●Definición de algoritmo
●Proceso para la construcción de algoritmos
●Construcción de algoritmos en seudocódigo y
diagramación estructurada.
●Variables, constantes y tipos de datos
●Operadores y jerarquía
●Procesos de control de flujo
●Asignación
●Condicionales
●Iterativos
CODIFICACIÓN DE PROGRAMAS EN LENGUAJE DE
ALTO NIVEL
●Fundamentos
●Historia de Java
●Componentes de la tecnología Java
●Características de Java
●Comparativa de Java con otros lenguajes de programación
●Tipos de datos
●Operadores
●Estructura básica de un programa en Java
●Entrada-salida de datos en Java por consola
●Sentencias condicionales
●Sentencias de iteración
ARREGLOS
●Declaración de un vector.
●Creación de un vector.
●Subindicación de un vector.
●Inicialización de un vector.
●Operaciones con arreglos
NOTAS Y CALIFICACIONES
Los exámenes se harán entre los días de fechas
programadas, el estudiante deberá estar preparado
para la presentación de los mismos, sin previo aviso.
ASESORIAS Y CONSULTAS
●LUNES
●MIERCOLES
●HORARIO:
Miércoles 11:30-12:30
Viernes 17:15 – 18:15
Todas requieren firma de realización.
PROYECTO INTEGRADOR
●Estar atentos a fechas de revisiones,
que hacen parte de la nota final
BIBLIOGRAFIA
Diseño de algoritmos
●Funcionamiento básico del computador
●Definición de algoritmo
●Proceso para la construcción de algoritmos
●Construcción de algoritmos en seudocódigo y
diagramación estructurada.
●Variables, constantes y tipos de datos
●Operadores y jerarquía
●Procesos de control de flujo
●Asignación
●Condicionales
●Iterativos
Funcionamiento básico del
computador
●Pregunta: ¿Cómo funciona un computador?
●¿Qué hace posible lo que nosotros vemos y
hacemos en el?
Funcionamiento básico del computador
Microscópicos
circuitos y transistores
Reaccionan
a impulsos
eléctricos
Representados
en 1 y 0No tiene engranajes o
partes mecánicas
Funcionamiento básico del computador
Representados en 1 y 0
Código binario
Interpreta el código binario Programas (software)
DOS: Intel Athlon
Macintosh: Power PC
Aplicaciones que usan los SO
para comunicarse con el PC
PROGRAMADOR
DEFINICION DE ALGORITMO
●¿Qué es?
●Palabras claves: Orden, lógica, secuencia,
resultado, opciones, pasos, conjunto, objetivo.
●Definición: Un algoritmo es un conjunto finito
de pasos específicos y organizados para
realizar una labor. (Realizar Ejercicio)
●¿De que tipos hay?
Seudocódigo y diagramación estructurada.
ALGORITMOS
●Seudocódigo : Pensado para hacer mas fácil el
entender de un algoritmo, usa una mezcla de
lenguaje natural con algunas convenciones
sintácticas propias de lenguajes de programación.
●Diagramación estructurada: (N-S)Basada en la
representación grafica de procesos, lo que hace
fácil entender los flujos de información, es
conocido como Diagramas de ChapÍn, y mezcla
diagramas de flujo y Seudocodigo.
DIAGRAMAS DE FLUJO
●Es la representación grafica de un proceso, o en
nuestro caso de un algoritmo.
●Usa figuras que representan las partes que
conforman los pasos o procesos que se realizan.
●Es utilizado en varias disciplinas, como la sicología,
la ingeniería industrial, entre otros.
●Algunos símbolos de los diagramas de flujos son.
Proceso para la construcción de
algoritmos
●Seudocódigo.
Estructura a seguir en su realización:
●Cabecera.
●Programa.
●Módulo.
●Tipos de datos.
●Constantes.
●Variables.
●Cuerpo.
●Inicio.
●Instrucciones.
●Fin.
La cabecera describe el
programa y sus tipos de datos.
El cuerpo establece los pasos que
se realizan, en un lenguaje claro,
haciendo énfasis si es captura,
proceso, decisión o resultado.
Proceso para la construcción de
algoritmos
●Diagramas de flujo
Lo primero, pueden existir múltiples versiones, lo
importante es entender la simbología que se usa.
Lo segundo entender cada símbolo y su uso.
Debe definirse donde se guardan los datos.
Se debe entender plenamente el problema
INICIO
CONDICION
INGRESO
DATOS
SALIDA
DATOS
PANTALLA
PROCESO CONECTOR
SALIDA
IMPRESORA
FLUJO
Casos Diagramas de flujo
Su cumple condición
haga, de lo contrario siga
Es A o es B
Haga hasta mientras se
cumpla condiciones
Proceso para la construcción de
algoritmos
●Diagramas Estructurados (Nassi-Schneiderman)
1.Entender el problema.
2.Manejar la simbología de cada caja.
3.Entender y aplicar las restricciones de información.
4.Limitarlo a un solo folio o documento.
Restricciones de información:
a.La primera caja lleva el titulo o nombre del diagrama.
b.La ultima debe ser el cuadro fin.
c.Todas la variables y funciones deben ir después del
cuadro inicio.
d.Las estructuras cíclicas deben ser visibles y claras.
PARAMETROS DIAGRAMA
ESTRUCTURADO
PARAMETROS DIAGRAMA
ESTRUCTURADO
PARAMETROS DIAGRAMA
ESTRUCTURADO
EJEMPLOS
●La lámpara. (ver apuntes)
El problema es del foco o de la lámpara y que se
debe hacer en cada caso.
MANEJANDO CICLOS
●Elevar b tantas veces n, es decir por ejemplo 2
4
donde 2=b n=4
INICIO
Capturo b
Capturo n
Resultado=b
Conteo=1
1) 2x2=4
2) 4x2=8
3) 8x2=16
O lo mismo
que 2x2x2x2
EXPLICACION
resultado=resultado x b
conteo=conteo+1
Conteo=n
no
resultado
EJERCICIOS DE PRACTICA EN LOS TRES
MODELOS
●Ir a clase.
●El desayuno. (3 opciones)
●La licorera. (5 opciones)
●Hacer la tarea de programación.
●Promedio de 3 notas (entre 10 y 100) validando que aprobó, si
promedio es igual o superior a 30. (ver una segunda versión que
realiza la operación hasta que decida salir)
●Presentar números hasta 100: De Uno en Uno, De Dos en Dos, Los
primos .
●Hacer un horóscopo, que varié según el día de la semana y siga
preguntando el signo hasta que decida salir.
●Representar la siguiente secuencia y proyectarlas hasta el numero
que se pida: 1,7,9,11,17,19,21,27,29
Variables, constantes y tipos de datos
Operadores y jerarquía
Procesos de control de flujo
Asignación
Condicionales
Iterativos
VARIABLE: El que recibe un valor y el mismo varia durante la ejecución del programa.
CONSTANTE: El que recibe un valor y el mismo NO cambia durante la ejecución del
programa.
TIPOS DE DATOS: Es la clase de valor que recibe la constante o variable, ejemplo haya tipos
de datos entero, dobles, flotante, booleano, cadena, carácter, array.
OPERADORES: Suma +, Resta -, Multiplicación *, División /, El residuo de la división MOD,
Porcentaje %, el paréntesis (), y pueden existir diversos operadores, a continuación se
presentan los usados en Java.
OPERADORES EN JAVA
OPERADORES DE ASIGNACION
( ) fuerzan una prioridad en la ejecución
00000000000000000000000000100001 : j = 33
00000000000000000000000010000100 : k = 33 << 2 ; k = 132
EJEMPLO
1 + 3 * 4
1 + 3 – 4
(1 + 3) * 4
result = 1 + 2
result = result – 1
result = result * 2
result = result / 2
result = result + 8
result = result % 7
16
0
13
2
2
3
4
10
3
ASIGNACION
Prácticamente lo hemos utilizado en todos los ejemplos de variables y operadores. Es
el operador de asignación.
Este aparece con un signo igual (=). Cambia el valor de la variable que está a la
izquierda por un literal o el resultado de la expresión que se encuentra a la derecha.
par = 2;
perímetro = Pi * diámetro;
En el ejemplo vemos la variable par toma el valor de 2 y perímetro el resultado de una
expresión.
CONDICIONALES
SI DE LO CONTRARIO: IF ELSE
Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control
evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la
sentencia(1) o sentencias que se encuentra a continuación.
En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta existe).
La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes
sentencias.
Sintaxis:
if (expresionLogica) {
sentencia_1;
}
o bien (con dos ramas):
if (expresionLogica) {
sentencia_1;
}
else {
sentencia_2;
}
CONDICIONALES
EN CASO DE: SWITCH
Es una sentencia condicional multiramificada o de selección múltiple:
dependiendo del valor de una variable o expresión entera permite ejecutar una
o varias sentencias de entre muchas.
Sintaxis:
switch (expresion) {
case valor_1: sentencias_1; break;
case valor_2: sentencias_2; break;
...
case valor_n: sentencias_n; break;
[default: sentencias_x;]
}
Iterativos
PARA: De un valor hasta otro valor en un conteo pre-establecido
SENTENCIA FOR
Esta sentencia se encuentra en la mayoría de los lenguajes de programación.
El bucle for se empleará cuando conocemos el número de veces que se ejecutará una
sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que
adopta la sentencia for es:
El primer término inicialización, se usa para inicializar una variable índice, que controla el
número de veces que se ejecutará el bucle. La condición representa la condición que ha
de ser satisfecha para que el bucle continúe su ejecución. El incremento representa la
cantidad que se incrementa la variable índice en cada repetición.
Ejemplo: for (int i = 0; i < 10; i++)
{
System.out.println(i);
}
Iterativos
SENTENCIA MIENTRAS “WHILE”
A la palabra reservada while le sigue una condición encerrada entre paréntesis.
El bloque de sentencias que le siguen se ejecuta siempre que la condición sea
verdadera tal como se ve en la figura. La forma general que adopta la
sentencia while es:
while (condición)
sentencia;
EJEMPLO
int i=0;
while (i<10)
{
System.out.println(i);
i++;
}
Iterativos
La sentencia do...while
Como hemos podido apreciar las sentencias for y while la condición está al principio
del bucle, sin embargo, do...while la condición está al final del bucle, por lo que el
bucle se ejecuta por lo menos una vez tal como se ve en la figura.
do marca el comienzo del bucle y while el final del mismo.
La forma general es:
Do
{
sentencia;
}while(condición);
EJEMPLO
int i=0;
do
{ System.out.println(i); i++;
}while(i < 10);
FIN PRIMERA UNIDAD
REFUERZO UNIDAD
Primera Observación Importante: Java maneja operaciones con un orden especifico
en los programas, el orden general teniendo presente todos los operadores vistos y
algunos que serán profundizados mas adelante, seria el siguiente:
Si existen de igual rango, se despejan de izquierda a derecha
ORDEN DE LAS OPERACIONES EN JAVA
Las soluciones a los siguientes problemas serian:
2-4*5= 18
i=7
i++/2= 4
(1+7) +2*5=18
1+4+5+2*5= 20
A=5 B=2
A++ * B=12
8*3/3%5=6
17++/(3+2)%3=2
Coincide con sus resultados?
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While, Switch, For según el caso del área señalada
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONSTRUYA LOS SIGUIENTES FLUJOS E INCLUYA
LA PRUEBA DEL MISMO
●Ingrese un numero, de 3 a N, si el numero es múltiplo de 5,
elévelo a la 3 potencia, de lo contrario sume los numero
que hay desde 1 hasta ese numero, valide previamente que
no ingresen valores menores de 3, antes de hacer cualquier
operación.
●Tome 3 valores, almacenados en A, B, C, y diga cual es el
mayor.
●Tome 2 valores, A y B, y sume todos los números impares
que existan entre esos números, ejemplo Entre 6 y 15,
existen 7,9,11,13 y seria igual a 40, valide previamente que
existan al menos 1 numero de diferencia entre A y B, de los
contrario informe que no existen números entre A y B.
Por ultimo no olvide revisar la teoría
vista en la unidad
Éxitos en su examen…. Este se realizara en la primera clase de
la semana de exámenes.
UNIDAD II
CODIFICACIÓN DE PROGRAMAS EN LENGUAJE DE
ALTO NIVEL
●Fundamentos
●Historia de Java
●Componentes de la tecnología Java
●Características de Java
●Comparativa de Java con otros lenguajes de programación
●Tipos de datos
●Operadores
●Estructura básica de un programa en Java
●Entrada-salida de datos en Java por consola
●Sentencias condicionales
●Sentencias de iteración
HISTORIA DE JAVA
Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a
principio de los años 90´s.
En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios
colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto
conocido como "El proyecto verde".
Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill
Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y
trabajó sin descanso durante 18 meses.
Intentaban desarrollar una nueva tecnología para programar la siguiente generación de
dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de
programación fácil de aprender y de usar.
En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo
encontraron inadecuado. Gosling intentó primero extender y modificar C++ resultando el
lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo
abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la
versión mas aceptada, por el roble que veía a través de la ventana de su despacho). Cuyo
trabajo fue apoyado por el proyecto verde, creado para apoyar las investigaciones hasta 1994.
HISTORIA DE JAVA
●Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento
del fenómeno mundial WEB. Al examinar las dinámicas de Internet, lo
realizado por el ex equipo verde se adecuaba a este nuevo ambiente.
●Patrick Naughton procedió a la construcción del lenguaje de programación
Java que se accionaba con un browser prototipo. El 29 de septiembre de
1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la
demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de
Java y se acepta el proyecto.
●Con el paso del tiempo HotJava se convirtió en un concepto práctico
dentro del lenguaje Java y demostró que podría proporcionar
multiplataformas para que el código pueda ser bajado y corrido del Host
del World Wide Web y que de otra forma no son seguros.
Una de las características de HotJava fue su soporte para los "applets", que
son las partes de Java que pueden ser cargadas mediante una red de trabajo
para después ejecutarlo localmente y así lograr soluciones dinámicas en
computación acordes al rápido crecimiento del ambiente WEB.
HISTORIA DE JAVA
●El 23 de mayo de 1995, en la conferencia SunWorld `95, John
Gage, de Sun Microsystems, y Marc Andreessen, cofundador y
vicepresidente de Netscape, anunciaban la versión alpha de Java,
que en ese momento solo corría en Solaris, y el hecho de que Java
iba a ser incorporado en Netscape Navigator, el navegador mas
utilizado de Internet.
●Con la segunda alpha de Java en Julio, se añade el soporte
para Windows NT y en la tercera, en Agosto, para Windows 95.
En enero de 1995 Sun formá la empresa Java Soft para dedicarse
al desarrollo de productos basados en la tecnologías Java, y así
trabajar con terceras partes para crear aplicaciones, herramientas,
sistemas de plataforma y servicios para aumentar las capacidades
del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK.
Componentes de la tecnología
Java
●Un programa en Java se compone de los
siguientes elementos:
1. Los comentarios: No son obligatorios, pero
son fundamentales para documentar un
programa.
2. Las sentencias: Son ordenes que se le dan al
programa para realizar una tarea especifica.
Componentes de la tecnología Java
3. Definición de clases: Es un conjunto de
objetos que se relacionan.
4. Definición de métodos: Conjunto de
operaciones agrupadas bajo un nombre.
5. Identificadores: Es un nombre con el cual
diferenciamos a una variable, método o una
clase.
Componentes de la tecnología Java
6. Bloques de código: Es un grupo de sentencias que
se comportan como una unidad. Un bloque de
código está limitado por las llaves de apertura { y
cierre }
7. Variables: Una variable es un nombre que se
asocia con una porción de la memoria del
ordenador, en la que se guarda el valor asignado a
dicha variable
8. Expresiones: Una expresión es todo aquello que
se puede poner a la derecha del operador asignación
=
SINTAXIS DE CADA COMPONENTE
COMENTARIOS
En Java existen tres tipos de comentarios
●Comentarios en una sola línea
//imprime un mensaje
●Comentarios de varias líneas
/* Aquí escribo el bloque de comentario*/
●Comentarios de documentación
/** Aquí escribo el bloque de comentario */
SINTAXIS DE CADA COMPONENTE
SENTENCIAS
Todas las ordenes en Java acaban con ; este carácter
separa una sentencia de la siguiente. Normalmente,
las sentencias se ponen unas debajo de otras,
aunque sentencias cortas pueden colocarse en una
misma línea.
int i=1;
import java.awt.*;
System.out.println("El primer programa");
rect.mover(10, 20);
SINTAXIS DE CADA COMPONENTE
CLASES
Las clases para ser definidas requieren un
modificador de acceso, la palabra reservada class, el
nombre o titulo de la clase y un bloque de código.
public class NombreApp{
}
SINTAXIS DE CADA COMPONENTE
METODOS
Los métodos para ser definidos requieren estar contenidos en
una clase, poseer un modificador de acceso, el nombre o
titulo del método, una lista de argumentos y un bloque de
código.
public class calculadora{
public int sumar( int A, int B){
}
}
SINTAXIS DE CADA COMPONENTE
IDENTIFICADORES
Un identificador es un nombre que identifica a una
variable, a un método o función miembro, a una clase.
●Todos los identificadores han de comenzar con una letra,
el carácter subrayado ( _ ) o el carácter dólar ( $ ).
●Puede incluir, pero no comenzar por un número
●No puede incluir el carácter espacio en blanco
●Distingue entre letras mayúsculas y minúsculas
●No se pueden utilizar las palabras reservadas como
identificadores
SINTAXIS DE CADA COMPONENTE
Tipo de identificadorConvención Ejemplo
nombre de una claseComienza por letra mayúscula
String, Rectangulo,
CinematicaApplet
nombre de función comienza con letra minúscula calcularArea, getValue, setColor
nombre de variable comienza por letra minúscula area, color, appletSize
nombre de constanteEn letras mayúsculas PI, MAX_ANCHO
IDENTIFICADORES
Hay ciertas convenciones que hacen que el programa sea más legible y que aplican a
los identificadores, pero que no afectan a la ejecución del programa. La primera y
fundamental es la de encontrar un nombre que sea significativo, de modo que el
programa sea lo más legible posible. El tiempo que se pretende ahorrar eligiendo
nombres cortos y poco significativos se pierde con creces cuando se revisa el programa
después de cierto tiempo.
SINTAXIS DE CADA COMPONENTE
BLOQUES
Los bloques { } se evidencias en la definición de
clases y métodos, pero también se pueden apreciar
en el manejo de iteraciones y condicionales
public class PrimeroApp{
public static void main(String[] args) {
System.out.println("El primer programa");
}
}
SINTAXIS DE CADA COMPONENTE
VARIABLES
Todas las variables han de declararse antes de usarlas, la
declaración consiste en una sentencia en la que figura el
tipo de dato y el nombre que asignamos a la variable.
Una vez declarada se le podrá asignar valores.
Java tiene tres tipos de variables:
●de instancia usadas para declarar atributos de un
objeto
●de clase similar al de instancia, solo que sus valores son
iguales para todos los objetos que se creen.
●Locales son las que se declaran antes de usarlas.
SINTAXIS DE CADA COMPONENTE
●Ejemplos de declaración de variables y
expresiones.
int x=0;
String nombre="Angel";
double a=3.5, b=0.0, c=-2.4;
boolean Nuevo=true;
int[] datos;
.
¿Qué es Java?
Características
La tecnología Java es un
lenguaje de programación y
una plataforma.
.
La plataforma Java 2
●Una plataforma software que se ejecuta sobre
otra plataforma hardware/software.
●La Máquina Virtual Java La interfaz de Programación
(JVM)de Aplicaciones (API)
Intérprete de JavaConjunto de clases ya desarrolladas
.
La plataforma Java 2
.
Características Principales
●Sencillo
●Orientado a objetos
●Distribuido
●Interpretado
●Robusto
●Seguro
●Arquitectura neutra
●Portable
●Altas prestaciones
●Multithread (multihilo)
●Dinámico
.
Características: Sencillo
●Elimina algunas de las características de C y C++:
●Adicionalmente Posee clase String.
●No tiene necesidad de asignar y liberar memoria (Garbage
Collector).
.
Características: Orientado a objetos
●Java trabaja con sus datos como objetos y con
interfaces a esos objetos.
●Implementa:
●Encapsulación.- Interfaces.
●Herencia simple.- Paquetes.
●Abstracción.
●Reutilización.
●Polimorfismo.
.
Características: Distribuido
●Concebido para trabajar en un entorno
conectado en red.
●En sí no es distribuido, proporciona librerías y
herramientas para que los programas puedan
ser distribuidos, que los programas corran en
varias máquinas interactuando.
.
Características: Interpretado
●Compilador tradicional
●Traslada sentencias
alto-nivel a múltiples
instrucciones.
●Creación de librerías
como resultado de
compilaciones
previas.
●Juntando, se crea
programa ejecutable.
.
Características: Robusto
●No se interrumpe fácilmente.
●Evita sobreescribir o corromper memoria
mediante punteros.
●Manejo de excepciones.
●Verificación de ByteCodes (por ejemplo no
acceso ilegal de memoria).
.
Características: Seguro
●Aplicaciones seguras ya que no acceden a
zonas delicadas de memoria o de sistema
●No existen punteros, no acceso a zonas delicadas de
memoria.
●Una applet no puede acceder al sistema, a los archivos
de la persona que lo está viendo.
.
Características: Arquitectura neutra
●Java compila el código a un fichero objeto de
formato independiente de la arquitectura de
la máquina en que se ejecutará.
●Cualquier plataforma donde exista una JVM se
puede ejecutar el código objeto
independientemente de la máquina en el que
ha sido generado.
.
Características: Arquitectura neutra
●Código fuente se compila
a un código de bytes
independientemente
de la máquina.
● Los ByteCodes se
ejecutan en una
máquina hipotética
que se implementa
por un sistema
run-time, que es
dependiente
de la máquina.
Tiempo de compilación
Tiempo de ejecución
.
Características: Arquitectura neutra
●Elementos que forman parte de arquitectura de Java sobre
una plataforma genérica.
●Dependiente del sistema:
●JVM.
●Librerías fundamentales.
●APIs de Java que
entren en contacto
directo con el hardware.
.
Características: Portable
●Más allá de la portabilidad básica por
ser de arquitectura independiente.
.
Características: Altas prestaciones
●Compiladores JIT (Just in time): Compilan en el
momento de ejecución.
●Traslada los bytecodes al
código máquina de la plataforma
según los va leyendo, realizando
cierto grado de optimización.
● JIT no pierde tiempo en
optimizar código que no se ejecutará.
.
Características: Altas prestaciones
●Se introdujo un nuevo JIT: HotSpot.
●Incluye compilador dinámico
y una máquina virtual para
Interpretar bytecodes.
●Mejor soporte para ordenadores
con varios procesadores,
mayor escalabilidad.
.
Características: Multithread
●Ejecución de varias tareas a la vez. Permite
muchas actividades simultáneas en un
programa.
●Posee una serie de clases que facilitan su
utilización.
●Mejor rendimiento interactivo y mejor
comportamiento en tiempo real.
.
Características: Dinámico
●No conecta todos los módulos que
comprenden una aplicación hasta el mismo
tiempo de ejecución.
●Las librerías nuevas o actualizadas no paralizan
la ejecución de las aplicaciones siempre que
mantengan la API anterior.
.
Características: Dinámico
●Capaz de traer automáticamente cualquier pieza que
el sistema necesite para funcionar.