Java构造方法及程序生命周期

import java.util.Random;
/*
*Java生命周期
*   当编写一个Java文件,经编译后生成一个class文件,Java虚拟机能识别class文件,Java生命周期就是class文件从加载到消亡的过程
*   分为 加载、连接、初始化、使用、类卸载5个过程
*   1、加载
*       在源class文件中找到类的信息将其加载到方法区中,在堆中实例化一个java.lang.Class对象,作为方法区中这个类的信息入口
*   2、连接
*       连接一般是在加载和初始化阶段交叉进行
*       (1)验证:确定该class文件语法规范无错
*       (2)准备:按顺序为static修饰的成员变量和语句块分配内存,并设置默认初始值
*               main()方法是静态方法,它和类一起加载
*       (3)解析:把常量池中的 符号引用 转换为 直接引用 ,就是JVM将所有类或接口名、字段名、方法名转换为具体的内存地址(包括加载main方法)
*   3、初始化
*       将静态变量(类变量)赋值的过程,只有static修饰的才能被初始化
*   4、使用(main方法执行过程,main方法中局部变量在初始化阶段赋默认值,使用时才进行赋值)
*           方法是在栈里面执行,调用哪个方法,将该方法压栈,用完弹栈。main方法执行时最开始将main方法压入栈底,
*           等待方法体中所有操作执行完,弹栈,程序周期结束。
*       (1)对象实例化:执行构造方法的内容如果该类存在父类则JVM会显示或隐式的先执行父类的构造方法,在堆中为父类的实例变量开辟空间
*           并赋予默认初始值,然后根据自身类中构造方法赋值给自身的实例变量。然后引用变量获取对象的首地址,通过操作对象来调用实例变量和方法
*       (2)垃圾收集:当对象不再被引用时,被虚拟机标记上垃圾记号,在堆中等待GC回收
*       (3)对象终结:对象被GC回收后,对象不再存在
*   5、类卸载
*       生命周期走到最后一步,程序中你不在有该类的引用,该类也被JVM执行垃圾回收,结束
* */

/*
* 编译器功能:把代码编译成class文件,以及检查代码的语法;
*   如果类中没有构造方法,编译器则默认创建一个公共的无参构造
*   为static修饰的成员变量分配内存,并设置默认初始值
* 构造方法:
*   作用:创建当前类的实例化对象,初始化成员属性
*   初始化:赋值
*   静态变量初始化:类加载阶段(main方法执行之前)
*   如果不定义构造方法,JVM默认创建公共的无参构造
*   若定义了构造方法(有参/无参),JVM不会默认创建构造方法
*   构造方法默认:公共的,静态的,无返回值,方法名和类名相同
*   声明时不加static,
*   语法:[权限控制修饰符] 类名(参数列表){方法体}
*   构造方法可以重载,根据需求重载
*
* 方法的目的:代码重用性,提高代码效率
* 方法名命名:字母数字下划线美元符号,不能以数字开头,不能使用关键字和保留字,见名知意,驼峰命名
*
* 成员方法可以和类名相同(也就是构造方法)
* 区分:看返回值,构造方法没有返回值,成员方法必须要返回值,如果没有用void表示
*
* */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值