01 Java相关
- Java有多少个关键字进行同步?为什么这样设计?
- Arraylist与LinkedList默认空间是多少?它们的区别和各自的优势呢?
- 谈谈HashMap,哈希表解决hash冲突的方法?
- 修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?HashSet方法里面的hashcode存在哪,如果重写equals不重写hashcode会怎么样?
- 为什么要重写hashcode()和equals()?Object的hashcode()是怎么计算的?
- 若hashcode方法永远返回1或者一个常量会产生什么结果?
- 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
- 成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用
- 抽象方法和类方法的区别,static的抽象方法可以吗?是否可以从一个static方法内部发出对非static方法的调用?
- String s="abc"和String s=new String("abc")区别?String为什么要设计成不可变的?
- 引用计数法与GC Root可达性分析法区别?
- 说说你对Java反射的理解,Java注解的理解,依赖注入的理解?
- 如何将一个Java对象序列化到文件里?Java中实现多态的机制是什么?
- JMM里边的原子性、可见性、有序性是如何体现出来的,JMM中内存屏障是什么意思?
- sync原理详细,sync内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案?
- BIO、NIO、AIO 有什么区别?
- 对象内存布局,然后讲下对象的死亡过程?
- AQS原理,ReentranLock源码,设计原理,整体过程。开闭原则,解析工厂方法模式,建造者模式,区别?
- 写个后缀表达式,为什么要设计后缀表达式?有什么好处?
- 你有遇到过临界区问题吗?有遇到过吗?你在项目遇到这个问题是怎样解决的?
02 分布式相关
- 多少种RPC框架?
- 聊一下分布式锁?
- 搭建高并发高可用系统需要怎样设计?考虑哪些东西,有多少说多少你对缓存有什么理解?
- 缓存是解决什么问题?后端缓存有哪些,分别解决什么问题?
- 消息队列使用的场景介绍和作用(应用耦合、异步消息、流量削锋等)?
- 如何解决消息队列丢失消息和重复消费问题?
- 什么是C10K问题?
- 说一下你对微服务的理解,与SOA的区别?
- Kafka使用过吗,什么是幂等性?怎么保证一致性,持久化怎么做,分区partition的理解,LEO是什么意思,如何保证多个partition之间数据一致性的(ISR机制),为什么Kafka可以这么快(基于磁盘的顺序读写)?
- 一致性哈希是干嘛的?什么是Hash一致性算法?
- 分布式缓存的一致性,服务器如何扩容(哈希环)?
- 说下,削峰的多种实现,Redis?MQ?为什么用MQ就能削峰?解决什么问题?
- 正向代理、反向代理?
- 你项目的并发是多少?怎么解决高并发问题?
- 单机情况下Tomcat的并发大概是多少?
- 分布式理论,什么是CAP理论,什么是Base理论,什么是Paxos理论?Dubbo的基本原理,RPC支持哪些通信方式,服务的调用过程?
- Dubbo如果有一个服务挂掉了怎么办?
- 什么是客户端负载均衡策略、什么是服务器端负载均衡策略?
- 如何优化Tomcat,常见的优化方式有哪些?
- Nginx的Master和Worker,Nginx是如何处理请求的?
03 线程相关
- 怎么认为一个类是线程安全?线程安全的定义是什么?
- 多线程是解决什么问题的?线程池解决什么问题?
- 线程和进程的区别?开启线程的三种方式?
- 如何保证线程安全?如何实现线程同步?如何关闭线程?
- 什么是线程池,如何使用?
- 谈谈你对并发编程的理解并举例说明
- 谈谈你对多线程同步机制的理解?
- 如何保证多线程读写文件的安全?
- 多线程有什么要注意的问题?
- volatile的原理,谈谈volatile关键字的用法与作用
- synchronized 和volatile 关键字的区别,synchronized与Lock的区别
- 同一个类里面两个synchronized方法,两个线程同时访问的问题
- 谈谈对Synchronized关键字,类锁,方法锁,重入锁的理解
- ReentrantLock 、synchronized和volatile比较,ReentrantLock的内部实现
- 死锁的四个必要条件?怎么避免死锁?对象锁和类锁是否会互相影响?
- 两个进程同时要求写或者读,能不能实现?如何防止进程的同步?
- 多线程断点续传原理,断点续传的实现
- 如何控制某个方法允许并发访问线程的个数?
- 在Java中wait和seelp方法的不同;谈谈wait/notify关键字的理解
- static synchronized 方法的多线程访问和作用
04 数据库相关
- 事务四大特性(ACID)原子性、一致性、隔离性、持久性?
- 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
- MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
- MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
- 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
- 什么是临时表,临时表什么时候删除?
- MySQL B+Tree索引和Hash索引的区别?
- sql查询语句确定创建哪种类型的索引?如何优化查询?
- 聚集索引和非聚集索引区别?
- 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
- 非关系型数据库和关系型数据库区别,优势比较?
- 数据库三范式,根据某个场景设计数据表?
- 数据库的读写分离、主从复制,主从复制分析的 7 个问题?
- 使用explain优化sql和索引?
- MySQL慢查询怎么解决?
- 什么是 内连接、外连接、交叉连接、笛卡尔积等?
- mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
- varchar和char的使用场景?
- mysql 高并发环境解决方案?
- 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
05 框架相关
- 聊下Spring源码,知道多少,都聊一下
- 聊下Spring注解,@Autowire,@Resource,以及他们的解析过程
- spring 支持几种 bean 的作用域?spring 自动装配 bean 有哪些方式?
- 聊一下架构,接入层架构,服务层架构
- 聊下技术栈,Spring Boot,Spring Cloud、Docker?
- spring cloud 断路器的作用是什么?spring cloud 的核心组件有哪些?
- spring boot 配置文件有哪几种类型?它们有什么区别?
- 解释一下什么是 aop?解释一下什么是 ioc?Spring ioc的具体优势,和直接New一个对象有什么区别
- Servlet生命周期,是否单例,为什么是单例
- Spring Mvc初始化过程?spring mvc 有哪些组件?
06 缓存服务器相关
- redis 是什么?都有哪些使用场景?
- redis 和 memecache 有什么区别?
- redis 为什么是单线程的?什么是缓存穿透?怎么解决?
- redis 支持的数据类型有哪些?redis 支持的 java 客户端都有哪些?
- 怎么保证缓存和数据库数据的一致性?
- redis 怎么实现分布式锁?redis 分布式锁有什么缺陷?
- redis 常见的性能问题有哪些?该如何解决?
- Redis的set的应用场合?
- Redis集群宕机如何处理,怎么样进行数据的迁移?
- Redis过期策略是怎么实现的呢?
07 网络相关
- Http和Https?Http1.0,1.1,2.0,讲下长连接和短连接?Https是怎样的?如果我篡改了公钥呢?怎么防止?
- TCP的拥塞控制、流量控制详细说明?
- 学过计算机网络是吧?socket熟悉吗?对它的读写缓冲区有理解吗?怎么的?那滑动窗口是怎样的?为什么这样设计?
- 数据链路层是做什么的?数据链路层的流量控制?
- TCP滑动窗口,TCP为什么可靠?
- TCP的同传,拆包与组装包是什么意思?
- Https和Http有什么区别?
- TCP三次握手,为什么不是三次,为什么不是四次?
- TCP三次握手数据丢失了怎么办?那如果后面又找到了呢?
- OSI七层模型分别对应着五层模型的哪一部分?