Puntos de conocimiento básico de Java (clases comunes, colecciones)

1. Clases de uso común

1. Comparador

Comparador y comparación comparable:
1. Comparable es una interfaz de clasificación, si una clase implementa la interfaz Comparable, significa que "la clase admite clasificación".
(Actúa sobre la clase de entidad)

2. Comparador es un comparador, si necesitamos controlar el orden de una determinada clase, podemos crear un "comparador de esta clase" para ordenar.
(Actúa sobre la clase de clasificación)

Resumen: Comparable es equivalente a "comparador interno" y Comparator es equivalente a "comparador externo".

2. Clase interior

1. La clase interna miembro se
define en la clase y sirve como miembro de la clase.
Autoridad de acceso: La clase interna puede acceder a las propiedades y métodos de la clase externa. Si la clase externa quiere acceder a los miembros de la clase interna, primero debe crear un objeto de la clase interna para acceder a ella.
Crear un objeto: new Outer (). New Inner ()

2. La clase interna local se
define en el método y sirve como una variable del método. Nota: La clase interna local es como una variable local en el método. No puede tener modificadores públicos, protegidos, privados y estáticos.

3. Clase interna
anónima Una clase interna anónima se usa generalmente como método para pasar parámetros, se usa para heredar clases abstractas o implementar interfaces, en lugar de subclases o clases de implementación, y no requiere que se definan métodos adicionales. Jdk8 puede usar expresiones Lambda para simplificar.

4. Clase interna
estática Una clase interna estática puede entenderse como un miembro estático de la clase.
La clase interna estática no necesita depender del objeto de la clase externa, puede crear su propio objeto directamente.
No se puede acceder a los métodos o propiedades de miembros no estáticos de la clase externa. Debido a que la clase interna estática no depende del objeto externo, puede crear el objeto usted mismo. Por lo tanto, si no hay un objeto externo, puede llamar al miembro de instancia, lo que crea una contradicción, porque el miembro de instancia externo debe haber objetos externos.

3. Embalaje

El concepto de clases de empaquetado:
Dado que los tipos de datos básicos no tienen el concepto de clases y objetos, la filosofía de diseño de Java es que todo es un objeto.
Por lo tanto, una clase propia se adapta específicamente a cada tipo de datos básicos, denominada clase de empaquetado.

2. La aplicación de la clase de empaquetado.
Dado que los tipos de datos básicos no se pueden almacenar en la colección, hemos visto el list.add (6); de hecho, los tipos de almacenamiento son todos tipos de empaquetado. El proceso de actualización de los tipos de datos básicos a las clases de empaque se le llama "boxing", lo contrario se le llama "unboxing";
1. Clase de empaque de empaquetado-desempaquetado-los tipos de datos básicos se llevan a cabo automáticamente
2.
Clase de padre-hijo de clase ascendente-descendente- clase secundaria 3. Tipo coercitivo conversión-conversión automática byte-short-int-long float-double

3. El método de construcción de la
clase de empaquetado 1. Todas las clases de empaquetado pueden usar los tipos de datos básicos correspondientes como parámetros para construir sus instancias.

2. Además de la clase Character, otras clases de empaquetado pueden usar una cadena como parámetro para construir su instancia.

Nota
1. Cuando el parámetro del método de construcción de la clase booleana es de tipo String, si el contenido de la cadena es verdadero (independientemente del caso), el objeto booleano representa verdadero; de lo contrario, representa falso

2. Cuando el parámetro del método de construcción de la clase de empaquetado Number (excepto Character y otras clases de empaquetado booleanas) es de tipo String, la cadena no puede ser nula y la cadena debe poder analizarse en los datos del tipo de datos básicos correspondiente; de ​​lo contrario, la compilación pass, NumberFormatException se lanzará en tiempo de ejecución

Resumen:
1. Los métodos de construcción de las clases de empaquetado generalmente tienen sobrecargas El parámetro de un método de construcción es el tipo de datos básico correspondiente y el parámetro del otro método de construcción es el tipo de cadena.

4. Métodos de uso común de clases de empaquetado
1.XXXValue (): las clases de empaquetado se convierten en tipos básicos (métodos de instancia)
byteValue (), intValue (), longValue (), shortValue (), doubleValue (), floatValue ()
charValue ( ), booleanValue ()

2.toString (): devuelve los datos de tipo básico representados por el objeto del paquete en forma de una cadena (tipo básico -> cadena)
(método estático)
3. parseXXX (): convierte la cadena en los datos de tipo de datos básicos correspondientes ( excepto Carácter) (Cadena -> tipo básico) (método estático)

4. valueOf () (método estático)
(1) Todas las clases de empaquetado tienen los siguientes métodos (tipo básico -> clase de empaquetado)
public static Type valueOf (tipo valor)
(2) Excepto para la clase Character, otras clases de empaque tienen lo siguiente métodos (
String- > clase de empaquetado) public static Type valueOf (String s)

