面向对象和面向过程的区别?
面向过程编程以实现功能的函数开发为主,而面向对象,首先要抽象出类、属性及其方法。然后通过实例化类、执行方法来完成功能。
都具有封装性,但是面向过程封装的是功能,而面向对象封装的是数据和功能。
面向对象具有继承和多态性,而面向过程没有,这是面向对象编程的优势。
对象和类的关系是?
类是抽象的,对象是具体,对象是类抽象概念的实物表达。
堆和栈。
栈的特点是先进后出。在函数中定义的一些基本类型变量和对象的引用变量都在函数的栈内存中分配。
堆内存的特点是:堆内存中有内存地址,都是将内存的地址赋值给引用变量,堆内存变量无用后有垃圾回收机制自动回收,堆内存会自动初始化。堆内存存放引用数据类,以及new出来的对象都存放在堆内存中。
数据的初始值。
- 整型数据的初始值是0
- 浮点数据的初始类型是0.0
- 引用数据类型的初始值是null
- boolean类型的初始值为false
- char类型的初始值为 ‘\u0000’
包管理的作用是?
解决类之间的重名问题,为了便于类的管理,合适的类放在合适的包中。
- 小知识点
- import导入的是相关包中的类
- import * 不会降低程序的运行速度,会降低程序的编译速度
- java项目的API如何生成
javadoc x.java生成x的API文档 - 内聚是指内部程序之间各个模块的紧密程度
- 耦合是指外部程序之间的紧密程度
- prvite public protected default之间的权限访问 private < default < protected < public
继承的作用是?
继承的本质是抽象,类是对对象的抽象,继承是对类的抽象。
为了提高代码的复用性。
什么是向上转型,什么又是向下转型?
向上转型是指父类的引用指向子类的对象
向下转型是将父类的引用转换为真实的子类对象
final的作用?
final修饰的变量不可以变,即常量
final修饰的方法不能被子类重写
final修饰的类是最终类(String就是final修饰的类)
final修饰的方法不能被重载和重写
抽象类和接口类的区别。
- 抽象类和接口都不能被new
- 抽象类只能被单继承 接口类可以多实现
- 抽象类中不一定有抽象方法 可能有普通方法 接口类种只有抽象方法