Conceptos básicos de Java 15 clases comunes de Java

¡Como tú que amas la programación!
Aprenda los cursos prácticos de SpringBoot https://edu.csdn.net/course/detail/31433
Aprenda los cursos de introducción a SpringCloud https://edu.csdn.net/course/detail/31451


Prefacio

Java proporciona una poderosa biblioteca de clases para ayudar a los desarrolladores a completar rápidamente las tareas de desarrollo, lo que también es una razón importante de su éxito durante más de 20 años. Ahora aprenderemos algunas clases de Java de uso común.
Este artículo presentará:

  • Relacionado con cadenas: String, StringBuffer, StringBuilder
  • Embalaje: Entero, etc.
  • Relacionado con la fecha: Fecha, Calendario, SimpleDateFormat
  • Otros: Matemáticas, Aleatorio, Tiempo de ejecución, Sistema

Relacionado con cadenas

Java proporciona varias clases para procesar cadenas: String, StringBuffer, StringBuilder, entre las cuales la más utilizada es la clase String

Clase de cadena

Método de creación

Método de creación 1: constante de asignación

String str = "hello";

El contenido entre comillas dobles se denomina valor constante de cadena y el valor constante de cadena se asigna en el grupo de constantes del área de método.
Beneficios de la piscina constante:

  1. Ahorre memoria, utilícela repetidamente, sin necesidad de reasignar
  2. Alto rendimiento, llamada directa, ahorra tiempo en la creación de objetos.

Pregunta de entrevista 1:

String name1 = "zhangsan";
String name2 = "zhangsan";
System.out.println(name1==name2);  			输出true
System.out.println(name1.equals(name2)); 	输出true

análisis:

  1. equals se usa para comparar el contenido de String, == se usa para comparar la dirección de memoria de los objetos String
  2. name1 = "zhangsan", crea "zhangsan" en el grupo constante
  3. name2 = "zhangsan", asignará directamente la dirección de la constante en el grupo a name2

Inserte la descripción de la imagen aquí

Pregunta de entrevista 2:

String name1 = "zhangsan";
String name2 = "zha"+"ng"+"san";
System.out.println(name1==name2);  输出true

Análisis: si hay constantes de cadena en ambos lados del signo más, la JVM buscará directamente el resultado de la conexión en el grupo de constantes.

Pregunta de entrevista 3:

String name1 = "zhangsan";
String name2 = "zhang";
String name3 = name2 + "san";
System.out.println(name1==name3);  输出false

Análisis: si una variable aparece a ambos lados del signo más, no estará en el grupo constante, pero el objeto se creará en el área del montón
Inserte la descripción de la imagen aquí

Método de creación 2: use nuevo para crear objetos

String name = new String("zhangsan");

Use new para crear nuevos objetos en el montón.
Inserte la descripción de la imagen aquí
Otros métodos de creación:
cree cadenas a través de matrices de bytes

String(byte[] bytes,String charset)
bytes 		字节数组
charset 	字符编码,一般使用UTF-8

Crear una cadena a partir de una matriz de caracteres

String(char[] chars)
如:
char[] chars = {‘z’,'h','a','n','g'};
String name = new String(chars); 

Inmutabilidad de cuerdas

/** The value is used for character storage. */
private final char value[];

Según el código fuente de la clase String, el contenido de la cadena se almacena en una matriz de caracteres, que es final y no se puede modificar una vez que se inicializa.
Si desea modificar la cadena, se creará un nuevo objeto y la modificación frecuente consumirá mucho espacio y tiempo de memoria.
Como:

String str = "hello";
str += "world";

La operación + = realizada en la parte inferior es:

str = new StringBuilder("hello").append("world").toString();

Métodos comunes de cadena

Obtener la longitud de la cuerda

int length()

Obtener la posición de la subcadena

int indexOf(String s) 		

Busque la primera aparición de la subcadena en la cadena y devuelva -1 si no se encuentra;

int indexOf(String s,int start)   

Especifique la ubicación para comenzar a buscar

int lastIndexOf(String s)		

Interceptar cadena

String substring(int start,int end)
String substring(int start)

reemplazar

String replace(String oldStr,String newStr)

