JAVA面试题——JAVA基础篇
1、JAVA多态的实现方式:继承、重载、覆盖
2、JAVA有8种基本数据类型:byte、short、int、long、float、double、boolean、char
3、final、finally、finalize的区别:
final:修饰符,如果一个类被声明为final,则意味着它不能再派生出新的子类。一个类不能既声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不能修改。被声明为final的方法也同样只能使用,不能重载。
finally:异常处理中,最后必须执行的部分。
finalize:finalize()方法是在垃圾收集器删除对象之前对这个对象的调用。
4、&与&&的区别:&是位运算符,&&是布尔逻辑运行符。
5、HashMap和HashTable的区别:
都属于Map接口的类,实现了将唯一键映射到特定的值上。
HashMap类没有分类或者排序。它运行一个null键和多个null值。
HashTable类似于HashMap,但是它不运行null键和null值。它也比HashMap慢,因为它是同步的。
6、面向对象的特征有哪些方面:
抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象包括两个方面,一是过程抽象,二十数据抽象。
继承:
封装:封装是把过程和数据包围起来。
多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好地解决了应用程序函数同名问题。
7、error和exception的区别:
error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
8、String和StringBuffer的区别:
JAVA平台提供了两个类:String和StringBuffer,它们可以存储和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
9、运行时异常与一般异常有何异同:
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
一分耕耘一分收获