这个Repo主要用来分享Java面试题,目前已经涵盖Java基础、Java多线程、Java虚拟机、MySQL、Redis、消息中间件、Kafka、RabbitMQ、微服务、Spring、MyBatis、Netty、Zookeeper、计算机网络、数据结构与算法、设计模式等内容,后续还会不断更新。
如果对于有所帮助,可以给个star。有纰漏的地方,欢迎给我们提PR。
如果想获取本Repo的PDF版本,可以用微信扫描下方二维码,回复 “pdf” ,即可获取。如果二维码加载不出来,可以在微信搜索公众号 “Java面试攻略”,回复 “pdf” ,即可获取PDF版本。
-
- 1.说下面向对象四大特性
- 2.Java语言有哪些特点
- 3.什么是Java程序的主类?应用程序和小程序的主类有何不同?
- 4.访问修饰符public,private,protected,以及不写(默认)时的区别?
- 5.float f=3.4;是否正确?
- 6.Java有没有goto?
- 7.&和&&的区别?
- 8.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
- 9.用最有效率的方法计算2乘以8?
- 10.什么是Java注释
- 11.Java有哪些数据类型
- 12.final 有什么用?
- 13.final finally finalize的区别
- 14.String str = "i" 和String str = new String("1")一样吗?
- 15.Java 中操作字符串都有哪些类?它们之间有什么区别?
- 16.Java中为什么要用 clone?
- 17.深克隆和浅克隆?
- 18.new一个对象的过程和clone一个对象的区别?
- 19.Java中实现多态的机制是什么?
- 20.谈谈你对多态的理解?
- 21.构造器(constructor)是否可被重写(override)?
- 22.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
- 23.是否可以继承String类?
- 24.String类的常用方法有哪些?
- 25.char型变量中能否能不能存储一个中文汉字,为什么?
- 26.this关键字的用法
- 27.super关键字的用法
- 28.this与super的区别
- 29.static存在的主要意义
- 30.static的独特之处
- 31.static应用场景
- 32.static注意事项
- 33.break ,continue ,return 的区别及作用
- 34.在Java中定义一个不做事且没有参数的构造方法的作用
- 35.构造方法有哪些特性?
- 36.静态变量和实例变量区别
- 37.静态方法和实例方法有何不同?
- 38.什么是方法的返回值?返回值的作用是什么?
- 39.什么是内部类?
- 40.内部类的分类有哪些
- 41.Java中异常分为哪些种类?
- 42.hashCode 与 equals (重要)
- 43.hashCode()介绍
- 44.为什么要有 hashCode
- 45.抽象类和接口(Java7)的区别
- 46.Java 8的接口新增了哪些特性?
- 47.重写和重载的区别
- 48.ArrayList和LinkedList有什么区别?
- 49.HashMap是怎么实现的?
- 50.HashMap在Java7和Java8中的实现有什么不同?
- 51.HashMap有时候会死循环,你知道是什么原因吗?
- 52.ConcurrentHashMap是怎么实现的?
- 53.静态代理和动态代理的区别
- 54.JDK动态代理和CGLIB动态代理的区别
- 参考链接
-
- 1.说说synchronized的实现原理
- 2.ReentrantLock与synchronized的区别
- 3.ReentrantLock实现原理
- 4.Java原子类AtomicInteger实现原理
- 5.Java线程池实现原理
- 6.ThreadLocal实现原理
- 7.InheritableThreadLocal原理知道吗?
- 8.说一下synchronized锁升级过程
- 9.了解过什么是“伪共享”吗?
- 10.“伪共享”出现的原因是什么?
- 11.如何避免“伪共享”?
- 12.Java里的线程有哪些状态?
- 13.什么是悲观锁?什么是乐观锁?
- 14.怎么停止一个运行中的线程?
- 15.说一下你对volatile的理解?
- 16.并发编程三要素?
- 17.创建线程有哪些方式?
- 18.线程池的优点?
- 19.CyclicBarrier和CountDownLatch的区别
- 20.什么是CAS?
- 21.CAS的问题
- 22.什么是AQS?
- 23.AQS支持几种同步方式?
- 24.什么是自旋锁?
- 25.什么是多线程的上下文切换?
- 26.什么是线程和进程?
- 27.程序计数器为什么是私有的?
- 28.虚拟机栈和本地方法栈为什么是私有的?
- 29.并发与并行的区别?
- 30.什么是线程死锁?如何避免死锁?
- 31.sleep() 方法和 wait() 方法的区别和共同点?
- 32.为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
- 33.什么是线程安全问题?如何解决?
- 34.什么是活锁?
- 35.什么是线程的饥饿问题?如何解决?
- 36.什么是线程的阻塞问题?如何解决?
- 37.synchronized 关键字和 volatile 关键字的区别
- 38.说一说几种常见的线程池及适用场景?
- 39.线程池都有哪几种工作队列?
- 40.什么是线程安全?
- 41.Java中如何获取到线程dump文件
- 42.Java中用到的线程调度算法是什么?
- 43.Thread.sleep(0)的作用是什么?
- 44.单例模式的线程安全性
- 45.Semaphore有什么作用?
- 46.Hashtable的size()方法中明明只有一条语句"return count",为什么还要做同步?
- 47.同步方法和同步块,哪个是更好的选择?
- 48.高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
- 49.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
- 50.你将如何使用thread dump?你将如何分析Thread dump?
- 参考资料
-
- 1.说一下JVM的内存结构?
- 2.栈帧里面包含哪些东西?
- 3.程序计数器有什么作用?
- 4.字符串常量存放在哪个区域?
- 5.你熟悉哪些垃圾收集算法?
- 6.Java里有哪些引用类型?
- 7.JVM怎么判断一个对象是不是要回收?
- 8.GC Roots 有哪些?
- 9.你知道哪些GC类型?
- 10.对象都是优先分配在年轻代上的吗?
- 11.你了解过哪些垃圾收集器?
- 12.说说CMS垃圾收集器的工作原理
- 13.说说G1垃圾收集器的工作原理
- 14.说说ZGC垃圾收集器的工作原理
- 15.ZGC收集器中的染色指针有什么用?
- 16.说说类加载的过程
- 17.说下有哪些类加载器?
- 18.什么是双亲委派机制?
- 19.双亲委派机制可以被违背吗?请举例说明。
- 20.Tomcat是怎么打破双亲委派机制的呢?
- 21.Java对象的布局了解过吗?
- 22.什么情况下会发生栈内存溢出?
- 23.JVM新生代中为什么要分为Eden和Survivor?
- 24.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?
- 25.什么是指令重排序?
- 26.什么是内存屏障?
- 27.什么是happen-before原则?
- 28.说说你知道的几种主要的JVM参数
- 29.怎么打出线程栈信息?
- 30.为什么需要双亲委派模式?
- 31.怎么打破双亲委派模型?
- 32.说一下堆和栈的区别
- 33.Java 8 为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?
- 34.说一下Java对象的创建过程
- 35.对象的访问定位有哪几种方式?
- 36.说一下堆内存中对象的分配的基本策略
- 37.Minor Gc和Full GC 有什么不同呢?
- 38.Java会存在内存泄漏吗?请简单描述。
- 39.如何判断一个类是无用的类?
- 40.介绍一下类文件结构吧!
- 41.说一下 JVM 调优的工具?
- 42.JVM调优命令有哪些?
- 43.JRE、JDK、JVM 及 JIT 之间有什么不同?
- 44.程序计数器为什么是私有的?
- 45.如何判断一个常量是废弃常量 ?
- 参考资料
-
- 1.Java 中有几种类型的流?
- 2.什么是 java序列化?
- 3.如何实现 java 序列化?
- 4.字节流和字符流的区别?
- 5.PrintStream、BufferedWriter、PrintWriter的比较?
- 6.什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征?
- 7.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?
- 8.什么是BIO
- 9.什么是NIO
- 10.什么是AIO
- 11.同步与异步
- 12.阻塞与非阻塞
- 13.同步、异步、阻塞、非堵塞
- 14.通道是个什么意思?
- 15.缓冲区是什么意思?
- 16.IO多路复用的底层原理
- 参考链接
-
- 1. 什么是索引?
- 2.索引是个什么样的数据结构呢?
- 3.Hash索引和B+树索引有什么区别或者说优劣呢?
- 4.在建立索引的时候,都有哪些需要考虑的因素呢?
- 5.了解过哪些存储引擎?各有什么优缺点?
- 6.说一下什么是事务的ACID属性吧
- 7.事务的隔离级别了解过吗?
- 8.说说InnoDB的索引原理
- 说说InnoDB的MVCC机制
- 9.有了解过“回表”的概念吗?什么情况下会出现“回表”?
- 10.MySQL索引的类型
- 11.有做过MySQL的索引优化吗
- 12.什么是聚簇索引?
- 13.InnoDB有聚簇索引吗?MyIsam呢?
- 14.MyIsam的数据是怎么存储的?
- 15.InnoDB的数据是怎么存储的?
- 16.InnoDB主键索引跟非主键索引在数据存储上的差异
- 17.InnoDB删除某条记录后,内部会怎么处理?
- 18.InnoDB如果没有设置主键的话,它内部会怎么处理?
- 19.为什么InnoDB一定会生成主键?
- 20.MySQL分库分表了解过吗?
- 21.MySQL的redo日志和undo日志分别有什么用?
- 22.MySQL的redo日志的刷盘时机
- 23.MySQL有哪些锁?以及各种锁的作用?
- 24.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
- 25.MySQL有哪些日志,分别是什么用处?
- 26.在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?
- 27. 为什么要尽量设定一个主键?
- 28.主键使用自增ID还是UUID?
- 29.字段为什么要求定义为not null?
- 30.如果要存储用户的密码散列,应该使用什么字段进行存储?
- 31.varchar(10)和int(10)代表什么含义?
- 32.MySQL的binlog有有几种录入格式?分别有什么区别?
- 33.超大分页怎么处理?
- 34.关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
- 35.什么是存储过程?有哪些优缺点?
- 36.说一说三个范式
- 37.什么情况下应不建或少建索引
- 38.什么是表分区?
- 39.表分区与分表的区别
- 40.表分区有什么好处?
- 41.MVVC了解过吗
- 42.在MVCC并发控制中,读操作可以分成哪几类?
- 43.行级锁定的优点
- 44.行级锁定的缺点
- 45.MySQL优化
- 46.key和index的区别
- 47.delete、truncate、drop区别
- 48.MySQL主从复制原理流程
- 49.自增主键最大ID记录,MyISAM和InnoDB分别是如何存储的
- 50.Mysql如何优化DISTINCT?
- 51.解释MySQL外连接、内连接与自连接的区别
- 参考链接
-
- 1.什么是Redis?简述它的优缺点?
- 2.Redis相比memcached有哪些优势?
- 3.Redis有哪些数据结构?
- 4.Redis主要消耗什么物理资源?
- 5.Redis的全称是什么?
- 6.一个字符串类型的值能存储最大容量是多少?
- 7.Redis为什么那么快?
- 8.Redis如何实现分布式锁?
- 9.Redis是单线程还是多线程?
- 10.Redis 官方为什么不提供 Windows 版本?
- 11.为什么 Redis 需要把所有数据放到内存中?
- 12.Redis如何设置密码及验证密码?
- 13.Redis集群如何选择数据库?
- 14.缓存失效?缓存穿透?缓存雪崩?缓存并发?
- 15.Redis中的热key怎么处理?
- 16.Redis中的大key怎么处理?
- 17.使用Redis统计网站的UV,应该怎么做?
- 18.Redis事务机制了解过吗?
- 19.Redis key的淘汰策略有哪些?
- 20.Redis在什么情况下会触发key的回收?
- 21.Redis的持久化了解过吗?
- 22.Redis在集群种查找key的时候,是怎么定位到具体节点的?
- 23.Redis集群各个节点之间是怎么保持数据一致性的?
- 24.用Redis做延时队列,具体应该怎么实现?
- 25.Redis String的内部编码有哪些?
- 26.Redis 集群方案应该怎么做?都有哪些方案?
- 27.Redis 集群方案什么情况下会导致整个集群不可用?
- 28.MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
- 29.Redis有哪些适合的场景?
- 30.Redis和Redisson有什么关系?
- 31.Redis中的管道有什么用?
- 32.Redis如何做内存优化?
- 参考链接
-
- 1.什么是spring?
- 2.使用Spring框架的好处是什么?
- 3.Spring由哪些模块组成?
- 4.Spring是怎么解决循环依赖的?
- 5.Spring Boot手动装配有哪几种方式?
- 6.Spring Boot自动配置原理
- 7.谈谈自己对于Spring IOC的理解
- 8.谈谈自己对于Spring AOP的理解
- 9.Spring AOP和AspectJ AOP有什么区别?
- 10.Spring中的bean的作用域有哪些?
- 11.Spring中的单例bean的线程安全问题了解吗?
- 12.Spring中的bean生命周期了解过吗?
- 13.Spring MVC的工作原理了解嘛?
- 14.Spring框架中用到了哪些设计模式?
- 15.@Component和@Bean的区别是什么?
- 16.将一个类声明为Spring的bean的注解有哪些?
- 17.Spring事务管理的方式有几种?
- 18.Spring事务中的隔离级别有哪几种?
- 19.Spring事务中有哪几种事务传播行为?
- 20.Spring 事务底层原理
- 21.BeanFactory和ApplicationContext有什么区别?
- 22.Resource 是如何被查找、加载的?
- 23.解释自动装配的各种模式?
- 24.有哪些不同类型的IOC(依赖注入)?
- 25.Spring AOP 实现原理
- 26.ApplicationContext通常的实现是什么?
- 27. Bean 工厂和 Application contexts 有什么区别?
- 参考资料
-
- 1.什么是springboot
- 2.Spring Boot 有哪些优点?
- 3. 创建一个 Spring Boot Project 的最简单的方法是什么?
- 4.Spring 和 SpringBoot 有什么不同?
- 5.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
- 6.Spring Boot 中的监视器是什么?
- 7.如何在 Spring Boot 中禁用 Actuator 端点安全性?
- 8.怎么使用 Maven 来构建一个 SpringBoot 程序?
- 9.Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
- 10.为什么我们需要 spring-boot-maven-plugin?
- 11.什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
- 12.如何在 Spring Boot 中添加通用的 JS 代码?
- 13.如何使用 Spring Boot 部署到不同的服务器?
- 14.如何使用配置文件通过 Spring Boot 配置特定环境的配置?
- 15.什么是Swagger?你用Spring Boot实现了吗?
- 16.如何实现Spring Boot应用程序的安全性?
- 17.比较一下Spring Security和Shiro各自的优缺点?
- 18.Spring Boot中如何解决跨域问题?
- 19.Spring Boot的核心注解是哪些?他由哪几个注解组成的?
- 20.保护SpringBoot应用有哪些方法?
- 21.SpringBoot 2.X有哪些新特性?与1.X有什么区别?
- 参考链接
-
- 1.什么是 Spring Cloud?
- 2.使用Spring Cloud有什么优势?
- 3.服务注册和发现是什么意思?Spring Cloud如何实现?
- 4.Spring Cloud由哪些组件组成?
- 5.什么是Hystrix?它如何实现容错?
- 6.什么是Hystrix断路器?我们需要它吗?
- 7.什么是Netflix Feign?它的优点是什么?
- 8.Eureka的工作原理?
- 9.说说Eureka的自我保护机制?
- 10.什么是zuul?
- 11.zuul的工作流程?
- 12.什么是服务熔断?什么是服务降级?
- 13.什么是服务雪崩效应?
- 14.ZuulFilter有哪些常用方法?
- 15.如何实现动态Zuul网关路由转发?
- 16.什么是 Spring Cloud Bus?
- 17.Spring Cloud Bus 原理?
- 18.SpringCloud Config可以实现实时刷新吗?
- 19.Eureka和zookeeper都可以提供服务注册与发现的功能,两者的区别
- 参考链接
-
- 1.什么是Mybatis?
- 2.Mybatis的优缺点?
- 3.Mybatis使用场合?
- 4.https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#{}和${}的区别是什么?
- 5.当实体类的属性名和表种字段名不一致怎么办?
- 6.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
- 7.如何获取自动生成的(主)键值?
- 8.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
- 9. Mybatis动态SQL?
- 10.说一下resultMap和resultType?
- 11. Mybatis全局配置文件中有哪些标签?分别代表什么意思?
- 12.Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别。
- 13.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
- 14.Mybatis都有哪些Executor执行器?它们之间的区别是什么?
- 15.Mybatis的一级、二级缓存
- 参考链接
-
- 1.微服务有哪些优缺点?
- 2.作为注册中心,Zookeeper和Eureka有什么区别?
- 3.Service Mesh了解过吗?
- 4.微服务有哪些特点?
- 5.单片,SOA 和微服务架构有什么区别?
- 6.Spring Cloud 解决了哪些问题?
- 7.服务注册和发现是什么意思?Spring Cloud 如何实现?
- 8.Spring Cloud 和dubbo的区别?
- 9.什么是微服务?
- 10.微服务之间是如何通讯的?
- 11.请谈谈对SpringBoot 和SpringCloud的理解
- 12.什么是服务熔断,什么是服务降级
- 13.你所知道的微服务技术栈有哪些?
- 14.什么是 Eureka服务注册与发现?
- 15.Eureka的基本架构是什么?
- 16.作为服务注册中心,Eureka比Zookeeper好在哪里?
- 参考资料
-
- 1.Zookeeper有哪些节点类型?
- 2.了解过Zookeeper的ZAB协议吗?
- 3.Zookeeper怎么实现分布式锁?
- 4.Zookeeper是怎么保证数据一致性的?
- 5.Zookeeper Leader选举过程是怎样的?
- 6.Zookeeper怎么实现服务注册?
- 7.ZooKeeper是什么?
- 8.ZooKeeper提供了什么?
- 9.Zookeeper文件系统
- 10.Zookeeper Watcher 机制
- 11.客户端注册Watcher实现
- 12.服务端处理Watcher实现
- 13.ACL权限控制机制
- 14.服务器角色
- 15.Zookeeper 下 Server工作状态
- 16.数据同步
- 17.zookeeper是如何保证事务的顺序一致性的?
- 18.分布式集群中为什么会有Master?
- 19.zk节点宕机如何处理?
- 20.Zookeeper有哪几种部署模式?
- 21.集群最少要几台机器,集群规则是怎样的?
- 22.集群支持动态添加机器吗?
- 23.Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?
- 24.ZAB和Paxos算法的联系与区别?
- 25.Zookeeper的典型应用场景
- 26.Zookeeper 和 Dubbo 的关系?
- 27.zookeeper负载均衡和nginx负载均衡区别
- 参考资料
-
- 1.为什么要使用 kafka?为什么要使用消息队列?
- 2.Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?
- 3.kafka中的broker 是干什么的?
- 4.kafka中的 zookeeper 起到什么作用?可以不用zookeeper么?
- 5.kafka follower如何与leader同步数据?
- 6.什么情况下一个 broker 会从 ISR 中被踢出去?
- 7.kafka 为什么那么快?
- 8.kafka producer如何优化打入速度?
- 9.kafka producer 打数据,ack 为 0, 1, -1 的时候代表啥, 设置 -1 的时候,什么情况下,leader 会认为一条消息 commit 了
- 10.kafka unclean 配置代表啥?会对 spark streaming 消费有什么影响?
- 11.如果leader crash时,ISR为空怎么办?
- 12.kafka的message格式是什么样的?
- 13.kafka中consumer group 是什么概念?
- 14.Kafka中的消息是否会丢失和重复消费?
- 15.为什么Kafka不支持读写分离?
- 16.Kafka中是怎么体现消息顺序性的?
- 17.kafka如何实现延迟队列?
- 18.什么是消费者组?
- 19.解释下 Kafka 中位移(offset)的作用。
- 20.阐述下 Kafka 中的领导者副本(Leader Replica)和追随者副本 (Follower Replica)的区别。
- 21.如何设置 Kafka 能接收的最大消息的大小?
- 22.监控 Kafka 的框架都有哪些?
- 23.Broker 的 Heap Size 如何设置?
- 24.如何估算 Kafka 集群的机器数量?
- 25.Leader 总是 -1,怎么破?
- 26.LEO、LSO、AR、ISR、HW 都表示什么含义?
- 27.Kafka 能手动删除消息吗?
- 28.consumer_offsets 是做什么用的?
- 29.分区 Leader 选举策略有几种?
- 30.Kafka 的哪些场景中使用了零拷贝(Zero Copy)?
- 31.如何调优 Kafka?
- 32.Controller 发生网络分区(Network Partitioning)时,Kafka 会怎么样?
- 33.Java Consumer 为什么采用单线程来获取消息?
- 34.简述 Follower 副本消息同步的完整流程。
- 参考资料
-
- 1.什么是RabbitMQ?为什么使用RabbitMQ?
- 2.RabbitMQ有什么优缺点?
- 3.什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪些?元数据是如何保存的?元数据在cluster中是如何分布的?
- 4.在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行binding会有什么不同?
- 5.客户端连接到cluster中的任意node上是否都能正常工作?
- 6.若cluster中拥有某个queue的owner node失效了,且该queue 被声明具有durable属性,是否能够成功从其他node上重新声明该 queue ?
- 7.RabbitMQ 的消息是怎么发送的?
- 8.RabbitMQ 怎么避免消息丢失?
- 9.RabbitMQ的使用场景有哪些?
- 10.RabbitMQ有哪些重要的角色?
- 11.如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
- 12.要保证消息持久化成功的条件有哪些?
- 13.RabbitMQ 有几种广播类型?
- 14.vhost 是什么?起什么作用?
- 15.消息基于什么传输?
- 16.消息如何分发?
- 17.消息怎么路由?
- 18.如何确保消息接收方消费了消息?
- 19.如何避免消息重复投递或重复消费?
- 20.死信队列和延迟队列的使用
- 参考链接:
-
- 1.接口是什么?为什么要使用接口而不是直接使用具体类?
- 2.设计模式六大原则?
- 3.Java怎么实现单例模式?
- 4.什么是代理模式?什么是动态代理?Java中动态代理有哪些实现方式?
- 5.设计模式的类型
- 6.说说你所熟悉或听说过的 j2ee 中的几种常用模式?
- 7.简述一下你了解的 Java 设计模式(总结)
- 8.适配器模式是什么?什么时候使用?
- 9.适配器模式与装饰器模式有什么区别?
- 10.适配器模式和代理模式之间有什么不同?
- 11.什么是模板方法模式?试举例说明。
- 12.OOP中的组合、聚合和关联有什么区别?
- 13.给我一个符合开闭原则的设计模式的例子?
- 14.工厂模式与抽象工厂模式的区别?
- 15.举出一个例子,在这种情况你会更倾向于使用抽象类,而不是接口?
- 16.Dubbo 源码使用了哪些设计模式?
- 17.Spring 当中用到了哪些设计模式?
- 参考链接
-
- 1.分布式id如何生成?
- 2.雪花算法了解过吗?
- 3.什么是CAP定理?
- 4.分布式事务了解过吗?
- 5.什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?
- 6.TCC了解过吗?
- 7.Paxos算法了解过吗?
- 8.Zookeeper的Zab协议了解过吗?
- 9.知道什么是Gossip协议吗?
- 10.了解过哪些负载均衡算法?
- 11.负载均衡的实现方案有哪些?
- 12.正向代理和反向代理的区别
- 13.分布式 Session了解过吗?如何实现?
- 14.如何防止表单重复提交?
- 15.如何设计一个秒杀系统?
- 16.分布式系统的接口幂等性设计
- 17.如何保障请求执行顺序
- 18.BASE理论了解过吗?
- 19.SOA和微服务架构有哪些区别?
- 参考资料
-
- 1.vim有几种工作模式?
- 2.find 命令如何使用?
- 3.如何在 /usr 目录下找出大小超过 10MB 的文件?
- 4.如何在 /var 目录下找出 90 天之内未被访问过的文件?
- 5.如何在 /home 目录下找出 120 天之前被修改过的文件?
- 6.在整个目录树下查找文件 “core” ,如发现则无需提示直接删除它们?
- 7.ls 命令
- 8.df 命令
- 9.rm 命令
- 10.mv 命令
- 11.cp 命令
- 12.tail 命令
- 13.grep 命令
- 14.sed 命令
- 15.用 sed 命令将指定的路径 /usr/local/http 替换成为 /usr/src/local/http ?
- 16.打印 /etc/ssh/sshd_config 的第一百行?
- 17.awk 命令
- 18.打印 /etc/passwd 的 1 到 3 行?
- 19.vim 命令
- 20.diff 命令
- 21.sort 命令
- 22.xargs 命令
- 23.把当前目录下所有后缀名为 .txt 的文件的权限修改为 777 ?
- 24.tar 命令
- 25.gzip 命令
- 26.bzip2 命令
- 27.unzip 命令
- 28.export 命令
- 29.yum 命令
- 30.rpm 命令
- 31.shutdown 命令
- 32.service 命令
- 33.whereis 命令
- 34.用一条命令显示本机 eth0 网卡的 IP 地址,不显示其它字符?
- 35.如何禁止服务器被 ping ?
- 36.设置 DNS 需要修改哪个配置文件?
- 37.在 Linux 下如何指定dns服务器,来解析某个域名?
- 参考资料
-
- 1.请解释一下什么是 Nginx ?
- 2.为什么要用Nginx?
- 3.Nginx怎么处理请求的?
- 4.Nginx的优缺点?
- 5.Nginx应用场景?
- 6.使用“反向代理服务器”的优点是什么?
- 7.列举Nginx服务器的最佳用途。
- 8.请解释Nginx如何处理HTTP请求。
- 9.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
- 10.在Nginx中如何在URL中保留双斜线?
- 11.ngx_http_upstream_module的作用是什么?
- 12. fastcgi 与 cgi 的区别?
- 13. Nginx 常用命令?
- 14.Nginx 常用配置?
- 15.请陈述stub_status和sub_filter指令的作用是什么?
- 参考链接
-
- 1.RocketMQ中的Topic和JMS的queue有什么区别?
- 2.RocketMQ Broker中的消息被消费后会立即删除吗?
- 3.RocketMQ消费模式有几种?
- 4.消费消息是push还是pull?
- 5.broker如何处理拉取请求的?
- 6.RocketMQ如何做负载均衡?
- 7.消息重复消费如何解决?
- 8.如何让RocketMQ保证消息的顺序消费?
- 9.RocketMQ如何保证消息不丢失?
- 10.rocketMQ的消息堆积如何处理
- 11.RocketMQ在分布式事务支持这块机制的底层原理?
- 12.如果让你来动手实现一个分布式消息中间件,整体架构你会如何设计实现?
- 13.高吞吐量下如何优化生产者和消费者的性能?
- 14.再说说RocketMQ 是如何保证数据的高容错性的?
- 15.任何一台Broker突然宕机了怎么办?
- 参考资料
-
- 1.说下进程的状态
- 2.说下进程和线程的联系与区别
- 3.为什么进程上下文切换比线程上下文切换代价高?
- 4.说下你对进程同步的理解
- 5.进程的通信方式有哪些
- 6.进程调度的种类有哪些?
- 7.非抢占式调度与抢占式调度的区别是什么?
- 8.说下你知道的调度算法
- 9.一个程序从开始运行到结束的完整过程(四个过程)
- 10.死锁出现的条件?
- 11.如何处理死锁问题
- 12.如何处理死锁问题
- 13.什么是临界资源
- 14.介绍一下内存池、进程池、线程池
- 15.动态链接库与静态链接库的区别
- 16.说下对虚拟内存的理解
- 17.页面置换算法了解多少?
- 18.中断与系统调用了解吗?
- 19.用户态切换到内核态的方式有哪些?
- 20.用户态和核心态(内核态)之间的区别是什么呢?
- 21.内部碎片与外部碎片分别是什么?
- 22.系统调用与库函数的区别
- 23.守护、僵尸、孤儿进程的概念
- 参考资料
-
- 1.计算机系统由哪两部分组成?计算机系统性能取决于什么?
- 2.计算机系统5层层次结构从下到上由哪五层组成?哪些是物理机,哪些是虚拟机?
- 3.在计算机系统结构中,什么是翻译?什么是解释?
- 4.什么是计算机体系结构?什么是计算机组成?以乘法指令为例说明二者区别。
- 5.冯诺依曼机器的主要特点?
- 6.程序访问的局部性
- 7.字长
- 8.Cache的基本工作原理
- 9.Cache和主存之间的映射方式
- 10. Cache中主存块的替换算法
- 11.二进制一般使用什么方法转换成十进制?
- 12.计算机直接使用原码计算有什么缺点?
- 13.请计算12、124、1023、-1、-127的二进制原码。
- 14.计算机的补码解决了什么问题?
- 15.什么是溢出?什么是上溢?什么是下溢?
- 16.浮点数之间做加减法运算需要几个步骤?每个步骤都是必须的吗?为什么?
- 17.虚拟存储器的基本概念
- 18.页式虚拟存储器
- 19.段式虚拟存储器
- 20.段页式虚拟存储器
- 参考链接
-
- 1.什么Docker
- 2.Docker与虚拟机有何不同
- 3.什么是Docker镜像
- 4.什么是Docker容器
- 5.Docker容器有几种状态
- 6.DockerFile中最常见的指定是什么?
- 7.DockerFile中的命令COPY和ADD命令有什么区别?
- 8.Docker的常用命令?
- 9.容器与主机之间的数据拷贝命令?
- 10.启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?
- 11.如何使用 Docker 技术创建与环境无关的容器系统?
- 12.有什么方法确定一个 Docker 容器运行状态
- 13. Docker Image 和 Docker Layer (层) 有什么不同
- 14.如何停止所有正在运行的容器?
- 15.如何清理批量后台停止的容器?
- 16.如何临时退出一个正在交互的容器的终端,而不终止它?
- 17.Docker 群(Swarm)是什么
- 18.在使用 Docker 技术的产品中如何监控其运行
- 19.什么是孤儿卷及如何删除它?
- 20.在 Windows 系统上可以运行原生的 Docker 容器吗?
- 21.在 非 Linux 操作系统平台上如何运行 Docker ?
- 参考链接
-
- 1.Dubbo是什么?
- 2.为什么要用Dubbo?
- 3.Dubbo 和 Dubbox 有什么区别?
- 4.dubbo都支持什么协议,推荐用哪种?
- 5.Dubbo需要 Web 容器吗?
- 6.Dubbo内置了哪几种服务容器?
- 7.Dubbo默认使用什么注册中心,还有别的选择吗?
- 8.Dubbo有哪几种配置方式?
- 9.在 Provider 上可以配置的 Consumer 端的属性有哪些?
- 10.Dubbo启动时如果依赖的服务不可用会怎样?
- 11.Dubbo推荐使用什么序列化框架,你知道的还有哪些?
- 12.Dubbo默认使用的是什么通信框架,还有别的选择吗?
- 13.注册了多个同一样的服务,如果测试指定的某一个服务呢?
- 14.Dubbo支持服务多协议吗?
- 15.当一个服务接口有多种实现时怎么做?
- 16.服务上线怎么兼容旧版本?
- 17.Dubbo可以对结果进行缓存吗?
- 18.Dubbo服务之间的调用是阻塞的吗?
- 19.Dubbo支持分布式事务吗?
- 20.Dubbo支持服务降级吗?
- 21.Dubbo如何优雅停机?
- 22.服务提供者能实现失效踢出是什么原理?
- 23.如何解决服务调用链过长的问题?
- 24.服务读写推荐的容错策略是怎样的?
- 25.Dubbo必须依赖的包有哪些?
- 26.Dubbo的管理控制台能做什么?
- 27.说说 Dubbo 服务暴露的过程。
-
- 1.为什么要使用Elasticsearch?
- 2.Elasticsearch是如何实现Master选举的?
- 3.Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
- 4.详细描述一下Elasticsearch索引文档的过程。
- 5.详细描述一下Elasticsearch更新和删除文档的过程
- 6.详细描述一下Elasticsearch搜索的过程
- 7.Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
- 8.在并发情况下,Elasticsearch如果保证读写一致?
- 9.ElasticSearch中的集群、节点、索引、文档、类型是什么?
- 10.ElasticSearch中的分片是什么?
- 11.什么是ElasticSearch?
- 12.Elasticsearch中的倒排索引是什么?
- 13.Elasticsearch中的分析器是什么?
- 14.说说Elasticsearch常用的调优手段?
- 15.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
- 16.客户端在和集群连接时,如何选择特定的节点执行请求?
- 17.在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
- 18.对于 GC 方面,在使用 Elasticsearch 时要注意什么?
- 19.在并发情况下,Elasticsearch 如果保证读写一致?
- 20.如何监控 Elasticsearch 集群状态?
-
- 1.常见的集合有哪些?
- 2.常见的集合底层实现
- 3.HashMap与HashTable的区别?
- 4.ConcurrentHashMap和Hashtable的区别?
- 5.ConcurrentHashMap实现原理
- 6.ArrayList 和 Vector 的区别?
- 7.ArrayList和LinkedList的区别?
- 8.HashMap 默认的初始化长度是多少?
- 9.谈谈对HashMap 构造方法中初始容量、加载因子的理解
- 10.Java集合框架是什么?说出一些集合框架的优点?
- 11.集合框架中的泛型有什么优点?
- 12.为何Collection不从Cloneable和Serializable接口继承?
- 13.为何Map接口不继承Collection接口?
- 14.Iterator是什么?
- 15.Enumeration和Iterator接口的区别?
- 16.Iterater和ListIterator之间有什么区别?
- 17.fail-fast与fail-safe有什么区别?
- 18.hashCode()和equals()方法有何重要性?
- 19.我们能否使用任何类作为Map的key?
- 20.如何决定选用HashMap还是TreeMap?
- 21.哪些集合类提供对元素的随机访问?
- 22.BlockingQueue是什么?
- 23.队列和栈是什么,列出它们的区别?
- 24.Collections类是什么?
- 25.Comparable和Comparator接口有何区别?
-
- 1.什么是进程
- 2.什么是线程
- 3.进程间如何通讯
- 4.线程间如何通讯
- 5.同步和异步有何不同,在什么情况下分别使用它们?举例说明
- 6.进程调度算法
- 7.Java中Unsafe类详解
- 8.如何测试并发量?
- 9.有三个线程T1,T2,T3,怎么确保它们按顺序执行?
- 10.什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
- 11.数据库死锁?
- 12.什么是锁顺序死锁?
- 13.死锁的避免与诊断?
- 14.常见的并发容器?
- 15.常见的同步工具类?
- 16.Nginx多进程模型是如何实现高并发的?
- 17.CopyOnWriteArrayList
- 18.AQS
- 19.Java里的阻塞队列
- 20.Fork/Join框架
-
- 1.什么是Kubernetes?
- 2.Kubernetes与Docker有什么关系?
- 3.什么是Container Orchestration?
- 4.Kubernetes如何简化容器化部署?
- 5.什么是Google容器引擎?
- 6.什么是Heapster?
- 7.什么是Minikube?
- 8.什么是Kubectl?
- 9.什么是Kubelet?
- 10.Kubernetes Architecture的不同组件有哪些?
- 11.你对Kube-proxy有什么了解?
- 12.您能否介绍一下Kubernetes中主节点的工作情况?
- 13.kube-apiserver和kube-scheduler的作用是什么?
- 14.你能简要介绍一下Kubernetes控制管理器吗?
- 15.什么是etcd?
- 16.你对Kubernetes的负载均衡器有什么了解?
- 17.什么是Ingress网络,它是如何工作的?
- 18.您对云控制器管理器有何了解?
- 19.什么是Container资源监控?
- 20.Replica Set 和 Replication Controller之间有什么区别?
-
- 1.什么是MongoDB?
- 2.MongoDB的优势有哪些
- 3.什么是集合(表)?
- 4.什么是文档(记录)
- 5.为什么用MOngoDB?
- 6.在哪些场景使用MongoDB
- 7.MongoDB中的命名空间是什么意思?
- 8.MongoDB中的分片什么意思
- 9.为什么要在MongoDB中使用分析器
- 10.MongoDB支持主键外键关系吗
- 11.MongoDB支持哪些数据类型
- 12.为什么要在MongoDB中用"Code"数据类型
- 13.为什么要在MongoDB中用"Regular Expression"数据类型
- 14.为什么在MongoDB中使用"Object ID"数据类型
- 15."ObjectID"有哪些部分组成
- 16.在MongoDb中什么是索引
- 17.在MongoDB中什么是副本集
- 18.MongoDB支持存储过程吗?如果支持的话,怎么用?
- 19.如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
- 20.为什么MongoDB的数据文件很大?