new的含义解析

        一、Java中创建一个对象,例如 Person person = new Person("小明",18);这短短的一行代码,我们接下来对此进行解析;

1.声明:将变量名称与对象类型关联的变量声明;

        Perrson person 的含义是使用person引用一个Person类型的对象,其初始值待定,直到通过new创造了一个对象并分配给它。这里知识简单的声明一个引用变量而并没有创建一个对象。

2.实例化:new关键字是一个java运算符,通过它来创建对象;

        new运算符实例化一个类对象,通过给这个对象分配内存并返回一个指向该内存的引用。new运算符也调用了对象的构造函数。由new运算符返回的引用可以不需要被赋值给变量。它也可以直接使用再一个表达式中。例如:int age = new Person.age;

3.初始化:new运算符,随后调用构造函数,初始化新创建的对象;

总结:

1.Java关键字new是一个运算符。与+、-、*、/等具有相同或者类似的优先级

2.创建一个Java对象需要三步:声明引用变量,实例化,初始化对象实例

3.实例化:就是"创建一个Java对象"----分配内存并返回指向该内存的引用

4.初始化:就是调用构造方法,对类的实例数据赋初始值

        二、Java在new一个新对象的时候内存中发生了什么?

Java在new一个对象的时候,经过以下步骤:

        1.首先是JVM虚拟机编译对象所在的class文件,将class文件放入方法区中

        2.JVM虚拟机读取main方法的入口,将main方法入栈,执行创建对象的代码,如Person p = new Person();

        3.在main方法所在的栈内存中分配引用 p

        4.在堆内存中分配内存,将创建的Person对象方法堆内存;

        5.将栈中的引用变量 p,指向Person对象;

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值