¿Cómo aprende Xiaobai Java? Algunos consejos para los principiantes de Java

El propósito de escribir este artículo es resumir parte de mi experiencia en el uso de Java durante tantos años, principalmente relacionada con algunos conocimientos básicos de Java, por lo que también espero compartirlo con los programadores de Java que recién están comenzando y planean desarrollar esto. en Java. Prospectos novatos en la industria, espero poder brindarles algo de experiencia para que puedan aprender y usar Java mejor.
Inserte la descripción de la imagen aquí
El contenido principal de esta introducción está relacionado con J2SE. Además, presentaré algunos contenidos relacionados con J2EE y varios contenidos relacionados con el framework en Java en el futuro.

Después de tantos años de desarrollo de Java, y combinado con algo de experiencia en las entrevistas habituales a los desarrolladores de Java, creo que lo principal de J2SE es dominar el siguiente contenido.

1. Relacionado con JVM (incluidas las características de cada versión)

Para aquellos que son nuevos en Java, el conocimiento de JVM no necesariamente necesita una comprensión profunda, una comprensión simple de los conceptos es suficiente. Pero para un desarrollador senior con más de 3 años de experiencia en Java, es casi inaceptable no conocer la JVM.
  
  JVM es la base del funcionamiento de Java, es difícil creer que las personas que no saben nada sobre JVM puedan entender completamente el lenguaje Java. Cuando entrevisté a desarrolladores con más de 3 años de experiencia en Java, JVM era 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 capacidad de desarrollo de Java.
  
  En la categoría JVM, creo que el conocimiento que debe dominarse es:
  
modelo y estructura de memoria JVM

Principio de GC, ajuste del rendimiento

Tuning: Thread Dump, análisis de la estructura de la memoria

estructura de código binario de clases, sistema de carga de clases, proceso de carga de clases, proceso de creación de instancias

Proceso de ejecución del método

Nuevas funciones proporcionadas por las principales versiones de Java (es necesario comprenderlas brevemente)

2. Operación de Java (básico esencial)

Este puede parecer muy simple, ¿quién sabe cómo ejecutar programas java? Pero en muchos casos, simplemente ejecutamos programas java a través del IDE, ¿cómo ejecuta el IDE subyacente los programas java? Mucha gente no lo entiende.
  
  Este punto de conocimiento es el más básico que los desarrolladores de Java deben dominar. Para que los principiantes aprendan Java, el primero es definitivamente enseñarle cómo ejecutar programas Java en la línea de comandos, pero una vez que muchas personas han aprendido Java y han utilizado el IDE, Me olvidé de esto. ¿Por qué es importante saber esto? Después de conocer el método de inicio más puro de java, puede analizar cuántos directorios se inician en el momento en que hay un problema con el inicio, cuál es el nombre de la ejecución, cuáles son los parámetros, si faltan, etc. Esto le ayudará a resolver los problemas extraños y posibles relacionados con el medio ambiente en su desarrollo real.
  
  Los conocimientos que debe dominar aquí son:
  
javac compilar archivos java en archivos de clase

Cómo usar el comando java y cómo iniciar la clase java con el paquete en la línea de comando

Las diversas rutas involucradas en el programa java (classpath, java.library.path, el directorio principal donde se ejecuta Java, etc.)

3. Tipo de datos

No hay mucho que decir sobre esto, no es más que el dominio de tipos básicos y tipos de objetos en Java. Puede obtener más información sobre cómo convertir automáticamente el JDK, incluido el boxeo y unboxing, etc., pero también para evitar el juicio de igualdad de tipos después del boxeo.
  
  Principales puntos de conocimiento:
  
tipos básicos: int, long, float, double, boolean

Tipos de objeto correspondientes: conversión de Integer y otros tipos a tipos básicos, encajonamiento y desempaquetado
Tipos de objeto: 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 el concepto de clase e instancia y la diferencia entre ellos, que es la base de las características orientadas a objetos de Java. Los principales puntos de conocimiento son:
  
el concepto de Clase e Instancia

Proceso de creación de instancias:

