JAVA面试题整理

目录

 

一、计算机网络

二、数据库

三、Redis

四、JVM

五、Java多线程与并发

六、Java常用类库与技巧

七、Spring

八、持久层框架

九、算法

十、linux

十一、设计模式

十二、分布式服务

十三、RocketMq (或其他消息中间件)

十四、综合


最近面试了一些公司,结合自己平时学习,整理了如下Java常问面试题,在这些基础题掌握基础上,能灵活运用于项目中,才能在面试中有更好的发挥。

一、计算机网络

1.三次握手过程

2.四次挥手过程

3.为什么要经过三次握手

4.为什么要经过四次挥手

5.TCP和UCP区别

6.TCP的滑窗

7.http和https区别

6.get和post区别

二、数据库

1.数据库几种索引

https://www.cnblogs.com/williamjie/p/11081081.html

2.B树、红黑树、B+树、Hash和BitMap特点,为什么索引选择B+树

3.密集(聚集)索引和稀疏索引区别

4.如何优化sql

5.索引建立越多越好吗,为什么

6.myisam、innodb锁分类

7.数据库事务

8.MVCC,当前读和快照读

9.mongodb的事务

https://www.jianshu.com/p/d838a5905303?utm_source=oschina-app

三、Redis

1.redis常用数据类型

2.怎么从海量数据中查询某一固定前缀的key

   https://blog.csdn.net/mtsbv110/article/details/106237165

1)根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。

2)当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。

3)如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。

4)不要让你的Redis所在机器物理内存使用超过实际内存总量的3/5。https://www.cnblogs.com/wxd0108/p/5264341.html

3.如何实现分布式锁

4.如何实现异步队列

5.redis的几种存储方式

6.RDB、AOF和混合模式区别,优缺点

7.redis主从同步原理

8.redis集群的几种方式

【Redis Mode工作模式】https://www.cnblogs.com/dreamtaker/p/13708076.html

redis的三种集群方式https://www.cnblogs.com/51life/p/10233340.html

9.hash一致性算法

一致性Hash与Redis集群数据分片https://www.cnblogs.com/zhaochunxue/p/13326933.html

10.限流的方式

11.redis的淘汰策略

noeviction,allkeys_lru,allkeys_random,volatile_lru,volatile_random,volatile_ttl

12.redis性能为什么高?

多个套接字、IO多路复用、文件时间派发器、事件处理器

https://blog.csdn.net/yerikstone/article/details/89037070

1)redis是纯内存数据库,一般都是简单的存取操作,线程占用时间很多,时间的花费主要集中在io上,所以读取 速度快。
2)再说一下IO,Redis使用的是非阻塞IO,IO多路复用,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,减少了线程切换时上下文的切换和竞争。
3) Redis采用了单线程的模型,保证了每个操作的原子性,也减少了线程的上下文切换和竞争。
4)另外,数据结构也帮了不少忙,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值