在实习面试的过程的当中,常见的面试题(自己面试一路走来,所出现的频率较高的面试题总结)

特意提醒:该文适合有了一定面试经验的人进行查漏补缺,因为我这里知识总结了常见的问题,并没有总结的答案,而这些答案都是在我发的这些面经当中,但是还是没有将答案单独拎出来,等下次有时间,将问题下的答案也补充一下,最近太忙了!

文章目录

在实习面试的过程的当中,常见的面试题

一、Java基础

1、为什么要重写equals方法?为什么重写了equals方法后,就必须重写hashcode方法?为什么要有hashcode方法?你能介绍一下hashcode方法吗?

2、Object方法有哪些方法?

3、==与equals有什么区别呢?

4、类加载的过程

5、JVM的内存模型以及内存结构

6、GC机制及GC算法,你熟悉的垃圾回收器?(常问CMS、G1,以及这两者的区别)

7、Java的基本数据类型

8、synchronized关键字以及底层实现原理,锁升级的原理

9、lock关键字以及底层实现原理

10、CAS的原理

11、synchronized与ReetrantLock区别?为什么有了synchronized,还要有lock这个关键字呢?

12、什么是悲观锁和乐观锁?哪些锁是悲观锁,哪些是乐观锁?

13、什么是线程安全?如何实现线程安全?对线程可见性是怎么理解的呢?

14、volatile关键字以及底层实现原理?以及volatile和synchronized关键字的区别?以及volatile是不是严格意义上的线程安全呢?volatile的作用有哪些呢?以及它是如何实现指令的重排序的呢?

15、i++是原子操作吗?

16、设计模式你了解多少?(这个至少你要了解一下单例模式,而且一定要会写两种单例模式,还有简单工厂模式,其他的不了解就算了。。。)

17、写一个单例模式,然后问你单例模式有哪些?以及他们的实现原理和特点(这个必须得对这两个单例相当熟悉)

18、集合你了解哪些呢?(List、map、set)

19、HashMap与HashTable的区别?

20、HashMap的底层实现原理,以及底层的数据结构,以及扩容机制,以及为什么HashMap是线程不安全的呢?HashMap对null值支持吗?它是如何实现对null值的支持的呢?

21、ConcurrentHashMap的底层实现原理以及数据结构(像这种集合回答问题时,一定要从jdk1.7和jdk1.8的角度去回答,这样就会显得你知识面更广些,否则你直接告诉别人是数组加链表或者红黑树,你觉得你这样说合适吗?如果你是面试官,你觉得这样的人你会想要吗?)

22、HashSet的实现原理

23、Java的反射

24、String、StringBuilder、StringBuffer的区别

25、说一下static关键字

26、ArrayList的扩容机制

27、线程的生命周期和状态(这个地方说的最好结合线程周期图来说,就是调用什么方法进入什么状态,尽量说详细点,还有一点要注意,就是跟进程的生命周期很像,但又有不同,好好体会)

28、什么是线程死锁?如何避免死锁呢?

29、线程池(说线程池的时候,可以从定义,优点,工作原理,其中几个核心参数,几个饱和策略说一下就差不多了)

30、定义String s = new String(“abc”); 那么它在JVM中整个的内存分配的过程是怎么样的?

31、说一下lambda表达式

32、如何进行JVM参数的调优的?说一下你的经验

33、抽象类和接口的区别?

34、实现多线程的方式有哪些?

35、Java的I/O模型(BIO、NIO之类的)

36、为什么JVM中要有s0和s1这两个东西呢?

37、那你知道full GC和young GC的区别吗?


二、计算机网络

2.1 三次握手和四次挥手的过程?为什么需要三次握手,两次不行吗?为什么要四次挥手呢?

2.2 为什么需要等待2MSL,客户端才会处于关闭状态呢?

2.3 Time_wait状态发生在什么时候?Time_wait过多怎么办?一般是在客户端产生才有Time_wait的状态,那如果在服务端出现time_wait状态,那是为什么呢?如何去解决呢,你有什么什么思路吗?

2.4 HTTP的组成,状态码,HTTP请求过程,HTTPS需要几次握手才能真正地通信呢?有几个RTT(即来回)呢?

2.5 DNS的工作原理

2.6 HTTP和HTTPS的区别

2.7 HTTP1.0和HTTP1.1的区别?

2.8 HTTP1.0、HTTP2.0、HTTP3.0的区别

2.9 HTTP的长连接和短连接,以及他们的适用场景

2.10 输入一个url在浏览器框中,会发生什么呢?

2.11 什么是SSL/TLS呢?说一下对称加密和非对称加密?

2.12 HTTPS的加密过程

2.13 TCP与UDP的区别

2.14 TCP是如何保证可靠性传输的?

2.15 因为UDP是不可靠的,那应该如何保证UDP的可靠性呢?

2.16 OSI的七层网络模型,五层网络模型,以及各层之间对应的协议

2.17 ICMP协议

2.18 TCP的拥塞控制

2.19 DNS在传输层对应的协议是?

2.20 子网掩码、网关、cpu时间片的一些基本概念

