讲师笔记,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.执行构造方法
类加载的过程只会执行一次,后面步骤在每次创建对象时都会执行
不会简化开发 会使代码量增多 更接近现实逻辑
高内聚低耦合
--------------------------------------------
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.执行构造方法
类加载的过程只会执行一次,后面步骤在每次创建对象时都会执行
相关文章推荐
- java学习笔记16:this关键字的本质、对象创建过程的四步、static关键字
- JAVA基础--类加载&对象创建过程
- 讲师笔记,Java基础学习之路之day11——多态,动态绑定,抽象类,接口,final,设计模式
- 【Java学习笔记】创建对象时类的加载顺序——基于Java SE8
- 讲师笔记,Java基础学习之路之day20——Collection,Collections,IO流
- 讲师笔记,Java基础学习之路之day22——打印流,随机流,Properties
- Java学习之对象的创建过程与类加载
- JNI学习笔记4——本地代码创建Java对象(包括javaString)
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- 零基础学习java日记第十二天 常量 对象的创建过程 访问控制符 接口
- JNI学习笔记4——本地代码创建Java对象(包括javaString)
- 讲师笔记,Java基础学习之路之day18——List接口实现类
- JAVA基础--类加载&对象创建过程
- 讲师笔记,Java基础学习之路之day21——IO流的方法
- 讲师笔记,Java基础学习之路之day17——集合类,ArrayList
- 讲师笔记,Java基础学习之路之day13——权限符,Object常用方法,包装类,字符串
- 讲师笔记,Java基础学习之路之day29——代理模式,模板模式
- 学习笔记—java中对象创建在虚拟机中的过程
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- java加载类创建对象的过程以及静态代码段的执行时机