4. Cadena de métodos de uso común:

1. Longitud longitud ();

2. Empalme str.concat (str2);

3. Formato:
// Método 1
System.out.printf ("Hola a todos, mi nombre es% s, tengo este año:% d años, mi depósito es:% f% n", "Cao Cao", 36,999.99 );

// Método dos
String s = String.format ("Hola a todos, mi nombre es% s, tengo este año:% d años, mi depósito es:% f", "Cao Cao", 36,999.99);
System.out .println (s);

4.charAt (índice) devuelve el carácter en el índice especificado

5.indexOf (str) devuelve el índice de la primera aparición de la cadena especificada en esta cadena

6.compareTo (str2) compara dos cadenas

7.equals () 和 es igual a IgnoreCase ()

8.getBytes () usa el juego de caracteres predeterminado para convertir la cadena en una matriz de bytes, que se usará en el flujo IO

9.toCharArray () Convierte una cadena en una matriz de caracteres

10. Intercepción: subString ()

11. Convierta a minúscula toLowerCase () toUpperCase ()

12. Recorte en blanco () antes y después de la intercepción

13. Reemplazar: reemplazar ()

14. Dividir: dividir ()

15.Las coincidencias regulares (String reg) devuelven un valor booleano

5. Regular

1. Concepto:
expresión regular, también conocida como expresión regular. (Inglés: expresión regular, a menudo abreviado como regex). Las expresiones regulares se usan generalmente para recuperar y reemplazar texto que cumple con un patrón determinado (regla). Admite expresiones regulares: PHP, Java, Python, JavaScript, etc. Con expresiones regulares, escribir código es más conciso, por lo general dos o tres líneas de código pueden lograr el objetivo.

2. Reglas:

  1. Cualquier carácter significa coincidir con cualquier carácter correspondiente, como a coincide con a, 7 coincide con 7 y -coincide.

  2. [] significa coincidir con cualquiera de los caracteres entre corchetes, como [abc] que coincide con aob o c.

  3. -El significado dentro y fuera de los corchetes es diferente. Por ejemplo, cuando está afuera, coincidirá -, si dentro de los corchetes [ab] significa coincidir con cualquiera de las 26 letras minúsculas; [a-zA-Z] coincide con un total de 52 letras mayúsculas y minúsculas Cualquiera de las letras; [0-9] coincide con cualquiera de los diez dígitos.

  4. El significado dentro y fuera de los corchetes es diferente. Si está fuera, significa el comienzo. Por ejemplo, 7 [0-9] significa que la coincidencia comienza con 7, y el segundo dígito es una cadena de cualquier número; si está dentro de los corchetes, significa Cualquier carácter que no sea este carácter (incluidos números, caracteres especiales), como [^ abc] significa coincidir con cualquier carácter que no sea abc.

  5. .Medios para coincidir con cualquier carácter.

  6. \ d significa número.

  7. \ D significa que no es un número.

  8. \ w representa letras, números y guiones bajos, [a-zA-Z0-9_].

  9. \ W significa que no está compuesto por letras, números y guiones bajos.

  10. [\ u4e00- \ u9fa5] coincide con caracteres chinos

  11. ?: Indica 0 o 1 ocurrencia.

  12. + Significa una o más ocurrencias.

  13. * Significa 0, 1 o más ocurrencias.

  14. {n} significa n apariciones.

  15. {n, m} significa n ~ m ocurrencias.

  16. {n,} significa que aparece n veces o más.

3. Uso:
// El carácter que debe coincidir
String str = "8";
// Expresión
regular String regex = "[0-9]";
//
Patrón p = Pattern.compile (regex);
Matcher m = p. matcher (str);
System.out.println (m.matches ());
// Método dos
System.out.println (Pattern.matches (regex, str));
// Método tres
System.out.println (str. coincidencias (regex));