Sin herencia: asignar espacio de memoria, inicializar variables, llamar al constructor

Herencia: manejar acciones estáticas, asignar espacio de memoria, definir variables como valores iniciales, desde la clase base -> subclase, manejar la inicialización en la definición, ejecutar el método de construcción

Puntos a tener en cuenta: las
  
    propiedades estáticas, etc.se inicializan desde la clase base ->
    
    características relacionadas con el método de construcción sin parámetros predeterminado de la subclase

5. Control de acceso

Esto también es una base de la función de encapsulación de Java. Lo que necesita dominar es:
  
público protegido predeterminado privado Modificación de clase, método y campo

6. Control de procesos

Los conceptos básicos del control de flujo de Java, aunque alguna sintaxis no es necesariamente muy común, es necesario comprenderlos y utilizarlos cuando corresponda.
  
Necesito dominar:

If, switch, loop, for, while y otra sintaxis de control de flujo

7. El concepto de programación orientada a objetos

Este es un concepto básico de Java, que debe dominar cualquier desarrollador de Java. Muchas características o puntos de conocimiento de Java están relacionados con el concepto de programación orientada a objetos de Java. En mi opinión, un buen desarrollador no solo necesita comprender estas características (puntos de conocimiento) en sí mismo, sino que también necesita saber cómo estos objetos se reflejan en el concepto de programación orientada a objetos de Java, que es más propicio para que el desarrollador domine Java. Este lenguaje de desarrollo y otros lenguajes de programación orientados a objetos. A continuación se incluye una breve lista. Los principales puntos de conocimiento incluyen:
  
tres características orientadas a objetos: encapsulación, herencia y polimorfismo; sus respectivos conceptos de definición, qué características se reflejan y sus respectivos escenarios de uso

El concepto de envío múltiple estático y envío único dinámico

El concepto y uso de la sobrecarga.

Herencia: Implementación múltiple de interfaces, herencia única de clase base

Abstracción, clase abstracta, interfaz

Polimorfismo: el concepto y uso de la cobertura del método

Devolución de llamada de interfaz

8. Estático

Las propiedades estáticas también se utilizan a menudo en el desarrollo diario de Java. Necesita comprender el uso relacionado con la palabra clave estática y utilizarla junto con otras palabras clave, como si se puede utilizar junto con palabras clave abstractas, finales y otras.
  
Las principales cosas para dominar son:

La definición y uso de propiedades estáticas, y cómo inicializar la clase al cargar

Definición y uso de métodos estáticos

Definición y uso de clases estáticas

Definición y tiempo de inicialización de bloques de código estático

9. Puntos de conocimiento básico

Estos son principalmente algunos puntos de conocimiento de Java dispersos que no están clasificados por el sistema. También se usa mucho en el desarrollo diario. En realidad, hay mucho de este contenido, pero solo se resume temporalmente aquí:
  
  incluyendo:
  
equals, hashcode, string / stringbuffer, final, finalmente, finalize

10. Marco de recopilación

Esta es una parte que necesita ser más dominada. Para el desarrollo de Java, se puede decir que no hay necesidad de usar el marco de colección. Esto es muy importante. Pero los puntos de conocimiento aquí no son difíciles, pero es mejor comprender la implementación interna de la colección, porque esto le ayudará a elegir un marco adecuado para resolver el problema en varios escenarios, como una colección de elementos de 1W, a menudo Realizando el Contiene la operación de juicio, conociendo las características o implementación interna de la colección, es fácil tomar la decisión correcta.
  
  El siguiente contenido se incluye aquí (no se incluye la concurrencia relacionada):
  
Sistema de marco de colección : Colección básica, Mapa

Contenido de implementación de colección específica, implementación específica de Lista, Conjunto, Mapa, estructura interna, métodos especiales, escenarios aplicables, etc.

Uso de herramientas relacionadas con la colección, colecciones, etc.

11. Marco de excepción

