# JavaInterview **Repository Path**: zhoufushou/JavaInterview ## Basic Information - **Project Name**: JavaInterview - **Description**: https://github.com/JavaInterviewHub/JavaInterview.git - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 5 - **Created**: 2021-05-31 - **Last Updated**: 2023-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这个Repo主要用来分享Java面试题,目前已经涵盖Java基础、Java多线程、Java虚拟机、MySQL、Redis、消息中间件、Kafka、RabbitMQ、微服务、Spring、MyBatis、Netty、Zookeeper、计算机网络、数据结构与算法、设计模式等内容,后续还会不断更新。 如果对于有所帮助,可以给个star。有纰漏的地方,欢迎给我们提PR。 如果想获取本Repo的PDF版本,可以用微信扫描下方二维码,回复 “pdf” ,即可获取。如果二维码加载不出来,可以在微信搜索公众号 “程序员百科全书”,回复 “pdf” ,即可获取PDF版本。 * [Java基础](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#Java基础) * [1.说下面向对象四大特性](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#1说下面向对象四大特性) * [2.Java语言有哪些特点](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#2java语言有哪些特点) * [3.什么是Java程序的主类?应用程序和小程序的主类有何不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#3什么是java程序的主类应用程序和小程序的主类有何不同) * [4.访问修饰符public,private,protected,以及不写(默认)时的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#4访问修饰符publicprivateprotected以及不写默认时的区别) * [5.float f=3.4;是否正确?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#5float-f34是否正确) * [6.Java有没有goto?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#6java有没有goto) * [7.&和&&的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#7和的区别) * [8.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#8mathround115-等于多少mathround-115等于多少) * [9.用最有效率的方法计算2乘以8?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#9用最有效率的方法计算2乘以8) * [10.什么是Java注释](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#10什么是java注释) * [11.Java有哪些数据类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#11java有哪些数据类型) * [12.final 有什么用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#12final-有什么用) * [13.final finally finalize的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#13final-finally-finalize的区别) * [14.String str = "i" 和String str = new String("1")一样吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#14string-str--i-和string-str--new-string1一样吗) * [15.Java 中操作字符串都有哪些类?它们之间有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#15java-中操作字符串都有哪些类它们之间有什么区别) * [16.Java中为什么要用 clone?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#16java中为什么要用-clone) * [17.深克隆和浅克隆?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#17深克隆和浅克隆) * [18.new一个对象的过程和clone一个对象的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#18new一个对象的过程和clone一个对象的区别) * [19.Java中实现多态的机制是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#19java中实现多态的机制是什么) * [20.谈谈你对多态的理解?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#20谈谈你对多态的理解) * [21.构造器(constructor)是否可被重写(override)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#21构造器constructor是否可被重写override) * [22.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#22两个对象值相同xequalsy--true但却可有不同的hash-code这句话对不对) * [23.是否可以继承String类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#23是否可以继承string类) * [24.String类的常用方法有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#24string类的常用方法有哪些) * [25.char型变量中能否能不能存储一个中文汉字,为什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#25char型变量中能否能不能存储一个中文汉字为什么) * [26.this关键字的用法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#26this关键字的用法) * [27.super关键字的用法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#27super关键字的用法) * [28.this与super的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#28this与super的区别) * [29.static存在的主要意义](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#29static存在的主要意义) * [30.static的独特之处](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#30static的独特之处) * [31.static应用场景](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#31static应用场景) * [32.static注意事项](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#32static注意事项) * [33.break ,continue ,return 的区别及作用](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#33break-continue-return-的区别及作用) * [34.在Java中定义一个不做事且没有参数的构造方法的作用](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#34在java中定义一个不做事且没有参数的构造方法的作用) * [35.构造方法有哪些特性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#35构造方法有哪些特性) * [36.静态变量和实例变量区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#36静态变量和实例变量区别) * [37.静态方法和实例方法有何不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#37静态方法和实例方法有何不同) * [38.什么是方法的返回值?返回值的作用是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#38什么是方法的返回值返回值的作用是什么) * [39.什么是内部类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#39什么是内部类) * [40.内部类的分类有哪些](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#40内部类的分类有哪些) * [41.Java中异常分为哪些种类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#41java中异常分为哪些种类) * [42.hashCode 与 equals (重要)](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#42hashcode-与-equals-重要) * [43.hashCode()介绍](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#43hashcode介绍) * [44.为什么要有 hashCode](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#44为什么要有-hashcode) * [45.抽象类和接口(Java7)的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#45抽象类和接口java7的区别) * [46.Java 8的接口新增了哪些特性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#46java-8的接口新增了哪些特性) * [47.重写和重载的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#47重写和重载的区别) * [48.ArrayList和LinkedList有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#48arraylist和linkedlist有什么区别) * [49.HashMap是怎么实现的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#49hashmap是怎么实现的) * [50.HashMap在Java7和Java8中的实现有什么不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#50hashmap在java7和java8中的实现有什么不同) * [51.HashMap有时候会死循环,你知道是什么原因吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#51hashmap有时候会死循环你知道是什么原因吗) * [52.ConcurrentHashMap是怎么实现的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#52concurrenthashmap是怎么实现的) * [53.静态代理和动态代理的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#53静态代理和动态代理的区别) * [54.JDK动态代理和CGLIB动态代理的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#54jdk动态代理和cglib动态代理的区别) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#参考链接) * [多线程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md) * [1.说说synchronized的实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#1说说synchronized的实现原理) * [2.ReentrantLock与synchronized的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#2reentrantlock与synchronized的区别) * [3.ReentrantLock实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#3reentrantlock实现原理) * [4.Java原子类AtomicInteger实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#4java原子类atomicinteger实现原理) * [5.Java线程池实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#5java线程池实现原理) * [6.ThreadLocal实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#6threadlocal实现原理) * [7.InheritableThreadLocal原理知道吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#7inheritablethreadlocal原理知道吗) * [8.说一下synchronized锁升级过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#8说一下synchronized锁升级过程) * [9.了解过什么是“伪共享”吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#9了解过什么是伪共享吗) * [10.“伪共享”出现的原因是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#10伪共享出现的原因是什么) * [11.如何避免“伪共享”?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#11如何避免伪共享) * [12.Java里的线程有哪些状态?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#12java里的线程有哪些状态) * [13.什么是悲观锁?什么是乐观锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#13什么是悲观锁什么是乐观锁) * [14.怎么停止一个运行中的线程?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#14怎么停止一个运行中的线程) * [15.说一下你对volatile的理解?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#15说一下你对volatile的理解) * [16.并发编程三要素?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#16并发编程三要素) * [17.创建线程有哪些方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#17创建线程有哪些方式) * [18.线程池的优点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#18线程池的优点) * [19.CyclicBarrier和CountDownLatch的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#19cyclicbarrier和countdownlatch的区别) * [20.什么是CAS?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#20什么是cas) * [21.CAS的问题](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#21cas的问题) * [22.什么是AQS?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#22什么是aqs) * [23.AQS支持几种同步方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#23aqs支持几种同步方式) * [24.什么是自旋锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#24什么是自旋锁) * [25.什么是多线程的上下文切换?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#25什么是多线程的上下文切换) * [26.什么是线程和进程?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#26什么是线程和进程) * [27.程序计数器为什么是私有的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#27程序计数器为什么是私有的) * [28.虚拟机栈和本地方法栈为什么是私有的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#28虚拟机栈和本地方法栈为什么是私有的) * [29.并发与并行的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#29并发与并行的区别) * [30.什么是线程死锁?如何避免死锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#30什么是线程死锁如何避免死锁) * [31.sleep() 方法和 wait() 方法的区别和共同点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#31sleep-方法和-wait-方法的区别和共同点) * [32.为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#32为什么我们调用-start-方法时会执行-run-方法为什么我们不能直接调用-run-方法) * [33.什么是线程安全问题?如何解决?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#33什么是线程安全问题如何解决) * [34.什么是活锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#34什么是活锁) * [35.什么是线程的饥饿问题?如何解决?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#35什么是线程的饥饿问题如何解决) * [36.什么是线程的阻塞问题?如何解决?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#36什么是线程的阻塞问题如何解决) * [37.synchronized 关键字和 volatile 关键字的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#37synchronized-关键字和-volatile-关键字的区别) * [38.说一说几种常见的线程池及适用场景?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#38说一说几种常见的线程池及适用场景) * [39.线程池都有哪几种工作队列?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#39线程池都有哪几种工作队列) * [40.什么是线程安全?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#40什么是线程安全) * [41.Java中如何获取到线程dump文件](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#41java中如何获取到线程dump文件) * [42.Java中用到的线程调度算法是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#42java中用到的线程调度算法是什么) * [43.Thread.sleep(0)的作用是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#43threadsleep0的作用是什么) * [44.单例模式的线程安全性](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#44单例模式的线程安全性) * [45.Semaphore有什么作用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#45semaphore有什么作用) * [46.Hashtable的size()方法中明明只有一条语句"return count",为什么还要做同步?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#46hashtable的size方法中明明只有一条语句return-count为什么还要做同步) * [47.同步方法和同步块,哪个是更好的选择?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#47同步方法和同步块哪个是更好的选择) * [48.高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#48高并发任务执行时间短的业务怎样使用线程池并发不高任务执行时间长的业务怎样使用线程池并发高业务执行时间长的业务怎样使用线程池) * [49.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#49在java中lock接口比synchronized块的优势是什么你需要实现一个高效的缓存它允许多个用户读但只允许一个用户写以此来保持它的完整性你会怎样去实现它) * [50.你将如何使用thread dump?你将如何分析Thread dump?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#50你将如何使用thread-dump你将如何分析thread-dump) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#参考资料) * [Java虚拟机](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md) * [1.说一下JVM的内存结构?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#1说一下jvm的内存结构) * [2.栈帧里面包含哪些东西?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#2栈帧里面包含哪些东西) * [3.程序计数器有什么作用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#3程序计数器有什么作用) * [4.字符串常量存放在哪个区域?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#4字符串常量存放在哪个区域) * [5.你熟悉哪些垃圾收集算法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#5你熟悉哪些垃圾收集算法) * [6.Java里有哪些引用类型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#6java里有哪些引用类型) * [7.JVM怎么判断一个对象是不是要回收?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#7jvm怎么判断一个对象是不是要回收) * [8.GC Roots 有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#8gc-roots-有哪些) * [9.你知道哪些GC类型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#9你知道哪些gc类型) * [10.对象都是优先分配在年轻代上的吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#10对象都是优先分配在年轻代上的吗) * [11.你了解过哪些垃圾收集器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#11你了解过哪些垃圾收集器) * [12.说说CMS垃圾收集器的工作原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#12说说cms垃圾收集器的工作原理) * [13.说说G1垃圾收集器的工作原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#13说说g1垃圾收集器的工作原理) * [14.说说ZGC垃圾收集器的工作原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#14说说zgc垃圾收集器的工作原理) * [15.ZGC收集器中的染色指针有什么用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#15zgc收集器中的染色指针有什么用) * [16.说说类加载的过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#16说说类加载的过程) * [17.说下有哪些类加载器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#17说下有哪些类加载器) * [18.什么是双亲委派机制?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#18什么是双亲委派机制) * [19.双亲委派机制可以被违背吗?请举例说明。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#19双亲委派机制可以被违背吗请举例说明) * [20.Tomcat是怎么打破双亲委派机制的呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#20tomcat是怎么打破双亲委派机制的呢) * [21.Java对象的布局了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#21java对象的布局了解过吗) * [22.什么情况下会发生栈内存溢出?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#22什么情况下会发生栈内存溢出) * [23.JVM新生代中为什么要分为Eden和Survivor?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#23jvm新生代中为什么要分为eden和survivor) * [24.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#24jvm中一次完整的gc流程是怎样的对象如何晋升到老年代) * [25.什么是指令重排序?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#25什么是指令重排序) * [26.什么是内存屏障?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#26什么是内存屏障) * [27.什么是happen-before原则?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#27什么是happen-before原则) * [28.说说你知道的几种主要的JVM参数](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#28说说你知道的几种主要的jvm参数) * [29.怎么打出线程栈信息?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#29怎么打出线程栈信息) * [30.为什么需要双亲委派模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#30为什么需要双亲委派模式) * [31.怎么打破双亲委派模型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#31怎么打破双亲委派模型) * [32.说一下堆和栈的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#32说一下堆和栈的区别) * [33.Java 8 为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#33java-8-为什么要将永久代permgen替换为元空间metaspace呢) * [34.说一下Java对象的创建过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#34说一下java对象的创建过程) * [35.对象的访问定位有哪几种方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#35对象的访问定位有哪几种方式) * [36.说一下堆内存中对象的分配的基本策略](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#36说一下堆内存中对象的分配的基本策略) * [37.Minor Gc和Full GC 有什么不同呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#37minor-gc和full-gc-有什么不同呢) * [38.Java会存在内存泄漏吗?请简单描述。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#38java会存在内存泄漏吗请简单描述) * [39.如何判断一个类是无用的类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#39如何判断一个类是无用的类) * [40.介绍一下类文件结构吧!](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#40介绍一下类文件结构吧) * [41.说一下 JVM 调优的工具?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#41说一下-jvm-调优的工具) * [42.JVM调优命令有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#42jvm调优命令有哪些) * [43.JRE、JDK、JVM 及 JIT 之间有什么不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#43jrejdkjvm-及-jit-之间有什么不同) * [44.程序计数器为什么是私有的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#44程序计数器为什么是私有的) * [45.如何判断一个常量是废弃常量 ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#45如何判断一个常量是废弃常量-) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md#参考资料) * [Java IO](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md) * [1.Java 中有几种类型的流?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#1java-中有几种类型的流) * [2.什么是 java序列化?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#2什么是-java序列化) * [3.如何实现 java 序列化?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#3如何实现-java-序列化) * [4.字节流和字符流的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#4字节流和字符流的区别) * [5.PrintStream、BufferedWriter、PrintWriter的比较?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#5printstreambufferedwriterprintwriter的比较) * [6.什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#6什么是节点流什么是处理流它们各有什么用处处理流的创建有什么特征) * [7.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#7流一般需要不需要关闭如果关闭的话在用什么方法一般要在那个代码块里面关闭比较好处理流是怎么关闭的如果有多个流互相调用传入是怎么关闭的) * [8.什么是BIO](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#8什么是bio) * [9.什么是NIO](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#9什么是nio) * [10.什么是AIO](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#10什么是aio) * [11.同步与异步](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#11同步与异步) * [12.阻塞与非阻塞](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#12阻塞与非阻塞) * [13.同步、异步、阻塞、非堵塞](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#13同步异步阻塞非堵塞) * [14.通道是个什么意思?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#14通道是个什么意思) * [15.缓冲区是什么意思?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#15缓冲区是什么意思) * [16.IO多路复用的底层原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#16io多路复用的底层原理) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/JavaIO.md#参考链接) * [MySQL](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md) * [1. 什么是索引?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#1-什么是索引) * [2.索引是个什么样的数据结构呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#2索引是个什么样的数据结构呢) * [3.Hash索引和B+树索引有什么区别或者说优劣呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#3hash索引和b树索引有什么区别或者说优劣呢) * [4.在建立索引的时候,都有哪些需要考虑的因素呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#4在建立索引的时候都有哪些需要考虑的因素呢) * [5.了解过哪些存储引擎?各有什么优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#5了解过哪些存储引擎各有什么优缺点) * [6.说一下什么是事务的ACID属性吧](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#6说一下什么是事务的acid属性吧) * [7.事务的隔离级别了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#7事务的隔离级别了解过吗) * [8.说说InnoDB的索引原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#8说说innodb的索引原理) * [说说InnoDB的MVCC机制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#说说innodb的mvcc机制) * [9.有了解过“回表”的概念吗?什么情况下会出现“回表”?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#9有了解过回表的概念吗什么情况下会出现回表) * [10.MySQL索引的类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#10mysql索引的类型) * [11.有做过MySQL的索引优化吗](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#11有做过mysql的索引优化吗) * [12.什么是聚簇索引?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#12什么是聚簇索引) * [13.InnoDB有聚簇索引吗?MyIsam呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#13innodb有聚簇索引吗myisam呢) * [14.MyIsam的数据是怎么存储的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#14myisam的数据是怎么存储的) * [15.InnoDB的数据是怎么存储的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#15innodb的数据是怎么存储的) * [16.InnoDB主键索引跟非主键索引在数据存储上的差异](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#16innodb主键索引跟非主键索引在数据存储上的差异) * [17.InnoDB删除某条记录后,内部会怎么处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#17innodb删除某条记录后内部会怎么处理) * [18.InnoDB如果没有设置主键的话,它内部会怎么处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#18innodb如果没有设置主键的话它内部会怎么处理) * [19.为什么InnoDB一定会生成主键?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#19为什么innodb一定会生成主键) * [20.MySQL分库分表了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#20mysql分库分表了解过吗) * [21.MySQL的redo日志和undo日志分别有什么用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#21mysql的redo日志和undo日志分别有什么用) * [22.MySQL的redo日志的刷盘时机](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#22mysql的redo日志的刷盘时机) * [23.MySQL有哪些锁?以及各种锁的作用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#23mysql有哪些锁以及各种锁的作用) * [24.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#24mysql中varchar与char的区别以及varchar50中的50代表的涵义) * [25.MySQL有哪些日志,分别是什么用处?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#25mysql有哪些日志分别是什么用处) * [26.在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#26在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢) * [27. 为什么要尽量设定一个主键?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#27-为什么要尽量设定一个主键) * [28.主键使用自增ID还是UUID?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#28主键使用自增id还是uuid) * [29.字段为什么要求定义为not null?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#29字段为什么要求定义为not-null) * [30.如果要存储用户的密码散列,应该使用什么字段进行存储?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#30如果要存储用户的密码散列应该使用什么字段进行存储) * [31.varchar(10)和int(10)代表什么含义?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#31varchar10和int10代表什么含义) * [32.MySQL的binlog有有几种录入格式?分别有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#32mysql的binlog有有几种录入格式分别有什么区别) * [33.超大分页怎么处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#33超大分页怎么处理) * [34.关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#34关心过业务系统里面的sql耗时吗统计过慢查询吗对慢查询都怎么优化过) * [35.什么是存储过程?有哪些优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#35什么是存储过程有哪些优缺点) * [36.说一说三个范式](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#36说一说三个范式) * [37.什么情况下应不建或少建索引](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#37什么情况下应不建或少建索引) * [38.什么是表分区?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#38什么是表分区) * [39.表分区与分表的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#39表分区与分表的区别) * [40.表分区有什么好处?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#40表分区有什么好处) * [41.MVVC了解过吗](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#41mvvc了解过吗) * [42.在MVCC并发控制中,读操作可以分成哪几类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#42在mvcc并发控制中读操作可以分成哪几类) * [43.行级锁定的优点](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#43行级锁定的优点) * [44.行级锁定的缺点](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#44行级锁定的缺点) * [45.MySQL优化](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#45mysql优化) * [46.key和index的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#46key和index的区别) * [47.delete、truncate、drop区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#47deletetruncatedrop区别) * [48.MySQL主从复制原理流程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#48mysql主从复制原理流程) * [49.自增主键最大ID记录,MyISAM和InnoDB分别是如何存储的](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#49自增主键最大id记录myisam和innodb分别是如何存储的) * [50.Mysql如何优化DISTINCT?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#50mysql如何优化distinct) * [51.解释MySQL外连接、内连接与自连接的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#51解释mysql外连接内连接与自连接的区别) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MySQL.md#参考链接) * [Redis](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md) * [1.什么是Redis?简述它的优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#1什么是redis简述它的优缺点) * [2.Redis相比memcached有哪些优势?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#2redis相比memcached有哪些优势) * [3.Redis有哪些数据结构?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#3redis有哪些数据结构) * [4.Redis主要消耗什么物理资源?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#4redis主要消耗什么物理资源) * [5.Redis的全称是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#5redis的全称是什么) * [6.一个字符串类型的值能存储最大容量是多少?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#6一个字符串类型的值能存储最大容量是多少) * [7.Redis为什么那么快?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#7redis为什么那么快) * [8.Redis如何实现分布式锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#8redis如何实现分布式锁) * [9.Redis是单线程还是多线程?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#9redis是单线程还是多线程) * [10.Redis 官方为什么不提供 Windows 版本?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#10redis-官方为什么不提供-windows-版本) * [11.为什么 Redis 需要把所有数据放到内存中?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#11为什么-redis-需要把所有数据放到内存中) * [12.Redis如何设置密码及验证密码?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#12redis如何设置密码及验证密码) * [13.Redis集群如何选择数据库?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#13redis集群如何选择数据库) * [14.缓存失效?缓存穿透?缓存雪崩?缓存并发?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#14缓存失效缓存穿透缓存雪崩缓存并发) * [15.Redis中的热key怎么处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#15redis中的热key怎么处理) * [16.Redis中的大key怎么处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#16redis中的大key怎么处理) * [17.使用Redis统计网站的UV,应该怎么做?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#17使用redis统计网站的uv应该怎么做) * [18.Redis事务机制了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#18redis事务机制了解过吗) * [19.Redis key的淘汰策略有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#19redis-key的淘汰策略有哪些) * [20.Redis在什么情况下会触发key的回收?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#20redis在什么情况下会触发key的回收) * [21.Redis的持久化了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#21redis的持久化了解过吗) * [22.Redis在集群种查找key的时候,是怎么定位到具体节点的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#22redis在集群种查找key的时候是怎么定位到具体节点的) * [23.Redis集群各个节点之间是怎么保持数据一致性的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#23redis集群各个节点之间是怎么保持数据一致性的) * [24.用Redis做延时队列,具体应该怎么实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#24用redis做延时队列具体应该怎么实现) * [25.Redis String的内部编码有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#25redis-string的内部编码有哪些) * [26.Redis 集群方案应该怎么做?都有哪些方案?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#26redis-集群方案应该怎么做都有哪些方案) * [27.Redis 集群方案什么情况下会导致整个集群不可用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#27redis-集群方案什么情况下会导致整个集群不可用) * [28.MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#28mysql-里有-2000w-数据redis-中只存-20w-的数据如何保证-redis-中的数据都是热点数据) * [29.Redis有哪些适合的场景?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#29redis有哪些适合的场景) * [30.Redis和Redisson有什么关系?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#30redis和redisson有什么关系) * [31.Redis中的管道有什么用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#31redis中的管道有什么用) * [32.Redis如何做内存优化?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#32redis如何做内存优化) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Redis.md#参考链接) * [Spring](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md) * [1.什么是spring?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#1什么是spring) * [2.使用Spring框架的好处是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#2使用spring框架的好处是什么) * [3.Spring由哪些模块组成?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#3spring由哪些模块组成) * [4.Spring是怎么解决循环依赖的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#4spring是怎么解决循环依赖的) * [5.Spring Boot手动装配有哪几种方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#5spring-boot手动装配有哪几种方式) * [6.Spring Boot自动配置原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#6spring-boot自动配置原理) * [7.谈谈自己对于Spring IOC的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#7谈谈自己对于spring-ioc的理解) * [8.谈谈自己对于Spring AOP的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#8谈谈自己对于spring-aop的理解) * [9.Spring AOP和AspectJ AOP有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#9spring-aop和aspectj-aop有什么区别) * [10.Spring中的bean的作用域有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#10spring中的bean的作用域有哪些) * [11.Spring中的单例bean的线程安全问题了解吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#11spring中的单例bean的线程安全问题了解吗) * [12.Spring中的bean生命周期了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#12spring中的bean生命周期了解过吗) * [13.Spring MVC的工作原理了解嘛?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#13spring-mvc的工作原理了解嘛) * [14.Spring框架中用到了哪些设计模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#14spring框架中用到了哪些设计模式) * [15.@Component和@Bean的区别是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#15component和bean的区别是什么) * [16.将一个类声明为Spring的bean的注解有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#16将一个类声明为spring的bean的注解有哪些) * [17.Spring事务管理的方式有几种?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#17spring事务管理的方式有几种) * [18.Spring事务中的隔离级别有哪几种?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#18spring事务中的隔离级别有哪几种) * [19.Spring事务中有哪几种事务传播行为?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#19spring事务中有哪几种事务传播行为) * [20.Spring 事务底层原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#20spring-事务底层原理) * [21.BeanFactory和ApplicationContext有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#21beanfactory和applicationcontext有什么区别) * [22.Resource 是如何被查找、加载的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#22resource-是如何被查找加载的) * [23.解释自动装配的各种模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#23解释自动装配的各种模式) * [24.有哪些不同类型的IOC(依赖注入)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#24有哪些不同类型的ioc依赖注入) * [25.Spring AOP 实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#25spring-aop-实现原理) * [26.ApplicationContext通常的实现是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#26applicationcontext通常的实现是什么) * [27. Bean 工厂和 Application contexts 有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#27-bean-工厂和-application-contexts-有什么区别) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Spring.md#参考资料) * [Spring Boot](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md) * [1.什么是springboot](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#1什么是springboot) * [2.Spring Boot 有哪些优点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#2spring-boot-有哪些优点) * [3. 创建一个 Spring Boot Project 的最简单的方法是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#3-创建一个-spring-boot-project-的最简单的方法是什么) * [4.Spring 和 SpringBoot 有什么不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#4spring-和-springboot-有什么不同) * [5.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#5如何重新加载-spring-boot-上的更改而无需重新启动服务器) * [6.Spring Boot 中的监视器是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#6spring-boot-中的监视器是什么) * [7.如何在 Spring Boot 中禁用 Actuator 端点安全性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#7如何在-spring-boot-中禁用-actuator-端点安全性) * [8.怎么使用 Maven 来构建一个 SpringBoot 程序?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#8怎么使用-maven-来构建一个-springboot-程序) * [9.Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#9spring-initializr-是创建-spring-boot-projects-的唯一方法吗) * [10.为什么我们需要 spring-boot-maven-plugin?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#10为什么我们需要-spring-boot-maven-plugin) * [11.什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#11什么是嵌入式服务器我们为什么要使用嵌入式服务器呢) * [12.如何在 Spring Boot 中添加通用的 JS 代码?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#12如何在-spring-boot-中添加通用的-js-代码) * [13.如何使用 Spring Boot 部署到不同的服务器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#13如何使用-spring-boot-部署到不同的服务器) * [14.如何使用配置文件通过 Spring Boot 配置特定环境的配置?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#14如何使用配置文件通过-spring-boot-配置特定环境的配置) * [15.什么是Swagger?你用Spring Boot实现了吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#15什么是swagger你用spring-boot实现了吗) * [16.如何实现Spring Boot应用程序的安全性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#16如何实现spring-boot应用程序的安全性) * [17.比较一下Spring Security和Shiro各自的优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#17比较一下spring-security和shiro各自的优缺点) * [18.Spring Boot中如何解决跨域问题?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#18spring-boot中如何解决跨域问题) * [19.Spring Boot的核心注解是哪些?他由哪几个注解组成的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#19spring-boot的核心注解是哪些他由哪几个注解组成的) * [20.保护SpringBoot应用有哪些方法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#20保护springboot应用有哪些方法) * [21.SpringBoot 2.X有哪些新特性?与1.X有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#21springboot-2x有哪些新特性与1x有什么区别) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringBoot.md#参考链接) * [Spring Cloud](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md) * [1.什么是 Spring Cloud?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#1什么是-spring-cloud) * [2.使用Spring Cloud有什么优势?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#2使用spring-cloud有什么优势) * [3.服务注册和发现是什么意思?Spring Cloud如何实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#3服务注册和发现是什么意思spring-cloud如何实现) * [4.Spring Cloud由哪些组件组成?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#4spring-cloud由哪些组件组成) * [5.什么是Hystrix?它如何实现容错?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#5什么是hystrix它如何实现容错) * [6.什么是Hystrix断路器?我们需要它吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#6什么是hystrix断路器我们需要它吗) * [7.什么是Netflix Feign?它的优点是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#7什么是netflix-feign它的优点是什么) * [8.Eureka的工作原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#8eureka的工作原理) * [9.说说Eureka的自我保护机制?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#9说说eureka的自我保护机制) * [10.什么是zuul?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#10什么是zuul) * [11.zuul的工作流程?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#11zuul的工作流程) * [12.什么是服务熔断?什么是服务降级?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#12什么是服务熔断什么是服务降级) * [13.什么是服务雪崩效应?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#13什么是服务雪崩效应) * [14.ZuulFilter有哪些常用方法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#14zuulfilter有哪些常用方法) * [15.如何实现动态Zuul网关路由转发?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#15如何实现动态zuul网关路由转发) * [16.什么是 Spring Cloud Bus?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#16什么是-spring-cloud-bus) * [17.Spring Cloud Bus 原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#17spring-cloud-bus-原理) * [18.SpringCloud Config可以实现实时刷新吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#18springcloud-config可以实现实时刷新吗) * [19.Eureka和zookeeper都可以提供服务注册与发现的功能,两者的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#19eureka和zookeeper都可以提供服务注册与发现的功能两者的区别) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/SpringCloud.md#参考链接) * [Mybatis](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md) * [1.什么是Mybatis?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#1什么是mybatis) * [2.Mybatis的优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#2mybatis的优缺点) * [3.Mybatis使用场合?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#3mybatis使用场合) * [4.https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#{}和${}的区别是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#4和的区别是什么) * [5.当实体类的属性名和表种字段名不一致怎么办?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#5当实体类的属性名和表种字段名不一致怎么办) * [6.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#6mybatis是如何将sql执行结果封装为目标对象并返回的都有哪些映射形式) * [7.如何获取自动生成的(主)键值?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#7如何获取自动生成的主键值) * [8.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#8mybatis的xml映射文件中不同的xml映射文件id是否可以重复) * [9. Mybatis动态SQL?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#9-mybatis动态sql) * [10.说一下resultMap和resultType?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#10说一下resultmap和resulttype) * [11. Mybatis全局配置文件中有哪些标签?分别代表什么意思?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#11-mybatis全局配置文件中有哪些标签分别代表什么意思) * [12.Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#12mybatis能执行一对一一对多的关联查询吗都有哪些实现方式以及它们之间的区别) * [13.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#13mybatis是否支持延迟加载如果支持它的实现原理是什么) * [14.Mybatis都有哪些Executor执行器?它们之间的区别是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#14mybatis都有哪些executor执行器它们之间的区别是什么) * [15.Mybatis的一级、二级缓存](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#15mybatis的一级二级缓存) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mybatis.md#参考链接) * [Netty](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md) * [1.你了解过哪些IO模型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#1你了解过哪些io模型) * [2.什么是Reactor模型?Reactor的3种版本都知道吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#2什么是reactor模型reactor的3种版本都知道吗) * [3.了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#3了解过粘包拆包吗为什么会出现粘包拆包怎么处理粘包拆包) * [4.UDP协议会有粘包拆包的问题吗?为什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#4udp协议会有粘包拆包的问题吗为什么) * [5.Netty 是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#5netty-是什么) * [6.为什么要用 Netty?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#6为什么要用-netty) * [7.Netty 的应用场景了解么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#7netty-的应用场景了解么) * [8.Netty 的零拷贝了解么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#8netty-的零拷贝了解么) * [9.Netty 的心跳机制了解么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#9netty-的心跳机制了解么) * [10.Netty 中有哪些重要组件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#10netty-中有哪些重要组件) * [11.Netty 发送消息有几种方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#11netty-发送消息有几种方式) * [12.Netty 支持哪些心跳类型设置?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#12netty-支持哪些心跳类型设置) * [13.说说Netty的执行流程?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#13说说netty的执行流程) * [14.Netty高性能体现在哪些方面?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#14netty高性能体现在哪些方面) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Netty.md#参考资料) * [微服务](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md) * [1.微服务有哪些优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#1微服务有哪些优缺点) * [2.作为注册中心,Zookeeper和Eureka有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#2作为注册中心zookeeper和eureka有什么区别) * [3.Service Mesh了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#3service-mesh了解过吗) * [4.微服务有哪些特点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#4微服务有哪些特点) * [5.单片,SOA 和微服务架构有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#5单片soa-和微服务架构有什么区别) * [6.Spring Cloud 解决了哪些问题?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#6spring-cloud-解决了哪些问题) * [7.服务注册和发现是什么意思?Spring Cloud 如何实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#7服务注册和发现是什么意思spring-cloud-如何实现) * [8.Spring Cloud 和dubbo的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#8spring-cloud-和dubbo的区别) * [9.什么是微服务?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#9什么是微服务) * [10.微服务之间是如何通讯的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#10微服务之间是如何通讯的) * [11.请谈谈对SpringBoot 和SpringCloud的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#11请谈谈对springboot-和springcloud的理解) * [12.什么是服务熔断,什么是服务降级](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#12什么是服务熔断什么是服务降级) * [13.你所知道的微服务技术栈有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#13你所知道的微服务技术栈有哪些) * [14.什么是 Eureka服务注册与发现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#14什么是-eureka服务注册与发现) * [15.Eureka的基本架构是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#15eureka的基本架构是什么) * [16.作为服务注册中心,Eureka比Zookeeper好在哪里?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#16作为服务注册中心eureka比zookeeper好在哪里) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%BE%AE%E6%9C%8D%E5%8A%A1.md#参考资料) * [Zookeeper](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md) * [1.Zookeeper有哪些节点类型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#1zookeeper有哪些节点类型) * [2.了解过Zookeeper的ZAB协议吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#2了解过zookeeper的zab协议吗) * [3.Zookeeper怎么实现分布式锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#3zookeeper怎么实现分布式锁) * [4.Zookeeper是怎么保证数据一致性的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#4zookeeper是怎么保证数据一致性的) * [5.Zookeeper Leader选举过程是怎样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#5zookeeper-leader选举过程是怎样的) * [6.Zookeeper怎么实现服务注册?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#6zookeeper怎么实现服务注册) * [7.ZooKeeper是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#7zookeeper是什么) * [8.ZooKeeper提供了什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#8zookeeper提供了什么) * [9.Zookeeper文件系统](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#9zookeeper文件系统) * [10.Zookeeper Watcher 机制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#10zookeeper-watcher-机制) * [11.客户端注册Watcher实现](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#11客户端注册watcher实现) * [12.服务端处理Watcher实现](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#12服务端处理watcher实现) * [13.ACL权限控制机制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#13acl权限控制机制) * [14.服务器角色](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#14服务器角色) * [15.Zookeeper 下 Server工作状态](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#15zookeeper-下-server工作状态) * [16.数据同步](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#16数据同步) * [17.zookeeper是如何保证事务的顺序一致性的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#17zookeeper是如何保证事务的顺序一致性的) * [18.分布式集群中为什么会有Master?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#18分布式集群中为什么会有master) * [19.zk节点宕机如何处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#19zk节点宕机如何处理) * [20.Zookeeper有哪几种部署模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#20zookeeper有哪几种部署模式) * [21.集群最少要几台机器,集群规则是怎样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#21集群最少要几台机器集群规则是怎样的) * [22.集群支持动态添加机器吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#22集群支持动态添加机器吗) * [23.Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#23zookeeper对节点的watch监听通知是永久的吗为什么不是永久的) * [24.ZAB和Paxos算法的联系与区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#24zab和paxos算法的联系与区别) * [25.Zookeeper的典型应用场景](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#25zookeeper的典型应用场景) * [26.Zookeeper 和 Dubbo 的关系?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#26zookeeper-和-dubbo-的关系) * [27.zookeeper负载均衡和nginx负载均衡区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#27zookeeper负载均衡和nginx负载均衡区别) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Zookeeper.md#参考资料) * [消息队列](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md) * [1.消息队列有哪些应用场景?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#1消息队列有哪些应用场景) * [2.消息队列的弊端有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#2消息队列的弊端有哪些) * [3.使用消息队列,怎么确保消息不丢失?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#3使用消息队列怎么确保消息不丢失) * [4.使用消息队列,如果处理重复消息?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#4使用消息队列如果处理重复消息) * [5.Kafka的消息是有序的吗?如果保证Kafka消息的顺序性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#5kafka的消息是有序的吗如果保证kafka消息的顺序性) * [6.消息如何保证幂等性](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#6消息如何保证幂等性) * [7.消息队列积压怎么办](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#7消息队列积压怎么办) * [8.各种MQ的比较](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#8各种mq的比较) * [9.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时怎么解决?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#9如何解决消息队列的延时以及过期失效问题消息队列满了以后该怎么处理有几百万消息持续积压几小时怎么解决) * [10.为什么使用消息队列?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#10为什么使用消息队列) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md#参考链接) * [Kafka](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md) * [1.为什么要使用 kafka?为什么要使用消息队列?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#1为什么要使用-kafka为什么要使用消息队列) * [2.Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#2kafka中的israr又代表什么isr的伸缩又指什么) * [3.kafka中的broker 是干什么的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#3kafka中的broker-是干什么的) * [4.kafka中的 zookeeper 起到什么作用?可以不用zookeeper么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#4kafka中的-zookeeper-起到什么作用可以不用zookeeper么) * [5.kafka follower如何与leader同步数据?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#5kafka-follower如何与leader同步数据) * [6.什么情况下一个 broker 会从 ISR 中被踢出去?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#6什么情况下一个-broker-会从-isr-中被踢出去) * [7.kafka 为什么那么快?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#7kafka-为什么那么快) * [8.kafka producer如何优化打入速度?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#8kafka-producer如何优化打入速度) * [9.kafka producer 打数据,ack 为 0, 1, -1 的时候代表啥, 设置 -1 的时候,什么情况下,leader 会认为一条消息 commit 了](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#9kafka-producer-打数据ack--为-0-1--1-的时候代表啥-设置--1-的时候什么情况下leader-会认为一条消息-commit-了) * [10.kafka unclean 配置代表啥?会对 spark streaming 消费有什么影响?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#10kafka--unclean-配置代表啥会对-spark-streaming-消费有什么影响) * [11.如果leader crash时,ISR为空怎么办?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#11如果leader-crash时isr为空怎么办) * [12.kafka的message格式是什么样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#12kafka的message格式是什么样的) * [13.kafka中consumer group 是什么概念?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#13kafka中consumer-group-是什么概念) * [14.Kafka中的消息是否会丢失和重复消费?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#14kafka中的消息是否会丢失和重复消费) * [15.为什么Kafka不支持读写分离?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#15为什么kafka不支持读写分离) * [16.Kafka中是怎么体现消息顺序性的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#16kafka中是怎么体现消息顺序性的) * [17.kafka如何实现延迟队列?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#17kafka如何实现延迟队列) * [18.什么是消费者组?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#18什么是消费者组) * [19.解释下 Kafka 中位移(offset)的作用。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#19解释下-kafka-中位移offset的作用) * [20.阐述下 Kafka 中的领导者副本(Leader Replica)和追随者副本 (Follower Replica)的区别。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#20阐述下-kafka-中的领导者副本leader-replica和追随者副本-follower-replica的区别) * [21.如何设置 Kafka 能接收的最大消息的大小?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#21如何设置-kafka-能接收的最大消息的大小) * [22.监控 Kafka 的框架都有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#22监控-kafka-的框架都有哪些) * [23.Broker 的 Heap Size 如何设置?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#23broker-的-heap-size-如何设置) * [24.如何估算 Kafka 集群的机器数量?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#24如何估算-kafka-集群的机器数量) * [25.Leader 总是 -1,怎么破?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#25leader-总是--1怎么破) * [26.LEO、LSO、AR、ISR、HW 都表示什么含义?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#26leolsoarisrhw-都表示什么含义) * [27.Kafka 能手动删除消息吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#27kafka-能手动删除消息吗) * [28.consumer_offsets 是做什么用的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#28consumer_offsets-是做什么用的) * [29.分区 Leader 选举策略有几种?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#29分区-leader-选举策略有几种) * [30.Kafka 的哪些场景中使用了零拷贝(Zero Copy)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#30kafka-的哪些场景中使用了零拷贝zero-copy) * [31.如何调优 Kafka?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#31如何调优-kafka) * [32.Controller 发生网络分区(Network Partitioning)时,Kafka 会怎么样?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#32controller-发生网络分区network-partitioning时kafka-会怎么样) * [33.Java Consumer 为什么采用单线程来获取消息?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#33java-consumer-为什么采用单线程来获取消息) * [34.简述 Follower 副本消息同步的完整流程。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#34简述-follower-副本消息同步的完整流程) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kafka.md#参考资料) * [RabbitMQ](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md) * [1.什么是RabbitMQ?为什么使用RabbitMQ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#1什么是rabbitmq为什么使用rabbitmq) * [2.RabbitMQ有什么优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#2rabbitmq有什么优缺点) * [3.什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪些?元数据是如何保存的?元数据在cluster中是如何分布的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#3什么是元数据元数据分为哪些类型包括哪些内容与cluster相关的元数据有哪些元数据是如何保存的元数据在cluster中是如何分布的) * [4.在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行binding会有什么不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#4在单node系统和多node构成的cluster系统中声明queueexchange以及进行binding会有什么不同) * [5.客户端连接到cluster中的任意node上是否都能正常工作?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#5客户端连接到cluster中的任意node上是否都能正常工作) * [6.若cluster中拥有某个queue的owner node失效了,且该queue 被声明具有durable属性,是否能够成功从其他node上重新声明该 queue ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#6若cluster中拥有某个queue的owner-node失效了且该queue-被声明具有durable属性是否能够成功从其他node上重新声明该-queue-) * [7.RabbitMQ 的消息是怎么发送的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#7rabbitmq-的消息是怎么发送的) * [8.RabbitMQ 怎么避免消息丢失?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#8rabbitmq-怎么避免消息丢失) * [9.RabbitMQ的使用场景有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#9rabbitmq的使用场景有哪些) * [10.RabbitMQ有哪些重要的角色?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#10rabbitmq有哪些重要的角色) * [11.如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#11如何确保消息正确地发送至rabbitmq如何确保消息接收方消费了消息) * [12.要保证消息持久化成功的条件有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#12要保证消息持久化成功的条件有哪些) * [13.RabbitMQ 有几种广播类型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#13rabbitmq-有几种广播类型) * [14.vhost 是什么?起什么作用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#14vhost-是什么起什么作用) * [15.消息基于什么传输?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#15消息基于什么传输) * [16.消息如何分发?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#16消息如何分发) * [17.消息怎么路由?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#17消息怎么路由) * [18.如何确保消息接收方消费了消息?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#18如何确保消息接收方消费了消息) * [19.如何避免消息重复投递或重复消费?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#19如何避免消息重复投递或重复消费) * [20.死信队列和延迟队列的使用](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#20死信队列和延迟队列的使用) * [参考链接:](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RabbitMQ.md#参考链接) * [计算机网络](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md) * [1.请简述TCP/UDP的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#1请简述tcpudp的区别) * [2.TCP对应的协议和UDP对应的协议](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#2tcp对应的协议和udp对应的协议) * [3.有哪些私有(保留)地址?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#3有哪些私有保留地址) * [4.你能说一说OSI七层模型?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#4你能说一说osi七层模型) * [5.说一说TCP/IP四层模型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#5说一说tcpip四层模型) * [6. 简述IP地址的分类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#6-简述ip地址的分类) * [7.简述ARP地址解析协议工作原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#7简述arp地址解析协议工作原理) * [8.简述ICMP、TFTP、HTTP、NAT、DHCP协议](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#8简述icmptftphttpnatdhcp协议) * [9.说一说TCP的三次握手](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#9说一说tcp的三次握手) * [10.为什么TCP要三次握手](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#10为什么tcp要三次握手) * [11.TCP建立连接时为什么要传回 SYN](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#11tcp建立连接时为什么要传回-syn) * [12.TCP为什么要四次挥手](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#12tcp为什么要四次挥手) * [13.滑动窗口和流量控制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#13滑动窗口和流量控制) * [14.拥塞控制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#14拥塞控制) * [15.在浏览器中输入url地址到显示主页的过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#15在浏览器中输入url地址到显示主页的过程) * [16.HTTP协议包括哪些请求?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#16http协议包括哪些请求) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#参考链接) * [数据结构与算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md) * [1.什么是算法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#1什么是算法) * [2.TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#2treemap和treeset在排序时如何比较元素collections工具类中的sort方法如何比较元素) * [3.如何知道二叉树的深度?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#3如何知道二叉树的深度) * [4.介绍一下,堆排序的原理是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#4介绍一下堆排序的原理是什么) * [5.数组和链表的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#5数组和链表的区别) * [6.二分查找了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#6二分查找了解过吗) * [7.说下你熟悉的排序算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#7说下你熟悉的排序算法) * [8.布隆过滤器了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#8布隆过滤器了解过吗) * [9.一致性hash算法了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#9一致性hash算法了解过吗) * [10.如何在一个1到100的整数数组中找到丢失的数字?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#10如何在一个1到100的整数数组中找到丢失的数字) * [11.请你讲讲LRU算法的实现原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#11请你讲讲lru算法的实现原理) * [12.为什么要设计后缀表达式,有什么好处?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#12为什么要设计后缀表达式有什么好处) * [13. 什么是B树?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#13-什么是b树) * [14.什么是B+树?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#14什么是b树) * [15.谈一谈,id全局唯一且自增,如何实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#15谈一谈id全局唯一且自增如何实现) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md#参考链接) * [设计模式](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md) * [1.接口是什么?为什么要使用接口而不是直接使用具体类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#1接口是什么为什么要使用接口而不是直接使用具体类) * [2.设计模式六大原则?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#2设计模式六大原则) * [3.Java怎么实现单例模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#3java怎么实现单例模式) * [4.什么是代理模式?什么是动态代理?Java中动态代理有哪些实现方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#4什么是代理模式什么是动态代理java中动态代理有哪些实现方式) * [5.设计模式的类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#5设计模式的类型) * [6.说说你所熟悉或听说过的 j2ee 中的几种常用模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#6说说你所熟悉或听说过的-j2ee-中的几种常用模式) * [7.简述一下你了解的 Java 设计模式(总结)](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#7简述一下你了解的-java-设计模式总结) * [8.适配器模式是什么?什么时候使用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#8适配器模式是什么什么时候使用) * [9.适配器模式与装饰器模式有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#9适配器模式与装饰器模式有什么区别) * [10.适配器模式和代理模式之间有什么不同?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#10适配器模式和代理模式之间有什么不同) * [11.什么是模板方法模式?试举例说明。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#11什么是模板方法模式试举例说明) * [12.OOP中的组合、聚合和关联有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#12oop中的组合聚合和关联有什么区别) * [13.给我一个符合开闭原则的设计模式的例子?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#13给我一个符合开闭原则的设计模式的例子) * [14.工厂模式与抽象工厂模式的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#14工厂模式与抽象工厂模式的区别) * [15.举出一个例子,在这种情况你会更倾向于使用抽象类,而不是接口?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#15举出一个例子在这种情况你会更倾向于使用抽象类而不是接口) * [16.Dubbo 源码使用了哪些设计模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#16dubbo-源码使用了哪些设计模式) * [17.Spring 当中用到了哪些设计模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#17spring-当中用到了哪些设计模式) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#参考链接) * [分布式](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md) * [1.分布式id如何生成?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#1分布式id如何生成) * [2.雪花算法了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#2雪花算法了解过吗) * [3.什么是CAP定理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#3什么是cap定理) * [4.分布式事务了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#4分布式事务了解过吗) * [5.什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#5什么是二阶段提交2pc什么是三阶段提交3pc) * [6.TCC了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#6tcc了解过吗) * [7.Paxos算法了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#7paxos算法了解过吗) * [8.Zookeeper的Zab协议了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#8zookeeper的zab协议了解过吗) * [9.知道什么是Gossip协议吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#9知道什么是gossip协议吗) * [10.了解过哪些负载均衡算法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#10了解过哪些负载均衡算法) * [11.负载均衡的实现方案有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#11负载均衡的实现方案有哪些) * [12.正向代理和反向代理的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#12正向代理和反向代理的区别) * [13.分布式 Session了解过吗?如何实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#13分布式-session了解过吗如何实现) * [14.如何防止表单重复提交?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#14如何防止表单重复提交) * [15.如何设计一个秒杀系统?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#15如何设计一个秒杀系统) * [16.分布式系统的接口幂等性设计](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#16分布式系统的接口幂等性设计) * [17.如何保障请求执行顺序](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#17如何保障请求执行顺序) * [18.BASE理论了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#18base理论了解过吗) * [19.SOA和微服务架构有哪些区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#19soa和微服务架构有哪些区别) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%88%86%E5%B8%83%E5%BC%8F.md#参考资料) * [Linux](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md) * [1.vim有几种工作模式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#1vim有几种工作模式) * [2.find 命令如何使用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#2find-命令如何使用) * [3.如何在 /usr 目录下找出大小超过 10MB 的文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#3如何在-usr-目录下找出大小超过-10mb-的文件) * [4.如何在 /var 目录下找出 90 天之内未被访问过的文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#4如何在-var-目录下找出-90-天之内未被访问过的文件) * [5.如何在 /home 目录下找出 120 天之前被修改过的文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#5如何在-home-目录下找出-120-天之前被修改过的文件) * [6.在整个目录树下查找文件 “core” ,如发现则无需提示直接删除它们?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#6在整个目录树下查找文件-core-如发现则无需提示直接删除它们) * [7.ls 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#7ls-命令) * [8.df 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#8df-命令) * [9.rm 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#9rm-命令) * [10.mv 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#10mv-命令) * [11.cp 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#11cp-命令) * [12.tail 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#12tail-命令) * [13.grep 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#13grep-命令) * [14.sed 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#14sed-命令) * [15.用 sed 命令将指定的路径 /usr/local/http 替换成为 /usr/src/local/http ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#15用-sed-命令将指定的路径-usrlocalhttp-替换成为-usrsrclocalhttp-) * [16.打印 /etc/ssh/sshd_config 的第一百行?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#16打印-etcsshsshd_config-的第一百行) * [17.awk 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#17awk-命令) * [18.打印 /etc/passwd 的 1 到 3 行?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#18打印-etcpasswd-的-1-到-3-行) * [19.vim 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#19vim-命令) * [20.diff 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#20diff-命令) * [21.sort 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#21sort-命令) * [22.xargs 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#22xargs-命令) * [23.把当前目录下所有后缀名为 .txt 的文件的权限修改为 777 ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#23把当前目录下所有后缀名为-txt-的文件的权限修改为-777-) * [24.tar 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#24tar-命令) * [25.gzip 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#25gzip-命令) * [26.bzip2 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#26bzip2-命令) * [27.unzip 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#27unzip-命令) * [28.export 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#28export-命令) * [29.yum 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#29yum-命令) * [30.rpm 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#30rpm-命令) * [31.shutdown 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#31shutdown-命令) * [32.service 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#32service-命令) * [33.whereis 命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#33whereis-命令) * [34.用一条命令显示本机 eth0 网卡的 IP 地址,不显示其它字符?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#34用一条命令显示本机-eth0-网卡的-ip-地址不显示其它字符) * [35.如何禁止服务器被 ping ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#35如何禁止服务器被-ping-) * [36.设置 DNS 需要修改哪个配置文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#36设置-dns-需要修改哪个配置文件) * [37.在 Linux 下如何指定dns服务器,来解析某个域名?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#37在-linux-下如何指定dns服务器来解析某个域名) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Linux.md#参考资料) * [Mycat](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md) * [1.Mycat是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#1mycat是什么) * [2.什么叫混合切分](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#2什么叫混合切分) * [3.在项目组中,切分后的库从哪里而来?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#3在项目组中切分后的库从哪里而来) * [4.搭建mycat的核心配置文件有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#4搭建mycat的核心配置文件有哪些) * [5.mycat分库可以分成100个库吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#5mycat分库可以分成100个库吗) * [6.进行库表拆分时,拆分规则怎么取舍?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#6进行库表拆分时拆分规则怎么取舍) * [7.Mycat中全局ID方案有哪些?程序自定义全局ID的方案有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#7mycat中全局id方案有哪些程序自定义全局id的方案有哪些) * [8.Mycat的在分库分表之后,它是怎么支持联表查询的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#8mycat的在分库分表之后它是怎么支持联表查询的) * [9.配置文件不会变多,配置的节点主机会变多?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#9配置文件不会变多配置的节点主机会变多) * [10.你们项目中分片的实现方式是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#10你们项目中分片的实现方式是什么) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Mycat.md#参考链接) * [Nginx](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md) * [1.请解释一下什么是 Nginx ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#1请解释一下什么是-nginx-) * [2.为什么要用Nginx?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#2为什么要用nginx) * [3.Nginx怎么处理请求的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#3nginx怎么处理请求的) * [4.Nginx的优缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#4nginx的优缺点) * [5.Nginx应用场景?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#5nginx应用场景) * [6.使用“反向代理服务器”的优点是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#6使用反向代理服务器的优点是什么) * [7.列举Nginx服务器的最佳用途。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#7列举nginx服务器的最佳用途) * [8.请解释Nginx如何处理HTTP请求。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#8请解释nginx如何处理http请求) * [9.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#9在nginx中如何使用未定义的服务器名称来阻止处理请求) * [10.在Nginx中如何在URL中保留双斜线?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#10在nginx中如何在url中保留双斜线) * [11.ngx_http_upstream_module的作用是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#11ngx_http_upstream_module的作用是什么) * [12. fastcgi 与 cgi 的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#12-fastcgi-与-cgi-的区别) * [13. Nginx 常用命令?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#13-nginx-常用命令) * [14.Nginx 常用配置?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#14nginx-常用配置) * [15.请陈述stub_status和sub_filter指令的作用是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#15请陈述stub_status和sub_filter指令的作用是什么) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Nginx.md#参考链接) * [RocketMQ](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md) * [1.RocketMQ中的Topic和JMS的queue有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#1rocketmq中的topic和jms的queue有什么区别) * [2.RocketMQ Broker中的消息被消费后会立即删除吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#2rocketmq-broker中的消息被消费后会立即删除吗) * [3.RocketMQ消费模式有几种?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#3rocketmq消费模式有几种) * [4.消费消息是push还是pull?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#4消费消息是push还是pull) * [5.broker如何处理拉取请求的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#5broker如何处理拉取请求的) * [6.RocketMQ如何做负载均衡?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#6rocketmq如何做负载均衡) * [7.消息重复消费如何解决?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#7消息重复消费如何解决) * [8.如何让RocketMQ保证消息的顺序消费?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#8如何让rocketmq保证消息的顺序消费) * [9.RocketMQ如何保证消息不丢失?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#9rocketmq如何保证消息不丢失) * [10.rocketMQ的消息堆积如何处理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#10rocketmq的消息堆积如何处理) * [11.RocketMQ在分布式事务支持这块机制的底层原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#11rocketmq在分布式事务支持这块机制的底层原理) * [12.如果让你来动手实现一个分布式消息中间件,整体架构你会如何设计实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#12如果让你来动手实现一个分布式消息中间件整体架构你会如何设计实现) * [13.高吞吐量下如何优化生产者和消费者的性能?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#13高吞吐量下如何优化生产者和消费者的性能) * [14.再说说RocketMQ 是如何保证数据的高容错性的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#14再说说rocketmq-是如何保证数据的高容错性的) * [15.任何一台Broker突然宕机了怎么办?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#15任何一台broker突然宕机了怎么办) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/RocketMQ.md#参考资料) * [Servlet](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md) * [1.Servlet的生命周期?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#1servlet的生命周期) * [2.Servlet和JSP的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#2servlet和jsp的区别) * [3.Servlet的基本架构](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#3servlet的基本架构) * [4.什么情况下调用doGet()和doPost()?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#4什么情况下调用doget和dopost) * [5.页面间对象传递的方法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#5页面间对象传递的方法) * [6.四种会话跟踪技术](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#6四种会话跟踪技术) * [7.Request对象的主要方法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#7request对象的主要方法) * [8.如何配置Servlet的初始化参数?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#8如何配置servlet的初始化参数) * [9.如何读取Servlet的初始化参数?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#9如何读取servlet的初始化参数) * [10.init(ServletConfig)方法执行次数](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#10initservletconfig方法执行次数) * [11.init(ServletConfig)方法与异常](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#11initservletconfig方法与异常) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Servlet.md#参考链接) * [Shiro](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md) * [1.什么是shiro](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#1什么是shiro) * [2.解释下Shiro的核心概念:Subject、SecurityManager、Realm](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#2解释下shiro的核心概念subjectsecuritymanagerrealm) * [3.Shiro的优点](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#3shiro的优点) * [4.Shiro有哪些组件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#4shiro有哪些组件) * [5.说下Authentication 身份验证的流程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#5说下authentication-身份验证的流程) * [6.Authorization 授权的方式和流程是怎样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#6authorization-授权的方式和流程是怎样的) * [7.Cryptography 加密的过程是这样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#7cryptography-加密的过程是这样的) * [8.Realm 域如何使用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#8realm-域如何使用) * [9.shiro拦截器的执行流程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#9shiro拦截器的执行流程) * [10.Session Manager 会话管理介绍一下](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#10session-manager-会话管理介绍一下) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Shiro.md#参考资料) * [Tomcat](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md) * [1.Tomcat的缺省端口是多少,怎么修改?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#1tomcat的缺省端口是多少怎么修改) * [2.tomcat 有哪几种Connector 运行模式(优化)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#2tomcat-有哪几种connector-运行模式优化) * [3.Tomcat有几种部署方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#3tomcat有几种部署方式) * [4.tomcat容器是如何创建servlet类实例?用到了什么原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#4tomcat容器是如何创建servlet类实例用到了什么原理) * [5.tomcat 如何优化?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#5tomcat-如何优化) * [6.tomcat内存调优了解过吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#6tomcat内存调优了解过吗) * [7.tomcat垃圾回收策略调优了解吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#7tomcat垃圾回收策略调优了解吗) * [8.tomcat共享session如何处理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#8tomcat共享session如何处理) * [9.如何添加JMS远程监控](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#9如何添加jms远程监控) * [10.Tomcat一个请求的完整过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#10tomcat一个请求的完整过程) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Tomcat.md#参考资料) * [密码学](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md) * [1.Java中常用的加密算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#1java中常用的加密算法) * [2.什么是base64](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#2什么是base64) * [3.MD5](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#3md5) * [4.SHA](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#4sha) * [5.HMAC](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#5hmac) * [6.密码的常用术语](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#6密码的常用术语) * [7.单向加密算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#7单向加密算法) * [8.复杂的对称加密(DES、PBE)、非对称加密算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#8复杂的对称加密despbe非对称加密算法) * [9.非对称加密](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#9非对称加密) * [10.DES](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#10des) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E5%AF%86%E7%A0%81%E5%AD%A6.md#参考链接) * [操作系统](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md) * [1.说下进程的状态](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#1说下进程的状态) * [2.说下进程和线程的联系与区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#2说下进程和线程的联系与区别) * [3.为什么进程上下文切换比线程上下文切换代价高?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#3为什么进程上下文切换比线程上下文切换代价高) * [4.说下你对进程同步的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#4说下你对进程同步的理解) * [5.进程的通信方式有哪些](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#5进程的通信方式有哪些) * [6.进程调度的种类有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#6进程调度的种类有哪些) * [7.非抢占式调度与抢占式调度的区别是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#7非抢占式调度与抢占式调度的区别是什么) * [8.说下你知道的调度算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#8说下你知道的调度算法) * [9.一个程序从开始运行到结束的完整过程(四个过程)](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#9一个程序从开始运行到结束的完整过程四个过程) * [10.死锁出现的条件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#10死锁出现的条件) * [11.如何处理死锁问题](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#11如何处理死锁问题) * [12.如何处理死锁问题](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#12如何处理死锁问题) * [13.什么是临界资源](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#13什么是临界资源) * [14.介绍一下内存池、进程池、线程池](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#14介绍一下内存池进程池线程池) * [15.动态链接库与静态链接库的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#15动态链接库与静态链接库的区别) * [16.说下对虚拟内存的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#16说下对虚拟内存的理解) * [17.页面置换算法了解多少?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#17页面置换算法了解多少) * [18.中断与系统调用了解吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#18中断与系统调用了解吗) * [19.用户态切换到内核态的方式有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#19用户态切换到内核态的方式有哪些) * [20.用户态和核心态(内核态)之间的区别是什么呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#20用户态和核心态内核态之间的区别是什么呢) * [21.内部碎片与外部碎片分别是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#21内部碎片与外部碎片分别是什么) * [22.系统调用与库函数的区别](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#22系统调用与库函数的区别) * [23.守护、僵尸、孤儿进程的概念](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#23守护僵尸孤儿进程的概念) * [参考资料](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md#参考资料) * [编译原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md) * [1.词法分析](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#1词法分析) * [2.语法分析](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#2语法分析) * [3.语义分析](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#3语义分析) * [4.中间代码生成](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#4中间代码生成) * [5.目标代码生成](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#5目标代码生成) * [6.表格管理程序](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#6表格管理程序) * [7.出错处理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#7出错处理) * [8.句型、句子、语言](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#8句型句子语言) * [9.有穷自动机(有限自动机)](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#9有穷自动机有限自动机) * [10.全局优化](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#10全局优化) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86.md#参考链接) * [计算机组成原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md) * [1.计算机系统由哪两部分组成?计算机系统性能取决于什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#1计算机系统由哪两部分组成计算机系统性能取决于什么) * [2.计算机系统5层层次结构从下到上由哪五层组成?哪些是物理机,哪些是虚拟机?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#2计算机系统5层层次结构从下到上由哪五层组成哪些是物理机哪些是虚拟机) * [3.在计算机系统结构中,什么是翻译?什么是解释?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#3在计算机系统结构中什么是翻译什么是解释) * [4.什么是计算机体系结构?什么是计算机组成?以乘法指令为例说明二者区别。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#4什么是计算机体系结构什么是计算机组成以乘法指令为例说明二者区别) * [5.冯诺依曼机器的主要特点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#5冯诺依曼机器的主要特点) * [6.程序访问的局部性](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#6程序访问的局部性) * [7.字长](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#7字长) * [8.Cache的基本工作原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#8cache的基本工作原理) * [9.Cache和主存之间的映射方式](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#9cache和主存之间的映射方式) * [10. Cache中主存块的替换算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#10-cache中主存块的替换算法) * [11.二进制一般使用什么方法转换成十进制?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#11二进制一般使用什么方法转换成十进制) * [12.计算机直接使用原码计算有什么缺点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#12计算机直接使用原码计算有什么缺点) * [13.请计算12、124、1023、-1、-127的二进制原码。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#13请计算121241023-1-127的二进制原码) * [14.计算机的补码解决了什么问题?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#14计算机的补码解决了什么问题) * [15.什么是溢出?什么是上溢?什么是下溢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#15什么是溢出什么是上溢什么是下溢) * [16.浮点数之间做加减法运算需要几个步骤?每个步骤都是必须的吗?为什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#16浮点数之间做加减法运算需要几个步骤每个步骤都是必须的吗为什么) * [17.虚拟存储器的基本概念](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#17虚拟存储器的基本概念) * [18.页式虚拟存储器](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#18页式虚拟存储器) * [19.段式虚拟存储器](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#19段式虚拟存储器) * [20.段页式虚拟存储器](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#20段页式虚拟存储器) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86.md#参考链接) * [Docker](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md) * [1.什么Docker](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#1什么docker) * [2.Docker与虚拟机有何不同](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#2docker与虚拟机有何不同) * [3.什么是Docker镜像](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#3什么是docker镜像) * [4.什么是Docker容器](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#4什么是docker容器) * [5.Docker容器有几种状态](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#5docker容器有几种状态) * [6.DockerFile中最常见的指定是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#6dockerfile中最常见的指定是什么) * [7.DockerFile中的命令COPY和ADD命令有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#7dockerfile中的命令copy和add命令有什么区别) * [8.Docker的常用命令?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#8docker的常用命令) * [9.容器与主机之间的数据拷贝命令?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#9容器与主机之间的数据拷贝命令) * [10.启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#10启动nginx容器随机端口映射并挂载本地文件目录到容器html的命令) * [11.如何使用 Docker 技术创建与环境无关的容器系统?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#11如何使用-docker-技术创建与环境无关的容器系统) * [12.有什么方法确定一个 Docker 容器运行状态](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#12有什么方法确定一个-docker-容器运行状态) * [13. Docker Image 和 Docker Layer (层) 有什么不同](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#13-docker-image-和-docker-layer-层-有什么不同) * [14.如何停止所有正在运行的容器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#14如何停止所有正在运行的容器) * [15.如何清理批量后台停止的容器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#15如何清理批量后台停止的容器) * [16.如何临时退出一个正在交互的容器的终端,而不终止它?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#16如何临时退出一个正在交互的容器的终端而不终止它) * [17.Docker 群(Swarm)是什么](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#17docker-群swarm是什么) * [18.在使用 Docker 技术的产品中如何监控其运行](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#18在使用-docker-技术的产品中如何监控其运行) * [19.什么是孤儿卷及如何删除它?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#19什么是孤儿卷及如何删除它) * [20.在 Windows 系统上可以运行原生的 Docker 容器吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#20在-windows-系统上可以运行原生的-docker-容器吗) * [21.在 非 Linux 操作系统平台上如何运行 Docker ?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#21在-非-linux-操作系统平台上如何运行-docker-) * [参考链接](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Docker.md#参考链接) * [Dubbo](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md) * [1.Dubbo是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#1dubbo是什么) * [2.为什么要用Dubbo?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#2为什么要用dubbo) * [3.Dubbo 和 Dubbox 有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#3dubbo-和-dubbox-有什么区别) * [4.dubbo都支持什么协议,推荐用哪种?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#4dubbo都支持什么协议推荐用哪种) * [5.Dubbo需要 Web 容器吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#5dubbo需要-web-容器吗) * [6.Dubbo内置了哪几种服务容器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#6dubbo内置了哪几种服务容器) * [7.Dubbo默认使用什么注册中心,还有别的选择吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#7dubbo默认使用什么注册中心还有别的选择吗) * [8.Dubbo有哪几种配置方式?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#8dubbo有哪几种配置方式) * [9.在 Provider 上可以配置的 Consumer 端的属性有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#9在-provider-上可以配置的-consumer-端的属性有哪些) * [10.Dubbo启动时如果依赖的服务不可用会怎样?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#10dubbo启动时如果依赖的服务不可用会怎样) * [11.Dubbo推荐使用什么序列化框架,你知道的还有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#11dubbo推荐使用什么序列化框架你知道的还有哪些) * [12.Dubbo默认使用的是什么通信框架,还有别的选择吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#12dubbo默认使用的是什么通信框架还有别的选择吗) * [13.注册了多个同一样的服务,如果测试指定的某一个服务呢?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#13注册了多个同一样的服务如果测试指定的某一个服务呢) * [14.Dubbo支持服务多协议吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#14dubbo支持服务多协议吗) * [15.当一个服务接口有多种实现时怎么做?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#15当一个服务接口有多种实现时怎么做) * [16.服务上线怎么兼容旧版本?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#16服务上线怎么兼容旧版本) * [17.Dubbo可以对结果进行缓存吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#17dubbo可以对结果进行缓存吗) * [18.Dubbo服务之间的调用是阻塞的吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#18dubbo服务之间的调用是阻塞的吗) * [19.Dubbo支持分布式事务吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#19dubbo支持分布式事务吗) * [20.Dubbo支持服务降级吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#20dubbo支持服务降级吗) * [21.Dubbo如何优雅停机?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#21dubbo如何优雅停机) * [22.服务提供者能实现失效踢出是什么原理?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#22服务提供者能实现失效踢出是什么原理) * [23.如何解决服务调用链过长的问题?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#23如何解决服务调用链过长的问题) * [24.服务读写推荐的容错策略是怎样的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#24服务读写推荐的容错策略是怎样的) * [25.Dubbo必须依赖的包有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#25dubbo必须依赖的包有哪些) * [26.Dubbo的管理控制台能做什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#26dubbo的管理控制台能做什么) * [27.说说 Dubbo 服务暴露的过程。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Dubbo.md#27说说-dubbo-服务暴露的过程) * [Elasticsearch](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md) * [1.为什么要使用Elasticsearch?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#1为什么要使用elasticsearch) * [2.Elasticsearch是如何实现Master选举的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#2elasticsearch是如何实现master选举的) * [3.Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#3elasticsearch中的节点比如共20个其中的10个选了一个master另外10个选了另一个master怎么办) * [4.详细描述一下Elasticsearch索引文档的过程。](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#4详细描述一下elasticsearch索引文档的过程) * [5.详细描述一下Elasticsearch更新和删除文档的过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#5详细描述一下elasticsearch更新和删除文档的过程) * [6.详细描述一下Elasticsearch搜索的过程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#6详细描述一下elasticsearch搜索的过程) * [7.Elasticsearch对于大数据量(上亿量级)的聚合如何实现?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#7elasticsearch对于大数据量上亿量级的聚合如何实现) * [8.在并发情况下,Elasticsearch如果保证读写一致?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#8在并发情况下elasticsearch如果保证读写一致) * [9.ElasticSearch中的集群、节点、索引、文档、类型是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#9elasticsearch中的集群节点索引文档类型是什么) * [10.ElasticSearch中的分片是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#10elasticsearch中的分片是什么) * [11.什么是ElasticSearch?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#11什么是elasticsearch) * [12.Elasticsearch中的倒排索引是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#12elasticsearch中的倒排索引是什么) * [13.Elasticsearch中的分析器是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#13elasticsearch中的分析器是什么) * [14.说说Elasticsearch常用的调优手段?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#14说说elasticsearch常用的调优手段) * [15.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#15elasticsearch-在部署时对-linux-的设置有哪些优化方法) * [16.客户端在和集群连接时,如何选择特定的节点执行请求?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#16客户端在和集群连接时如何选择特定的节点执行请求) * [17.在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#17在-elasticsearch-中是怎么根据一个词找到对应的倒排索引的) * [18.对于 GC 方面,在使用 Elasticsearch 时要注意什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#18对于-gc-方面在使用-elasticsearch-时要注意什么) * [19.在并发情况下,Elasticsearch 如果保证读写一致?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#19在并发情况下elasticsearch-如果保证读写一致) * [20.如何监控 Elasticsearch 集群状态?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Elasticsearch.md#20如何监控-elasticsearch-集群状态) * [Java集合](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md) * [1.常见的集合有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#1常见的集合有哪些) * [2.常见的集合底层实现](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#2常见的集合底层实现) * [3.HashMap与HashTable的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#3hashmap与hashtable的区别) * [4.ConcurrentHashMap和Hashtable的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#4concurrenthashmap和hashtable的区别) * [5.ConcurrentHashMap实现原理](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#5concurrenthashmap实现原理) * [6.ArrayList 和 Vector 的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#6arraylist-和-vector-的区别) * [7.ArrayList和LinkedList的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#7arraylist和linkedlist的区别) * [8.HashMap 默认的初始化长度是多少?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#8hashmap-默认的初始化长度是多少) * [9.谈谈对HashMap 构造方法中初始容量、加载因子的理解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#9谈谈对hashmap-构造方法中初始容量加载因子的理解) * [10.Java集合框架是什么?说出一些集合框架的优点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#10java集合框架是什么说出一些集合框架的优点) * [11.集合框架中的泛型有什么优点?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#11集合框架中的泛型有什么优点) * [12.为何Collection不从Cloneable和Serializable接口继承?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#12为何collection不从cloneable和serializable接口继承) * [13.为何Map接口不继承Collection接口?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#13为何map接口不继承collection接口) * [14.Iterator是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#14iterator是什么) * [15.Enumeration和Iterator接口的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#15enumeration和iterator接口的区别) * [16.Iterater和ListIterator之间有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#16iterater和listiterator之间有什么区别) * [17.fail-fast与fail-safe有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#17fail-fast与fail-safe有什么区别) * [18.hashCode()和equals()方法有何重要性?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#18hashcode和equals方法有何重要性) * [19.我们能否使用任何类作为Map的key?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#19我们能否使用任何类作为map的key) * [20.如何决定选用HashMap还是TreeMap?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#20如何决定选用hashmap还是treemap) * [21.哪些集合类提供对元素的随机访问?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#21哪些集合类提供对元素的随机访问) * [22.BlockingQueue是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#22blockingqueue是什么) * [23.队列和栈是什么,列出它们的区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#23队列和栈是什么列出它们的区别) * [24.Collections类是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#24collections类是什么) * [25.Comparable和Comparator接口有何区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%9B%86%E5%90%88.md#25comparable和comparator接口有何区别) * [Java高并发](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md) * [1.什么是进程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#1什么是进程) * [2.什么是线程](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#2什么是线程) * [3.进程间如何通讯](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#3进程间如何通讯) * [4.线程间如何通讯](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#4线程间如何通讯) * [5.同步和异步有何不同,在什么情况下分别使用它们?举例说明](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#5同步和异步有何不同在什么情况下分别使用它们举例说明) * [6.进程调度算法](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#6进程调度算法) * [7.Java中Unsafe类详解](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#7java中unsafe类详解) * [8.如何测试并发量?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#8如何测试并发量) * [9.有三个线程T1,T2,T3,怎么确保它们按顺序执行?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#9有三个线程t1t2t3怎么确保它们按顺序执行) * [10.什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#10什么是线程调度器thread-scheduler和时间分片time-slicing) * [11.数据库死锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#11数据库死锁) * [12.什么是锁顺序死锁?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#12什么是锁顺序死锁) * [13.死锁的避免与诊断?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#13死锁的避免与诊断) * [14.常见的并发容器?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#14常见的并发容器) * [15.常见的同步工具类?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#15常见的同步工具类) * [16.Nginx多进程模型是如何实现高并发的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#16nginx多进程模型是如何实现高并发的) * [17.CopyOnWriteArrayList](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#17copyonwritearraylist) * [18.AQS](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#18aqs) * [19.Java里的阻塞队列](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#19java里的阻塞队列) * [20.Fork/Join框架](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E9%AB%98%E5%B9%B6%E5%8F%91.md#20forkjoin框架) * [Jenkins](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md) * [1.什么是Jenkins?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#1什么是jenkins) * [2.Maven, Ant和Jenkins有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#2maven-ant和jenkins有什么区别) * [3.Jenkins支持哪些SCM工具?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#3jenkins支持哪些scm工具) * [4.在Jenkins中, 什么是持续集成?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#4在jenkins中-什么是持续集成) * [5.Jenkins的优势是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#5jenkins的优势是什么) * [6.可以使用哪些命令手动启动Jenkins?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#6可以使用哪些命令手动启动jenkins) * [7.如何在Jenkins中创建备份和复制文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#7如何在jenkins中创建备份和复制文件) * [8.如何通过Jenkins克隆Git存储库?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#8如何通过jenkins克隆git存储库) * [9.什么是jenkinsfile?为什么使用jenkinsfile](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#9什么是jenkinsfile为什么使用jenkinsfile) * [10.什么是Blue Ocean](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Jenkins.md#10什么是blue-ocean) * [Kubernetes](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md) * [1.什么是Kubernetes?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#1什么是kubernetes) * [2.Kubernetes与Docker有什么关系?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#2kubernetes与docker有什么关系) * [3.什么是Container Orchestration?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#3什么是container-orchestration) * [4.Kubernetes如何简化容器化部署?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#4kubernetes如何简化容器化部署) * [5.什么是Google容器引擎?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#5什么是google容器引擎) * [6.什么是Heapster?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#6什么是heapster) * [7.什么是Minikube?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#7什么是minikube) * [8.什么是Kubectl?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#8什么是kubectl) * [9.什么是Kubelet?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#9什么是kubelet) * [10.Kubernetes Architecture的不同组件有哪些?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#10kubernetes-architecture的不同组件有哪些) * [11.你对Kube-proxy有什么了解?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#11你对kube-proxy有什么了解) * [12.您能否介绍一下Kubernetes中主节点的工作情况?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#12您能否介绍一下kubernetes中主节点的工作情况) * [13.kube-apiserver和kube-scheduler的作用是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#13kube-apiserver和kube-scheduler的作用是什么) * [14.你能简要介绍一下Kubernetes控制管理器吗?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#14你能简要介绍一下kubernetes控制管理器吗) * [15.什么是etcd?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#15什么是etcd) * [16.你对Kubernetes的负载均衡器有什么了解?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#16你对kubernetes的负载均衡器有什么了解) * [17.什么是Ingress网络,它是如何工作的?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#17什么是ingress网络它是如何工作的) * [18.您对云控制器管理器有何了解?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#18您对云控制器管理器有何了解) * [19.什么是Container资源监控?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#19什么是container资源监控) * [20.Replica Set 和 Replication Controller之间有什么区别?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Kubernetes.md#20replica-set-和-replication-controller之间有什么区别) * [Maven](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md) * [1.maven是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#1maven是什么) * [2.使用Maven好处](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#2使用maven好处) * [3.Maven的坐标和依赖](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#3maven的坐标和依赖) * [4.Maven的⽣命周期](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#4maven的命周期) * [5.你们项目为什么选用 Maven 进行构建?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#5你们项目为什么选用-maven-进行构建) * [6.Maven 规约是什么?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#6maven-规约是什么) * [7.Maven 常用命令](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#7maven-常用命令) * [8.Maven 有哪些优点和缺点](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#8maven-有哪些优点和缺点) * [9.Maven 版本规则?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#9maven-版本规则) * [10.对于一个多模块项目,如果管理项目依赖的版本?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#10对于一个多模块项目如果管理项目依赖的版本) * [11.Maven 依赖原则?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#11maven-依赖原则) * [12.如何解决 jar 冲突?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#12如何解决-jar-冲突) * [13.什么是 Maven 插件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#13什么是-maven-插件) * [14.Maven依赖冲突](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#14maven依赖冲突) * [15.依赖的解析机制](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Maven.md#15依赖的解析机制) * [MongoDB](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md) * [1.什么是MongoDB?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#1什么是mongodb) * [2.MongoDB的优势有哪些](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#2mongodb的优势有哪些) * [3.什么是集合(表)?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#3什么是集合表) * [4.什么是文档(记录)](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#4什么是文档记录) * [5.为什么用MOngoDB?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#5为什么用mongodb) * [6.在哪些场景使用MongoDB](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#6在哪些场景使用mongodb) * [7.MongoDB中的命名空间是什么意思?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#7mongodb中的命名空间是什么意思) * [8.MongoDB中的分片什么意思](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#8mongodb中的分片什么意思) * [9.为什么要在MongoDB中使用分析器](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#9为什么要在mongodb中使用分析器) * [10.MongoDB支持主键外键关系吗](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#10mongodb支持主键外键关系吗) * [11.MongoDB支持哪些数据类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#11mongodb支持哪些数据类型) * [12.为什么要在MongoDB中用"Code"数据类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#12为什么要在mongodb中用code数据类型) * [13.为什么要在MongoDB中用"Regular Expression"数据类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#13为什么要在mongodb中用regular-expression数据类型) * [14.为什么在MongoDB中使用"Object ID"数据类型](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#14为什么在mongodb中使用object-id数据类型) * [15."ObjectID"有哪些部分组成](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#15objectid有哪些部分组成) * [16.在MongoDb中什么是索引](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#16在mongodb中什么是索引) * [17.在MongoDB中什么是副本集](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#17在mongodb中什么是副本集) * [18.MongoDB支持存储过程吗?如果支持的话,怎么用?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#18mongodb支持存储过程吗如果支持的话怎么用) * [19.如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#19如何理解mongodb中的gridfs机制mongodb为何使用gridfs来存储文件) * [20.为什么MongoDB的数据文件很大?](https://github.com/JavaInterviewHub/JavaInterview/blob/main/MongoDB.md#20为什么mongodb的数据文件很大)