Extensión: Afirmar, predecir, excluir
// Un determinado sitio web requiere el registro de la cuenta únicamente: letras y números, no ambas letras, no ambos números, y requieren el comienzo de la letra, la longitud es entre 6-12,
estática pública void main (String [] args) { Scanner sc = new Scanner (System.in); // Afirmación, predicción (?! Regular) Excluir String coincidente regular s = ""; while (! s.matches (" 1 (? ! [a-zA-Z] {5,11} $) [a-zA-Z0-9] {5,11} ")) { System.out.println (" Introduzca el número de cuenta registrado: "); s = sc.next (); } System.out.println ("¡Registrado correctamente!"); }








6.StringBuffer 和 StringBuild

1. Diferencia:
StringBuffer es más seguro y
StringBuilder es más rápido

Diagrama de estructura de herencia:
Inserte la descripción de la imagen aquí

2. El mismo
uso de StringBuffer y StringBuilder es el mismo

3. Métodos comunes
// 1.
Append ()

// 2. Insertar
insert ()

// 3. Invertir
reverse ()

7. Matemáticas y azar

1. Métodos comunes de matemáticas
: redondear hacia arriba / hacia abajo, redondear hacia arriba techo () piso () redondear ()

Valor absoluto abs ()

Número aleatorio aleatorio () Rango: [0,1) decimal

Función de potencia pow (a, b)

sqrt () raíz cuadrada

2. Métodos comunes aleatorios
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

8. Clase de fecha

1.fecha

1. Cree un objeto Fecha de la hora actual
// Cree un objeto Fecha que represente la fecha actual del sistema.
Fecha d = nueva Fecha ();

2. Cree un objeto de fecha de la hora que especificamos:
utilice el método de construcción parametrizado Date (int año, int mes, int día) para construir el objeto de la clase Date de la fecha especificada. necesidad de representar 1900 se resta del año, y el valor después de 1 se resta del mes real que debe representarse.

// Cree un objeto Date que represente el 12 de junio de 2014
Date d1 = new Date (2014-1900, 6-1, 12); (observe la configuración de los parámetros)

3. Obtenga correctamente la información contenida en un objeto de fecha, como:
Fecha d2 = nueva Fecha (2014-1900, 6-1, 12);
// Obtenga el año (tenga en cuenta que el año debe agregarse a 1900, de modo que es el objeto de fecha d2 Año representado)
int año = d2.getYear () + 1900;
// Obtener el mes (tenga en cuenta que el mes debe agregarse con 1, de modo que sea el mes representado por el objeto de fecha d2)
int month = d2.getMonth () + 1;
// Obtener la fecha
int date = d2.getDate ();
// obtener la hora
int hour = d2.getHours (); // no establecer el valor predeterminado en 0
// obtener el minuto
int minuto = d2.getMinutes ();
// obtener el segundo
int segundo = d2.getSeconds ();
// Obtener el día de la semana
int día = d2.getDay ();
Ningún dato en el método de construcción será predeterminado a la hora actual.

2.Calendario

1. La función de la clase Calendario es mucho más sólida que la de la clase Fecha, teniendo en cuenta cuestiones como la zona horaria.

2. La clase Calendar es una clase abstracta que proporciona el método getInstance para crear objetos.

// 1. Crea un objeto Calendario que represente la fecha actual del sistema
Calendar c = Calendar.getInstance (); // El valor predeterminado es la fecha actual

// 2. Crear un objeto
Calendario Calendar c1 = Calendar.getInstance ();
c1.set (2014, 5-1, 9);

// 3. Cree un objeto Calendario con una fecha específica-Método dos
c1.set (Calendar.DATE, 10);
c1.set (Calendar.YEAR, 2015);

// 4. Obtén el tiempo

// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;(MONTH+1)
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几
int day = c1.get(Calendar.DAY_OF_WEEK);

// 5. Asociado con la fecha

setTime (nueva fecha ())

3.SimpleDateFormat

// 1. Cree un objeto de formato
SimpleDateFormat f = new SimpleDateFormat ("aaaa-MM-dd HH: mm: ss");

// 2. Llame al formato o al método de análisis para convertir entre String y Date

9. Números

1.BigDecimal

Métodos comunes:

//
Agrega los valores en el objeto BigDecimal y devuelve el objeto BigDecimal add (BigDecimal)

// Restar el valor en el objeto BigDecimal y devolver el objeto BigDecimal
restar (BigDecimal)

// Multiplica los valores en el objeto BigDecimal y devuelve el objeto BigDecimal
multiply (BigDecimal)

// Divide el valor en el objeto BigDecimal y devuelve el objeto BigDecimal
divide (BigDecimal)

BigDecimal b1 = nuevo BigDecimal ("0.03");
BigDecimal b2 = nuevo BigDecimal ("0.02");
System.out.println (b1.subtract (b2));

// Compara el resultado de salida
BigDecimal b1 = new BigDecimal (0.03);
BigDecimal b2 = new BigDecimal (0.02);
System.out.println (b1.subtract (b2));

2. Biginteger
Si la operación de un entero ha excedido el rango de long, BigInteger se puede usar en este momento. Dado que no es un tipo de datos básico, no se puede utilizar ± * / y el método de operación es el mismo que el anterior.

largo l = 999999999999999999l;

BigInteger in1 = new
BigInteger (“999999999999999999999999999999999999999999”);

BigInteger in2 = new
BigInteger (“999999999999999999999999999999999999999998”);

System.out.println (in1.subtract (in2));

Conversión entre decimal y binario

BigInteger en = new BigInteger ("10001110", 2);

System.out.println (in.intValue ()); // El binario se convierte a decimal

System.out.println (in.toString (2)); // Conversión decimal a

System.out.println (in.toString (3));

3. DecimalFormat
double pi = 3.1415927; // Pi
// Toma un entero
System.out.println (new DecimalFormat ("0"). Format (pi)); // 3

// Toma un número entero y dos decimales
System.out.println (new DecimalFormat ("0.00"). Format (pi)); // 3.14

// Tome dos enteros y tres decimales, y la parte insuficiente del entero se rellena con 0.
System.out.println (new DecimalFormat ("00.000"). Format (pi)); // 03.142

// Tomar todas las partes enteras
System.out.println (new DecimalFormat ("#"). Format (pi)); // 3

// Contar en porcentaje y tomar dos decimales
System.out.println (new DecimalFormat ("#. ##%"). Format (pi)); // 314.16%

long c = 299792458; // velocidad de la luz

// Mostrar en notación científica y tomar cinco lugares decimales
System.out.println (new DecimalFormat ("#. ##### E0"). Format ©); // 2.99792E8

// Mostrar como una notación científica entera de dos dígitos y tomar cuatro lugares decimales
System.out.println (new DecimalFormat ("00. #### E0"). Format ©); // 29.9792E7

// Cada tres dígitos están separados por comas.
System.out.println (new DecimalFormat (", ###"). Formato ©); // 299,792,458

// Incrustar el formato en el texto
System.out.println (new DecimalFormat ("La velocidad de la luz es por segundo, ### metros."). Format ©);

En segundo lugar, el marco de recopilación

1. Contenedor:

variable

Características de la matriz: tipo fijo, longitud fija

Las características de la clase: diferentes tipos de atributos de miembros, que juntos describen una clase de entidad.

Características de la colección: el tipo no es fijo, la longitud no es fija y los datos se almacenan a voluntad.

2. Reconocer la estructura de herencia del marco de la colección:

Inserte la descripción de la imagen aquí

3.ArrayList

La colección no tiene una duración fija:
Inserte la descripción de la imagen aquí

Método común

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4.LinkedList

El principio de almacenamiento es una lista vinculada. Hay un pre-nodo y un post-nodo antes y después de los elementos, que se utilizan para conectar el elemento anterior y el siguiente en el conjunto, y luego "de la mano" para formar un conjunto de datos en cadena.

Método único
Inserte la descripción de la imagen aquí

5. Comparación de dos colecciones de listas

1. La interfaz de lista almacena un conjunto de objetos que no son únicos (pueden repetirse) y ordenados (orden de inserción)

2. ArrayList implementa una matriz de tipo de objeto de longitud variable, asigna espacio continuo en la memoria, atraviesa elementos y accede aleatoriamente a los elementos de manera más eficiente.

3. LinkedList adopta el método de almacenamiento de listas vinculadas, que es más eficiente al insertar y eliminar elementos

4. Compare la diferencia entre las dos estructuras viendo el código fuente del método de adición. Almacenamiento en cadena y almacenamiento de matrices

Inserte la descripción de la imagen aquí

La razón de la eficiencia diferente:
Linkedlist solo afectará a los dos elementos adyacentes al eliminar y agregar operaciones.

Dado que Arraylist es una matriz por naturaleza, los valores de dirección de todos los elementos posteriores se desplazarán al realizar operaciones de eliminación y adición.

Colección 6.Set

1. Características de la interfaz SE:

Almacene un conjunto de objetos únicos (no se permiten elementos duplicados), desordenados (sin subíndice de índice), HashSet es una clase de implementación de uso común de la interfaz Set.

2. Manipular los datos de la colección Set

(1) Nuevos elementos

(2) Eliminar elementos

3. Recorre la colección de conjuntos
1. Mejora el for
2. Iterador (fijo con el bucle while)

7.colección de mapas

1. La interfaz del mapa se especializa en procesar los datos del mapeo de valores clave y puede realizar la operación del valor de acuerdo con la clave.

2. Cree un objeto HashMap que se usa comúnmente para implementar la interfaz del mapa y almacenarlo en los datos

3. Eliminar datos

4. Modificar los datos

5. Recorre los datos de la colección de mapas:

1. Recorre todas las claves
2. Recorre todos los valores
3. Recorre todos los pares clave-valor

Resumen de los métodos de uso común:

Inserte la descripción de la imagen aquí

para resumir

Lo anterior son todos los puntos de conocimiento de clases y colecciones de uso común, principalmente conceptos relacionados y métodos de uso de clases y colecciones de uso común.


  1. a-zA-Z ↩︎

Supongo que te gusta

Origin blog.csdn.net/StruggleBamboo/article/details/111699351
Recomendado
Clasificación