Es posible que las excepciones no se tomen en serio en el desarrollo de java. Generalmente, cuando se encuentra una excepción, se lanza directamente, o después de una captura aleatoria, no tiene un impacto importante en el funcionamiento general del programa. Sin embargo, en el diseño y desarrollo a nivel empresarial, la calidad del diseño y manejo anormales a menudo está relacionada con la solidez general del sistema. Para los desarrolladores, las excepciones de un buen sistema deben manejarse de manera uniforme para evitar mucha lógica de manejo de excepciones dispersa por todas partes; para el sistema, las excepciones deben ser controlables y fáciles de operar y mantener. Después de que ocurran ciertas excepciones, debe haber una manera de lidiar con él y saber cómo manejarlo. Entonces, aunque el marco de excepción es muy simple, el manejo de excepciones es muy importante para todo el desarrollo de aplicaciones empresariales. Para manejar bien las excepciones, necesita comprender el sistema de excepciones en Java.
  
  No hay muchos puntos de conocimiento que deban dominarse en esta parte, principalmente:
  
sistema anormal:

Throwable

         Exception

                   RuntimeException

         Error

RuntimeException 和 一般 Exception 的区别, 具体处理方法等

12. Java I.

IO no solo es tan simple como leer y escribir archivos en java, sino que también incluye todas las operaciones de entrada y salida, como la lectura y escritura de la red de sockets. Por ejemplo, leer el contenido de Post en una 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 apis como Reader y Writer que simplifican También es importante en ciertos desarrollos (proyectos que involucran un gran número de operaciones IO), y generalmente involucrado en el desarrollo diario (logs, lectura y escritura de archivos temporales, etc.).
  
  Los principales puntos de conocimiento aquí son:
  
Sistema IO básico: Incluyendo InputStream, OutputStream, Reader / Writer, lectura de archivos, lectura de varios flujos, etc.

Concepto de NIO, uso específico y escenarios de uso

13. Simultaneidad de subprocesos múltiples

En general, el subproceso múltiple se considera una parte difícil en Java. El subproceso múltiple puede aumentar efectivamente la tasa de utilización de la CPU y mejorar la eficiencia general del sistema, especialmente en el caso de una gran cantidad de operaciones IO bloqueadas; pero también es una espada de doble filo, si no se usa bien, el sistema lo hará no solo mejora ligeramente, o no hay mejora, y también causará problemas como la depuración entre múltiples subprocesos.
  
  Hay mucho contenido en multi-threading, solo explique brevemente los puntos de conocimiento que deben dominarse en el uso inicial de multi-threading en Java, y tendré la oportunidad de presentar por separado los escenarios de uso de algunas características avanzadas.
Implementación y puesta en marcha de multiproceso

La diferencia entre invocable y runable

Las características y comparación de syncrhoized y reentrantLock

Grupo de hilos

futura forma asincrónica de obtener el resultado de la ejecución

paquete concurrente

bloquear

...

14.Redes

Java también proporciona API que pueden manipular directamente los protocolos TCP y UDP. Cuando se necesita enfatizar el rendimiento de la red, TCP / UDP se puede utilizar directamente para la comunicación. Puede ver el uso de estas API relacionadas en el código fuente de Tomcat, etc. Sin embargo, en general, TCP rara vez se usa directamente y para el procesamiento se usan frameworks como MINA y Netty, debido a que no hay mucho desarrollo involucrado en esta área, no se enumerará en detalle.

15. Procesamiento de fecha y hora

Para casi todas las aplicaciones, el procesamiento de la hora y la fecha no se puede omitir, pero el uso de la API relacionado con el tiempo antes de JDK8 no es amigable. En esa época, se podían elegir marcos de tiempo como Joda. Después del lanzamiento de JDK8, la nueva API de tiempo básicamente incorpora las ventajas de otros marcos y ya se puede usar directamente.
  
  Para los desarrolladores de Java, es necesario utilizar la API de manera competente para manejar la hora y la fecha.
  
  Los puntos de conocimiento específicos ya no se enumeran, y se escribirá un artículo especial más adelante 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 están en J2SE, pero en el desarrollo diario, la interacción con otros programas y archivos de configuración son cada vez más inseparables del análisis de estos dos formatos.
  
  Sin embargo, para un desarrollador, poder comprender algunos de los principios y métodos de análisis XML / JSON específico lo ayudará a elegir mejor la forma correcta para usted en cada escenario específico para hacer que su programa sea más eficiente y robusto.
  
  XML: es necesario comprender los principios básicos del análisis de DOM y el análisis de SAX y sus respectivos escenarios aplicables
  JSON: es necesario comprender el uso de algunos marcos JSON comunes, como Jackson, FastJson, Gson, etc. .

