-
java的数据类型有哪些?
基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。
java的数据主要包含两种:基础数据类型和引用数据类型
基础数据类型分为:整型(byte、short、int、long),浮点型(float、double),字符型(char),布尔型(boolean)
引用数据类型分为:数组,类,接口
补充:
包装类型是对基本数据类型不足之处的补充。
基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法。
2. java 面向对象的基本特征是什么?
封装 、继承 、多态 、抽象
(1)封装:
给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改
(2)继承:
继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。
(3)多态:
多态是允许一个接口被多个同类动作使用的特性,具体使用哪个动作与应用场合有关。多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。编程中实际理解为给不同的底层数据类型做相同的接口。
(4)抽象:
抽象就是将一类实体的共同特性抽象出来,封装在一个新的概念(类) 中,所以抽象是面向对象语言的基础。Java 支持创建只包含接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开,因此,要根据他们的功能而不是实现细节来创建类。
3. 重载和重写的区别是什么?
4. 抽象类和接口有什么区别?
(1)接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的。
(2)实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
(3)接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
5. 集合之间的区别
6. 线程的创建方法有哪些?
(1)继承Thread类
(2)实现Runable接口
(3)使用 Executor 框架
7. final, finally 和 finalize 有什么不同?
final用于申明方法、属性、类,表示类不可继承,方法不能重写,属性不能修改
finally是异常处理的一个结构,表示总是执行
finalize是object的一个类,在垃圾收集器执行的时候会调用这个对象回收的方法,工垃圾收集时其他资源的回收,比如关闭文件。
8. Iterator 和ListIterator 的区别是什么?
(1)Iterator 用来遍历 Set 和 List 集合,而 ListIterator 只能遍历 List;
(2)Iterator 只可以向前遍历,而 LIstIterator 可以双向遍历;
(3)ListIterator 从 Iterator 接口继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。
9. 什么是CG,作用是什么?
GC(Garbage Collection)是垃圾收集的意思,负责清除对象并释放内存。Java 提供的 GC 功能可以自动检测对象是否超过作用域从而达到自动回收内存的目的,从而防止内存泄漏。
10. java的反射机制
在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。