Java实例化是用类创建具体对象的过程,通过new关键字在堆内存中分配空间、初始化变量、执行构造代码块和构造方法并返回引用;声明变量(如Student s;)不等于实例化,s此时为null;此外还可通过反射、工厂方法、clone()或反序列化实现;每次实例化都生成独立对象,静态成员除外。

Java实例化就是用一个已定义的类,创建出一个具体对象的过程。类只是模板或蓝图,不占内存、不能直接调用方法;只有实例化之后,才真正在堆内存中生成可操作的对象。
实例化的核心动作
最常见的方式是用 new 关键字:
- JVM 在堆内存中为对象分配空间
- 对成员变量做默认初始化(比如 int 变成 0,引用类型变成 null)
- 按顺序执行构造代码块和构造方法,完成自定义初始化
- 返回对象的引用,赋值给某个变量(如 Student s = new Student();)
实例化 ≠ 声明变量
写 Student s; 只是声明了一个引用变量,此时 s 的值是 null,还没对象;只有加上 new Student() 才真正创建了对象,也就是完成了实例化。
不止一种实例化方式
虽然 new 是最常用也最直观的方式,但还有其他合法途径:
立即学习“Java免费学习笔记(深入)”;
- 通过反射:比如 Class.forName("Student").newInstance()
- 用工厂方法或建造者模式:比如 Student.builder().name("张三").build()
- 调用 clone() 方法(前提是类实现了 Cloneable)
- 反序列化:从文件或网络流中还原对象
每次实例化都独立
哪怕用同一个类 new 两次,也会在堆里生成两个互不影响的对象,各自有独立的属性值和生命周期。静态成员(用 static 修饰的)除外,它们属于类本身,所有实例共享。
基本上就这些。











