Revisión de JavaSE
Gramática básica
Comentario
- Comentarios en línea //
- Comentario de varias líneas / ** /
- Comentarios de documentación / ** * / javadoc genera documentación de ayuda
Identificador
palabras clave de Java (revisión de Baidu)
tipo de datos
-
Tipos de datos básicos (cuatro tipos y 8 tipos)
-
tipo de datos Tipos de byte Entero byte 1 Entero corto 2 Entero En t 4 Entero largo 8 Punto flotante flotador 4 Punto flotante doble (predeterminado) 8 personaje carbonizarse 2 Booleano booleano Primer lugar) Punto flotante BigDecimal
Tipo de datos de referencia
- clase
- interfaz
- Formación
Conversión de tipo
- Conversión automática de tipo de menor a mayor
- Conversión de tipo de fuerza de alta a baja (baja) alta
Variables y constantes
escriba varName [= valor];
Alcance
- Variable de clase
- Instancia variable
- Variable local
MAX_A final constante = 10;
Convenciones de nombres
- Ver el nombre
- Denominación de casos de camello (variables, métodos)
- Clase, inicial en mayúscula, nombre del caso camel
- Constante: mayúsculas + subrayado
- No uses pinyin
-
Operador
- Operador aritmético + - * /% ++ -
- Operador de asignación =
- Operador relacional> <> = <= ==! = Instancia de
- Operador lógico && ||!
- Operador de bit & | ^ ~ >> << >>>
- Operador condicional ?: (Operador ternario) x? Y: z
- Operador de expansión + = - = * = / =
Mecanismo de paquetes
- Nombre de dominio inverso
- Evitar conflictos de nombres
- paquete
- importar
JavaDoc
- Documentación de ayuda de JDK
- 1.javadoc
- @auther nombre del autor
- @Version versión
- @Desde la primera versión compatible de JDK
- Parámetro @Param
- @return valor de retorno
- excepción @throws
Control de procesos
-
Interacción del usuario del escáner System.in
-
Estructura de la secuencia La estructura predeterminada del programa, ejecución de arriba hacia abajo
-
Seleccionar estructura
- si estructura de opción única
- estructura de doble selección if-else
- estructura de opción múltiple if-else if-else
- cambiar
- jdk admite el tipo de cadena
- penetración de caso
- rotura
- defecto
Estructura de bucle
- intenta evitar bucles interminables
- hacer ... mientras
- para para (int i = 0; i <100; i ++)
- Tabla de multiplicar de nueve y nueve
- Agregar para bucle
romper y continuar
- romper: salir del bucle
- continuar: Termina el bucle actual
- Etiquetado continuar
- return: Finaliza la ejecución del método
método
- ¿Cuál es el método?
- Modificador de definición de método valor de retorno nombre del método (nombre del parámetro) {valor de retorno de retorno;}
- Llamada de método
- Método de nombre de clase
- Objeto. Método
- Las sobrecargas de métodos tienen el mismo nombre pero diferentes listas de parámetros
- La línea de comando pasa parámetros al método principal pasa parámetros cmd salida java.class file run
- Parámetro de longitud variable
- ...
- Debe colocarse en el último parámetro
Recursividad
- Ajústate, date una salida
- Preguntas frecuentes sobre LeetCode
Formación
-
Definición de matriz
- nuevo int [5]
- {1,2,3,4,5}
- Debe ser del mismo tipo
-
Uso de matrices
- Obtenga el valor por subíndice
- ArrayIndexoutofBounds
- Aumento del recorrido del bucle
-
Matriz bidimensional int [] []
-
Herramientas de matrices
-
Algoritmo de clasificación
- Ordenamiento de burbuja
- Seleccionar ordenar
- Tipo de inserción
- Ordenación rápida
- Combinar ordenación
- Tipo de colina
- Tipo de pila
- Orden base
Orientado a objetos
Que es orientado a objetos
Clase y objeto
- La clase es una abstracción de objetos: plantilla Clase
- El objeto es específico de la clase
Método de construcción
- Sobrecarga construida
- Construcción sin parámetros por defecto
- Si define manualmente una estructura parametrizada, debe agregar manualmente otra estructura sin parámetros
- ¡El modo singleton requiere un constructor privado!
nuevo objeto
- Referencia de almacenamiento de pila
- El montón almacena objetos específicos.
Paquete
- Propiedad privada, obtener, configurar
- heredar
- extiende
- Objeto
- La clase secundaria tiene todas las características de la clase principal.
- Reescritura de métodos
- esta
- súper
- Java es herencia única, solo se puede heredar una clase principal
Polimorfismo
- La referencia de la clase principal apunta al objeto de la clase secundaria Person person = new Student ();
- Instancia de clave, si coincide, puede convertir entre tipos
Modificador
- público
- protegido
- privado
- estático
- final
- abstracto
interfaz
- interfaz
- Restricción, solo se puede definir el nombre del método
- La subclase implementa la interfaz y debe reescribir sus métodos.
- Una interfaz con un solo método se denomina interfaz funcional, que se puede simplificar mediante expresiones lambda.
- La interfaz es más abstracta que abstracta
- Una clase puede implementar múltiples interfaces
Clase interior
- Clase interna local
- Clase interna estática
- Clase interna anónima (énfasis)
anormal
Desechable
- Excepción
- Excepción en tiempo de ejecución
- 1/0
- ClassNotFound
- NullPoint
- UnKownType
- Excepción de subíndice fuera de límites
- 。。。
- Comprobar excepción
- Excepción en tiempo de ejecución
- Error
- Error AWT
- Error de JVM
- Desbordamiento de pila
- Sin memoria
Cinco palabras clave
- tratar{}
- captura(){}
- finalmente{}
- lanzar manualmente lanzar una excepción
- arroja el método lanza una excepción
Excepción personalizada
- Solo hereda la clase Exception
Comúnmente utilizado
- Clase de objeto
- código hash()
- Encadenar()
- clon()
- getClass ()
- notificar()
- Espere()
- es igual a ()
- Clase de matemáticas // Operaciones matemáticas comunes
- Clase aleatoria // Genera UUID de número aleatorio
- Clase de archivo
- Crea un archivo
- Archivos de vista
- Modificar archivo
- Borrar archivos
- Embalaje // Autoembalaje y desembalaje (Baidu entiende) entrevistará y preguntará
- Clase de fecha
- Fecha
- SimpleDateFormat aaaa-MM-dd HH: mm: ss
- Calendario (recomendado)
- Inmutabilidad final de la clase de cadena
- StringBuffer adjunto de longitud variable () Gran cantidad de datos multiproceso, baja eficiencia y seguridad
- El volumen de datos de un solo subproceso de longitud variable de StringBuilder es grande, el efecto es alto, inseguro
Marco de colección
- Colección
- Lista (ordenada y repetible)
- ArrayList (de uso común)
- añadir
- eliminar
- contiene
- Talla
- LinkedList (de uso común)
- getFirst ()
- obtener ultimo()
- removeFirst ()
- addFirst ()
- ...
- Vector
- Apilar
- ArrayList (de uso común)
- Establecer (desordenado y no repetible)
- HashSet (de uso común)
- TreeSet
- Iterador: Iterador
- Lista (ordenada y repetible)
- Mapa
- HashMap (centrarse en preguntas frecuentes para entrevistas)
- JDK1.7: matriz + lista vinculada
- JDK1.8: tabla hash = matriz + lista vinculada + árbol rojo-negro
- TreeMap
- HashMap (centrarse en preguntas frecuentes para entrevistas)
- Herramientas de colecciones
- Herramientas Hutool (la mayoría tienen)
- Restricciones <> genéricas para evitar problemas entre conversiones de tipos
Estilo IO
- Flujo de bytes
- Salida: OutputStream
- Entrada: InputStream
- Flujo de caracteres
- Escribir: lector
- Escriba: Wirter
- Flujo de nodo
- CharArrayReader, Writer, InputStream, OutputStream
- StringReader, Writer
- pipe (flujo de canalización) PipedOutputStream
- Flujo de procesamiento
- buffer
- bufferInputStream
- bufferOutputStream
- bufferReader
- bufferWriter
- Publicación por entregas
- Deserializar transitorio serializable (transparente)
- datos
- DataInputStream
- DataOutputStream
- Flujo de conversión
- InputstreamReader
- OutputStreamWriter
- Filtro cuatro
- impresión
- PrintWriter
- PrintStream
- buffer
Multihilo
- Procesos e hilos
- ejecutar () , Start ()
- La forma en que se crea el hilo
- Thread start0, método local: java no tiene el derecho de llamar, entregado al C subyacente para manejar privado
- Lambda de interfaz funcional ejecutable
- Invocable puede tener un valor de retorno
- Proxy estático
- nuevo Tread (Runnable) .start ();
- Expresión lambda
- Programación funcional
- Evite demasiadas definiciones de clases internas,
- nuevo hilo (() -> {
- Sal();
- }).comienzo();
- Derivar manualmente la expresión lambda nuevamente
- Estado del hilo
- Nuevo estado
- Listo
- correr
- bloquear
- muerte
- formas de uso común
- dormir
- unirse
- rendimiento
- es en vivo
- comienzo
- fijar prioridad
- interrumpir
Sincronización de subprocesos
- Varios objetos operan en el mismo recurso
- Cola + bloqueo
- Sincronizado
- Desventajas del método de sincronización: demasiados bloqueos y el tercero
- Bloque de código de sincronización (¡de uso común!) El segundo
- El primer hilo entra para obtener el bloqueo, y se pondrá en cola más tarde, hasta que esta persona libere el bloqueo y luego lo obtenga más tarde.
- Punto muerto: dos personas se sujetan mutuamente
- Mutuamente excluyentes
- Solicitar y retener
- Sin privación
- Condición de espera de bucle
- Bloquear (prioridad alta) más alta
- ReentrantLock
- bloquear
- trylock
- desbloquear
- ReentrantLock
- Hilo de comunicación
- Búfer: cola de mensajes
- Posición de la señal: semáforo
- Espere();
- notificar a todos ();
- Grupo de subprocesos (grupo)
- Tecnología de pooling
- Tamaño de la piscina
- Número máximo de conexiones
- Hora de espera
- 。。。。
programación de la red
- IP
- Puerto
- Programación de socket
- TCP
- Tres apretón de manos
- Saludar cuatro veces
- Orientado a la conexión
- UDP
- sin conexión
- Paquete
- URL
- Conociendo Tomcat
- Comunicación por chat
- Subir archivo
GUI
- AWT
- Cuadro
- Escuche los eventos
- ratón
- teclado
- ventana
- Evento de acción
- Columpio
- Caja de texto
- etiqueta
- Botón
- Campo de texto
- panel
- Diseño
- cerrar la ventana
- Lista
- Serpiente codiciosa
- Temporizador
- Monitor de teclado
- El concepto de marcos de juego
Anotación y reflexión
- anotación
- Meta anotación
- Anotaciones integradas
- Anotación personalizada
- Anotación de lectura de reflexión
- reflexión
- Clase newlnstance ();
- Mecanismo de carga de clases
- Método
- invocar (usuario3, "Guangzhou");
- Hay sobrecargas, pero también es necesario escribir el tipo de parámetros
- Conjunto de campos (usuario4, "Guangzhou");
- Construir
- newlnstance ();
- Requerido al obtener, pase el tipo de clase del parámetro
- Destruye las palabras clave privadas
- setAcce'sible (true) ;
- El análisis de rendimiento es normal> Detectar reflexión cerrada> Reflexión predeterminada
- Explorando el patrón singleton
- Corriente
- ForkUnirse
- Comparación de efectos