Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible.

Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o “write once, run anywhere”), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.

Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios.


1. Instalar los programas necesarios

Primer video del Curso de Java en el que se explica en que va a consistir y se explica como instalar los programas necesarios para empezar a programar en Java.

2. Primer Hola Mundo

Se enseña ha realizar el primer Hola Mundo en Java, ademas del manejo basico de Eclipse y los metodos System.out.print y System.out.println

3. Atributos

Muestra de que son y para que sirven los atributos en Java ademas de como mostrarlos por pantalla.

4. Operaciones con Atributos

Video en el que se explica que son las operaciones con los atributos y como se realizan estas. La base de la programacion!!

5. Introduciendo Datos por Teclado

Explicacion de como introducir datos por teclado con la clase Scanner.

6. Ejemplo Intercambio Atributos

Ejemplo en el que se aplican conceptos ya explicados y en el que se realiza el intercambio de valores de dos atributos.

7. if/else y Ejemplo numero par

Explicacion de que son las Sentencias Selectivas y ejemplo con if/else y comprobar si un numero es par o impar.

8. Tipo Boolean y Condicionales Anidados

Se explica que son los condicionales anidados con un ejemplo sobre temperaturas y tras esto se explica que es el tipo booleano.

9. Tipo Char y Switch

Explicacion de que son las variables de tipo char y que es y como se utiliza la sentencia selectiva switch.

10. Condiciones Multiples

En este video se explica que son las condiciones multiples con un ejercicio en el que se explica como introducir una hora correcta y tras sumarle un segundo, que se incremente.

11. Bucles While y For

Introducción a que es y como se utilizan los bucles For y While en Java.

12. Ejemplo Bucles For y While

Explicacion de dos ejemplos usando los bucles for y while para asentar los conocimientos del video anterior.

13. Bucle Do While

Video donde se explica que es el bucle Do While y como usarlo junto con las diferencias que tiene con el resto de bucles.

14. Ejemplo Menu Bucle Do While

Ejemplo en el que vemos como realizar un Menu con un bucle Do While y un Switch.

15. Bucles Anidados

Ejemplo en el que se realiza un programa para hacer las tablas de multiplicar del 1 al 10.
PDF con Ejercicios:
(Se pueden hacer todos excepto el ejercicio 10)
https://dl.dropboxusercontent.com/u/5…

16. Depurar y Ejemplo de Numeros Primos

Video dividido en dos partes, por un lado se enseña a utilizar la herramienta de nuestro IDE Eclipse para depurar y en la segunda parte, se enseña a hacer un ejercicio en el que al final planteare algunas dudas y el uso del depurador.

17. Condiciones Multiples y eficiencia

Video en el que se explica como conseguir todos los numeros primos entre dos numeros, se hace un repaso en el uso del depurador y se explica como poner una condicion multiple ayuda en la eficiencia.

18. ¿Que es un Vector?

En este video se explica que es, como se declara y utiliza un vector. Para esto se realiza un ejemplo sencillo en el que se escribe y luego se lee de un vector.

19. Nueva declaracion de Vectores Y Ejemplo

Se explica un nuevo tipo de declaracion de vectores para hacerlo en tiempo de ejecucion y un ejemplo donde se aprende a realizar la media de todos los elementos de un vector.

20. Length y Ordenamiento de un Vector

Explicacion de una nueva forma para declarar vectores ya inicializados y el metodo length para saber cual es la longitud de un vector. Todo esto se explica con un ejemplo en el que se ve como ordenar un vector de menor a mayor mediante el metodo de la burbuja.

21. Comparacion de Vectores.

En este video se explica como comparar dos vectores y que son las direccion es de memoria.

Tambien se explica que ocurre cuando te sales en un vector del rango de tu longitud.

Link a wikipedia de Direcciones de Memoria:http://es.wikipedia.org/wiki/Direccion_de_memoria

22. ¿Que son los String y Como se comparan?

Introduccion sobre que son los String y y como utilizarlos y compararlos.

23. Scanner y Cifrado de Cesar

En el video se explica como introducir por teclado Strings y se hace un ejemplo en el que se realiza el cifrado de cesar que sirve para aprender a acceder a cada una de las letras de un String.

24. ¿Que es una matriz?

Explicacion de que es una matriz y como escribir y acceder a ella.

25. Comparacion de Matrices y Autoincremento

Se enseña a declarar de una manera diferente las matrices, como se comparan dos matrices y como funciona realmente el autoincremento.

26. Introduccion a la POO

Primer video donde se expica hace una introduccion a la Programacion Orientada a Objetos (POO), en el se explica que es una clase y un objeto.

27. Public y Private en POO

Video que hace un breve repaso de la POO y donde se explica que son private y public.

28. ¿Que son los Metodos?

