Preguntas de la entrevista de Rongbang JAVA

1. La función y el uso del grupo de subprocesos de Java.

Las funciones del grupo de subprocesos:
(1) Reducir el consumo de recursos del sistema : Reduzca el consumo causado por la creación y destrucción de subprocesos mediante la reutilización de subprocesos existentes.
(2) Mejorar la velocidad de respuesta del sistema : cuando llega una tarea, se puede ejecutar inmediatamente sin esperar la creación de un nuevo hilo.
(3) Mejorar la capacidad de administración de subprocesos : Los subprocesos son recursos escasos. Si se crean sin restricciones, no solo consumirán recursos del sistema, sino que también reducirán la estabilidad del sistema. El grupo de subprocesos se puede utilizar para asignación unificada, ajuste y supervisión.
(4) Funciones más potentes : el grupo de subprocesos proporciona un grupo de subprocesos con funciones como temporización, periodicidad y número controlable de subprocesos, que es fácil y sencillo de usar.
Uso del grupo de subprocesos:
newCachedThreadPool(); el grupo de subprocesos almacenables en caché
crea un grupo de subprocesos que se puede almacenar en caché. Si la longitud del grupo de subprocesos excede las necesidades de procesamiento, los subprocesos inactivos se pueden reciclar de manera flexible. Si no se pueden reciclar subprocesos, se crearán nuevos subprocesos.
El grupo de subprocesos es infinito: cuando se ejecuta la segunda tarea, la primera tarea se completa y el subproceso que ejecutó la primera tarea se reutilizará en lugar de crear un nuevo subproceso cada vez.

newFixedThreadPool();longitud ajustable

Cree un grupo de subprocesos de longitud fija para controlar la cantidad máxima de subprocesos simultáneos y los subprocesos sobrantes esperarán en la cola.
El tamaño de un grupo de subprocesos de longitud fija se establece mejor en función de los recursos del sistema. Como Runtime.getRuntime().availableProcessors().

newScheduledThreadPool() ;Se puede programar
para crear un grupo de subprocesos de longitud fija para admitir la ejecución de tareas periódicas y programadas.
ScheduledExecutorService es más seguro y potente que Timer.

newSingleThreadExecutor();Singleton
crea un grupo de subprocesos de un solo subproceso, que solo utilizará un subproceso de trabajo único para ejecutar tareas, asegurando que todas las tareas se ejecuten en el orden especificado (FIFO, LIFO, prioridad).

2. Implementado en Java para contar el número de apariciones de subcadenas en una cadena.

public class FindWords {
    
    
		public static void main(String[] args) {
    
    
			
			Scanner sc = new Scanner(System.in);
			String str = sc.nextLine();
			String str1 = "chuanzhi";
			int count = 0;
			int start = 0;
			while (str.indexOf(str1, start) >= 0 && start < str.length()) {
    
    
				count++;
				start = str.indexOf(str1, start) + str1.length();
			}
			System.out.println(count);
			sc.close();
		}
	}

3. Mecanismo operativo ClassLoader

Classloader es responsable de cargar Class en JVM y determinar qué ClassLoader la cargará (mecanismo de carga de primer nivel principal)

4. Cómo detectar excepciones globalmente en SpringMVC

  1. Cree una nueva clase de excepción SpringMVC
  2. Agregue la anotación ControllerAdvice a la clase
  3. Agregue @ExceptionHandler (Exception.class) en el método
//@RestControllerAdvice用于标识当前类为REST风格对应的异常处理器
@RestControllerAdvice
public class ProjectExceptionAdvice {
    
    
    //除了自定义的异常处理器,保留对Exception类型的异常处理,用于处理非预期的异常
    @ExceptionHandler(Exception.class)
    public void doException(Exception ex){
    
    
      	System.out.println("嘿嘿,异常你哪里跑!");
    }
}

5. Programación: N bolas de plastilina de diferentes pesos. Supongamos que la fuerza (F) que mantiene unidas las dos bolas es la suma de las masas de las dos bolas. Sacar dos bolitas, juntarlas y volver a colocarlas, repetir la operación anterior hasta que quede solo una bolita. ¿Cómo podemos minimizar la fuerza anterior (F)?

6. Parte del diagrama ER del sistema de gestión de estudiantes de la escuela es el siguiente:

Insertar descripción de la imagen aquí

Responda las siguientes preguntas basándose en el diagrama ER

asc: orden ascendente, si no está escrito, el orden ascendente predeterminado, desc: orden descendente

Tabla de estudiantes S (número de estudiante Sno, nombre de estudiante Nombre, género Ssex, departamento Sdept)
tabla de cursos C (número de curso cno, nombre de curso cname, horas de crédito ccredit)
tabla de selección de cursos SC (número de estudiante sno, número de curso cno, calificación)

# 1、查询“CS”系学生的基本信息;
SELECT * FROM s  WHERE  Sdept="CS";


# 2、统计各系学生的人数,结果按升序排列;
SELECT  Sdept,COUNT(*) '人数' 
FROM s  
GROUP BY Sdept 
ORDER BY '人数'; 

# 3、查询选修了“1”或“2”号课程的学生学号和姓名;
SELECT s.Sno,Sname 
FROM  s ,sc 
where s.`Sno`=sc.`Sno` AND Cno IN ('1','2'); 

# 4、查询选修了课程名为“数据库”且成绩在60分以下的学生的学号、姓名和成绩;
SELECT s.Sno,Sname ,grade
FROM s JOIN sc ON s.`Sno`=sc.`Sno` 
JOIN c ON sc.`Cno`=c.`Cno`
WHERE Cname ="数据库" AND grade<60;

# 5、查询选修了3门以上课程的学生学号;
SELECT sno 
FROM sc 
GROUP BY sc.Sno 
HAVING COUNT(*)>=3;

# 6、查询选修课程成绩至少有一门在80分以上的学生学号;
SELECT sno
FROM sc 
GROUP BY sc.Sno 
HAVING MAX(grade)>80;

# 7、查询选修课程成绩均在80分以上的学生学号;
SELECT sno 
FROM sc 
GROUP BY sc.Sno 
HAVING MIN(grade)>80;

# 8、查询选修课程平均成绩在80分以上的学生学号
SELECT sno
FROM sc 
GROUP BY sc.Sno 
HAVING AVG(grade)>80;

Supongo que te gusta

Origin blog.csdn.net/CSDN_Admin0/article/details/132059305
Recomendado
Clasificación