我们常常在Java学习中,听到别人调侃程序员:"没对象了怎么办,简单呀,"new"一个对象"。看似是一个调侃其实是有道理的,关于"new"关键字的详情请看下面一段示例:
class Student{
private String name="林青霞";
private int age =27;
public Student(){
name="小狗子";
age=19;
}
public void show(){
System.out.println(name+"-------"+age);
}
}
public class StudentDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s=new Student();
s.show();
}
}
在本例中 Student s=new Student(); 的作用就是
1.加载Student.class文件进内存。
2.在栈内存为s开辟空间
3.在堆内存为学生对象开辟空间
4.对学生对象的成员变量进行默认初始化
5.对学生对象的成员变量进行显示初始化
6.通过构造方法对学生对象进行成员变量赋值
7.学生对象初始化完毕,把对象变量赋值给s变量
说这么多,总结下来就是:
1.Java关键字new是一个运算符。与+、-、*、/等运算符具有相同或类似的优先级。
2.创建一个Java对象需要三部:声明引用变量、实例化、初始化对象实例。
3.实例化:就是“创建一个Java对象”-----分配内存并返回指向该内存的引用。
4.初始化:就是调用构造方法,对类的实例数据赋初值。
关于"new"关键词对对象内存的分布深入解析请参考:https://blog.csdn.net/ljheee/article/details/52235915
oracle官方解释网址:https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html