¡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:
- Ahorre memoria, utilícela repetidamente, sin necesidad de reasignar
- 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:
- equals se usa para comparar el contenido de String, == se usa para comparar la dirección de memoria de los objetos String
- name1 = "zhangsan", crea "zhangsan" en el grupo constante
- name2 = "zhangsan", asignará directamente la dirección de la constante en el grupo a name2
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
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.
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:
- Los métodos StringBuffer son seguros para subprocesos, StringBuilder no es seguro para subprocesos
- 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
Boxeo y unboxing
El boxeo y el unboxing son la conversión mutua de tipos de datos básicos y tipos de referencia.
- Empaquetado: los tipos de datos básicos se convierten en tipos de referencia
como: Entero n = 200; - 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:
- Describe brevemente los principales métodos de String
- Describe brevemente la diferencia entre String y StringBuilder
- Describe brevemente la diferencia entre StringBuilder y StringBuffer
- 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 - 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