您的位置:首页 > 编程语言 > Java开发

讲师笔记,Java基础学习之路之day09——静态(代码块),类加载,创建对象过程

2018-05-30 23:46 525 查看
使用面向对象的思想进行程序设计和开发
不会简化开发 会使代码量增多  更接近现实逻辑
高内聚低耦合
--------------------------------------------
static 静态
1.当该类被加载时就存在了
2.优先于对象存在的
3.被所有对象共享
4.可以直接被类名调用 ,也可以通过对象名去调用

静态变量(类变量)  和 成员变量 区别
存放位置
静态变量随着类的加载而存在于方法区中
成员变量随着对象的创建而存在于堆内存中
生命周期
静态变量的生命周期与类有关,类存在就存在,类消失就消失
成员变量的生命周期与某个对象有关。对象消失就消失

静态也能修饰方法
成员方法内可以直接访问静态变量和静态方法
静态方法内不可以直接访问成员方法和属性
this不可以使用在静态方法中

什么时候定义静态变量?
当final 和 static 同时修饰一个属性时,这个属性叫做常量
对于常量,每个字母都要大写
eg:  public static final double  PI = 3.14;
什么时候定义静态方法?
在一个系统中,可以被当做工具使用的功能可以用静态方法
eg:   Math.pow(a,b);

静态代码块:
类加载的时候被执行,只能被执行一次
static{}

什么情况能导致类加载:
1.执行main方法时,main方法所在的类加载
2.创建对象的时候,对象对应的类被加载
3.调用类A.静态变量/静态方法时,类A会被加载
4.Class.forName("包名.类名");

创建对象的过程:
1.类加载:  将.class文件加载到内存中
1)产生静态变量,并且给静态变量初始化
2)执行静态代码块
2.在堆内存中开辟空间产生对象
3.产生对象的属性,并且给属性初始化
4.执行代码块
5.执行构造方法
类加载的过程只会执行一次,后面步骤在每次创建对象时都会执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