java常见面试题

135 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情 java常见面试题

mysql索引的实现、为什么用b+树
redis锁、如果锁过期了,任务还没处理完怎么办
线程池原理
java定时器原理,设计一个定时器,不用现成框架:堆实现排序队列,单独线程执行,sleep
链表交叉
如何判定环
三角形蚂蚁相遇概率
先后两人抛硬币赢得概率
1)java的泛型在jvm底层是会擦除的是吗
一个重载的例子:
void sub(List<Integer> a){}
void sub(List<String> a){}
在java中是编译不通过的?
2Integer a = 1; Integer b = 1; 指向是堆上的同一个对象吗?直接使用的常量池的缓存区。
Integer c = 500; Integer d = 500; 指向的是同一个对象吗?不是,自动装箱,是2个不同的对象。
3)缓存击穿?缓存穿透?实际上应该使用的方法是对访问热key的代码进行加锁,只要一个线程访问过再加入缓存后续的请求就都可以走缓存处理了,
或者使得热key在redis永不过期(有变化的时候修改redis的缓存数据)?另外,限流也是一方面。
4)redis键过期之后删除的时机?使用什么机制,有什么不好的吗?惰性删除与定期删除(每间隔一定时间,处理一部分过期键)结合,对cpu和内存都尽可能友好。
5)海量数据,排序,在内存不足的情况下,怎么实现排序?在内存足够的情况下怎么实现排序?
内部排序与外部排序?
6)关于强引用、软引用、弱引用、虚引用?GC垃圾回收???
7)线程池?在java中怎么使用?各个字段含义?
ThreadPoolExecutor(int corePoolSize,
                          int maximumPoolSize,
                          long keepAliveTime,
                          TimeUnit unit,
                          BlockingQueue<Runnable> workQueue,
                          ThreadFactory threadFactory,
                          RejectedExecutionHandler handler)
8)介绍下过往项目,具体讲解一个项目
9)mysql索引,innodb数据库引擎的索引结构,为什么要选B+树做索引结构,有什么优点?
自增索引,非自增索引,比较举例中的两个语句使用哪个查询语句性能更优。
10)网关是使用的什么实现的?gateway还是spring cloud的gateway?有没有对其进行改造?
11)feign调用?feign是如何将一个请求包装成一个http去请求远端的?
12)java中的arraylist与linkedlist,底层存储结构?
capacity与size的区别?
缓冲击穿和解决方法,分布式锁及集群时的问题和解决方案,rocket保证怎么快速发送消息,多个订阅者有一个没有收到消息原因和怎么解决,redis数据一致性,多线程交替生产消费,项目,海量数据内存不够排序
聊聊JVM
新生代为什么分三块?
CMS 三色标记算法
JMM,volatile内存屏障
OOM排查
频繁 FullGC 排查
AQS原理,cas+volatile, 阻塞队列,有了synchronize,为什么还要AQS
怎么实现分库
分库分表,sharding-jdbc 做了哪些事情?
分布式锁时怎么用的?哪些地方使用,为什么使用?
netty 是怎么用的?
netty 的工作流程
讲讲零拷贝?
哪些场景用到了 rocketMQ?
rocketMQ 的 topic和 queue 的关系?
rocket MQ 为什么一个消费者只能消费同一个 topic 里的一个 queue?
rocketMQ 一个消费者,能消费多个 topic 吗?
rocketMQ,tag 的过滤是在哪里实现的?
rocketMQ 的集群模式?
数组倒序实现
求 X 的n 次方;要求递归实现
1.问项目相关,项目中有挑战的事
2.题目:Integer a=500Integer b = 500地址是否相同,Integer a=100Integer b = 100
2.线程池相关参数,几种拒绝策略
3.cpu进行线程调度的方法
4.为什么开启线程用start()而不是直接调用run()
14.线程的几种状态
5.强引用,软引用,弱引用,虚引用
6.HashMap相关
7.LinkedList和ArrayList
8.redis的持久化
9.redis过期策略
12.redis实现分布式锁的方法,缺点
11.rabbitmq发生消息堆积怎么处理,
10.堆和栈的区别
项目介绍(架构,功能模块,业务逻辑)
具体业务相关问题(微信联合登陆,移动推送设备绑定)
项目技术难点
Kafka消费者自动提交和手动提交的区别
Kafka如何保证有序性
Kafka和其他mq的区别
用mq遇到的问题重复消费如何处理
redis基本数据类型
redis为什么快
select poll epoll区别
redis无主集群槽位
redis无主集群和主从的区别
crc16算法
redis过期策略 回收策略
redis无主集群槽位迁移
mysql存储引擎 区别
innodb存储结构
怎么看mysgl查询走不走索引
mysql联合索引最左匹配
mysql的MVCC
分库分表
读写分离代码实现
Java基础常用数据结构
hashmap扩容
hashmap链表转红黑树
线程池参数
Futher接口使用
spring bean生命周期
双亲委派机制
spring aop使用,具体实现
spring bean初始化方式
jvm调优参数
ivm垃圾收集器 收集算法
线上项目占CPU高如何处理 解决