专业的编程技术博客社区

网站首页 > 博客文章 正文

服务器端开发-经典面试题(服务器端测试面试题)

baijin 2024-09-26 06:52:28 博客文章 4 ℃ 0 评论

持续更新。平时多问题为什么,怎么样。3W1H方法可以帮助我们快速掌握知识点。

java

  1. 基础

1) 重写equals时为什么要重写hashCode

HashMap用的需要用hashCode

2)反射

3)labmda表达式原理,使用注意事项

  1. JVM

1)JVM内存模型。

PC、虚拟机栈、本地方法栈和堆。

线程私有: PC、虚拟机栈、本地方法栈

共享:堆

2)堆模型。

常量,静态变量

3)对象在年轻代和老年代中如何轮转

4)CMS

1)CMS4个阶段:初始标记,并行标记,重新标记,清除

初始标记:只标记GC ROOT直接关联的对象,速度快。

并行标记: 和用户线程一起运行,根据GCROOT跟踪。

重新标记:因并行的用户线程产生的变动的对象。

2)2次STW。为什么要2次STW。分别是初始化标记和重新标记 需要STW。重新标记,主要是标记并行标记阶段产生变动的对象


  1. 集合

concurrentHashMap 原理。CAS 和sycnronized都用在什么地方。锁都力度。

多线程并发

1) 线程池-参数

2)线程池-注意事项

4个线程池使用的队列大小都是Integer.MAX_VALUE。需要注意OOM

3)ThreadLocal

原理:线程本地变量。

- InheritThreadLocal

使用场景:1)透传变量,保存通过接口接受到的用户id,2)PageHelper中分页信息就是用的ThreadLocal

使用注意:避免内存泄露,使用完之后需要remove删除。

Web框架-Spring

1) AOP原理,使用场景,实际业务场景。

原理:动态代理。jdk的proxy和cglib。两个原理,jdk注意针对实现接口的对象进行代理。cglib即可针对接口的也可以对没有接口的对象进行代理。cglib使用的字节码增强技术。

场景:Spring中的事务。

实际业务场景:

2)Bean加载原理

中间件-rocketMQ

1)如何保障消息不丢。消息重复

producer使用同步发送

broker分片,同步刷盘,同步给salve。

consumer 消费成功之后再提交offset。

业务自己提供幂等ID


2)系统高可用

3)broker消息存储模型

4)tag过滤模型

Mysql

1)索引模型。

B+树,叶子节点组成的是一个双向链表,在范围查询的时候,特别好用。

2)redolog、undolog,binlog

3)mysql优化。

4)主键索引和普通索引哪个更快,为什么

缓存-Redis

1) 底层数据类型。

2)分布式锁原理

- 使用setNX +设定超时时间。setNX成功返回1 setNx返回0.

加锁:

锁释放:

锁超时:

锁续约:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表