Java面经整理分类

 

  最近,提了离职申请,但这段期间还帮着公司进行面试,所以总结一下最近面试的一些面试题吧,由于接下来就是别人面试wo呐...java

  本文章是阶段性的更新,若有新颖、奇特的面经,还望同步一下...面试

 

  自我介绍算法

    因人而异...数据库

 

  项目介绍设计模式

    1. 清楚项目是作什么的?数组

    2. 项目定位(为何作?亮点是什么?知足那些功能,与竞争品牌优点是什么)?缓存

    3. 项目功能(设计哪些功能点,模块)?安全

    4. 项目总体架构、涉及的技术(为何选择该技术,技术选项)?数据结构

    5. 本身在项目中担任的位置和做用(承担责任与角色)?架构

       6. 项目使用技术(经过这个项目有哪些成长)?

    7. 项目的优缺点,及再设计,会如何考虑(判断你的总体把控能力及思考)?

    8.。。。

     项目介绍模块,面试官经过该模块,关注的不是你作了什么,而是你会什么;不是你参与了什么,而是你主导了什么;不只是你的专业技能,还有你勇于创新,职业素养....项目介绍的重点:要么是成绩牛逼,要么是经历不同,要么是你的体会和收获。

    (来自于简书:如何在项目中介绍本身的项目经验?

 

  Java基础

    1. collection集合有哪些类?

    2. List与Set的区别?

    3. Set是如何保证不重复的?

    4. HashMap的原理,扩容,线程是否安全?

    5. HashMap JDK1.7与JDK1.8之间的区别?有哪些优化,如何优化?

    6. 线程安全的Map有哪些?

    7. ConcurrentHashMap的实现原理,如何保证线程优化?JDK1.7与JDK1.8之间的如何再次优化的?

    8. 异常分类?处理机制是什么?

    9. equals与==的区别?hashcode()与equals()之间的联系?Object.hashCode()方法与System.identityHashCode(object)之间的区别?

    10.ArrayList与LinkedList与Vector之间的区别?原理机制?

    11.有没有保证顺序的Map,实现原理是什么?那有没有线程安全的Map类?

    12.Java反射的 原理是什么?反射建立对象的方式有哪些?

    13.简单谈一谈深拷贝与浅拷贝之间的区别?

    14.JDK1.5中引入了泛型,它的存在是用来解决什么问题的?

      答:泛型的本质是参数化类型,也就是说所操做的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,而且全部的强制转换都是自动和隐式的,以提升代码的重用率

    15.int与Inter关于加减等,数值>=128的相等关系判断?

    16.Math类中的随机数(这个当初碰见过,让说出建立1-100之间随机数的几种方法)?

      17.(实战)手动实现一个LRU / FIFO缓存算法?

    18.。。。

 

  Java并发 / 线程

    1.线程是什么?与进程的区别?

    2.实现线程的方式有哪几种?

    3.线程池建立线程的几种方式?线程池有什么优势?

    4.什么是线程安全?如何保证线程安全?

    5.Java内存模型是什么?有什么特色?(JMM)

    6.Java关键字 - volatile 的做用与区别?实现原理?

    7.Java锁 - synchronized 与 reentrantLock 之间的区别?

    8.如何避免死锁?(怎么排查死锁,这个与JVM有关)

    9.J.U.C包下面的并发类了解哪些?(CountDownLatch、CyclicBarrier、Semphore)

    10.CAS?CAS有什么缺陷?如何解决?

    11.AQS?

    12.LockSupport工具?park?unpark?

    13.分段锁的设计思想?其替代的方案是什么?

    14.Fork/Join 框架的理解?

    15.ThreadLocal的原理,注意事项?

    16.什么是守护线程?做用?Java中是否有默认的守护线程?

    17.什么是条件锁、读写锁、自旋锁、可重入锁?

    18.锁优化、锁消除、锁粗化、锁升级、锁...

    19.CopyOnWriteArrayList、CopyOnWriteArraySet实现原理?

    20.。。。

 

  Spring框架

    1. 简单的介绍Spring框架,及其优势?

    2. Spring MVC的请求处理执行的流程,内部

    2. Spring IOC容器的初始化流程?其如何从XML配置进行bean的装配,以及其中bean对象的scope域?

    3. Spring AOP解决了什么问题?如何实现?代理模式的实现方式(设计模式)?

    4. ASM 是什么?解决了什么问题?在Spring中体如今哪一个方面?

    5. Spring 事物的特性?隔离级别?传播机制?它会影响什么?如何实现的?

    6. Spring Bean 的生命周期( init-method 、intilizingbean 、 afterproperties 、 ... )

    7. 。。。

 

     Spring Boot / Cloud

    1.简单介绍一下SpringBoot,优势?

    2.SpringBoot核心配置文件是什么?有哪些类型?

    3.SpringBoot实现热部署的方式?

    4.若想启动一个SpringBoot程序,该如何操做?

    5.什么是SpringCloud?其主要解决了哪些问题?

    6.SpringColud的核心组件有哪些?(网关、熔断器、配置等等)

    7.。。。

 

  其余框架

    1.ORM框架有哪些?

    2.是否有用过Mybatis、Hibernate框架?

    3.mybaits中的一级缓存、二级缓存理解?

    4.hibernate对象中的状态有哪些?

    5.这两个框架之间的区别?是否支持懒加载(延迟加载)等

    6.。。。

 

  设计模式

    1. 项目中使用了哪些设计模式?有什么优点?

    2.设计模式的原则有哪些,怎样理解?

    3.单例模式的实现方式有几种?(DCL这种模式怎么理解,为何加volatile?)

    4.阅读JDK源码时,有哪些比较深入的设计模式?

    5.挑出其中几种设计模式,分别阐述其特色(异同点)

    6.。。。

    

  分布式事物 / 锁

     1.

     2.

 

  中间件

     Redis

      1.

     RabbitMQ

      1.

     Dubbo

      1.

     Zookeeper

      1.

     Nginx

      1.

 

  数据结构与算法

     1.说说你了解的数据结构有哪些,各有什么特色?

     2.hash、数组、集合、字符串、跳表、树(红黑树,二叉树)等分别是什么,在java中怎么应用的?

     3.说一说经常使用的排序算法有哪些?

     4.自定义实现一个LRU、FILO之类的算法?

     5.。。。

 

  数据库

     1. 

     2.

 

  JVM

    1.JVM是什么?与JDK JRE的区别?

    2.JVM的划分?其运行数据区域的划分?

    3.JVM的GC收集算法?算法对应的GC收集器?

    4.垃圾收集器的有哪些?各有什么优点?(JDK1 - 12能够百度查一下)

      5.如何判断Java内存溢出?(内存溢出与内存泄露的缘由,解决点)

    6.OOM发生的区域?(堆、栈、永久区...)

    7.如何排查线上出现的内存溢出?(使用命令或工具)

    8.Full GC 、 Young GC、 minor GC 、mijor GC何时触发?

    9.经常使用的JVM配置及调优参数有哪些?及参数的做用?

    10.类加载机制?编译优化?(从逃逸分析等进行阐述)

    11.。。。

 

  运维 / Linux

    1.

    2.

  

  其余(问题解决思路)

    1.在项目开发中的难点与疑点有哪些,怎么处理的?

    2.实现商场系统中的秒杀业务,简单描述一下总体架构及思路?

    3.开发中,编码用什么?utf-8与GBK能够直接转换吗?

    4.。。。

 

  软能力 ( Soft Skills )

    1. 最近有没有关注哪些新技术?重点学习的内容?

    2. 工做任务很是多且繁杂时,你会如何处理?(判断抗压能力)

    3. 项目工期没有按照排期,延期时,会如何处理?如何保障开发质量?有没有好的处理方式?

    4. 和同事关于项目的设计思路不一致,如何提调整?

    5. 职业规划是什么?短时间目标?长期目标?

    6. 。。。

    

  笔试

    1.这个因公司而异,能够刷一刷力扣(LeetCode)牛客的题库

    2.。。。

 

  面试的目的主要是观察应聘者的表述理解、思惟认知、假设预想、以及发展愿景等等综合考虑,毕竟招人嘛,一般不会考虑短时间的,而是须要可以与公司同发展的,且可以带动工做氛围的最好,逗比也是能够的,调整一下工做紧张状态... ...

 

   毕业到如今,工做了几年,总结一下面试题(有被面的,有面他人的,有网站找的,有朋友经历的),因为开发问题重复性,答案就略,后续不稳定更新... ...

 

 

  (愿你的每一行代码,都有让世界进步的力量    ------   fn)

相关文章
相关标签/搜索