Advertisement

2年工作经验+JAVA社招面经详细总结分享。

阅读量:

废话不多说,直接进主题!

在这里插入图片描述

java常用基础面试知识点

1、java中==和equals和hashCode的区别

2、int、char、long各占多少字节数

3、int与integer的区别

4、探探对java多态的理解

5、String、StringBuffer、StringBuilder区别

6、什么是内部类?内部类的作用

7、抽象类和接口区别

8、抽象类与接口的应用场景

9、抽象类是否可以没有方法和属性?

10、泛型中extends和super的区别

11、父类的静态方法能否被子类重写

12、final,finally,finalize的区别

13、序列化的方式

14、Serializable 和Parcelable 的区别

15、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?

16、静态内部类的设计意图

  1. 理解成员内联体、静态内联体、局部内联体以及匿名内联体,并在项目中加以应用

18、谈谈对kotlin的理解

19、string 转换成 integer的方式及原理

20、说说你对Java反射的理解

21、说说你对Java注解的理解

22、说说你对依赖注入的理解

二.HashMap相关

1、HashMap的实现原理

2、HashMap数据结构?

3、HashMap源码理解

4、HashMap如何put数据(从HashMap源码角度讲解)?

5、HashMap怎么手写实现?

6、ConcurrentHashMap的实现原理

7、ArrayMap和HashMap的对比

8、HashTable实现原理

9、TreeMap具体实现

10、HashMap和HashTable的区别

11、HashMap与HashSet的区别

12、HashSet与HashMap怎么判断集合元素重复?

13、二叉树的深度优先遍历和广度优先遍历的具体实现

14、内存空间的使用主要体现在堆与栈的管理上,请详细说明它们之间的主要差异。(解答提示:可以从数据结构的角度以及实际操作的实现方式两个方面详细阐述)

15、讲一下对树,B+树的理解

16、讲一下对图的理解

17、判断单链表成环与否?

18、链表翻转(即:翻转一个单项链表)

19、合并多个单有序链表(假设都是递增的)

三.锁与多线程相关

1、synchronize的原理

2、谈谈对Synchronized关键字,类锁,方法锁,重入锁的理解

3、static synchronized 方法的多线程访问和作用

4、同一个类里面两个synchronized方法,两个线程同时访问的问题

5、lock原理

6、死锁的四个必要条件?

7、怎么避免死锁?

8、对象锁和类锁是否会互相影响?

9、开启线程的三种方式?

10、如何控制某个方法允许并发访问线程的个数?

11、什么导致线程阻塞?

12、如何保证线程安全?

13、如何实现线程同步?

14、两个进程同时要求写或者读,能不能实现?如何防止进程的同步?

15、谈谈对多线程的理解

16、多线程有什么要注意的问题?

17、谈谈你对并发编程的理解并举例说明

18、谈谈你对多线程同步机制的理解?

19、如何保证多线程读写文件的安全?

20、Java的并发、多线程、线程模型

四.MySQL相关

1、MySQL InnoDB、Mysaim的特点?

2、MySQL主备同步的基本原理。

  1. 选取*源自表t,并过滤size>10的数据。接着按size分组,并按size排序的SQL语句执行顺序是怎样的?

如何提高数据库性能(索引设置、数据分区策略、批量处理机制等)

5、SQL什么情况下不会使用索引(不包含,不等于,函数)

6、一般在什么字段上建索引(过滤数据最多的字段)

7、如何从一张表中查出name字段不包含“XYZ”的所有行?

8、MySQL,B+索引实现,行锁实现,SQL优化

9、Redis,RDB和AOF,如何做高可用、集群

10、如何解决高并发减库存问题

11、mysql存储引擎中索引的实现机制;

12、数据库事务的几种粒度;

五.Spring相关

1、SpringBoot 如何固定版本

2、SpringBoot 自动配置原理

3、SpringBoot 配置文件注入

4、@Value 和 @ConfigurationProperties 比较

5、@PropertySource

6、@ImportResource

7、springboot 的 profile 加载

8、SpringBoot 激活指定 profile 的几种方式

9、SpringBoot 项目内部配置文件加载顺序

19、 SpringBoot 外部配置文件加载顺序

11、 Springboot 日志关系

12、SpringBoot 如何扩展 SpringMVC 的配置

13、SpringBoot 如何注册 filter , servlet , listener

14、SpringBoot 切换成 undertow

15、SpringBoot 的任务

16、SpringBoot 热部署

17、SpringBoot 的监控

18、 SpringBoot 整合 redis

Spring Boot 作为一个简化 Spring 应用开发的框架存在。它整合了Spring的核心技术栈,并提供了丰富的标准化组件配置选项。这些设置使得开发者能够迅速构建Spring项目并避免手动配置XML参数表单的过程。通过这一设计原则的应用与优化配置策略的选择……有效降低了Spring项目的建设成本。

六.Redis等缓存系统中间件相关

1、列举一个常用的Redis客户端的并发模型。

2、HBase如何实现模糊查询?

3、列举一个常用的消息中间件,如果消息要保序如何实现?

4、如何实现一个Hashtable?你的设计如何考虑Hash冲突?如何优化?

5、分布式缓存,一致性hash

6、LRU算法,slab分配,如何减少内存碎片

7、如何解决缓存单机热点问题

8、什么是布隆过滤器,其实现原理是? False positive指的是?

9、memcache与redis的区别

10、zookeeper有什么功能,选举算法如何进行

11、map/reduce过程,如何用map/reduce实现两个数据源的联合统计

七.算法相关

1、排序算法有哪些?

2、最快的排序算法是哪个?

3、手写一个冒泡排序

4、手写快速排序代码

5、快速排序的过程、时间复杂度、空间复杂度

6、手写堆排序

7、堆排序过程、时间复杂度及空间复杂度

8、写出你所知道的排序算法及时空复杂度,稳定性

9、二叉树给出根节点和目标节点,找出从根节点到目标节点的路径

10、给阿里2万多名员工按年龄排序应该选择哪个算法?

11、GC算法(各种算法的优缺点以及应用场景)

12、蚁群算法与蒙特卡洛算法

13、子串包含问题(KMP 算法)写代码实现

一个无序且不重复的数组,在其中生成包含N个元素的集合,并满足这些元素之和等于M的要求。同时,请详细分析该算法的时间复杂度与空间复杂度,并手动编写算法实现

trillion-scale URLs A and B, how to determine the difference set C (hint: bit mapping -> hash grouping -> multi-file read/write efficiency -> disk access optimization and application-layer address space optimization)

最后

考虑到近期有许多求职者正在准备面试,并基于此需求,我也整理了一些丰富的面试资料。这些资源不仅包括一些常见的问题解答内容(即所谓的面试专题),还有一些来自其他知名企业的面经。希望能为求职者提供一些参考与帮助。

最新整理面试题

在这里插入图片描述

这些面试题的答案都被整理成了详细的文档笔记。
此外,我们还整理了一些面试资料,并从最新2020年收集了一些各大厂的面试真题(全部整理成文档,并附有少量截图),如果需要的话,请点击进入暗号:qf。

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以下是整篇文章的主要内容。以下将为大家呈现本文的核心观点与重点分析。也欢迎各位给予更多支持与建议!

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~