Un piloto veterano que se ha estado desarrollando durante muchos años pensó que conocía bien la carretera, y después de terminar esta entrevista de advertencia con una gran fábrica, ¡dijo que casi cometió un error fatal!

antecedentes

Es realmente agotador encontrar trabajo en la temporada de invierno, pero no hay forma. La empresa tiene que mudarse fuera de Shanghai, así que solo puedo salir a buscar trabajo. Durante este período de tiempo, sufrí abusos miserables. fue asesinado por una titulación académica. La experiencia laboral de mis compañeros es casi la misma que la mía., Son novatos de 6 años, universitarios. Voté por 10 empresas y dos de ellas. He votado por decenas de empresas y solo Se han entrevistado temporalmente 3 empresas, el gap, que me está diciendo que la titulación académica no es problema, no lo puedo matar con un ladrillo. No son muchas tonterías, pero para resumir:

Androide

En primer lugar, para Android, sugiero que además de la correcta comprensión de algunos conocimientos básicos, debemos mirar el código fuente, al menos mirar el código fuente del mecanismo Handler, AsyncTask y dos o tres bibliotecas de código abierto. Si tienes tiempo, puedes consultar la lista a continuación. Debes mirar el código fuente, como Glide, OkHttp, etc., para que no te etiqueten, solo una etiqueta de una persona que puede usar la herramienta, pero una persona que entienda el principio de la herramienta, lo que le dará un muy buen trabajo en la entrevista.Grandes puntos a favor.

  • ¿Qué es ANR y cómo evitarlo? (Tencent)
  • ¿Cuáles son los ciclos de vida de Actividad y Fragmento?
  • Ciclo de vida de la actividad al cambiar entre pantallas horizontales y verticales
  • Defectos y problemas de AsyncTask, habla de su principio.
  • ¿La prioridad del proceso en Android?
  • ¿Por qué es necesario serializar los objetos del pase Bunder? ¿Cuál es la diferencia entre serializable y parcelable?
  • Animación
  • Relacionado con el contexto
  • Nuevas funciones en cada versión de Android
  • Json
  • La diferencia entre Jar y Aar
  • ¿Cuál es el tamaño de memoria asignado por Android para cada aplicación?
  • Actualizar el método de la interfaz de usuario
  • Cómo utilizar ContentProvider
  • El papel de Merge y ViewStub
  • El ciclo de vida de los cuatro componentes principales (Meituan)
  • Método de comunicación entre actividades
  • Al cambiar entre pantallas horizontales y verticales, el ciclo de vida de la actividad en diversas situaciones
  • Comparación del ciclo de vida entre actividad y fragmento
  • El ciclo de vida cuando se presiona el botón Inicio cuando hay un diálogo en la actividad
  • ¿Qué métodos se ejecutan inevitablemente al saltar entre dos actividades?
  • Comparación de los cuatro modos de actividad de inicio
  • El estado de actividad se guarda en recuperación
  • Cómo gestionar el ciclo de vida de un fragmento en diversas situaciones.
  • El papel de la serialización y la diferencia entre los dos tipos de serialización en Android
  • Hablar sobre la comprensión de interfaces y devoluciones de llamada
  • Método de almacenamiento de datos en Android
  • Características de la animación de atributos de Android
  • ART (latido de bytes)
  • Optimización del cuerpo del paquete apk
  • Gancho
  • Proguard
  • Arquitectura
  • Jetpack
  • Desarrollo de NDK
  • Cargador de clases

Java (énfasis)

Muchos de los puntos de conocimiento enumerados aquí deben asimilarse y comprenderse realmente. Por ejemplo, si conoce el método de implementación para garantizar la seguridad de los subprocesos, también deberá resolver algunos escenarios prácticos, como escribir a mano un modelo de consumidor productor o imprimir un número impar en un hilo. Un hilo imprime números pares, imprime alternativamente y finalmente genera 1, 2, 3, 4 ... etc. Así que no lo memorice de memoria, comprender la memoria también es la forma más eficiente.

  • La diferencia entre HashMap y HashTable y CurrentHashMap (Tencent)
  • La diferencia entre sincronizado y volátil, ReentrantLock, CAS
  • Mecanismo de carga de clases JVM, comparación del algoritmo de recolección de basura, estructura de la máquina virtual Java, etc.
  • Cuatro referencias a Java
  • Genéricos de Java, la diferencia entre <? Super T> y <? Extiende T>
  • ¿Cuáles son los estados de los subprocesos de Java, qué bloqueos hay y la diferencia entre varios bloqueos?
  • La diferencia entre finalizar, finalmente y finalizar
  • La diferencia entre interfaz y clase abstracta
  • La diferencia entre dormir, esperar y ceder, ¿cómo lo despierta el hilo de la espera?
  • La diferencia entre == y es igual a y hashCode en Java
  • El significado de la interfaz
  • La diferencia entre String, StringBuffer, StringBuilder (Meituan)
  • ¿Cuéntame acerca de los métodos de codificación más comunes?
  • La diferencia entre proceso e hilo
  • La diferencia entre serializable y parcelable
  • La forma y el principio de convertir cadenas en números enteros.
  • ¿Cuál es la diferencia entre proxy estático y proxy dinámico, y en qué escenarios?
  • Hable sobre su comprensión de la reflexión de Java
  • Hablar sobre el principio de los genéricos y dar un ejemplo.
  • Hable sobre su comprensión de las anotaciones de Java
  • Tipo de datos (latido de bytes)
  • tipo de embalaje
  • Grupo de búfer
  • A salvo de amenazas
  • Método general de objeto
  • heredar
  • reflexión
  • anormal
  • Genérico
  • anotación
  • Patrones de diseño en contenedores
  • Modo iterador
  • Análisis de código fuente
  • Transición de estado de subproceso
  • Implementar la diferencia entre la interfaz ejecutable y la interfaz invocable
  • ¿Cuál es la diferencia entre el método execute () y el método submit ()?
  • Cómo crear un grupo de subprocesos
  • Introducir la clase atómica atómica
  • Hablar sobre el uso de AtomicInteger

Red de computadoras

  • La diferencia entre TCP y UDP (Tencent)
  • Estrechar la mano tres veces y saludar cuatro veces. ¿Por qué es tres veces, no dos?
  • La diferencia entre HTTPS y HTTP. HTTP 2.0, 3.0?
  • El navegador ingresa una URL y presiona Enter. ¿Cuál es el proceso de transmisión de red?
  • ¿Cuál es la frecuencia de envío de paquetes después de que TCP establece una conexión?
  • OKHttp
  • ¿Cómo verificar la legitimidad del certificado?
  • ¿Dónde se utiliza el cifrado simétrico y el cifrado asimétrico en https? ¿Tiene algún conocimiento de los métodos de cifrado (como RSA)?
  • ¿Cómo determina el cliente que el servidor ha recibido el mensaje que envió?
  • Hable sobre su comprensión de WebSocket
  • La diferencia entre WebSocket y Socket
  • Hable sobre su comprensión de las firmas de Android
  • Explique por qué Android necesita agregar un mecanismo de firma.

Estructura y algoritmo de datos

  • Clasificación (Tencent)
  • Árbol binario
  • Lista enlazada
  • Pila / cola
  • Dicotómico
  • Tabla de picadillo
  • Heap / Priority Queue
  • Árbol de búsqueda binaria
  • Matriz / puntero doble
  • avaro
  • Procesamiento de cadenas
  • Programación dinámica
  • Matriz (latido de bytes)
  • Operación binaria / bit
  • Invertir entero
  • Estrategia de almacenamiento en caché de LRU

Resumen de la entrevista

En resumen, el contenido principal involucrado es:

  • Cuatro componentes principales
  • Manipulador
  • Ver dibujo
  • Mecanismo de distribución de eventos
  • Conflicto deslizante
  • Anidamiento deslizante
  • Mantener vivo el proceso
  • Optimización del rendimiento

Cómo prepararse para los conocimientos básicos

A partir del proceso anterior de obtención de una oferta, podemos encontrar que ya sea una prueba escrita o una o dos caras, implicará la investigación de conocimientos básicos. Por lo tanto, en el proceso de preparación para el reclutamiento escolar, lo más fundamental es para poner los conocimientos básicos Manténgalo ajustado, incluido un lenguaje con el que esté más familiarizado. Si es Java, debe estar familiarizado con los conceptos básicos de Java, incluidos

  • El significado y la función de las palabras clave de Java
  • Interfaz y clase abstracta
  • Polimorfismo y herencia
  • Boxeo y unboxing
  • … ..

Resolveré los específicos más adelante, por supuesto, solo los básicos, tal vez sea más difícil por los dos lados, por lo que es necesario avanzar, para Java, el avanzado incluye

  • Área de memoria de Java
  • Modelo de memoria Java
  • Mecanismo de Java GC
  • Seguro para múltiples subprocesos
  • … ..

Aquí hay algunos ejemplos para tener una idea, entonces, ¿cómo me preparo? Respuesta: lectura + práctica + pensamiento + resumen

Cómo preparar preguntas algorítmicas

En cuanto a cómo preparar preguntas algorítmicas, esta es en realidad la más difícil de preparar y la más fácil de preparar. Las preguntas algorítmicas ocupan una posición especial en todo el proceso de oferta. En la prueba escrita, básicamente cada prueba escrita es la última. Dos preguntas de algoritmo . Si no puede obtener más de la mitad del AC, entonces la posibilidad de aprobar el examen escrito es relativamente pequeña. Si puede obtener todos los AC, por supuesto que es mejor. Excepto por el examen escrito, en un lado y dos lados , por lo general se terminarán dos problemas de algoritmo Entrevista, por supuesto, si estas dos preguntas algorítmicas trituradas pueden dar directamente la solución óptima y escribir el código completo, entonces incluso si sus respuestas básicas y del proyecto anteriores no son buenas, es un gran punto a destacar , y también puede hacer que sus posibilidades de aprobar esta entrevista hayan aumentado mucho, por lo que las preguntas algorítmicas juegan un papel fundamental en todo el proceso de oferta.

Entonces, ¿cómo te preparas? En primer lugar, sobre el algoritmo, sugiero que antes de aprender el algoritmo, comience de lo simple a lo difícil. Después de dominar los conceptos básicos, vaya directamente al sitio web oficial de LeetCode y comience desde el nivel de dificultad medio. Después del nivel de dificultad medio es casi el mismo, luego desafíe el nivel de dificultad difícil. Por lo general, se requiere el desarrollo del lado del cliente. Puede resumir hasta 50 preguntas de dificultad difícil. Básicamente, la mayoría de las preguntas algorítmicas de la entrevista pueden dar ideas. Si busca la perfección y la seguridad, se recomienda que puede cepillar tantas preguntas difíciles como pueda, cuantas más, mejor.

Cómo preparar el proyecto

Porque yo mismo utilizo Android, pero creo que no importa en qué dirección sea, el entrevistador definitivamente te pedirá que elijas el elemento más familiar para el proyecto escrito en el currículum. Entonces viene la pregunta, ¿cómo debo poner uno? ¿Una descripción clara del proyecto para el entrevistador y, al mismo tiempo, atraer al entrevistador para hacer de este proyecto un punto culminante?

Con respecto a este tema, primero debemos dejar en claro que cuando planteamos cualquier tema, la lógica debe ser clara y no debemos saltar cuando hablamos, entonces, ¿cómo podemos expresarlo claramente? Puntos + resumen conciso. ¿Cómo dividir? Por ejemplo, para un proyecto, suelo hablar de él en tres puntos: primero, las funciones que el proyecto logra, segundo, qué trabajo has hecho en el proyecto, y tercero, los resultados alcanzados, y luego simplemente resumirlo. Es difícil, por lo que se recomienda encarecidamente que cada proyecto se prepare y resuma con anticipación de acuerdo con estos tres puntos, y luego a medida que aumenta el número de entrevistas, se formará la memoria muscular. Más tarde, cuando el entrevistador le pida que presente un proyecto , no será exagerado, encontrará que puede responder a esta pregunta sin pensar.

Cómo preparar fideos hr

En las entrevistas técnicas generales, la entrevista de recursos humanos es básicamente un 80% estable. La mayoría de las entrevistas de recursos humanos no podrán escanear a las personas, por supuesto, excepto en algunas empresas. Por lo tanto, cuando llegue a la entrevista de recursos humanos, no Necesito estar tan nervioso, solo hable y comuníquese normalmente. Echemos un vistazo a los fideos hr en general y las preguntas que se hacen, y sienta el contenido específico de los fideos hr:

  • ¿Anotar las dos primeras entrevistas? ¿Por qué?
  • ¿Existe algún requisito de horario laboral? ¿Qué opinas sobre trabajar horas extras?
  • ¿Cuándo estuvo más estresado y cómo lo manejó?
  • ¿Cuál es su plan de carrera para el futuro?
  • ............

El conocimiento más importante y más importante escrito en el currículum debe ser

La razón por la que esto se pone fin es porque este es el método de preparación rápida a corto plazo más rápido y efectivo. Si no damos tiempo para la preparación del algoritmo básico + proyecto + como el anterior por la razón total, entonces Espero que al menos te asegures de que el conocimiento escrito en el currículum pueda resistir la pregunta, por lo que el conocimiento escrito en el currículum debe ser completamente familiar. Asesoramiento personal, intenta escribir los puntos con los que estás familiarizado y escribe los puntos que son lo más difíciles posible y puede responderlas con confianza. Si realmente no tiene tiempo, puede elegir dos o tres puntos, como Java, mecanismo GC de Java, palabra clave sincronizada de Java (bloqueo), no pida más , pero debe poder resistir la pregunta y luego escribirla en su currículum. Arriba, estos dos puntos deben poder tratarse en 2 días y luego tratar de escribir todo lo que pueda.

Después de escribir su currículum, debe saber qué puntos de conocimiento están involucrados en su currículum y luego resumir los puntos de conocimiento involucrados. Por ejemplo, si escribe Java multiproceso, entonces cómo garantizar el tipo de bloqueo multiproceso y multiproceso. -El modelo del consumidor está escrito a mano, estos deben ser entendidos. Por supuesto, también puedes asumir que eres un entrevistador. Al ver este currículum tuyo, cómo puedes examinarte a ti mismo, nada más que preguntarte lo que has escrito. así que lo más seguro es extraer los puntos de conocimiento en el currículum y luego hacer una lista de puntos de conocimiento y luego resumir los problemas que se pueden investigar uno por uno en cada punto de la lista.

Conclusión

En general, en esta entrevista, tengo dos puntos principales. Uno es que prepararse temprano es más importante que cualquier otra cosa. La mayoría de las personas que están orgullosas de los reclutas de otoño continúan preparándose desde el comienzo de los reclutas de primavera. El éxito y la oportunidad siempre favorecerán a aquellos que están preparados. La suerte ciertamente tendrá algo de peso en el medio, pero la suerte por sí sola está lejos de ser suficiente . En segundo lugar, en una entrevista, se puede juzgar por completo si una persona tiene confianza o no. Si dos personas, también afectará en gran medida la Resultado final. La confianza en uno mismo es realmente una muy buena cualidad. Esta cualidad le hará irradiar un encanto personal sin fin .

Referencia de ruta de revisión de entrevista

En la actualidad, lo que tenemos que hacer es elegir nuestros propios subcampos para investigar en profundidad, tener un conocimiento profundo de los principios básicos y acercarnos y alcanzar el nivel avanzado lo antes posible. Por supuesto, también debe comprender las nuevas tecnologías y tener una mente abierta para aprender algunas nuevas tecnologías . No cambie a aprender tan pronto como aparezca una nueva tecnología. Esto no conducirá a nada en absoluto. Por supuesto, las nuevas tecnologías tienen un proceso de desarrollo No será popular y una gran cantidad de aplicaciones esperarán a que madure.

No hablaré sobre las palabras adicionales. A continuación, compartiré una ruta de revisión para la entrevista. Si también se está preparando para una entrevista pero no sabe cómo revisar de manera eficiente, puede consultar mi ruta de revisión. Si tiene alguna pregunta, no dude en comunicarse entre sí. ¡Vamos!

El primero es el mapa mental de aprendizaje de desarrollo de Android súper detallado , porque la imagen es demasiado grande, por lo que solo puse el contenido del directorio secundario, y puede agregar más detalles aquí para agregar WeChat para obtenerlo .

A continuación, ¡debemos clasificar el conocimiento y mejorar nuestras reservas! (Siete recursos de aprendizaje temáticos para arquitectos móviles de Android)

  • Habilidades esenciales para que los arquitectos construyan las bases: genéricos Java en profundidad + anotaciones en lenguaje simple + programación concurrente + transmisión y serialización de datos + principios de máquina virtual Java + reflexión y carga de clases + proxy dinámico + E / S eficiente

  • IU avanzada de Android y código fuente de FrameWork: promoción de IU avanzada + análisis del kernel de Framework + kernel de componentes de Android + persistencia de datos

  • Ajuste del rendimiento general de 360 °: ideas de diseño y optimización de la calidad del código + optimización del rendimiento del programa + optimización de la eficiencia del desarrollo

  • Interpretación de ideas de diseño de marcos de código abierto: diseño de reparación en caliente + interpretación del marco de plug-in + diseño del marco de componentes + marco de carga de imágenes + diseño del marco de acceso a la red + diseño del marco de programación adaptable RXJava + diseño de la arquitectura IOC + componente de arquitectura de Android Jetpack

  • Desarrollo del módulo NDK: sistema de conocimiento básico NDK + procesamiento de imágenes subyacentes + desarrollo de audio y video

  • Mini programa WeChat: Introducción al mini programa + Desarrollo de interfaz de usuario + Operación de API + Acoplamiento de WeChat

  • Desarrollo híbrido y Flutter: Html5 project combat + Flutter advanced

Después de clasificar los conocimientos, es necesario verificar y llenar las vacantes. Por lo tanto, para estos puntos de conocimiento, he preparado muchos libros electrónicos y notas a la mano. Estas notas proporcionan un resumen perfecto de cada punto de conocimiento.

Luego aprenda sistemáticamente a través del código fuente

Siempre que sea un programador, ya sea Java o Android, si no lee el código fuente y solo mira la documentación de la API, simplemente permanecerá en la piel. Esto no es bueno para el establecimiento y la integridad de nuestro sistema de conocimiento y la mejora de la tecnología de combate actual.

El que realmente puede ejercitar la mayor capacidad es leer el código fuente directamente, no solo leyendo el código fuente de los principales sistemas, sino también incluyendo una variedad de excelentes bibliotecas de código abierto.

"486 páginas de análisis refinado del código fuente relacionado con el desarrollo de Android súper completo"

"486 páginas de análisis refinado del código fuente relacionado con el desarrollo de Android súper completo"

Prepárese para las preguntas de la entrevista de la gran fábrica para aumentar la tasa de aprobación de la gran fábrica.

Después de medio año, compilé el análisis de preguntas de entrevistas de Android más completo del mercado.

1. Puede examinar directamente los puntos de conocimiento necesarios a través del índice del catálogo y comprobar los puntos que faltan.
2. El número de estrellas de cinco puntas indica la frecuencia de las entrevistas y representa un índice de recomendación importante

"Colección de entrevistas de desarrollo de Android de 379 páginas"

"Colección de entrevistas de desarrollo de Android de 379 páginas"

El contenido anterior es gratuito para compartir con todos, amigos que necesitan la versión completa, haga clic aquí para ver todo el contenido .

Finalmente, hay una serie de recursos de aprendizaje de Android que tardaron más de un año en organizarse: Android源码解析、Android第三方库源码笔记、Android进阶架构师七大专题学习、历年BAT面试题解析包、Android大佬学习笔记espera, estos contenidos son gratis para compartir con todos, amigos que necesiten la versión completa, pincha aquí para ver todos los contenidos .

Supongo que te gusta

Origin blog.csdn.net/weixin_44339238/article/details/114986739
Recomendado
Clasificación