一、面对对象(高级)的一些知识点
1. 类变量(静态变量)2. 类方法(静态方法)4. 代码块
1)基本介绍2)例子3)使用细节 6. final关键字 二、抽象类
1. 简单介绍2. 原则3. 实践-模板设计模式 三、接口
1. 快速入门例子2. 基本介绍3. 应用场景
一、面对对象(高级)的一些知识点 1. 类变量(静态变量)
内存分析
第一种说法是静态变量count是放在堆中的引用对象
第二种说法是静态变量是放在方法区的静态域中的对象
在jdk8以前第二种说法正确,在jdk8及之后就是第一种说法(static变量保存在Class实例的尾部,在堆中)正确了。
2)例子
3)4)例子
为什么不能在构造器中赋值呢?
【答】:静态变量是在类加载的时候被调用的,如果当前类根本不创建对象,就不会调用构造器,这样的话静态变量就一直没有值,所以是错误的。
那为什么系统不给它初始值呢?
【答】:final修饰的变量只能赋值一次,并且不能再改!所以系统不再提供默认值,必须手动显式赋值,这就是规则!总之就是final变量必须要显示初始化,没有默认值。
如果不加final 整个类都会被加载
抽象类本质上还是类,可以有类可以有的那些东西



