Contenidos
En este apartado se incluye un índice de todo lo que podría entrar en el examen.
Fundamentos de Java
- Variables
- Tipos de datos primitivos (
int,char,float, etc.) - Conversión de tipos (casting implícito y explícito)
- Literales
- Palabras reservadas
- Comentarios
- Operadores aritméticos, lógicos y relacionales
- Precedencia de operadores
- Constantes
- Ámbito de variables (scope)
Entrada/salida de datos
- Entrada por consola (
Scanner) - Salida por consola (
System.out)
Strings y caracteres
- Tipo
String - Tipo
char - Métodos básicos de
String StringBuilderyStringBuffer- Inmutabilidad de
String - Métodos avanzados de String
Estructuras de control selectiva
- Estructura
if - Estructura
if-else - Estructura
else-if - Estructura
switch - Operador ternario (
?:)
Estructuras de control repetitivas
- Bucle
while - Bucle
do-while - Bucle
for - Bucle
for-each(enhancedfor) - Sentencias
breakycontinue
Arrays
- Declaración y creación de arrays (vectores)
- Arrays multidimensionales
- Acceso a elementos
- Recorrido de arrays
Métodos
- Declaración de métodos
- Parámetros y argumentos
- Valor de retorno (
return) - Sobrecarga de métodos
- Ámbito de variables en métodos
Recursividad
- Concepto de recursividad
- Casos base y recursivos
- Ejemplos de algoritmos recursivos
Programación orientada a objetos (POO)
Conceptos fundamentales
- Clases y objetos
- Atributos y métodos
- Tipos de referencia
- Creación de objetos (
new) - Constructores (por defecto, parametrizados, sobrecarga)
- Palabra clave
this
Conceptos fundamentales de la POO
- Encapsulamiento
- Modificadores de acceso (
public,private,protected,default) - Getters y setters
- Modificadores de acceso (
- Herencia
- Extensión de clases (
extends) - Palabra clave
super - Sobrescritura de métodos (
@Override) - Clase
Object
- Extensión de clases (
- Polimorfismo
- Polimorfismo en tiempo de compilación (sobrecarga)
- Polimorfismo en tiempo de ejecución (sobrescritura)
Conceptos avanzados
- Atributos y métodos estáticos vs. no estáticos
- Palabra clave
final(variables, métodos, clases) - Clases abstractas
- Interfaces
- Composición vs. herencia
- Clases helper (utilidades)
- Clases internas (inner classes)
Enumeraciones
- Declaración de enumeraciones (enums)
- Uso de enums
- Métodos en enums
Biblioteca estándar de Java
- Exploración de paquetes principales
- Clases útiles de la API estándar
Clases wrapper
- Clases envolventes (
Integer,Double,Boolean, etc.) - Autoboxing y unboxing
- Métodos útiles de wrapper classes
Números
- Clase
BigInteger - Clase
BigDecimal
Expresiones regulares
Excepciones y manejo de errores
- Concepto de excepción
- Jerarquía de excepciones
try-catchtry-catch-finallytry-with-resourcesthrowvsthrows- Excepciones checked vs. unchecked
- Creación de excepciones personalizadas
Paquetes
- Organización en paquetes (
package) - Declaración de paquetes
- Importación de paquetes
- Modificador de acceso default (
package-private)
Estructuras de datos
Implementación manual de estructura de datos
- Array dinámico
- Lista simplemente enlazada
- Pila (Stack)
- Cola (Queue)
Algoritmos
- Algoritmos de ordenación
- Algoritmos de búsqueda
- Otros algoritmos
Colecciones de Java
- Interfaz
Collection - List (
ArrayList,LinkedList,Vector) - Set (
HashSet,LinkedHashSet) - Map (
HashMap,TreeMap,LinkedHashMap) - Interfaces
IterableeIterator - Clase
Collections(métodos útiles) - Comparación de objetos (
ComparableeComparator)
Programación funcional
- Expresiones Lambda
- Sintaxis de lambdas
- Interfaces funcionales
- Uso de lambdas
- Streams