17. Uso de Maven

Maven no es el contenido 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 liberación del proceso de desarrollo, e incluso la actualización de la versión, el uso de maven puede simplificar enormemente la complejidad del proceso de desarrollo, ahorrando así mucho tiempo. Se puede decir que maven se ha convertido en el estándar para los desarrolladores de Java. Así que considero a Maven como un punto de conocimiento básico para los desarrolladores de Java. Pondré parte de mi experiencia y habilidades en el uso de maven en el futuro, por lo que no entraré en detalles aquí.

18.Genérico

Este es un nuevo concepto introducido al comienzo de JDK5. En realidad, es un azúcar sintáctico. Será un poco conveniente al escribir código java. Para aplicaciones generales o desarrollo comercial, solo necesita usarlo de manera simple, no necesariamente usando operaciones como como definiendo genéricos. Sin embargo, algunos componentes públicos básicos se usarán en el desarrollo. Puede leer esta parte cuidadosamente cuando lo necesite. En general, simplemente puede usarlo.

19. Etiqueta

También se introdujo después de jdk5. Spring es un marco excelente. XML se utilizó como archivo de configuración estándar desde el principio. Sin embargo, después de Spring 3, especialmente después del auge del spring-boot, el uso de anotaciones para simplificar los archivos de configuración xml se ha vuelto cada vez más popular. Para los desarrolladores, puede ahorrar mucho tiempo para la configuración xml. Pero la desventaja es que las anotaciones están dispersas en varias clases, a diferencia de xml, que puede tener una comprensión y gestión global de todas las configuraciones, por lo que no hay forma de reemplazar completamente todo xml. Para los desarrolladores generales, solo use anotaciones. Es posible que los desarrolladores de algunas organizaciones públicas deban comprender la definición y la implementación de las anotaciones. Puede examinarlas detenidamente cuando las necesite.

20.RMI

RemoteMethodInvocation, la interfaz de invocación remota única del lenguaje Java, es relativamente simple y conveniente de usar. Sin embargo, si necesita varios idiomas, debe utilizar otros métodos, como el servicio web, para admitir. En términos generales, el programa no necesita utilizar RMI, pero se puede utilizar en circunstancias específicas. Usé RMI para controlar el inicio y la parada remotos del programa en un proyecto.

21.JNI

La interfaz nativa de Java puede permitir que se llame al método de la interfaz nativa en Java, que generalmente se usa para llamar al código C / C ++. Cabe señalar que el problema de la ruta de carga del archivo so / dll en java no es complicado de llamar a la interfaz en sí, pero a menudo lleva mucho tiempo cargar la biblioteca de interfaz local requerida.

22. Resumen

Lo anterior es solo una breve introducción a algunos de mis puntos de vista e introducciones a estos conocimientos básicos y puntos técnicos de Java. Estos contenidos se derivan de algunos de los resúmenes de mi uso de Java a lo largo de los años. Espero poder brindarles los que están nuevo en Java o planea desarrollar a partir de Java. La gente tiene algo de experiencia, esperando aprender y usar Java de manera más eficiente, evitando desvíos y perdiendo un tiempo precioso. Todavía hay algunas áreas donde el contenido no es perfecto, que se agregarán en artículos futuros.

Debido a la capacidad personal limitada, por supuesto que habrá algunos errores y omisiones, por favor corríjanme, discutan juntos, aprendan Java sin ninguna base, pueden unirse a mi campo de aprendizaje de Java .

Supongo que te gusta

Origin blog.csdn.net/weixin_49794051/article/details/111912753
Recomendado
Clasificación