Preguntas de la entrevista de Shanghai Jiuya Java
1. ¿Cuáles son las clases de colección básicas y sus características?
Existen tres tipos principales de colecciones: conjuntos, listas y mapas.
La lista se preocupa por los índices. En comparación con otras colecciones, List es única en algunos métodos relacionados con índices: get(int index), add(int index, Object o), indexOf(Object o).
Set se preocupa por la unicidad y no permite la duplicación.
El mapa está relacionado con identificadores únicos. Asigna una clave única a un elemento. Por supuesto, las claves y los valores son objetos.
2. Los resultados de ejecución del siguiente código: (a)
Clase pública Foo {
Public static void main(String[] args) {
Cadena s;
cadena fuera . println(" s = "+s);
A. Debido a que la cadena s no está inicializada, el código no se puede compilar. b. El código se compila y el resultado de salida es "s=".
C. El código se compila y la salida es "s = null". El código se compila, pero se detecta la excepción NullPointException.
3. Explique la diferencia entre igual y ==.
int I = 1; int j = 1;
¿Es cierto usar i==j en una condición de juicio?
¿Qué pasa si i y j son ambos números enteros?
= =Esta operación compara si los valores de dos variables son iguales. Para las variables de referencia, indica si las direcciones de las dos variables almacenadas en el montón son las mismas, es decir, si el contenido de la pila es el mismo.
Si las dos variables representadas por la operación igual se refieren al mismo objeto, es decir, si el contenido del montón es el mismo.
= =Compara las direcciones de dos objetos, mientras que igual compara el contenido de dos objetos.
4. Escribe un método para determinar la paridad.
int num = 0;
System.out.println("Ingrese un número entero:");
Escáner inputScanner = nuevo escáner (sistema . en );
num = escáner de entrada. nextint();
if(num%2==0){
System.out.println(num+" es un número par");
}de lo contrario{
System.out.println(num+"es un número impar");
}
5. ¿Es correcto el siguiente código?
String[] nombre={ "Tom", "Dick", "Harry" }
for(I = 0; i<=nombre.longitud; i++) { p>
system . out . print(name[I]+' \ n ');
}
Este error de código activará la excepción "ArrayIndexOutOfBoundsException". un mensaje de error en tiempo de ejecución que aparece cuando el código intenta acceder a un elemento que no está dentro del rango del valor del índice de la matriz.
6. Las siguientes dos impresiones generarán los resultados respectivamente:
cantidad doble 1 = 2,0
cantidad doble 2 = 1,1; p>doble monto3 = 0.9
System.out.println(monto 1-monto 2 = =monto 3);
BigDecimal damonto 1 = newBigDecimal(" 2.0 "); p>
p>
Dato BigDecimal 2 = newBigDecimal(" 1.1 ");
Dato BigDecimal 3 = newBigDecimal(" 0.9 ");
sistema. println(da montaje 1 . restar(da montaje 2). igual(da montaje 3));
7. ¿Cuál es la diferencia entre jsp y servlet?
Jsp es esencialmente un servlet, pero se crean de diferentes maneras.
El servlet está compuesto completamente por código de programa Java, es bueno para el control de procesos y el procesamiento de transacciones, y genera páginas web dinámicas a través de jsp; Jsp está compuesto por código HTML y etiquetas JSP, y puede escribir fácilmente páginas web dinámicas.
Por tanto, en las aplicaciones reales, los servlets se utilizan para controlar los procesos de negocio, mientras que JSP se utiliza para generar páginas web dinámicas. En el marco de struts, jsp se encuentra en la capa de vista del patrón de diseño MVC y el servlet se encuentra en la capa de control.
8. ¿Qué hay de malo en las siguientes afirmaciones? (1)
La sesión existe en el servidor y la cookie existe en el disco duro.
El mecanismo B.session utiliza el lado del servidor para mantener el estado, pero durante el proceso de solicitud, el mecanismo de cookies se utiliza para guardar el logotipo para lograr el inicio de sesión del usuario.
C.cookie sólo está relacionada con su host (dominio) y no tiene nada que ver con las páginas select y jsp.
No se puede acceder a los objetos D.java directamente en D.cookie, pero se pueden almacenar en la sesión.
9. ¿Cuál de las siguientes descripciones sobre reenvío y redirección es incorrecta? (4)
A. Al ejecutar hacia adelante, el navegador no sabe de dónde proviene el contenido enviado por el servidor y la barra de direcciones sigue siendo la dirección original.
Al realizar el reenvío, el servidor le dice al navegador que solicite la dirección nuevamente.
El reenvío es una redirección interna y la redirección es una redirección externa.
D.forward significa que el servidor transfiere el control a otro objeto del servidor interno, y el nuevo objeto es totalmente responsable de responder a la solicitud del usuario.
10, . MySQL . Controlador JDBC ";
Nombre de usuario de cadena privada = " raíz
Contraseña de cadena privada = " 123 "; p>private int maxconn = 5000
DBConnpool público(){ }
Public void setdbid(string dbid)
{ this.dbid = dbid } p>
public void setusername(cadena de nombre de usuario)
{ this.username =username;}
Public void setpassword(cadena de contraseña)
p>
{ this.password = contraseña;}
public void setmaxconn(int maxconn)
{ this .max conn = max conn;}
Público string getdbid()
{ return dbid}
Cadena pública getusername()
{Return nombre de usuario;}
Cadena pública getpassword( )
{Return password;}
public int getmaxconn()
{ return maxconn}
/ /Devuelve la conexión al grupo de conexiones
Sincronización pública reconexión(conexión) no válida
{Conexión con = conexión
conexiones agregar elemento(con); inUse-;
}
//Obtener la conexión del grupo de conexiones
Conexión de sincronización pública getConnection()
{ p>
Conexión con = null
if(conexiones. tamaño()> 0)
{
con =(Conexión)conexiones.elemento at(0);
connections.removeelementat(0);
Pruebe {
if(con.isClosed())
{ con = getConnection();}
}catch(Exception e){
e . printstacktrace();
}
. } else if(maxconn == 0 | | inUse & lt; maxconn)
{ con = nueva conexión();}
If (con! = vacío)
{ inuse++;}
Regresar con
}
Conexión privada newConnection()
{
Conexión con = null
Prueba {
class para nombre(nombre del controlador)
con = administrador de controladores. (dbid, nombre de usuario, contraseña);
}catch (Excepción e){
e . printstacktrace();
Devolver nulo
< p. >}Regresar con
}
Sincronización pública void closeConn()
{
Enumeración todas c
conexiones = conexiones . elementos();
mientras(todas las conexiones . hasmoreelements())
{
Conexión con =(Conexión)todas las conexiones . );
Pruebe {
con . close();
}catch(SQLException e){
e . ;
} } } }
Utilice un grupo de conexiones, coloque enlaces no utilizados temporalmente en el grupo de conexiones y retire los enlaces del grupo de conexiones para usarlos cuando sea necesario.
15. Dada la siguiente matriz, ¿cómo imprimir cada valor de la forma más sencilla?
String[] arry=new String[]{"john","Marry","Bob"};
system out . println(array . tostring(arry)) ;
16. Se introduce una biblioteca de terceros en el proyecto Java y se genera NoClassDefFoundError o NoSuchMethodError cuando se ejecuta un determinado código. ¿Cómo surgió este problema y cómo lo resolviste?
17. Hay una cadena para juzgar y las condiciones son: debe tener al menos 1 dígito, 1 dígito y más de 10 dígitos. ¿Qué tecnología usaste para lograr este juicio?
Si (/\ d+$/.test(str)){todos los números, ejecutar...} Por supuesto, también puedes usar isNaN para determinar si (isNaN(str)){ str es un número, ejecutar... .}
18. ¿Cuáles son las teclas de acceso directo para la depuración del navegador Chrome?
F12
19. ¿Cuáles son los usos de Elementets, Red y Recursos en el panel de depuración del navegador Chrome?
El elemento es el elemento html de la página,
La red es la carga de recursos de la red cuando se carga la página.
Los recursos son archivos de recursos web de un sitio web, incluidos css, js, etc.
20. En Eclipse, ¿cuáles son las teclas de acceso directo que hacen que los programas Java parezcan más legibles?
Ctrl+Shift+F
21, hable brevemente sobre qué es un seguimiento de pila.
El seguimiento de la pila se llama seguimiento de la pila: si necesita imprimir el estado de la pila de llamadas en un momento determinado, se generará un seguimiento de la pila.
El seguimiento de la pila incluye tres partes, a saber: .bss.text.data.
Bss: Representa el área de memoria de variables globales no inicializadas en el programa.
Texto: Representa el área de memoria de variables globales que han sido inicializadas en el programa.
Datos: Representa el área de memoria donde se almacena el código de ejecución del programa.