首页编程java编程java new时 发生了什么,java中new一个对象jvm做了哪些事情

java new时 发生了什么,java中new一个对象jvm做了哪些事情

编程之家2023-10-1290次浏览

大家好,关于java new时 发生了什么很多朋友都还不太明白,今天小编就来为大家分享关于java中new一个对象jvm做了哪些事情的知识,希望对各位有所帮助!

java new时 发生了什么,java中new一个对象jvm做了哪些事情

java里的new到底是什么意思

在Java中,new关键字被使用来创建一个新的对象,可以理解为创建的意思。

使用关键字new来创建一个对象也叫类的实例化,使用new创建对象时,会调用构造方法初始化对象。例如:

Object referenceVariable= new Constructor();/*实例化对象*/

java new时 发生了什么,java中new一个对象jvm做了哪些事情

可以通过已创建的对象来访问成员变量和成员方法:

referenceVariable.variableName;/*访问类中的变量*/

referenceVariable.methodName();/*访问类中的方法*/

java new时 发生了什么,java中new一个对象jvm做了哪些事情

扩展资料

new关键字创建对象的过程介绍

1、将类加载到方法区

JVM首先会检查这个new指令的参数能否在常量池中定位到一个类的符号引用;如果找不到就将该类加载到方法区并经过解析和初始化等步骤,计算实例化对象所需要的内存;为类的静态变量赋予正确的初始值。

2、在堆中开辟一块内存用于存储新创建的对象

将类实例化出一个新的对象,根据类加载时计算所需的内存大小;在堆中开辟一块内存,用于存储新对象的成员属性和方法区地址的引用。成员方法引用指向方法区中该对象对应的方法。

3、在栈中创建指向对象的引用

在栈中创建一个栈针,用于指向堆中创建的对象。

在java中new的用途是什么

java中new关键字的作用就是在你声明了一个对象后,给对象分配相应内存。强类型,较高效。能调用任何public构造。

创建对象,实例化对象;

实例化对象,赋予对象空间,即堆内存地址;

调用构造函数;

比如当我们创建一个对象:Studentstu= new Student();在这里的new具体作用为:

首先要明确stu是父类的一个引用,没有实际在堆中分配空间。

其次new Student()的作用了:new是在堆中为对象stu申请了一块空间。其中new也实际上是在调用了父类的构造方法。

java中,什么时候需要new来实例化

(1)同一个对象在不同时刻体现出来的不同状态。

(2)多态的前提:

A:有继承或者实现关系。

B:有方法重写。

C:有父类或者父接口引用指向子类对象。

多态的分类:

a:具体类多态

class Fu{}

class Zi extends Fu{}

Fu f= new Zi();

b:抽象类多态

abstract class Fu{}

class Zi extends Fu{}

Fu f= new Zi();

c:接口多态

interface Fu{}

class Zi implements Fu{}

Fu f= new Zi();

(3)多态中的成员访问特点

A:成员变量

编译看左边,运行看左边

B:构造方法

子类的构造都会默认访问父类构造

C:成员方法

编译看左边,运行看右边

D:静态方法

编译看左边,运行看左边

为什么?

因为成员方法有重写。

(4)多态的好处:

A:提高代码的维护性(继承体现)

B:提高代码的扩展性(多态体现)

(5)多态的弊端:

父不能使用子的特有功能。

现象:

子可以当作父使用,父不能当作子使用。

(6)多态中的转型

A:向上转型

从子到父

B:向下转型

从父到子

java中new一个对象jvm做了哪些事情

new一个对象的时候JVM都做了哪些事情:

一、之前没有进行类加载

1、类加载,同时初始化类中静态的属性(赋默认值)

2、执行静态代码块

3、分配内存空间,同时初始化非静态的属性(赋默认值)

4、调用父类构造器

5、父类构造器执行完后,如果自己声明属性的同时有显示的赋值,那么进行显示赋值把默认值覆盖

6、执行匿名代码块

7、执行构造器

8、返回内存地址

java中new一个对象的时候JVM都做了哪些事

关于本次java new时 发生了什么和java中new一个对象jvm做了哪些事情的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

java 线程是什么 java线程是什么java中i什么意思是什么意思(java 中+i+ 是什么意思)