面向对象编程(oop)
Java是一个支持并发、基于类和面向对象的计算机程序开发语言。面向对象软件开发的特点:
- 代码模块化开发,更易于维护和修改
- 代码可复用性
- 增强代码的可靠性和灵活性
- 增强代码的可理解性
static修饰的成员变量或者成员方法可以在所属类没有被实例化的情况下直接调用。不能,覆盖是基于运行时动态绑定的,而static方法是在编译时静态绑定的。
什么是自动拆装箱?
自动装箱是java在编译的时候将int类型转换成其对应的对象包装类型之间的一个转化。如int转integer等,反之则是自动拆箱。
override和overloading的区别?
重载是同一个类里面有多个相同的方法名,但是参数不同。相反重写是子类重新定义父类的方法,参数列表、个数和返回类型要一致。
java集合类中最基本的几个接口:
Collection:代表一组对象,每一个对象都是它的子元素。
Set:不包含重复元素的Collection
List:有顺序的Collection,并且可以包含重复元素。
Map:可以把key映射到value上,key不能重复。
Array和ArrayList的区别,什么时候使用?
- Array可以包含基本数据类型和对象,ArrayList可包含对象类型
- Array是固定长度,而ArrayList则是动态变化的
- Arraylist提供了更多的方法,如addAll(),removeAll(),remove();
- 对于基本数据类型,集合通过自动装箱来提高代码编译效率,但是处理固定大小的基本数据类型时这种方法就无法提高效率。