Comparar el contenido de la cadena

boolean equals(String s) 			是否完全相同
boolean equalsIgnoreCase(String s)  忽略大小写进行比较
boolean startsWith(String s)		判断字符串是否以某字符串开头
boolean endsWith(String s) 		    判断字符串是否以某字符串结尾
int compareTo(String s)				比较大小,返回正数(大于)、负数(小于)、0(相等)

Conversión de caso

String toUpperCase() 大写
String toLowerCase() 小写

Ir a los espacios izquierdo y derecho

String trim()

Cadena partida

String[] split(String separator) 
注意:某些特殊符号分割符需要进行转义,如:\\+

Clase StringBuilder

Si las variables de cadena deben modificarse con frecuencia, se creará una gran cantidad de objetos de cadena y se consumirá una gran cantidad de espacio de memoria.
Para resolver este problema, puede utilizar StringBuilder.

La diferencia entre String y StringBuilder:

  • La cadena de String no se puede modificar. Si se modifica, se creará una nueva cadena, que desperdicia memoria.
  • La cadena de StringBuilder se puede modificar y no se creará una nueva cadena.

Método de creación

创建空值的对象
StringBuilder strb = new StringBuilder();
创建有默认值的对象
StringBuilder strb = new StringBuilder("默认值");

Métodos comunes de StringBuilder

Convertir a cadena

String toString() 

añadir

StringBuilder append(String str) 

reemplazar

StringBuilder replace(int start,int end,String newS) 

insertar

StringBuilder insert(int offset,String s) 

Eliminar

StringBuilder delete(int start,int end) 

Contrarrestar

StringBuilder reverse() 

Clase StringBuffer

Las características de StringBuffer son similares a StringBuilder, las cuales se modifican en su propia matriz y los métodos comunes son los mismos.
diferencia:

  1. Los métodos StringBuffer son seguros para subprocesos, StringBuilder no es seguro para subprocesos
  2. La eficiencia de ejecución de StringBuilder es mayor que StringBuffer

embalaje

Los ocho tipos de datos básicos en Java no son tipos de referencia y no se pueden crear objetos, lo que viola la premisa de que Java es un lenguaje completamente orientado a objetos. Java introdujo 8 clases de empaquetado, empaquetando tipos básicos en objetos.

Que es el empaque

La clase de empaquetado empaqueta 8 tipos de datos básicos y trata los tipos de datos básicos como objetos para su procesamiento.

tipo básico embalaje
En t Entero
byte Byte
corto Corto
largo Largo
flotador Flotador
doble Doble
carbonizarse Personaje
booleano Booleano

Método de creación

Integer num1 = 1000;
或
Integer num2 = new Integer(1000);

Pregunta de la entrevista: El resultado del siguiente código es:

Integer n1 = 100;
Integer n2 = 100;
System.out.println(n1 == n2); true
Integer n3 = 1000;
Integer n4 = 1000;
System.out.println(n3 == n4); false

Análisis: las constantes enteras también se pueden almacenar en el grupo de constantes, el rango de valores es el rango de bytes (-128 ~ 127), más allá de este rango, no se almacena ningún grupo de constantes y los objetos se crean en el montón
Inserte la descripción de la imagen aquí

Boxeo y unboxing

El boxeo y el unboxing son la conversión mutua de tipos de datos básicos y tipos de referencia.

  1. Empaquetado: los tipos de datos básicos se convierten en tipos de referencia
    como: Entero n = 200;
  2. Unboxing: convierte los tipos de referencia en tipos de datos básicos
    como: Integer n = 200;
    int m = n; // unboxing

Conversión de cadenas y tipos básicos

Convertir cadena a tipo int

String s = "1234";
int num = Integer.parseInt(s);

Otros tipos:

Float.parseFloat(字符串)   转换为Float
Double.parseDouble(字符串) 转换为Double
... 

Convertir tipo int en cadena

String s = String.valueOf(num);

o

int num = 20;
String s = "" + num;

Procesamiento de fecha y hora

El paquete java.util proporciona algunas API relacionadas con el procesamiento de tiempo.

Clase de fecha

Fecha y hora de procesamiento
Método de creación 1:

Date date = new Date(); 获得当前的时间

