|
1 | | -* [Java基础](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md) |
| 1 | +## Java基础 |
| 2 | + |
| 3 | +* [Java基础](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#Java基础) |
2 | 4 | * [1.说下面向对象四大特性](https://github.com/JavaInterviewHub/JavaInterview/blob/main/Java%E5%9F%BA%E7%A1%80.md#1说下面向对象四大特性) |
3 | | - * [2.Java语言有哪些特点](#2抽象类和接口java7的区别) |
4 | | - * [3.什么是Java程序的主类?应用程序和小程序的主类有何不同?](3.什么是Java程序的主类?应用程序和小程序的主类有何不同?) |
5 | | - * [4.访问修饰符public,private,protected,以及不写(默认)时的区别?](4.访问修饰符public,private,protected,以及不写(默认)时的区别?) |
6 | | - * []() |
7 | | -* [Java多线程](#java多线程) |
8 | | - * [1.说说synchronized的实现原理](#1说说synchronized的实现原理) |
9 | | - * [2.ReentrantLock与synchronized的区别](#2reentrantlock与synchronized的区别) |
10 | | - * [3.ReentrantLock实现原理](#3reentrantlock实现原理) |
11 | | - * [4.Java原子类AtomicInteger实现原理](#4java原子类atomicinteger实现原理) |
12 | | - * [5.Java线程池实现原理](#5java线程池实现原理) |
13 | | - * [6.ThreadLocal实现原理](#6threadlocal实现原理) |
14 | | - * [7.InheritableThreadLocal原理知道吗?](#7inheritablethreadlocal原理知道吗) |
15 | | - * [8.说一下synchronized锁升级过程](#8说一下synchronized锁升级过程) |
16 | | - * [9.了解过什么是“伪共享”吗?](#9了解过什么是伪共享吗) |
17 | | - * [10.“伪共享”出现的原因是什么?](#10伪共享出现的原因是什么) |
18 | | - * [11.如何避免“伪共享”?](#11如何避免伪共享) |
19 | | - * [12.Java里的线程有哪些状态?](#12java里的线程有哪些状态) |
20 | | - * [13.什么是悲观锁?什么是乐观锁?](#13什么是悲观锁什么是乐观锁) |
21 | | - * [14.怎么停止一个运行中的线程?](#14怎么停止一个运行中的线程) |
22 | | - * [15.说一下你对volatile的理解?](#15说一下你对volatile的理解) |
23 | | -* [Java虚拟机](#java虚拟机) |
24 | | - * [说一下JVM的内存结构?](#说一下jvm的内存结构) |
25 | | - * [栈帧里面包含哪些东西?](#栈帧里面包含哪些东西) |
26 | | - * [程序计数器有什么作用?](#程序计数器有什么作用) |
27 | | - * [字符串常量存放在哪个区域?](#字符串常量存放在哪个区域) |
28 | | - * [你熟悉哪些垃圾收集算法?](#你熟悉哪些垃圾收集算法) |
29 | | - * [Java里有哪些引用类型?](#java里有哪些引用类型) |
30 | | - * [JVM怎么判断一个对象是不是要回收?](#jvm怎么判断一个对象是不是要回收) |
31 | | - * [GC Roots 有哪些?](#gc-roots-有哪些) |
32 | | - * [你知道哪些GC类型?](#你知道哪些gc类型) |
33 | | - * [对象都是优先分配在年轻代上的吗?](#对象都是优先分配在年轻代上的吗) |
34 | | - * [你了解过哪些垃圾收集器?](#你了解过哪些垃圾收集器) |
35 | | - * [说说CMS垃圾收集器的工作原理](#说说cms垃圾收集器的工作原理) |
36 | | - * [说说G1垃圾收集器的工作原理](#说说g1垃圾收集器的工作原理) |
37 | | - * [说说ZGC垃圾收集器的工作原理](#说说zgc垃圾收集器的工作原理) |
38 | | - * [ZGC收集器中的染色指针有什么用?](#zgc收集器中的染色指针有什么用) |
39 | | - * [说说类加载的过程](#说说类加载的过程) |
40 | | - * [说下有哪些类加载器?](#说下有哪些类加载器) |
41 | | - * [什么是双亲委派机制?](#什么是双亲委派机制) |
42 | | - * [双亲委派机制可以被违背吗?请举例说明。](#双亲委派机制可以被违背吗请举例说明) |
43 | | - * [Tomcat是怎么打破双亲委派机制的呢?](#tomcat是怎么打破双亲委派机制的呢) |
44 | | - * [Java对象的布局了解过吗?](#java对象的布局了解过吗) |
45 | | -* [MySQL](#mysql) |
46 | | - * [了解过哪些存储引擎?各有什么优缺点?](#了解过哪些存储引擎各有什么优缺点) |
47 | | - * [说一下什么是事务的ACID属性吧](#说一下什么是事务的acid属性吧) |
48 | | - * [事务的隔离级别了解过吗?](#事务的隔离级别了解过吗) |
49 | | - * [说说InnoDB的索引原理](#说说innodb的索引原理) |
50 | | - * [说说InnoDB的MVCC机制](#说说innodb的mvcc机制) |
51 | | - * [有了解过“回表”的概念吗?什么情况下会出现“回表”?](#有了解过回表的概念吗什么情况下会出现回表) |
52 | | - * [MySQL索引的类型](#mysql索引的类型) |
53 | | - * [有做过MySQL的索引优化吗](#有做过mysql的索引优化吗) |
54 | | - * [什么是聚簇索引?](#什么是聚簇索引) |
55 | | - * [InnoDB有聚簇索引吗?MyIsam呢?](#innodb有聚簇索引吗myisam呢) |
56 | | - * [MyIsam的数据是怎么存储的?](#myisam的数据是怎么存储的) |
57 | | - * [InnoDB的数据是怎么存储的?](#innodb的数据是怎么存储的) |
58 | | - * [InnoDB主键索引跟非主键索引在数据存储上的差异](#innodb主键索引跟非主键索引在数据存储上的差异) |
59 | | - * [InnoDB删除某条记录后,内部会怎么处理?](#innodb删除某条记录后内部会怎么处理) |
60 | | - * [InnoDB如果没有设置主键的话,它内部会怎么处理?](#innodb如果没有设置主键的话它内部会怎么处理) |
61 | | - * [为什么InnoDB一定会生成主键?](#为什么innodb一定会生成主键) |
62 | | - * [MySQL分库分表了解过吗?](#mysql分库分表了解过吗) |
63 | | - * [MySQL的redo日志和undo日志分别有什么用?](#mysql的redo日志和undo日志分别有什么用) |
64 | | - * [MySQL的redo日志的刷盘时机](#mysql的redo日志的刷盘时机) |
65 | | - * [MySQL有哪些锁?以及各种锁的作用?](#mysql有哪些锁以及各种锁的作用) |
66 | | -* [Redis](#redis) |
67 | | - * [Redis有哪些数据结构?](#redis有哪些数据结构) |
68 | | - * [Redis为什么那么快?](#redis为什么那么快) |
69 | | - * [Redis如何实现分布式锁?](#redis如何实现分布式锁) |
70 | | - * [Redis是单线程还是多线程?](#redis是单线程还是多线程) |
71 | | - * [缓存失效?缓存穿透?缓存雪崩?缓存并发?](#缓存失效缓存穿透缓存雪崩缓存并发) |
72 | | - * [Redis中的热key怎么处理?](#redis中的热key怎么处理) |
73 | | - * [Redis中的大key怎么处理?](#redis中的大key怎么处理) |
74 | | - * [使用Redis统计网站的UV,应该怎么做?](#使用redis统计网站的uv应该怎么做) |
75 | | - * [Redis事务机制了解过吗?](#redis事务机制了解过吗) |
76 | | - * [Redis key的淘汰策略有哪些?](#redis-key的淘汰策略有哪些) |
77 | | - * [Redis在什么情况下会触发key的回收?](#redis在什么情况下会触发key的回收) |
78 | | - * [Redis的持久化了解过吗?](#redis的持久化了解过吗) |
79 | | - * [Redis在集群种查找key的时候,是怎么定位到具体节点的?](#redis在集群种查找key的时候是怎么定位到具体节点的) |
80 | | - * [Redis集群各个节点之间是怎么保持数据一致性的?](#redis集群各个节点之间是怎么保持数据一致性的) |
81 | | - * [用Redis做延时队列,具体应该怎么实现?](#用redis做延时队列具体应该怎么实现) |
82 | | - * [Redis String的内部编码有哪些?](#redis-string的内部编码有哪些) |
83 | | -* [Spring](#spring) |
84 | | - * [Spring是怎么解决循环依赖的?](#spring是怎么解决循环依赖的) |
85 | | - * [Spring Boot手动装配有哪几种方式?](#spring-boot手动装配有哪几种方式) |
86 | | - * [Spring Boot自动配置原理](#spring-boot自动配置原理) |
87 | | -* [Netty](#netty) |
88 | | - * [你了解过哪些IO模型?](#你了解过哪些io模型) |
89 | | - * [什么是Reactor模型?Reactor的3种版本都知道吗?](#什么是reactor模型reactor的3种版本都知道吗) |
90 | | - * [了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?](#了解过粘包拆包吗为什么会出现粘包拆包怎么处理粘包拆包) |
91 | | - * [UDP协议会有粘包拆包的问题吗?为什么?](#udp协议会有粘包拆包的问题吗为什么) |
92 | | -* [微服务](#微服务) |
93 | | - * [微服务有哪些优缺点?](#微服务有哪些优缺点) |
94 | | - * [作为注册中心,Zookeeper和Eureka有什么区别?](#作为注册中心zookeeper和eureka有什么区别) |
95 | | - * [Service Mesh了解过吗?](#service-mesh了解过吗) |
96 | | -* [Zookeeper](#zookeeper) |
97 | | - * [Zookeeper有哪些节点类型?](#zookeeper有哪些节点类型) |
98 | | - * [了解过Zookeeper的ZAB协议吗?](#了解过zookeeper的zab协议吗) |
99 | | - * [Zookeeper怎么实现分布式锁?](#zookeeper怎么实现分布式锁) |
100 | | - * [Zookeeper是怎么保证数据一致性的?](#zookeeper是怎么保证数据一致性的) |
101 | | - * [Zookeeper Leader选举过程是怎样的?](#zookeeper-leader选举过程是怎样的) |
102 | | - * [Zookeeper怎么实现服务注册?](#zookeeper怎么实现服务注册) |
103 | | -* [消息队列](#消息队列) |
104 | | - * [消息队列有哪些应用场景?](#消息队列有哪些应用场景) |
105 | | - * [消息队列的弊端有哪些?](#消息队列的弊端有哪些) |
106 | | - * [使用消息队列,怎么确保消息不丢失?](#使用消息队列怎么确保消息不丢失) |
107 | | - * [使用消息队列,如果处理重复消息?](#使用消息队列如果处理重复消息) |
108 | | - * [Kafka的消息是有序的吗?如果保证Kafka消息的顺序性?](#kafka的消息是有序的吗如果保证kafka消息的顺序性) |
109 | | -* [计算机网络](#计算机网络) |
110 | | - * [说下TCP三次握手的过程](#说下tcp三次握手的过程) |
111 | | - * [TCP为什么需要3次握手](#tcp为什么需要3次握手) |
112 | | - * [TCP为什么需要4次挥手](#tcp为什么需要4次挥手) |
113 | | - * [TCP time_wait状态是主动断开方才有,还是被动断开方才有?还是两边都有?](#tcp-time_wait状态是主动断开方才有还是被动断开方才有还是两边都有) |
114 | | - * [TCP的keepalive机制了解过吗?](#tcp的keepalive机制了解过吗) |
115 | | - * [HTTP的keepalive和TCP的keepalive,有什么区别?](#http的keepalive和tcp的keepalive有什么区别) |
116 | | - * [TCP与UDP的区别?](#tcp与udp的区别) |
117 | | - * [简述 HTTP1.0/1.1/2.0 的区别](#简述-http101120-的区别) |
118 | | - * [HTTPS的原理了解过吗?](#https的原理了解过吗) |
119 | | - * [TCP里Nagle算法了解过吗?可以禁用吗?在Java里怎么禁用?](#tcp里nagle算法了解过吗可以禁用吗在java里怎么禁用) |
120 | | - * [HTTP协议为什么无法实现服务端推送?](#http协议为什么无法实现服务端推送) |
121 | | - * [websocket协议升级过程了解过吗?](#websocket协议升级过程了解过吗) |
122 | | -* [数据结构与算法](#数据结构与算法) |
123 | | - * [说下你熟悉的排序算法](#说下你熟悉的排序算法) |
124 | | - * [布隆过滤器了解过吗?](#布隆过滤器了解过吗) |
125 | | - * [一致性hash算法了解过吗?](#一致性hash算法了解过吗) |
126 | | -* [设计模式](#设计模式) |
127 | | - * [Java怎么实现单例模式?](#java怎么实现单例模式) |
128 | | - * [什么是代理模式?什么是动态代理?Java中动态代理有哪些实现方式?](#什么是代理模式什么是动态代理java中动态代理有哪些实现方式) |
129 | | - * [什么是模板方法模式?试举例说明。](#什么是模板方法模式试举例说明) |
130 | | -* [分布式](#分布式) |
131 | | - * [分布式id如何生成?](#分布式id如何生成) |
132 | | - * [雪花算法了解过吗?](#雪花算法了解过吗) |
133 | | - * [什么是CAP定理?](#什么是cap定理) |
134 | | - * [分布式事务了解过吗?](#分布式事务了解过吗) |
135 | | - * [什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?](#什么是二阶段提交2pc什么是三阶段提交3pc) |
136 | | - * [TCC了解过吗?](#tcc了解过吗) |
137 | | - * [Paxos算法了解过吗?](#paxos算法了解过吗) |
138 | | - * [Zookeeper的Zab协议了解过吗?](#zookeeper的zab协议了解过吗) |
139 | | - * [知道什么是Gossip协议吗?](#知道什么是gossip协议吗) |
| 5 | + * [2.Java语言有些特点](#2Java语言有哪些特点) |
| 6 | + * [3.什么是Java程序的主类?应用程序和小程序的主类有何不同?](#3什么是java程序的主类应用程序和小程序的主类有何不同) |
| 7 | + * [4.<strong>访问修饰符public,private,protected,以及不写(默认)时的区别?</strong>](#4访问修饰符publicprivateprotected以及不写默认时的区别) |
| 8 | + * [5.<strong>float f=3.4;是否正确?</strong>](#5float-f34是否正确) |
| 9 | +* [6.<strong>Java有没有goto?</strong>](#6java有没有goto) |
| 10 | +* [7.<strong>&和&&的区别?</strong>](#7和的区别) |
| 11 | +* [8.<strong>Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?</strong>](#8mathround115-等于多少mathround-115等于多少) |
| 12 | +* [9.<strong>用最有效率的方法计算2乘以8?</strong>](#9用最有效率的方法计算2乘以8) |
| 13 | +* [10.什么是Java注释](#10什么是java注释) |
| 14 | +* [11.Java有哪些数据类型](#11java有哪些数据类型) |
| 15 | +* [12.final 有什么用?](#12final-有什么用) |
| 16 | +* [13.final finally finalize的区别](#13final-finally-finalize的区别) |
| 17 | +* [14.<strong>String str = "i" 和String str = new String("1")一样吗?</strong>](#14string-str--i-和string-str--new-string1一样吗) |
| 18 | +* [15.<strong>Java 中操作字符串都有哪些类?它们之间有什么区别?</strong>](#15java-中操作字符串都有哪些类它们之间有什么区别) |
| 19 | +* [16.Java中为什么要用 clone?](#16java中为什么要用-clone) |
| 20 | +* [17.<strong>深克隆和浅克隆?</strong>](#17深克隆和浅克隆) |
| 21 | +* [18.new一个对象的过程和clone一个对象的区别?](#18new一个对象的过程和clone一个对象的区别) |
| 22 | +* [19.Java中实现多态的机制是什么?](#19java中实现多态的机制是什么) |
| 23 | +* [20.谈谈你对多态的理解?](#20谈谈你对多态的理解) |
| 24 | +* [21.<strong>构造器(constructor)是否可被重写(override)?</strong>](#21构造器constructor是否可被重写override) |
| 25 | +* [22.<strong>两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?</strong>](#22两个对象值相同xequalsy--true但却可有不同的hash-code这句话对不对) |
| 26 | +* [23.<strong>是否可以继承String类?</strong>](#23是否可以继承string类) |
| 27 | +* [24.<strong>String类的常用方法有哪些?</strong>](#24string类的常用方法有哪些) |
| 28 | +* [25.<strong>char型变量中能否能不能存储一个中文汉字,为什么?</strong>](#25char型变量中能否能不能存储一个中文汉字为什么) |
| 29 | +* [26.this关键字的用法](#26this关键字的用法) |
| 30 | +* [27.super关键字的用法](#27super关键字的用法) |
| 31 | +* [28.this与super的区别](#28this与super的区别) |
| 32 | +* [29.static存在的主要意义](#29static存在的主要意义) |
| 33 | +* [30.static的独特之处](#30static的独特之处) |
| 34 | +* [31.static应用场景](#31static应用场景) |
| 35 | +* [32.static注意事项](#32static注意事项) |
| 36 | +* [33.break ,continue ,return 的区别及作用](#33break-continue-return-的区别及作用) |
| 37 | +* [34.在Java中定义一个不做事且没有参数的构造方法的作用](#34在java中定义一个不做事且没有参数的构造方法的作用) |
| 38 | +* [35.构造方法有哪些特性?](#35构造方法有哪些特性) |
| 39 | +* [36.静态变量和实例变量区别](#36静态变量和实例变量区别) |
| 40 | +* [38.静态方法和实例方法有何不同?](#38静态方法和实例方法有何不同) |
| 41 | +* [39.什么是方法的返回值?返回值的作用是什么?](#39什么是方法的返回值返回值的作用是什么) |
| 42 | +* [40.什么是内部类?](#40什么是内部类) |
| 43 | +* [41.内部类的分类有哪些](#41内部类的分类有哪些) |
| 44 | +* [42.Java中异常分为哪些种类?](#42java中异常分为哪些种类) |
| 45 | +* [43.hashCode 与 equals (重要)](#43hashcode-与-equals-重要) |
| 46 | +* [hashCode()介绍](#hashcode介绍) |
| 47 | +* [44.为什么要有 hashCode](#44为什么要有-hashcode) |
| 48 | +* [45.抽象类和接口(Java7)的区别](#45抽象类和接口java7的区别) |
| 49 | +* [46.Java 8的接口新增了哪些特性?](#46java-8的接口新增了哪些特性) |
| 50 | +* [47.重写和重载的区别](#47重写和重载的区别) |
| 51 | +* [48.ArrayList和LinkedList有什么区别?](#48arraylist和linkedlist有什么区别) |
| 52 | +* [49.HashMap是怎么实现的?](#49hashmap是怎么实现的) |
| 53 | +* [50.HashMap在Java7和Java8中的实现有什么不同?](#50hashmap在java7和java8中的实现有什么不同) |
| 54 | +* [51.HashMap有时候会死循环,你知道是什么原因吗?](#51hashmap有时候会死循环你知道是什么原因吗) |
| 55 | +* [52.ConcurrentHashMap是怎么实现的?](#52concurrenthashmap是怎么实现的) |
| 56 | +* [53.静态代理和动态代理的区别](#53静态代理和动态代理的区别) |
| 57 | +* [54.JDK动态代理和CGLIB动态代理的区别](#54jdk动态代理和cglib动态代理的区别) |
| 58 | +* [参考链接](#参考链接) |
0 commit comments