Java搞不清的几个小知识
Java搞不清的几个小知识
1、构造代码块
(1)作用:给对象进行初始化,对象建立时执行,优先于构造函数执行
(2)构造代码块和构造函数的区别:
- 构造代码块是给所有不同对象的共性进行统一初始化
- 构造函数是给对应的对象进行初始化
2、Kun k = new Kun()在内存中的操作
(1)将Kun.class文件加载进内存中
(2)如果k定义在主方法中,则就会在栈空间开辟一个变量空间k
(3)在堆内存给对象分配空间
(4)对对象中的成员进行默认初始化
(5)对对象中的成员进行显示初始化
(6)调用构造代码块对对象进行初始化
(7)调用构造方法对对象进行初始化,对象初始化完毕
(8)将对象的内存地址赋值给k变量,让k变量指向该对象
3、Math类
无构造函数,方法均为静态的
4、制作API
API(全拼):Application Program Interface 应用程序编程接口。
(1)类中的内容需要用文档注释。
(2)使用JDK\bin目录下的javadoc工具。
格式:javadoc -d 目录 -author -version kun.java
5、this和super的区别
(1)this:代表本类对象的引用
(2)super:代表父类的存储空间
6、内部类只能访问被final修饰的局部变量
7、接口和抽象类的区别
(1)抽象类只能被单继承
接口可以多实现, 避免了多继承的局限性。
(2)抽象类中的数据特点:
- 成员变量:可以是变量或常量
- 成员方法:可以是抽象方法或非抽象方法
- 构造方法:有构造方法
(3) 接口中的数据特点:
- 成员变量:常量,默认修饰 public static final
- 成员方法:抽象方法,默认修饰 public abstract
- 构造方法:无构造方法
(4)
- 抽象类中定义的是继承体系中的共性功能
- 接口中定义的是继承体系中的扩展功能