Una colección completa de treinta y tres códigos de programación.
Conocimientos básicos:
El principio simple y la aplicación del mecanismo de manejo de excepciones en 1. C++ o Java.
Cuando un programa JAVA viola las reglas semánticas de JAVA, la máquina virtual JAVA expresará el error como una excepción. Las violaciones de las reglas semánticas incluyen
dos situaciones. Una es la verificación semántica integrada en la biblioteca de clases JAVA. Por ejemplo, si el subíndice de la matriz está fuera de los límites, se generará una IndexOutOfBoundsException. Acceso
Cuando el objeto esté vacío, se generará una NullPointerException. Otra situación es que JAVA permite a los programadores extender esta verificación semántica, y los programadores pueden crear sus propias excepciones y elegir libremente cuándo lanzar excepciones usando la palabra clave throw. Todas las excepciones son subclases de java.lang.Thowable
.
2. Similitudes y diferencias entre interfaces Java y clases virtuales C++.
Debido a que Java no admite la herencia múltiple, una clase u objeto puede usar métodos o propiedades en varias clases u objetos, y el mecanismo de herencia único existente
no cumple con los requisitos. En comparación con la herencia, las interfaces son más flexibles porque no hay código de implementación en la interfaz. Cuando una clase
implementa una interfaz, la clase debe implementar todos los métodos y propiedades en la interfaz, y las propiedades en la interfaz están por debajo del estado predeterminado.
Público estático, todos los métodos son públicos por defecto. Una clase puede implementar múltiples interfaces.
3. Ventajas y principios de la recogida de basura. Y considere dos mecanismos de reciclaje.
Una característica notable del lenguaje Java es la introducción de un mecanismo de recolección de basura, que resuelve el problema de administración de memoria más problemático para los programadores de C++.
Permite a los programadores de Java ya no tener que considerar la administración de memoria al escribir programas. Debido al mecanismo de recolección de basura, los objetos en Java ya no tienen el concepto de "alcance". Solo las referencias a objetos tienen "alcance". La recolección de basura puede prevenir eficazmente las pérdidas de memoria y utilizar la memoria de forma eficaz.
Memoria disponible. El recolector de basura generalmente se ejecuta como un subproceso separado de bajo nivel, lo cual es impredecible con el montón de memoria.
Después de borrar y reciclar los objetos muertos o no utilizados durante mucho tiempo, los programadores no pueden llamar al recolector de basura de un objeto o ubicación en tiempo real.
Existen objetos para la recolección de basura. Los mecanismos de reciclaje incluyen recolección de basura de copias generacionales, recolección de basura marcada y recolección de basura incremental.
Por favor, cuéntame lo que sabes sobre la sincronización de hilos.
Esperar(): deja que un hilo espere y libera el bloqueo del objeto retenido.
Sleep(): Este es un método estático utilizado para poner un hilo en ejecución en estado de suspensión. Llame a este método para capturar.
Excepción de interrupción.
Notify(): activa un hilo en espera. Tenga en cuenta que al llamar a este método, no puede reactivar completamente un hilo en espera.
El estado del hilo, pero la JVM decide qué hilo activar, no por prioridad.
Allnotity(): activa todos los subprocesos en estado de espera. Tenga en cuenta que en lugar de otorgar a todos los subprocesos despiertos un bloqueo sobre un objeto, se les permite competir.
.
5. Hable sobre el uso y las funciones de los destructores y las funciones virtuales.
6. ¿Cuál es la diferencia entre errores y excepciones?
Los errores significan errores y excepciones a nivel del sistema que el programa no tiene que manejar.
Las excepciones se refieren a excepciones que el programa necesita detectar o manejar.
7. En java, las clases se declaran como tipos finales. ¿Qué quiere decir esto?
Indica que la clase no se puede heredar y es una clase de nivel superior.
8. Describe tu estilo de programación más común.
9. ¿Cuál es la diferencia entre montón y pila?
La pila es una colección lineal, y las operaciones de agregar y eliminar elementos deben completarse en el mismo párrafo. La pila se procesa según el principio de último en entrar, primero en salir.
El montón es un componente de la pila.
10. Si el sistema va a utilizar números enteros muy grandes (fuera del rango de longitud larga), diseñe una estructura de datos para almacenar la suma de este número tan grande.
Algoritmo de diseño para implementar suma de enteros muy grandes).
Clase pública BigInt()
{
int[]ArrOne = new ArrOne[1000];
String intString = p>
p>
public int[] Arr(cadena s)
{
int cadena = s;
for(int I = 0; i
{
11. Si desea diseñar un sistema gráfico, diseñe una implementación simple de elementos gráficos básicos (puntos, líneas, rectángulos, triángulos)
{
11. p>
12. Hablemos de final. Finalmente, ¿la diferencia entre finalizar?
Final? Modificador (palabra clave) Si una clase se declara final, significa que ya no puede derivar nuevas subclases. ni se puede utilizar como padre.
Las clases se heredan. Por lo tanto, una clase no se puede declarar abstracta y final al mismo tiempo. Declarar variables o métodos como finales garantiza que no lo serán. utilizado durante el uso. Ser cambiado. A las variables declaradas como finales se les debe asignar un valor inicial cuando se declaran y solo se puede hacer referencia a ellas en el futuro.
Los métodos declarados como finales solo se pueden usar y no se pueden repetir.
¿Finalmente? Proporciona un bloque finalmente para realizar cualquier operación de limpieza durante el manejo de excepciones. Si se genera una excepción, se ejecutará la cláusula catch correspondiente y el control ingresará al bloque finalmente (si es así.
Finalice el nombre del método. La tecnología Java permite el uso del método finalize() para realizar el trabajo de limpieza necesario antes de que el recolector de basura borre el objeto de la memoria. El recolector de basura llama a este método cuando no se hace referencia al objeto. la clase de objeto, por lo que todas las subclases anulan el método finalize() para organizar los recursos del sistema o ejecutarlos. /p>
Antes de que el recolector de basura elimine el objeto, llamará al método finalize(). p>
13. ¿Pueden las clases internas anónimas extender (heredar) otras clases? ¿Se puede implementar la interfaz (número real)
ahora)?
Las clases internas anónimas son clases internas sin nombres. No se pueden ampliar otras clases, pero una clase interna puede actuar como interfaz.
Implementado por otra clase interna.
14. Cuanto más explique la diferencia entre clases anidadas estáticas y clases internas, mejor (algunas preguntas de la entrevista son muy generales).
Clases anidadas (normalmente C++), clases internas (normalmente JAVA). La mayor diferencia entre las clases internas de Java y las clases anidadas de C++ es si existen referencias externas. ver ma toker = New String Tokenizer(source, ",");
String[]result = new String[comma count tokens()]; ;
while(coma toker . hasmoretokens()){
resultado[I]= coma toker . nexttoken();
i++;
}
Devuelve el resultado;
}
Atraviesa la matriz de cadenas
Integer.parseInt(String s) se convierte en Tipo int.
Formar una matriz int
Arrays.sort(int[] a),
Orden ascendente de la matriz
La salida en sentido descendente se puede generar desde la cola.
2. Conversión de montos, convierta el monto en números arábigos a la forma tradicional china, por ejemplo:
(¥1011)->(Mil un yuanes) de salida.
3. El orden de ejecución de las clases durante la herencia es generalmente una pregunta de opción múltiple.
¿Qué quieres imprimir?
Respuesta: Clase principal:
Prueba de embalaje;
Clase principal de clase pública
{
Padre público clase clase()
{
sistema . println("clase padre Crear"); p >
Subclases:
Pruebas de embalaje;
Pruebas de importación. Clase principal;
La clase pública ChildClass extiende FatherClass
{
Subclase pública()
{
sistema . out . println(" clase secundaria Crear ");
}
Public static void main(String[] args)
{
clase padre fc = nueva clase padre();
clase hija cc = nueva clase hija();
}
}
Resultado de salida:
C:>;prueba java. Subclase
Creación de clase padre
Creación de clase padre
Creación de subclase
4. ¿Cómo implementar clases internas?
Respuesta: El código de muestra es el siguiente:
Prueba de embalaje;
Clase pública
{
Clase privada
{
Clase pública()
{
System.out.println("Crear entre clases");
}
}
Clase externa pública()
{
InterClass IC = new InterClass();
p>system . out . println(" clase externa Crear ");
}
Public static void main(String[] args)
{
clase externa oc = nueva clase externa();
}
}
Resultado de salida: p>
C:>prueba java/clase externa
Creación entre categorías
Creación extraescolar
Otro ejemplo:
Público class OuterClass {
Privado doble d 1 = 1.0;
//Inserte el código aquí
}
Necesitas insertarlo en línea 3 Una declaración de clase interna. ¿Qué dos declaraciones de clases internas
son
válidas? (Elija dos.)
A. Clase InnerOne{
Método doble estático público a(){ return d 1;}
}
B. Clase pública InnerOne{
Método doble estático a(){ return d 1;}
}
Clase privada InnerOne{< / p>
método doble a(){ return d 1;}
}
D clase estática InnerOne{
método doble protegido a() { return d 1;}
}
E. Clase abstracta InnerOne{
Método doble abstracto público a();
}
La explicación es la siguiente:
1. Las clases internas estáticas pueden tener miembros estáticos, pero las clases internas no estáticas no pueden tener miembros estáticos. Entonces A y B están equivocados.
2. Los miembros no estáticos de una clase interna estática pueden acceder a variables estáticas de la clase externa, pero no pueden acceder a variables no estáticas de la clase externa. Se produjo un error al devolver d1.
.
Entonces d es incorrecto
3. Los miembros no estáticos de clases internas no estáticas pueden acceder a variables no estáticas de clases externas. Por tanto, C es correcta
Las respuestas son C y e.
5. ¿Programación de comunicación Java, preguntas de programación (o preguntas y respuestas), usar programación JAVA SOCKET, leer algunos caracteres del servidor y luego escribirlos en la pantalla local?
Respuesta: Programa del lado del servidor:
Prueba de empaquetado;
Importar Java .net *; * ;
Servidor de clase pública
{
Socket de servidor privado ss;
Socket de socket privado;
Private BufferedReader
La versión privada del escritor está disponible;
Servidor público()
{
Probar
{
ss = nuevo socket de servidor(10000);
mientras(verdadero)
{
socket = ss aceptar();
Remoción de cuerdas