1.java对象创建的过程
在Java中,创建一个对象的过程可以简单分为以下几个步骤:
-
类加载:当使用一个类创建对象时,首先需要加载该类的字节码文件到内存中。类加载是由Java虚拟机(JVM)负责的。
-
类加载检查:在加载类的过程中,JVM会检查类的字节码文件是否符合Java语言规范,是否有父类、接口等。
-
分配内存:在加载完类之后,JVM会在堆内存中为对象分配内存空间。内存的分配由JVM的垃圾回收器负责管理。
-
初始化对象:在分配了内存空间之后,JVM会调用对象的构造函数来初始化对象的状态,即为对象的成员变量赋初值。
-
设置对象的引用:在对象初始化完成后,JVM会返回一个引用,可以将这个引用赋给一个变量,以便后续对对象的操作。
2.java的内存模型(内存布局)
Java的内存模型定义了Java程序中对象的创建、存储和访问方式。在Java内存模型中,内存被划分为方法区、堆、栈和PC寄存器等部分。其中,堆是用来存储对象实例的,栈用来存储局部变量和方法调用信息,方法区用来存储类信息、常量池等。PC寄存器用来存储当前线程执行的位置。
Java内存模型的设计旨在保证多线程并发访问时的数据可见性和一致性。通过使用关键字如synchronized
、volatile
等,开发人员可以控制内存的访问方式,确保多线程环境下的数据正确性。
3.hashmap把链表转红黑树的目的(为什么要这么优化)
4.什么是事务
事务是逻辑上的一组操作,要么都执行,要么都不执行
5.mysql的存储引擎