抽象类可以有抽象方法,和普通方法、还可以包含普通类成员的一切成员。下面就由就爱阅读小编为大家介绍一下2017JAVA经典基础面试题的文章,欢迎阅读。
2017JAVA经典基础面试题篇1
1、基本数据类型
数值型:byte 、short、int、long(浮点类型:double float)
字符型:char
布尔值:boolean
2、标识符的命名规则?
字母,数字、下划线或者美元符号组成!
首字母不能以数字开头
不能用关键字,布尔值 ,null
区分大小写,没有长度限制,坚持见名知义的原则!
3、引用数据类型
String 类、接口、数组
4、抽象类和接口的区别?
抽象类可以有抽象方法,和普通方法、还可以包含普通类成员的一切成员。
接口里面全部是静态常量、一个类只能继承一个抽象类。一个类可以实现多个接口!简单来说,
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,
最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承
2017JAVA经典基础面试题篇21、重写和重载?
重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型无关
重写是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同!
2、string stringbuff stringbuding区别
在单机非多线程(Multithread)的情况下使用StringBuilder会有较好的效率,因为StringBuilder没有处理同步(Synchronized)问题
StringBuffer则会处理同步问题,如果StringBuilder会在多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。
3、集合类?
Java的集合类主要有Map接口和Collection接口派生
Collection是集合类的一个顶级接口,其直接继承接口有List与Set
list集合继承Collection接口,是有序接口!List中允许重复的元素,也就是说List是一组不唯一,有序的对象!
list接口的实现类有arrayList和LinkedList.
arraylist内存分配连续的空间 善于查找比较快!
LinkedList采用链表,删除和插入效率比较高!
ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.
LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.
Set
set接口可以存储一组唯一。无序的对象
set的实现类有hashSet
hashSet的优点是集合的元素是无序的排列、允许集合的元素为null,查找效率高!
Map是一组键值对(key、value)
key不要求有序,不允许重复
value不要求有序,但允许重复的!
优点在与查询指定的元素比较高!
2017JAVA经典基础面试题篇31、Hashmap 和hashtabie的区别
1)继承与实现的不同
HashTable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)
2)线程安全不同
HashTable的方法是同步的,HashMap的方法是未同步的。
3)对null的处理不同
HashTable不允许null值的存在,HashMap允许null值的存在
2、final, finally, finalize的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
3、char型变量中能不能存贮一个中文汉字?为什么?.
可以啊。JAVA默认的编码是unicode
4、静态变量和实例变量的区别?
静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。