Java面试你必须要知道的那些知识,保准看明白!

Posted 2021Java面试题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试你必须要知道的那些知识,保准看明白!相关的知识,希望对你有一定的参考价值。

前言

爱因斯坦说过“耐心和恒心总会得到报酬的”,我也一直把这句话当做自己的座右铭,这句箴言在今年也彻底在“我”身上实现了。

每一个程序员都拥有一座大厂梦,我也不例外,去年面试蚂蚁金服,竟然被mysql问倒了,很多相关性的问题都没有答上来,才2面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了蚂蚁金服,被录用。

以下展示的阿里面试题(含答案)、学习包、实战文档等,均可以分享给大家!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-It9YF9wa-1624598925588)(//upload-images.jianshu.io/upload_images/20355010-72148a6757ccbf3f.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/640/format/webp)]

1.笔试常见的问题?

面试常见的问题上面给的面试题链接基本都有。我只提几点:

  1. 写SQL:写SQL很常考察group by、内连接和外连接。
  2. 手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。

2.面试流程?

  1. 让你自我介绍
  2. 问Java基础知识
  3. 问项目
  4. 情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。
  5. 你有什么想问面试官的

3.面试常问的知识点?

1)集合相关问题(必问):

  • HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
  • HashMap和Hashtable的区别。
  • ArrayList、LinkedList、Vector的区别。
  • HashMap和ConcurrentHashMap的区别。
  • HashMap和LinkedHashMap的区别。
  • HashMap是线程安全的吗。
  • ConcurrentHashMap是怎么实现线程安全的。

2)多线程并发相关问题(必问):

  • 创建线程的3种方式。
  • 什么是线程安全。
  • Runnable接口和Callable接口的区别。
  • wait方法和sleep方法的区别。
  • synchronized、Lock、ReentrantLock、ReadWriteLock。
  • 介绍下CAS(无锁技术)。
  • volatile关键字的作用和原理。
  • 什么是ThreadLocal。
  • 创建线程池的4种方式。
  • ThreadPoolExecutor的内部工作原理。
  • 分布式环境下,怎么保证线程安全。

3)JVM相关问题:

  • 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
  • 垃圾收集有哪些算法,各自的特点。
  • 类加载的过程。
  • 双亲委派模型。
  • 有哪些类加载器。
  • 能不能自己写一个类叫java.lang.String。

4)设计模式相关问题(必问):

  • 先问你熟悉哪些设计模式
  • 然后再具体问你某个设计模式具体实现和相关扩展问题。

5)数据库相关问题,针对Mysql(必问):

  • 给题目让你手写SQL。
  • 有没有SQL优化经验。
  • Mysql索引的数据结构。
  • SQL怎么进行优化。
  • SQL关键字的执行顺序。
  • 有哪几种索引。
  • 什么时候该(不该)建索引。
  • Explain包含哪些列。
  • Explain的Type列有哪几种值。

6)框架相关问题:

  • Hibernate和Mybatis的区别。
  • Spring MVC和Struts2的区别。
  • Spring用了哪些设计模式。
  • Spring中AOP主要用来做什么。
  • Spring注入bean的方式。
  • 什么是IOC,什么是依赖注入。
  • Spring是单例还是多例,怎么修改。
  • Spring事务隔离级别和传播性。
  • 介绍下Mybatis/Hibernate的缓存机制。
  • Mybatis的mapper文件中#和$的区别。
  • Mybatis的mapper文件中resultType和resultMap的区别。
  • Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。

7)其他遇到问题:

  • 介绍下栈和队列。
  • IO和NIO的区别。
  • 接口和抽象类的区别。
  • int和Integer的自动拆箱/装箱相关问题。
  • 常量池相关问题。
  • ==和equals的区别。
  • 重载和重写的区别。
  • String和StringBuilder、StringBuffer的区别。
  • 静态变量、实例变量、局部变量线程安全吗,为什么。
  • try、catch、finally都有return语句时执行哪个。
  • 介绍下B树、二叉树。
  • ajax的4个字母分别是什么意思。
  • xml全称是什么。
  • 分布式锁的实现。
  • 分布式session存储解决方案。
  • 常用的linux命令。

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!!

下面给大家分享下我的面试大全资料,如果你也有需要,可以戳这里即可免费领取我的这份复习资料

  • 第一份是我的后端JAVA面试大全

image.png

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

中…(img-x5X4C29O-1624598925594)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

[外链图片转存中…(img-FYqBgLC9-1624598925597)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

以上是关于Java面试你必须要知道的那些知识,保准看明白!的主要内容,如果未能解决你的问题,请参考以下文章

干货!程序员面试你必须要摸清的那些套路

你必须要知道java面试宝典

面试不用背作为一个CRUD工程师,你必须要知道的MySQL知识

关于 HTTP2 和 HTTPS,这些你必须要知道

关于网络优化你必须要知道的重点

java元注解作用,保准看明白!