2.21 请求重定向和请求转发有什么区别?

2.22 cookie和Session的作用分别是什么?有什么区别?

2.23 http,tcp,ip这三者之间的关系


三、操作系统

3.1 线程与进程的区别

3.2 线程的状态以及它们之间的切换

3.2 系统的内核态和用户态

3.3 虚拟内存、局部性原理、以及虚拟内存的缺点

3.4 多线程与多进程的应用场景

3.5 缓存你了解吗?介绍一下

3.6 进程之间是如何通信的?

3.7 操作系统的内存管理

3.8 进程有几种状态?

3.9 页面置换是算法有哪些?

3.10 32位的物理机能申请多少内存呢?那64位呢?

3.11 LRU算法是如何实现的,底层数据结构是什么呢?有没有更好的实现方式呢?

3.12 内存泄露和内存溢出的区别

3.13 进程的调度算法

3.14 父进程创建一个子进程是怎么实现的呢?

3.15 父子进程之间共享了哪些信息?


四、MySQL

4.1 MySQL采用什么引擎呢?他们之间有啥区别呢?

4.2 了解事物吗?说一说它的一些特性?

4.3 事物隔离级别有哪些呢?MySQL的默认隔离级别是哪一个呢?

4.4 为什么需要事物隔离级别呢?(并发事物会带来哪些问题呢?)

4.5 索引有哪些,底层的数据结构分别是什么呢?

4.6 那为什么MySQL中的索引的数据结构采用B+树,而不采用其他的呢?

4.7 建立索引时,应该注意什么呢?

4.8 为了避免查找的时候走全表,那应该怎么办呢?

4.9 一条sql查询语句是如何实现的呢?

4.10 sql语句执行的很慢,原因是什么呢?如何排查呢?

4.11 MyISAM和InnoDB使用的锁机制有哪些?以及他们之间的区别?

4.12 hash索引的应用场景,以及hash索引在硬盘上建立了索引了吗?hash索引的key是什么?

4.13 数据库中的日志你了解多少?(主要是这三个bin log,redo log,undo log,其他的当然也可以讲一下)

4.14 讲讲MVCC是什么?

4.15 char 和 varchar的最长的长度是多少?以及他们之间的区别?

4.16 字符集你了解多少?

4.17 需要查看sql语句执行计划,用什么指令呢?(explain)

4.18 从工程开发的角度去看,如果你去开发数据库需要注意哪些地方呢?

4.19 你设计表的时候,数据字段应该注意一些什么问题呢?

4.20 linux的文本编辑工具有哪些呢?

4.21 linux中性能分析或者查看性能的命令有哪些呢?以及磁盘的IO如何查看?

4.22 幻读和脏读有什么区别?

4.23 索引是不是建的越多越好?索引的性能开销主要体现在什么时候?

4.24 为什么需要使用联合索引?

4.25 数据库如何优化?数据库三范式是?

4.26 如何检测sql语句的运行时间

4.27 什么是数据库的存储过程?

4.28 幻读是什么?如何处理幻读?

4.29 sql慢查询问题

4.30 MySQL是如何保证事务的ACID特性呢?即如何保证原子性?如何保证持久性呢?如何保证隔离性?如何保证一致性?(即ACID是怎么实现的呢?)


五、数据结构与算法

5.1 说一下你知道的排序算法,以及它们的时间复杂度,空间复杂度

5.2 快排的最坏时间复杂度是多少?什么时候出现最坏时间复杂度?出现最坏的时间复杂度时,有什么方法能够优化它呢?

5.3 快排、堆排、归并排序的应用场景

5.4 平衡二叉树你了解多少?AVL树和红黑树的区别?以及它们的时间复杂度,一般应用在什么场景呢?

5.5 讲讲数据结构中的堆和栈的区别,以及内存中的堆和栈的区别?

5.6 跳表了解吗?

5.7 字典树了解吗?

5.8 b+树和b树的区别?

5.9 深度优先搜索(dfs)和广度优先搜索(bfs)的区别?以及dfs和bfs的底层数据结构?

5.10 红黑树中的一个结点存储了哪些数据呢?以及它是如何左旋和右旋的?

5.11 解决hash冲突的方式有哪些?以及影响hash查找的性能因素有哪些?

5.12 什么是排序算法的稳定性?说一下哪些排序算法是稳定的,哪些是不稳定的?

5.13 有没有那种排序算法不是基于元素比较的排序算法的呢?

5.14 b+树的所有叶子层是否是在同一层还是在不同层的呢?


六、场景题

10个大数据处理常见算法题

6.1 如何在10亿数中找出前1000大的数?

6.2 如何判断一个数是否在40亿个整数中?

6.3 1000瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?

6.4 布隆过滤器

6.5 洗牌算法(打乱扑克牌的顺序)

6.6 如何从10亿查询词找出出现频率最高的10个?

6.7 给定a,b两个文件,各存放50亿个url,每个url各占64个字节,内存限制是4G,让你找出a、b文件的共同的url?

6.8 给40亿个不重复放入unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值