栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java的初始化和执行顺序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java的初始化和执行顺序

首先,要理解什么是初始化。

所谓初始化,就是把变量赋予默认值。

也就是当程序员没有给变量赋值的时候,java赋予其默认值。

(eg:比如没写构造方法,java默认了一个空的构造方法一样。这叫默认初始化而若写了构造方法,则叫显示初始化。虽这里举例是构造方法,但属性亦然。

比如你int a; String b; 没赋值,默认初始化为0和null,赋值了则为显示初始化。但其具体的执行顺序则如下)

下面写目前所学习和知道的执行顺序:

1.new了某类的新对象的时候,某类先出现存在,故第一步先把某类从硬盘上加载到内存;

2.第二步执行static静态代码块(因为其随着类加载就开始执行了);

3.静态成员(static静态属性和方法)和普通方法也加载进来;

(是加载,执行不执行要看是否调用)

4.在堆内存中为某类new的对象内容开辟一块区域,并为其分配内存地址;

5.在堆内存里建立对象的特有属性,并对特有属性默认初始化;

6.对属性进行显示初始化;

7.执行构造代码块,对某类的所有对象初始化;

8.执行对应的构造方法,对特定对象进行初始化(未赋的默认初始化,赋了的显示初始化);

9.把某类的特定对象的内存地址给对象名;

(这就是之前说的为什么栈区索引目录,堆区内容的缘由;对象名就是对应一个内存地址

eg.  Person one=new Person();

one是对象,one在栈里的,它在栈里的只是一个名,有个内存地址对应着,才能通过one的名访问堆里的one的特有内容。为什么说特有,因为有static的存在(若不懂参考《javaSE之static关键字之共享数据》))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号