Se explica que son y como utilizar los metodos de una clase.

29. Ejemplo POO con Batalla por turnos

Video en el que se resume y ejercita lo visto hasta el momento de programación orientada a objetos haciendo un pequeño sistema de batalla por turnos muy simple.

30. ¿Que es un Constructor?

Video en el que se explica que son los Constructores en la Programacion Orientada a Objetos (POO).

31. Static en Atributos y Metodos

Explicacion de que son los metodos y atributos estaticos con un pequeño ejemplo.

32. Ampliando Constructores

Ejemplo en el que se ve como se pasan objetos a través del constructor y tambien se ve que ocurre cuando se igualan dos objetos.

33. Vector de Objetos y Referencias

Explicacion mas detallada de que es la referencia de un objeto y se enseña que son los vectores de objetos con un ejemplo.

34. (Polimorfismo) Introduccion a la Sobrecarga

Se explica una variante del Poliformismo de Metodos, la sobrecarga, con un ejemplo muy sencillo donde solo se ve el uso de la sobrecarga en una clase.

35. Atributos Final

Se explica que son los atributos final y como se inicializan con varios ejemplos, mostrando los errores que se reciben cuando se hace de manera erronea.

36. Sobrecarga de Constructores

Explicacion sobre que como aplicar la sobrecarga de constructores y un ejemplo de como solucionar la clonacion de un objeto con usando un constructor de copia.

37. Clase Vector y Ejemplo Pokemon

Ejemplo en el que se muestra lo que se puede hacer con los conocimientos actuales, el ejemplo en cuestion trata sobre un sistema de batalla entre dos pokemon, explico las decisiones que he tomado y por ultimo se enseña a utilizar un vector dinamico de la clase Vector.

38. ¿Que es la Herencia?

Explicación sobre que es la herencia con un ejemplo donde al comienzo no se utiliza y al final se usa para comprobar los beneficios que aporta.

39. Sobreescribir Metodos y Protected

Explicacion de que es y como se realiza la sobreescritura de metodos en la herencia y para que sirve el tipo Protected.

40. Polimorfismo en Referencias

Explicación de que es el polimorfismo aplicado a los objetos, de manera que se instancia en una referencia un objeto diferente de esta.

41. Clases Abstractas y ejemplo Pokemon

Explicacion sobre que son y como se utilizan las clases abstractas en Java con un ejemplo de un entrenador Pokemon que captura a varios Pokemon de diferentes especies.

42. ¿Qué son las Interfaces?

Video en el que se explica que las interfaces son algo muy parecido a las clases abstractas, haciendo especial relevancia a la comparacion entre estas dos.

43. Excepciones

En el video se explica el manejo básico de las excepciones, explicando como se utiliza el bloque try catch, como recoger varias excepciones diferentes y para que se usa finally.

44. Herencia e Interfaces

Pagina utilizada para hacer los diagramas UML: https://www.genmymodel.com/
En este video se explican los ultimos conceptos que nos quedan por ver sobre herencia e interfaces, realmente es reunir todos los conceptos que ya sabiamos y darle un vuelta de tuerca mas.

Se explica la herencia con multiples capas, la implementacion de interfaces y herencia, la herencia de interfaces y la herencia multiple.

45. Introduccion- (Programación concurrente)

Explicación de que es la programación concurrente, sus ventajas e inconvenientes y que es lo que se va a enseñar en esta nueva lista de reproducción.

46. Lanzando Hilos

Video en el que se enseña a lanzar hilos y cuales son las principales cosas a tener en cuenta de estos.

47. Join() y lanzar hilos desde Vector

En el vídeo se enseña a lanzar hilos desde un vector y se enseña para que se utiliza el metodo join()

48. Indeterminismo

Explicacion de que es el indeterminismo y porque se produce, introduciendo el concepto de Seccion Critica y Exclusion Mutua.
Lectura Recomendada:
http://es.wikipedia.org/wiki/Hilo

49. Solucionando el Intederminismo

Introducción de la primera técnica para evitar el indeterminismo con un ejemplo, donde se ve como multiplicar por 10 todos los elementos de un vector de forma concurrente sin problemas de indeterminacion.

50. Paralelismo vs Concurrencia

Primer video sobre Teoria de programacion concurrente en el que se explica que es la concurrencia, que es el paralelismo y la diferencia entre ambos.

51. Medir Tiempo

Explicacion de como evitar el indeterminismo en matrices con la tecnica vista en el bloque donde se trata de subdividir la matriz de forma que ningun elemento sea tratado por mas de un hilo. Ademas de esto se enseña a como medir el tiempo en Java.

* Autor de este curso Emilio Bello, puedes ver este curso y otros cursos en su canal de youtube Cursos Empieza a programar de Emilio Bello