网上找的JAVA的一些不错的总结,给大家分享分享{:2_32:}
1. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型 答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型
2 常见的runTime exception
答:ArithmeticException,(算法错误),IllegalArgumentException(不合法的参数异常),NullpointerException(空指针异常错误),ClassCastException(类型转换错误),ArrayStoreException(数组存储错误);
3.String 和StringBuffer的区别:
String 的长度是不变的,StringBuffer的长度是可变的,它们里面的实现方式不同。如果经常变化就用StringBuffer,如果最后要要变成String用StringBuffer中的toString()方法。
4.Hashtable 和hashMap 的区别:
Hashtable 是线程安全的,同步的,HashMap 不是线程安全的,HashMap可以将空值作为Key或Value值。
5.是否可以继承String类:
不可以,因为Sting类是Final类;
6.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是可继承实体类,注意:继承时父类要有一个空的构造方法。
7. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上 ?
答:witch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich
8. float型float f=3.4是否正确?
答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4或者float f=3.4f;
9. String是最基本的数据类型吗?
答:基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
10,int 与integer的区别:
答:java 提供了两种不同的数据类型,引用数据类型和,基本数据类型。Int是基本数据类型,integer是Java为int提供的封装类,Java为每个基本数据类型都提供了封装类。引用数据类型缺省值为null。而基本数据类型缺省值与它们的类型有关、
11简述一下面向对向?
答:主要从三个方面,继承,多态,封装,
1, 继承:主要是重用代码减少代码量,它提供了一种明确共性的类,对象的新类可以从这个类中派生,这个过程称为类继承。新类继承了原始类的特性,原始类称为父类,派生类称为子类。子类可以除了继承父类,还可以增加和修改父类的方法使之更适合特殊的需要。
2, 多态;多态性是指允许不同类的对象对同一消息作出响应,即执行不同的实例而执行不同的操作。多态语言具有灵活性。很好的解决了函数同名的问题。
3, 封装:提供公有的方法访问私有有的属性。
12说出一些常用的类,包,接口,请各举5个
答:常用的类:LinkList ArrayList FileReader FileWirter String Integer
常用的包:java.lang java.awt java.io java.util java.sql
常用的接口: List Map Document NodeList,runnable, Serializable
13 List、Map、Set三个接口,存取元素时,各有什么特点?
答:List 以特定次序来持有元素,可有重复元素。
Set 无法拥有重复元素,内部排序。
Map 保存key-value值,value可多值(set 要利用转成其他类才可以遍历出值,最方便的是Iterator)
14 什么是java序列化,如何实现java序列化?
答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
15垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。
可以。
程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
16 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
答:当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。 用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。 throw语句用来明确地抛出一个"异常"。 throws用来标明一个成员函数可能抛出的各种"异常"。 Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
|
|