下文笔者讲述java中new关键字的功能简介说明,如下所示
new关键字的简介
User user = new User("maomao",18); //以上代码实现四个功能 1. 声明(Declaration): 将变量名称与对象类型关联的变量声明 User user告诉编译器将使用user引用一个User类型的对象 其初始值将待定,直到有一个对象真正被创造和分配给它。这里只是简单地声明一个引用变量而并没有创建一个对象 2. 实例化(Instantiating): new关键字是一个java运算符,它用来创建对象 new运算符实例化一个类对象 通过给这个对象分配内存并返回一个指向该内存的引用 由new运算符返回的引用可以不需要被赋值给变量 它也可以直接使用在一个表达式中。例如: int age = new Person().age; 3. 初始化(Initialization): new运算符,随后调用构造函数,初始化新创建的对象 每个构造函数都允许你为矩形的起始值、宽度和高度提供初始值 同时使用原始类型和引用类型 如果一个类有多个构造函数,它们必须有不同的签名。java编译器区分构造函数基于参数的数量和类型从以上的定义代码,我们可以得出以下结论
1.Java关键字new是一个运算符 和 +、-、*、/ 等运算符具有相同或类似的优先级。 2.创建一个Java对象分为以下三个步骤:声明引用变量、实例化、初始化对象实例。 2.1 实例化:“创建一个Java对象”-----分配内存并返回指向该内存的引用。 2.2 初始化:调用构造方法,对类的实例数据赋初值。 5.Java对象内存布局:包括对象头和实例数据。 对象头:它主要包括对象自身的运行行元数据 如: 哈希码、GC分代年龄、锁状态标志等;同时还包含一个类型指针,指向类元数据,表明该对象所属的类型。 实例数据: 它是对象真正存储的有效信息 包括程序代码中定义的各种类型的字段(包括从父类继承下来的和本身拥有的字段) 在hotSpot虚拟机中,对象在内存中的布局可以分成对象头、实例数据、对齐填充三部分
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。