荣耀面经
荣耀面经
笔试回顾
1 | 好像过了两道题吧 |
1.Redis常用的数据结构
1 | 字符串String,最常见的,可以存储任何数据,字符串整形符点都行 |
2.zset的底层数据结构
1 | Redis中set的底层数据结构就是hash表来实现的,这个和Java中的set一样 |
3.Redis的分布式锁和看门狗机制
1 | Redis的分布式锁,就是使用通过setNX 互斥和setEX设置过期时间 |
4.ThreadLocal的作用和原理
1 | Thread Local本地线程嘛,就是线程可以独立的获取自己的变量副本 |
5.Redis的持久化机制
1 | 快照文件和追加文件 |
6.MySQL的索引结构
1 | MySQL底层是通过B+树的方式实现索引的 |
7.线程池工作流程
1 | Java中有自带的线程池,在某些高并发的场景下,需要自定义线程池 |
8.进程与线程的区别
进程间通信方式,说一种熟悉的进程间通信方式
1 | 进程就是计算机的运行实例,一个进程中会有多个线程 |
9.设计模式
1 | 设计模式就是通用的一种代码规范和解决方式 |
10.排序算法
1 | 冒泡,选择,插入,堆排序等 |
11.设计一个高并发系统
1 | 1.首先要从需求层面明确我的并发量,再决定去采用什么样的解决方案 |
12.KMP算法
1 | 我知道是一种字符串匹配的高效算法 |
13.tcp长链接短链接
1 | 长连接在客户端和服务器之间建立一次连接后 |
14.面向对象设计的6大原则
1 | 我只记得其中几个,单一职责,开放闭合 |
15.OOM怎么去定位解决?
1 | 内存溢出嘛,首先看控制台去判断溢出的类型, |
16.Class的底层,反射的原理
1 | 编译的过程中,会将Java的源代码编译成字节码文件就是.class文件 |
17.类的加载机制
1 | JVM 的类加载机制是动态的,能够在运行时根据需要加载类,而不是一开始就加载所有类 |
18.多态的理解
1 | 编译时多态:通过方法重载实现,发生在编译阶段, |
19.树的深度优先和广度优先遍历
1 | 深度优先就是,访问到叶子节点,再回溯上一节点遍历 |
20.网络模型和常见的位置
1 | 常见的网络模型主要是分为osi七层模型,和tcpip四层模型 |
21.synchronized修饰静态方法和实例方法有什么不一样
1 | 线程同步:当多个线程同时访问共享资源(例如变量、对象)时, |
22.对java原子性操作的理解
1 | 原子性:要么全部成功,要么全部失败 |
面试回答不太好的
1.注解底层实现,编译型注解,运行时注解
1 | 注解是一个代码说明 |
自定义注解:
1 | 就是通过@interface关键字去自定义注解 |
2.Redis,删除,延迟双删
1 | 延迟双删是一种常见的缓存失效策略 |
3.差不多这些
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 方圆的博客!