Método de creación 2:

Date date = new Date(long); 指定时间的1900-1-1到现在的毫秒数

Método común

int getYear()			获得年
int getMonth()			获得月
int getDate()			获得天
int getHours()			获得小时
int getMinutes()		获得分钟
int getSeconds()		获得分钟
void setYear(int year) 	设置年
...

Clase de calendario

La clase de calendario puede obtener y modificar una determinada parte de la fecha
Crear un objeto Calendario

Calendar calendar = Calendar.getInstance();

Métodos comunes:

get(日期类型)	   		获得日期的某个部分
Calendar.YEAR
Calendar.MONTH	  		月份从0开始
....
set(日期类型,数值)		设置日期的某个部分
add(日期类型,数值)		实现日期某个部分的追溯

SimpleDateFormat 类

Dar formato a la fecha
Crear un objeto

SimpleDateFormat sdf = new SimpleDateFormat("日期格式字符串");
日期格式字符串,如:"yyyy-MM-dd hh:mm:ss"
yyyy	代表4位的年份
MM		代表2位的月份
dd		代表2位的日期
hh/HH	12小时制/24小时制
mm		代表分钟
ss		代表秒钟
a		代表AM/PM

Dar formato a la fecha

String format(Date对象);

Convertir cadena a la fecha

Date parse(String对象);

Otras clases de uso común

Clase de matemáticas

cálculo

efecto uso
Encuentra el valor absoluto Math.abs (-10) -> 10
Redondeo Ronda matemática (2.6) -> 3
Encuentra el máximo de dos números Math.max (2,10) -> 10
Encuentra el mínimo de dos números Math.min (2,10) -> 2
número aleatorio Math.random () -> cualquier decimal entre 0 ~ 1
Encuentra la raíz cuadrada Math.sqrt (16) -> 4
Exponenciación Math.pow (2,3) -> 8

Clase aleatoria

Obtener un número aleatorio

Random random = new Random();
random.nextInt(100); //0 ~ 100间随机整数

Clase de ejecución

Cuando el sistema se está ejecutando, obtenga información relacionada con el sistema.
Runtime rt = Runtime.getRuntime ();

efecto uso
memoria libre() Obtenga memoria libre del sistema
memoria total () Obtener la memoria total
availableProcessors () Obtenga la cantidad de procesadores
gc () Invocar al recolector de basura
exec (cadena cmd) Programa del sistema de llamada
salir (estado int) Sistema de salida

PS: recolector de basura GC (Garbege Collector), JVM abrirá un hilo separado, escaneará regularmente los objetos no utilizados en la memoria.
No hay una hora específica para que se inicie el GC. Si desea activar el GC, puede llamar al método gc.

String s = new String("xxxx"); //新的String对象
s = null; //没有引用指向的String对象会被回收

Clase de sistema

efecto uso
currentTimeMillis () Obtenga la hora actual del sistema en milisegundos
gc () Invocar al recolector de basura
salir (estado int) Sistema de salida

Fin

Se acabó el tiempo de tarea:

  1. Describe brevemente los principales métodos de String
  2. Describe brevemente la diferencia entre String y StringBuilder
  3. Describe brevemente la diferencia entre StringBuilder y StringBuffer
  4. Ingrese la dirección de correo electrónico y la contraseña para verificar el inicio de sesión:
    1) Determine si el correo electrónico y la contraseña están vacíos
    2) Determine si la contraseña no puede tener menos de 6 dígitos
    3) Determine que la posición de @ es anterior.
    4) Determine si el correo electrónico es [email protected] y la contraseña es 666666 Inicio de sesión exitoso
    5) Interceptar el nombre de usuario delante de @, salida: bienvenido, xxx
  5. Ingrese una cadena que contenga varias palabras, separadas por espacios;
    todas las palabras deben estar conectadas y la primera letra está en mayúscula. Por
    ejemplo: ingrese buen buen estudio para
    obtener: Buen estudio

Si necesita aprender otros conocimientos de Java, haga clic aquí Conocimiento ultra detallado de Java Resumen

Supongo que te gusta

Origin blog.csdn.net/u013343114/article/details/112599438
Recomendado
Clasificación