文章目录
- JDK、JRE、JVM之间的区别
- List和Set的区别
- HashMap和HashTable的区别及底层实现
- ConcurrentHashMap原理
- Jdk1.7到jdk1.8HashMap发生的变化
- HashMap的扩容机制原理
- CopyOnWirteArrayList的底层原理
- sleep()、wait()、join()、yield()的区别
- 如何实现一个IOC容器
- Java中有哪些类加载器
- 双亲委派模型
- ⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程
- 说说对线程安全的理解
- 对守护线程的理解
- ThreadLocal的底层原理
- 并发、并行、串行之间的区别
- Java死锁如何避免
- 线程池的底层工作原理
- 对IOC的理解
- 单例Bean和单例模式
- Spring中的事务是如何实现的
- Spring事务传播机制
- Spring事务什么时候失效
- Spring中什么时候@Transactional会失效
- Spring中的Bean创建的生命周期有哪些步骤
- Spring中Bean是线程安全的嘛
- Spring容器启动流程是怎样的
- ApplicationContext和BeanFactory的区别
- SpringMVC的工作流程
- Spring Boot中常用注解及其底层实现
- 如何理解SpringBoot中的Starter
- Spring Boot是如何启动Tomcat的
- Mybatis的优缺点
- #{}和${}的区别是什么
- 索引的基本原理
- 索引设计的原则
- 索引覆盖是什么
- 事务的基本特性和隔离级别
- B树和B+树的区别,为什么Mysql使⽤B+树![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/238a19fc9c1c08359bf3037e809db714.png)
- Mysql锁有哪些,如何理解
- Mysql慢查询该如何优化
- Redis的持久化机制
- Redis有哪些数据结构?分别有哪些典型的应用场景![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4a21f51fcc059e26e46e6fb6508952c2.png)
- Redis分布式锁底层是如何实现的
- Redis主从复制的核心原理
- Redis集群策略
- 缓存穿透、缓存击穿、缓存雪崩分别是什么
- 如何避免缓存穿透、缓存击穿、缓存雪崩
- Redis和Mysql如何保证数据一致
- 负载均衡算法有哪些
- SpringCloud有哪些常用组件,作用是什么
- TCP的三次握手和四次挥手
- 浏览器发出一个请求到收到响应的过程![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/254b1a47a559a26cd7c4065776620da1.png)
- 跨域请求是什么?
JDK、JRE、JVM之间的区别
- JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯
具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等 - JRE( Java Runtime Environment) ,Java运⾏环境,⽤于运⾏Java的字节码⽂件。JRE中包括了
JVM以及JVM⼯作所需要的类库,普通⽤户⽽只需要安装JRE来运⾏Java程序,⽽程序开发者必须 安装JDK来编译、调试程序。 - JVM(Java Virtual Mechinal),Java虚拟机,是JRE的⼀部分,它是整个java实现跨平台的最核⼼的
部分,负责运⾏字节码⽂件。
我们写Java代码,⽤txt就可以写,但是写出来的Java代码,想要运⾏,需要先编译成字节码,那就需要编译器,⽽JDK中就包含了编译器javac,编译之后的字节码,想要运⾏,就需要⼀个可以执⾏字节码的程序,这个程序就是JVM(Java虚拟机),专⻔⽤来执⾏Java字节码的。
如果我们要开发Java程序,那就需要JDK,因为要编译Java源⽂件。 如果我们只想运⾏已经编译好的Java字节码⽂件,也就是*.class⽂件,那么就只需要JRE。
JDK中包含了JRE,JRE中包含了JVM。 另外,JVM在执⾏Java字节码时,需要把字节码解释为机器指令,⽽不同操作系统的机器指令是有可能 不⼀样的,所以就导致不同操作系统上的JVM是不⼀样的,所以我们在安装JDK时需要选择操作系统。 另外,JVM是⽤来执⾏Java字节码的,所以凡是某个代码编译之后是Java字节码,那就都能在JVM上运 ⾏,⽐如Apache Groovy, Scala and Kotlin 等等。
List和Set的区别
- List:有序,按对象插⼊的顺序保存对象,可重复,允许多个Null元素对象,可以使⽤Iterator取出所有元素,在逐⼀遍历,还可以使⽤get(int index)获取指定下标的元素。
- Set:无序,不可重复,最多允许有⼀个Null元素对象,取元素时只能⽤Iterator接⼝取得所有元素,在逐⼀遍历各个元素
HashMap和HashTable的区别及底层实现
ConcurrentHashMap原理
Jdk1.7到jdk1.8HashMap发生的变化
HashMap的扩容机制原理
CopyOnWirteArrayList的底层原理
sleep()、wait()、join()、yield()的区别
如何实现一个IOC容器
Java中有哪些类加载器
双亲委派模型
⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程
说说对线程安全的理解
对守护线程的理解
ThreadLocal的底层原理
并发、并行、串行之间的区别
Java死锁如何避免
线程池的底层工作原理
对IOC的理解
单例Bean和单例模式
Spring中的事务是如何实现的
Spring事务传播机制
Spring事务什么时候失效
Spring中什么时候@Transactional会失效
Spring中的Bean创建的生命周期有哪些步骤
Spring中Bean是线程安全的嘛
Spring容器启动流程是怎样的
ApplicationContext和BeanFactory的区别
SpringMVC的工作流程
Spring Boot中常用注解及其底层实现
如何理解SpringBoot中的Starter
Spring Boot是如何启动Tomcat的
Mybatis的优缺点
#{}和${}的区别是什么
索引的基本原理
索引设计的原则
索引覆盖是什么
事务的基本特性和隔离级别
B树和B+树的区别,为什么Mysql使⽤B+树![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/238a19fc9c1c08359bf3037e809db714.png)
Mysql锁有哪些,如何理解
Mysql慢查询该如何优化
Redis的持久化机制