¿Hasta qué punto puedo aprender Java después de graduarme de la universidad?
1. Relacionado con JVM (incluidas las características de cada versión)
Para aquellos que son nuevos en Java, el conocimiento relacionado con JVM no necesariamente requiere una comprensión muy profunda. una simple comprensión de los conceptos. Sin embargo, para un desarrollador senior con más de 3 años de experiencia en Java, no conocer JVM es casi inaceptable.
JVM es la base de Java Es difícil creer que una persona que no sabe nada sobre JVM pueda dominar el lenguaje Java. Cuando entrevisto a desarrolladores con más de 3 años de experiencia en Java, JVM es casi una pregunta obligada. Por supuesto, JVM no es la única pregunta de la entrevista que determina la capacidad técnica, pero puede demostrar el nivel de habilidades de desarrollo de Java.
En la categoría JVM, el autor cree que el conocimiento que es necesario dominar es:
Modelo y estructura de memoria JVM
Principios de GC, ajuste del rendimiento
Ajuste: volcado de subprocesos, análisis de la estructura de la memoria
Estructura de código de bytes binario de clases, sistema de carga de clases, proceso de carga de clases, proceso de creación de instancias
Carga de clases de clases Sistema de servidor , proceso de carga de clases, proceso de creación de instancias
Proceso de ejecución del método
Nuevas características proporcionadas por las principales actualizaciones de Java (deben entenderse brevemente)
2. Ejecute Java (Básicamente necesario)
Esta pregunta parece simple, pero ¿quién no sabe cómo ejecutar un programa Java? Sin embargo, muchas veces, simplemente ejecutamos programas Java a través de IDE. ¿Cómo ejecuta la capa inferior del IDE los programas Java? Mucha gente no lo entiende.
Este conocimiento es el conocimiento más básico que los desarrolladores de Java deben dominar. Cuando aprendes Java por primera vez, primero debes aprender cómo ejecutar programas Java en la línea de comandos. Sin embargo, una vez que muchas personas han terminado de aprender. Java, usos IDE Después de eso, olvídate de esto. ¿Por qué enfatizar la necesidad de saber esto? Después de conocer la forma más pura de iniciar Java, puede analizar cuántos directorios se iniciaron en el momento del inicio, cómo se nombra la ejecución, cuáles son los parámetros, si hay omisiones, etc. Esto le ayudará a desarrollar y resolver problemas. Esto le ayudará a resolver esos extraños problemas relacionados con el entorno en el desarrollo real.
El conocimiento que necesita dominar aquí es:
javac compila archivos java en archivos de clase
El uso del comando java, cómo usar el paquete java clase en el comando La ruta (classpath, java.library.path, java.library.path) involucrada en el inicio del programa Java en la línea. Library.path, java.library.path, el directorio de inicio del tiempo de ejecución de Java, etc.)
3. Tipo de datos
Este artículo no tiene mucho que decir, solo presenta. Tipos básicos de Java y tipos de objetos en .
Puede obtener más información sobre cómo JDK convierte automáticamente, incluido el boxeo y el unboxing, y tenga cuidado de evitar juicios de igualdad de tipos después del boxeo.
Puntos de conocimiento principales:
Tipos básicos: int, long, flotante, doble, booleano, ....
Tipos de objetos correspondientes: conversión, empaquetado y desempaquetado de números enteros y otros tipos a tipos básicos
Tipo de objeto: signo igual, código hash
Características del tipo de cadena
4. Objetos e instancias, creación de objetos
En este sentido, los desarrolladores deben comprender los conceptos de clases e instancias y las diferencias entre ellos, que es la base de las características orientadas a objetos de Java. Los principales puntos de conocimiento son:
Los conceptos de clases e instancias
El proceso de creación de instancias:
1. Sin herencia: asignar espacio de memoria, inicializar variables. , llama a los constructores Función
2. Heredado: de la clase base -gt; la subclase maneja operaciones estáticas, asigna espacio de memoria y define los valores iniciales de las variables
Notas:
Las propiedades estáticas, etc. se inicializan desde la clase base-gt; subclase
Características predeterminadas relacionadas con el constructor sin referencia
5. Control de acceso
Esto también es java. Las funciones básicas de encapsulación que es necesario dominar son:
pública protegida predeterminada privada Modificación de clases, métodos y campos
6. Control de procesos
Control de procesos de Java Aunque algunas gramáticas no son necesariamente de uso común, es necesario comprenderlas y utilizarlas cuando corresponda.
Necesita dominar:
Sintaxis de control de procesos como if, switch, loop, for, while, etc.
Conceptos de programación orientada a objetos<. /p>
Este es un concepto central de Java que cualquier desarrollador de Java debe dominar. Según tengo entendido, un buen desarrollador no solo necesita comprender estas características (puntos de conocimiento), sino que también necesita saber cómo se reflejan estos objetos en el concepto de programación orientada a objetos de Java. Esto es más propicio para que los desarrolladores dominen el lenguaje de desarrollo Java. y otros lenguajes de programación orientados a objetos. Aquí hay una breve lista de los principales puntos de conocimiento, que incluyen:
Las tres características principales de la orientación a objetos: encapsulación, herencia y polimorfismo, sus respectivas definiciones conceptuales y qué características se reflejan en su uso respectivo; escenarios
Los conceptos de multidistribución estática y distribución única dinámica
El concepto y uso de la sobrecarga
Herencia: múltiples implementaciones de interfaces, herencia única de base clases
Abstracto, clase abstracta, interfaz
Polimorfismo: el concepto y uso de la sobrecarga de métodos
Devoluciones de llamada de interfaz
8. /p>
En el desarrollo diario de Java, los atributos estáticos también se utilizan con frecuencia. Es necesario comprender el uso de palabras clave estáticas y otras palabras clave, como si se pueden usar palabras clave abstractas, finales y otras.
El contenido principal que necesita saber es:
La definición y el uso de propiedades estáticas, y cómo inicializar estas propiedades cuando se carga la clase.
El definición y uso de métodos estáticos Uso
Definición y uso de clases estáticas
Definición de bloques estáticos y tiempo de inicialización
Puntos de conocimiento básico
Algunos Los puntos de conocimiento están dispersos y no clasificados sistemáticamente. Para algunos puntos de conocimiento de Java, no existe una clasificación sistemática. Se utiliza mucho en el desarrollo diario.
En realidad, hay una gran cantidad de contenido en esta sección, y lo resumiré aquí temporalmente:
Incluyendo:
Equivalencia, código hash, cadena/búfer de cadena, final, finalmente, finalizar
10. Marco de colección
Esta es una parte que debe dominarse al realizar el desarrollo de Java, se puede decir que no hay necesidad de un marco de colección. . Pero los puntos de conocimiento aquí no son difíciles, pero es mejor comprender la implementación interna de la colección, porque esto lo ayudará a elegir el marco apropiado para resolver el problema en diferentes escenarios. Por ejemplo, una colección con elementos de 1W a menudo contiene Judgement. funcionamiento, conociendo las características o implementación interna de la colección, es fácil tomar la decisión correcta.
Esto incluye lo siguiente (sin incluir la concurrencia):
Marco de recopilación del sistema: colección básica, mapa
Contenido de implementación de la colección específica: lista, conjunto, mapa, específico implementación de estructura interna, métodos especiales, escenarios de aplicación
Colecciones de herramientas y otros usos relacionados con las colecciones
11. Marco de excepciones
Es posible que no reciba muchas excepciones. Atención en el desarrollo de Java. En circunstancias normales, si se encuentra una excepción, se lanzará directamente o se detectará y procesará directamente, sin tener un impacto significativo en el funcionamiento general del programa. Sin embargo, en el diseño y desarrollo a nivel empresarial, el diseño y manejo de excepciones a menudo están relacionados con la solidez general del sistema. Para los desarrolladores, un buen sistema de excepciones debe estar unificado en el procesamiento para evitar una gran cantidad de lógica de manejo de excepciones esparcida por todas partes del sistema, las excepciones deben ser controlables y fáciles de operar y mantener. Cuando ocurren algunas excepciones, debe haber formas de lidiar con ellas. con él y saber cómo operarlo y mantenerlo, por lo que, aunque el marco de excepciones es muy simple, el manejo de excepciones es muy importante para todo el desarrollo de aplicaciones a nivel empresarial. Para tener éxito con las excepciones es necesario comprender el sistema de excepciones en Java.
Esta parte no requiere muchos conocimientos, los principales son:
Sistema de excepciones:
Throwable
Excepción
RuntimeException
Error
La diferencia entre RuntimeException y excepciones generales, métodos de manejo específicos, la diferencia entre excepciones generales, métodos de manejo específicos
12 Java IO. p>
IO en Java no es solo tan simple como leer y escribir archivos, sino que también incluye todas las operaciones de entrada y salida, como la lectura y escritura de redes de socket. Por ejemplo, la lectura del contenido de la publicación de solicitud HTTP estándar también es un proceso de salida, etc.
Para IO, Java no solo proporciona API básicas relacionadas con la entrada y la salida, sino que también proporciona algunas operaciones simplificadas como Como las API de lector y escritor también son muy importantes en algunos proyectos de desarrollo (que implican una gran cantidad de operaciones de IO) y también están involucradas en el desarrollo diario general (registro, lectura y escritura de archivos temporales, etc.).
Los principales puntos de conocimiento aquí:
Sistema IO básico: incluye InputStream, OutputStream, lector/escritor, lectura de archivos, lectura de varios flujos, etc.
El concepto, el uso específico y los escenarios de uso de NIO
13.
El subproceso múltiple es una dificultad reconocida en Java. El subproceso múltiple puede mejorar efectivamente la utilización de la CPU y mejorar la eficiencia general del sistema, especialmente cuando se bloquea una gran cantidad de operaciones de IO, pero también es un arma de doble filo si no se usa correctamente, el sistema no mejorará; mucho, o no hay mejora, y también traerá problemas como la depuración entre subprocesos múltiples.
Hay mucho contenido sobre subprocesos múltiples. Solo presenta brevemente los conocimientos que deben dominarse en la etapa inicial del uso de subprocesos múltiples de Java. En el futuro, presentaré los escenarios de uso. de algunas funciones avanzadas en detalle cuando tenga la oportunidad.
Implementación y puesta en marcha de subprocesos múltiples
La diferencia entre invocable y ejecutable
Sincronización, bloqueo reentrante y sus respectivas características y comparación
p>
Grupo de subprocesos
Método asíncrono futuro para obtener resultados de ejecución
Paquete concurrente
Bloqueo
14. Red
Java también proporciona API para operar directamente los protocolos TCP y UDP. Cuando es necesario enfatizar el rendimiento de la red, puede usar TCP/UDP directamente para la comunicación. El uso de estas API relacionadas se puede ver en vistas de Tomcat y otros códigos fuente. Sin embargo, en términos generales, es menos probable que utilice TCP directamente, y se utilizarán marcos como MINA y Netty para manejarlo. Debido a que no hay mucho desarrollo en esta área, no lo enumeraré en detalle.
15. Procesamiento de fecha y hora
Casi todas las aplicaciones no omitirán el procesamiento de fecha y hora, pero las API relacionadas con el tiempo anteriores a JDK8 no eran fáciles de usar. En esa época, había algunos períodos de tiempo para elegir, como Joda. Cuando se lanza JDK8, la nueva API de tiempo básicamente incorpora las ventajas de otros marcos y se puede usar directamente.
Los desarrolladores de Java deben dominar el uso de API para manejar la hora y la fecha.
Los puntos de conocimiento específicos no se enumerarán uno por uno. Escribiré un artículo especial para resumir el uso de la API de fecha y hora en JDK8.
16. Análisis XML/análisis JSON
De hecho, estos dos contenidos no forman parte de J2SE, pero en el desarrollo diario, la interacción con otros programas y archivos de configuración es cada vez más importante. Es inseparable del análisis de estos dos formatos.
Pero para un desarrollador, ser capaz de comprender algunos principios y métodos específicos de análisis XML/JSON le ayudará a elegir mejor el método correcto en varios escenarios específicos y hará que su programa sea más eficiente y robusto. .
XML: debe comprender los principios básicos del análisis DOM y SAX y sus respectivos escenarios de aplicación
JSON: debe comprender el uso de algunos marcos JSON comunes, como Jackson, FastJson, Gson, etc.
17. El uso de Maven
Maven no es parte de Java, pero Maven es revolucionario y aporta una gran comodidad al desarrollo de Java. Desde la introducción y gestión de dependencias, la actualización y el lanzamiento del proceso de desarrollo, e incluso las actualizaciones de versiones, el uso de maven puede simplificar enormemente el complejo proceso de desarrollo, ahorrando así mucho tiempo. Se puede decir que Maven se ha convertido en el estándar para los desarrolladores de Java. Por eso considero que Maven es el conocimiento básico necesario para los desarrolladores de Java. También publicaré algunas de mis experiencias y consejos sobre el uso de Maven más adelante, por lo que no entraré en detalles aquí.
Lo anterior es un análisis del conocimiento y la práctica básicos para comenzar con Java. Se puede ver que siempre que los principiantes de Java dominen los métodos de aprendizaje y continúen estudiando e investigando, es relativamente fácil. empezar.
¡Espero que te ayude! ~