您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2015-09-30 11:53 309 查看
1、final、finally、finalize的区别:

(1)被声明为final类型的类不能被继承,声明的方法或变量必须初始化,只读不能修改不能重写(覆盖)。

(2)finally是异常处理语句的一部分,表示总是执行。

(3)finalize是Object类的一个方法,供垃圾收集时其他资源回收,例如文件关闭等。

2、c++和java的区别:

(1)java可实现跨平台,也就是程序移植(1次编译到处执行),c++不如java(1次编码到处编译)。

(2)java中所有方法都是virtual,除了声明为final的。

(3)java只能单继承,只能靠接口实现多继承;而c++可以有多继承。

3、重载和重写的区别:

重写必须有父类,是指子类重写父类的方法;重载是方法名相同参数类型不同。

4、Anonymous Inner Class(匿名内部类)是否可以继承其他类,是否可以实现其他接口:

匿名内部类是没有名字的内部类,不能继承其他类,但一个内部类可以实现一个内部类接口。

5、&和&&的区别:

&是位运算符,&&是逻辑运算符与

6、Collection和Collections的区别:

(1)Collections是java.util下的类,它包含各种有关集合操作的静态方法。

(2)Collection是java.util下的接口,他是各种集合结构的父类接口。

7、HashMap和Hashtable的区别:

(1)都属于Map接口的类,实现了将唯一键映射到特定的值上。

8、java中一个接口可继承多个接口,一个类可实现多个接口,但一个类只能继承一个类。

9、抽象类中含有抽象方法,只有声明,无具体的实现。

抽象类与普通类的最大的区别是:抽象类不能创建实例对象和允许有abstract方法。

10、String s = “Hello”;s = s + ” world!”;这两行代码执行后,原始的String对象中的内容到底变了没有?

string类是final类型的不能被继承也不能被覆盖,所以原始的string对象中的内容没有改变,只是指向了另一个对象”Hello World” 原来的对象仍是”Hello”,原来的对象还存在于内存之中,只是不再指向它了。

通过上面的说明,很容易看出,如果经常修改string类型的数据,就会增加内存的开销,这时应该考虑

StringBuffer,但是string类的优点就是实现多线程访问。

11、String s = new String(“xyz”);创建了几个String Object? 二者之间有什么区别?

一个或两个,

new String()一次创建一个新的对象,”xyz”对应一个对象,这个对象放在一个字符串常量缓冲区,如果之前已经存在就直接从缓冲拿,就是一个反之就是两个。

12、java中把一段用逗号隔开的字符串转换成一个数组。

string str = “a,sdf,df,df,fsg”;

string[] str2 = str.split(“,”);

13、(1)synchronized用来修饰一个代码块或一个方法,能够保证在同一时刻内最多只有一个线程执行该段代码。

(2)当一个线程访问object的一个synchronized(this) 同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

不能访问改object中的其它synchronized(this)同步代码块。

(3)一个程序至少有一个进程,一个进程至少有一个线程。

(4)一般来讲线程是最小的单位,进程是由线程组成的。

14、ArrayList 和 Vector的区别:

(1) 这两个类都实现了List接口(List接口继承了Collention接口),它们都是有序集合。

(2)ArrayList是线程不安全的,即方法之间线程不同步,Vector 是线程安全的,即方法之间是线程同步的,如果只有一个线程会访问到集合,那最好使用ArrayList,因为它不考虑线程的安全性,效率会高些;如果是多个线程访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。

15、HashMap和Hashtable的区别:

(1)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。

16、List和Map的区别:

(1)List是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;

(2)List中存储的数据时有顺序,并且允许重复的;Map中存储的数据是没有顺序的,其键是不能重复的,但是值可以重复。

17、List、Map、set三个接口,是否继承自Collection接口:

List和set是,Map不是。

18、List、Map、set三个接口存取元素时,各自有什么特点:

(1)List、set都是继承自Collection父接口,都是单列集合,List允许有重复数据,按数据先后顺序有序存储;set不允许有重复数据(即相同的对象)

(2)Map与List和set不同,是双列的集合,不能存储重复的Key。

总结:List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。

19、去掉Vector中重复的元素:

第一种:Vector

Vector newVector = new Vector();

for(int i = 0;i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: