面试经验(Java)

作者: Harlan1994 | 来源:发表于2019-08-28 15:40 被阅读0次

近来秋招已经开始有一段时间了,很多学弟学妹,相信是在论文和工作之间苦苦煎熬着。下面给大家分享自己当初面试Java工程师岗位的经验,主要是一些整理之前看过的知识点,希望有了这些资料,慢慢啃下来你会有所收获。内容不像其他分享整理的那么全面,但是都是在面试中有所体现的重点内容。

  1. Java语言进阶面试常考内容,里面包括以下内容,讲解非常详细(再次给作者一百个赞),学好里面的内容,相信你会对Java的基础知识有很大提升
  • 深入理解Java类型信息(Class对象)与反射机制
  • 深入理解Java枚举类型(enum)
  • 深入理解Java注解类型(@Annotation)
  • 深入理解Java类加载器(ClassLoader)
  • 深入理解Java并发之synchronized实现原理(面试问过不止一次)
  • Java并发编程-无锁CAS与Unsafe类及其并发包Atomic
  • 深入理解Java内存模型(JMM)及volatile关键字(内存模型是Java语言的重要知识点,想要学好Java,这一关必过,也是常考的点)
  • 剖析基于并发AQS的重入锁(ReetrantLock)及其Condition实现原理(Java的锁和MySQL的锁机制一样是面试官常考的点
  • 剖析基于并发AQS的共享锁的实现(基于信号量Semaphore)
    并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

PS: 除了上面的知识点以外,还有以下几点非常重要,但是我这边没找到收藏的链接:

  • Java对基础数据类型的封装,拆箱装箱机制
  • Java虚拟机内存管理、GC算法(重点,建议直接看《深入理解Java虚拟机》部分章节
  • Java语法层面的比如 类、接口、抽象类、private、public关键字等知识点
  • syncronized、volatile关键字(重点会问,和Java锁、内存模型部分知识分不开)
    Java语言层面的基础知识众多,问的比较多的也就上面这些,当然最终问什么全是考官个人爱好。
  1. HashMap(单独列出来可见其重要性
    面试主要问的内容有以下两点,当然,HashMap的源码实现有非常多的让人眼前一亮的代码,好好学习人家大拿写的代码对自己的有很大好处。
  • JDK1.7 和 JDK1.8实现的不同,要深入源码层面,不能仅仅局限于简单的比较
  • HashMap出现死循环的原因,能否复现?生产遇到这个问题如何解决?
    这是链接:Map 综述(一):彻头彻尾理解 HashMap,当然,这是一个系列的文章,建议都仔细好好认真的学习10遍,T。T
  1. 算法
    算法我只建议好好认真学习以下算法,因为算法繁多,而且算法难度是有目共睹的,不建议花太多时间学习,但是数据结构与算法的重要性是大家都清楚的,有时间还是要多多学习,不是说不建议学就不学,而是目前而言,不建议花太多时间准备。(因为我知道准备了也没用,算法方面临时抱佛脚起不到作用的)
  • 排序算法,都好好学一遍,每一个排序算法都得知道原理,其中几个诸如冒泡排序插入排序之类的简单排序,还是要一分钟内写出可运行的代码来的。非常重要且常考但却有点难度的算法有 快速排序, 堆排序,这两个算法有点难度,但是建议会写出可运行代码。(多写两遍自然就会了
  • 一些非常经典的算法,只有大神才能设计出如此优雅的算法,值得学习,多学学这些算法能解决的问题 经典算法系列之(一) - BitMap, 作者还有一个系列的经典算法,不妨进去一探究竟。
    PS:算法部分不定期更新......
  1. 框架部分
  • spring家族,Spring,Spring MVC, Spring Boot。Spring家族的部分要学的太多,建议直接看书,在网络上各种博客中,建议看的只有一点,主要是Spring的整体思想,非常重要,这是spring学习的起点,重要讲解spring为何诞生,他是怎么解决问题的,其他技术上的细节是说不完的,建议直接看书。
    关于Spring IOC (DI-依赖注入)你需要知道的一切 非常详尽的介绍了spring核心之一的依赖注入

  • MyBatis,Spring JPA学会使用的接触上比较两者的优劣

  1. 数据库系列(MySQL和Redis问的最多)
  • Redis,redis的数据结构设计的非常精妙,值得研究,建议直接看书《Redis设计与实现》,学完这本书感觉Redis的实现原理基本都懂了,这本书用python这种非常易懂的语言作为写算法的为代码,非常值得一读
  • MySQL的锁,引擎,两个部分非常容易被考官问到。这里收藏了两篇博客:
    mysql共享锁与排他锁
    什么是脏读,不可重复读,幻读

不定期更新......

相关文章

网友评论

    本文标题:面试经验(Java)

    本文链接:https://www.haomeiwen.com/subject/fvnpectx.html