Java多维度技术总结-基础版
2021-01-27 17:19:44 5 举报
AI智能生成
面经总结;围绕着三个维度分别:基础、深度、广度整理;当然也会根据实际的经历不断完善。
作者其他创作
大纲/内容
基础
操作系统
进程和线程的区别?
进程调度算法有哪些?
5种IO模型?
select、poll和Epoll的区别?epoll底层使用的数据结构?
进程的通信方式有哪些?线程呢?
进程间的通信方式
线程间的通信方式
fork函数的作用?
协程的概念?
linux进程和线程
僵尸进程产生的原因?
孤儿进程产生的原因?
讲一下虚拟内存。虚拟内存和物理内存的关系是什么?
分段和分页讲一下?以及对应的场景?
讲一下用户态和内核态?所有的系统调用都会进入到内核态吗?
如何查看占用内存比较多的进程?
平常用什么linux命令比较多?如何打开文件并进行查找某个单词?怎么在某个目录下找到包含txt的文件?
用过Ping命令么?简单介绍一下。TTL是什么意思?
怎么判断一个主机是不是开放某个端口?
Linux文件系统?
硬链接和软链接?
中断的分类?
软中断和硬中断?
java基础
StringBuilder 和 StringBuffer
Java实现连续空间的内存分配? java的内存管理 对象的分配与释放
创建对象的方式有哪几种?
接口和抽象类有什么区别?
深拷贝和浅拷贝区别?
讲一讲封装,继承,多态(重要)。
泛型是什么?类型擦除?
如何实现静态代理?有啥缺陷?
动态代理的作用?在哪些地方用到了?(AOP、RPC 框架中都有用到)
JDK 的动态代理和 CGLIB 有什么区别?
谈谈对 Java 注解的理解,解决了什么问题?
Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
内存泄露和内存溢出的场景。
内存泄露的场景
内存溢出场景
讲一下,强引用,弱引用,软引用,虚引用。
讲一下Java的NIO,AIO, BIO?
Java中finalize()方法的使用?
GC Root 对象有哪些
讲一下CopyOnWriteArrayList和CopyOnWriteArraySet?
说一下你最用的比较多得模式(我说的工厂模式和观察者模式),再实现一个单例模式。
单例模式代码(重要)
数据库
数据库三大范式
关系型数据库和非关系型数据库的区别?
char和varchar的区别
内连接、左连接和外连接?
MySQL 有哪些聚合函数?
说一下 MVCC
为什么要使用索引?
数据库原理相关补充
说一聚簇索引和非聚簇索引的有什么不同?
关于索引的各种轰炸。Mysql的索引,以及B+树与hash索引的区别,为什么不采用B树而采用B+树?B树和B+树的区别
红黑树和B+树的使用场景?
B+比B树更适合实际应用中操作系统的文件索引和数据库索引?
非聚簇索引一定会回表查询吗?
MySql的存储引擎,以及InnoDB和MyISAM的区别?
Mysql联合索引的最左匹配原则。给出联合索引(a,b),select *from table where a>0 and b>0,是否走索引,哪个走索引,哪个不走,以及从联合索引的底层结构去解释为什么?
讲一下最左前缀原则?
left join,right join,inner join,full join之间的区别
为什么InnoDB表必须有主键,并且推荐使用整形的自增主键?
间隙锁讲解一下?
数据库问题,说一下从你打开命令行到发送请求,mysql服务器的整个相应流程?
讲一下redo log,undo log,binlog?
MySQL 的数据如何恢复到任意时间点?
Mysql如何保证一致性?
数据库的主从复制?
Mysq的事务隔离级别有哪几种,说一下可重复读解决了什么问题?还有什么问题没解决?幻读如何解决的?幻读的具体场景?说一下间隙锁如何实施的?
Mysql一条sql非常慢,如何进行分析?
一张数据库表如果要删除大量的数据如何提高效率,如何做?
Spring
谈一谈Spring?
Spring中的设计模式
Spring AOP 和 IOC 的底层实现。
Spring AOP
Spring IOC
讲一讲Spring,Spring MVC,Spring Boot。(Spring Boot 了解不?和 Spring 啥区别?spring与springboot比较,SpringBoot的自动启动)
Spring与Spring boot比较
Spring Bean的生命周期
Spring Boot 的启动类源码有了解过吗?
用过哪些Spring注解,说一下@Autowired依赖注入的底层实现。(依赖注入的原理)
Spring的三级缓存
SpringMVC运行过程?
Spring事务的实现原理?
集合框架
ArrayList的扩容机制?
HashMap 的底层实现、JDK 1.8 的时候为啥将链表转换成红黑树?HashMap 的负载因子、HashMap 和 Hashtable 的区别?HashMap如何实现扩容?
ConcurrentHashMap的底层实现
有哪些集合是线程不安全的,又有哪些集合是线程不安全的?怎么解决呢?
什么是快速失败(fail-fast)、能举个例子吗?什么是安全失败(fail-safe)呢?
HashMap 多线程操作导致死循环问题
多线程
Java 怎么实现线程?
Java 线程通信的方式?
在多线程情况下如何保证线程安全
写一个死锁的例子
讲一下volatile关键字的作用
synchronized 作用,讲一讲底层实现。
ReetrantLock 和 synchronized 的区别
说说 synchronized 关键字和 volatile 关键字的区别
ReetrantLock实现方式
AQS原理
interrupt,interrupted与isInterrupted方法的区别? 如何停止一个正在运行的线程
线程池作用?Java 线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?线程池的工作机制?
线程池通过 ThreadPoolExecutor 的方式进程创建
阻塞队列有几种
线程池的工作过程
常见线程池
线程池拒绝策略分别使用在什么场景?
线程死锁,解除线程死锁有哪几种方式?
ThreadLocal 是什么,应用场景是什么,原理是怎样的?
ThreadLocal类为什么要加上private static修饰?
ThreadLocal 有什么缺陷?如果线程池的线程使用ThreadLocal 会有什么问题?
介绍一下 Java 有哪些锁
乐观锁和悲观锁讲一下,哪些地方用到。
深度
JVM
讲一下 JVM 的内存结构
Minor gc 和 Full gc 的区别,详细介绍
方法区和永久代的关系?
JDK 1.8 HotSpot 的永久代为啥被彻底移除?有哪些常用参数?
主要进行 gc 的区域。永久代会发生 gc 吗?元空间呢?
各种垃圾回收算法和回收器,说出自己的理解。
zgc ?zgc vs g1?
如何对进行性能分析?会用到哪些命令?
Redis
Redis介绍
Redis的原子性?
为什么要用缓存(Redis)?
Redis的单线程理解
Redis主从复制
Redis如何保证高可用?
redis的5种数据结构,redis的zset底层用的什么数据结构?跳表。介绍一下、画一下基本结构,搜索插入数据过程,时间复杂度。
redis为什么使用跳表而不是用红黑树?
Redis集群数据分区方案?
为什么redis集群的最大槽数是16384个?
缓存雪崩,缓存穿透,如何解决?
如何保证缓存与数据库双写时的数据一致性?
如何解决 Redis 的并发竞争 Key 问题?
网络
为什么网络要分层?
TCP/IP 4 层模型了解么?
HTTP 是哪一层的协议?http常见的状态码。
HTTP 和 HTTPS 什么区别?
讲一下对称加密算法和非对称加密算法?
HTTP2.0讲一下
HTTP报文详解?详细说一下请求报文,以及HTTP和TCP的区别
TCP三次握手的过程,以及三次握手的原因?
TCP四次挥手的过程,以及四次挥手的原因?
TCP滑动窗口是干什么的?TCP的可靠性体现在哪里?拥塞控制如何实现的?
滑动窗口
拥塞控制
TCP 使用超时重传来实现可靠传输
TCP和UDP有什么区别?及其适用的场景。
Mac 地址和 ip 地址的区别?既然有了 Mac 地址,为什么还要 ip 地址呢?
当你打开一个电商网站,都需要经历哪些过程?分别用到了什么协议。
电子邮件的发送过程?
DNS解析过程,DNS劫持了解吗?
GET和POST有什么不一样?
session和cookie的问题?
HTTP是不保存状态的协议,如何保存用户状态?
Arp协议?
DDos攻击了解吗?
SQL注入攻击?
分布式
如何理解分布式?
分布式锁的实现方式
讲一下负载均衡算法
分布式事务解决方案?
两阶段提交(2PC)
补偿事务(TCC)
消息事务
讲一下分布式和分布式一致性协议
CAP
BSAE
Paxos
消息队列
Kafka 是什么?主要应用场景有哪些?
跨机房
跨机房介绍
跨机房数据同步
跨机房本地缓存一致性
广度
大数据
Hadoop介绍
MapReduce编程模型
Flink
Flink的状态机制?
Flink的容错机制?
流数据的一致性
屏障(Barriers)
状态(State)
异步快照(asynchronous state snapshot)
Flink的高可用?
Flink 程序在面对数据高峰期时如何处理?
请详细解释一下 Flink 的 Watermark 机制?
算法
一个深度为5的满二叉树的节点个数有多少个?
如何判断一个单链表是不是有环?
a = 1, b = 4, 如何交换,不能使用第三个变量。
红黑树和平衡二叉树?
如何实现LRU算法?
二叉搜索树的第k大节点?
给定一个链表,删除链表的倒数第 N 个节点,并且返回链表的头结点。
两个线程交替打印两个数组中的元素
创建3个线程,t1、t2、t3,让让t1在t2之前执行,t2在t3之前执行
三个线程交替打印ABC
生产者消费者模式
随机数产生转换(15到17)
二叉树的最小深度和二叉树的最大深度?
实现sqrt()
已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位。
二叉树的前中后序遍历的非递归实现。
实现一个只包含+,-,*,/的数学运算
字典树的实现。
最长连续序列
Docker
介绍一下K8S、Docker技术,和传统虚拟机有什么不一样?
0 条评论
下一页