java面试知识点
2024-05-09 17:19:28 0 举报
AI智能生成
登录查看完整内容
java开发工程师面试知识点
作者其他创作
大纲/内容
计算机基础
堆
本地方法栈
虚拟机栈
程序计数器
直接内存
元数据区
1.8之后
方法区
内存分配
双亲委派
Native方法
新产生的对象
伊甸园(Eden)
谁空谁是to区,为了不停的进行年龄增长
复制算法
幸存者乐园(Survivor)
经历了15次GC还没死,可以调整()
老年代也满了装不下的时候,就会抛出OOM(Out of Memory)异常
标记-整理算法
终身颐养园(Tenured)
区域划分
只是给虚拟机一个建议,不一 定会执行,因为System.gc()在一个优先级很低的线程中执行
System.gc()/执行了FULL GC
自动监测
可达/不可达
判断是否为垃圾对象
内存利用率少了一半
清除之后空间不连续,有内存碎片,大对象无法分配
进行标记整理
标记清除
1.8之前单线程回收,1.8之后多线程
大、中、小页
堆分区
传统标记清除方式占用了对象的头空间,所以改成着色指针方式来标记需要清除的对象
ZGC
回收方案
每次执行都将伊甸园区和from区通过复制算法搬空,复制到to区,然后下次to和from区交换位置
Minor GC/Major GC
老年代空间是否充足为触发条件
Full GC
GC
类加载器
类加载流程
Filed成员变量对象的setAccessible方法可以设置访问私有变量
Constractor构造方法对象可以newInstance实例化一个对象,setAccessible方法也可以暴力反射
Method成员方法对象,invok来执行方法
Class对象
反射
操作台、主内存私有内存操作共享资源时数据一致性
volitail
JMM
缓存一致性协议,用于定义数据读写的规则
jvm
封装
继承
多态
特征
面向对象
String
StringBuilder和StringBuffer
存取元素时,各有什么特点
TreeMap和TreeSet在排序时如何比较元素
arrayList
linkedList
list
HashSet
TreeSet
LinkedHashSet
Set
ConcurrentHashMap
HashMap
LinkedHashMap
HashTable
TreeMap
Map
List,Map,Set
集合
lambda
抽象方法实现
Stream API
1.8新特性
接口定义了方法而没有实现
接口方法是public的而抽象类可以private
一个类可以实现多个接口,但抽象类只能继承一个
接口和抽象类的区别
静态代理
jdk的proxy
cglib
动态代理
java的代理方式
java基础
sleep和wait方法
https://www.bilibili.com/video/BV1CE411d73E?from=search&seid=587815586952548638
sleep和yield
countDownLatch
流程
线程池
实现同步:AQS和CAS
ThreadLocal
乐观锁 VS 悲观锁
锁的种类:Lock接口与synchronized
当一个线程进入一个对象的synchronized方法A之后 其他线程是否可进入此对象的synchronized方法b
线程同步以及线程调度相关的方法
synchroized关键字的用法
启动一个线程是调用run还是start方法
多线程
Servlet的工作流程/生命周期
Servlet是线程安全吗
三次握手 ”与“ 四次挥手 ”
session与cookie的区别
WEB
压力测试
测试
java面试进阶
有完整的生命周期或者在spring容器内才是bean
0.运行main方法,执行AnotitionConfigApplicationContxt进行spring初始化
加载所有扫描到的类到list中
2.循环list进行解析验证,并将验证通过的类放入GenericDefinition中,并设置一些属性
2.放入map中循环验证
3.放入单例池
循环引用
单例模式
懒加载
jdk动态代理
动态代理(AopProxy接口)
Aspect 切面
AOP
IOC
ApplicationContext通常的实现是什么
什么是Spring beans
bean的生命周期
注册一个bean
定义类的作用域
什么是Spring的内部bean
bean
方式
局限性
自动装配
两种
优点
事务管理
spring
DispatcherServlet
WebApplicationContext
控制器
spring mvc
Stater
自动配置的原理
运行SpringBoot有几种方式
跨域问题
CSRF攻击
核心注解
springboot
引入config依赖
配置nacos
服务指向nacos
配置中心
服务注册中心
nacos
ribbon
feign
流量控制
熔断
平均响应时间
异常比例
异常数
降级策略
降级
内部端口
服务端口
dashbord
sentinel
seata
权限
限流
监控
过滤器
路径
子主题
断言
配置路由转发规则
与注册中心连用提供根据服务名的负载均衡转发
路由转发
webflux
SpringCloud Gateway
springCloud alibaba
QPS
负载均衡
https://blog.csdn.net/fly910905/article/details/100023415
服务发现
认证授权
监控追踪
基于数据库
设置一个key,线程结束时删除这个key,定时检查key如果存在则续命
redission
基于redis
基于zookeeper
三种分布式锁
CAP
springCloud
Spring Boot、Spring MVC 和 Spring 有什么区别
框架
minio
1.solr利用zookeeper进行分布式集群管理
2.solr支持的数据格式多,es只支持json
3.es处理实时数据速度更快
与solr对比
index
表示大类下的某一类型细分,一个type下有多个document并且每个document的feild相同,相当于数据库的一个表
type
表示一条数据,里面若干feild,相当于数据库的一行
document
表示一个字段
feild
角色
primary shard不能和replica shard在同一个节点上
primary shard
副本,是shard的备份,提高数据一致性,容灾
replica shard
一个集群中有很多的很多个索引库
每个索引库默认是5个分片和2个副本
主节点(Master)
数据节点(DataNode)
协调节点(Coordinate node)
节点对等
当集群中节点数量发生变化时,将会触发es集群的rebalance,即重新分配shard。Rebalance的原则就是尽量使shard在节点中分布均匀,达到负载均衡的目的
Rebalance(再平衡)
集群
es
nginx
与zookeeper协同搭建分布式原理
Partition 并行处理
顺序写磁盘,充分利用磁盘特性
利用了现代操作系统分页存储 Page Cache 来利用内存提高 I/O 效率
采用了零拷贝技术:Producer 生产的数据持久化到 Broker,采用 mmap 文件映射,实现顺序的快速写入;Customer 从 Broker 读取数据,采用 Sendfile,将磁盘文件读到 OS 内核缓冲区后,转到 NIO buffer进行网络发送,减少 CPU 消耗
为什么快
查找时根据offset在index文件中进行二分查找
存储机制
ACK
Offset 的维护
RocketMQ通常使用的Java语言,缓存过多消息会导致频繁GC
kafka比RocketMQ吞吐量更高
与rocketMQ的区别
kafka
并发竞争问题如何解决
常用的5种数据类型
6种淘汰策略
持久化方案
为什么这么快
和zookeeper区别
分布式锁
布隆算法
SETNX
epoll
IO多线程,工作单线程串行执行
redis
文件系统
监听通知机制
持久化节点
临时节点
zookeeper
中间件
容器
设计模式
svn
git
版本控制
持续集成
持续部署
持续集成/持续部署
docker
k8s
关系型
非关系型
数据库
技术架构
0 条评论
回复 删除
下一页