欢迎使用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
(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
相关文章推荐
- QT5 学习之路06---QT5基本对话框3
- maven命令总结
- C#进阶系列——DDD领域驱动设计初探(六):领域服务
- 解析微信开发之搜索歌曲
- 宝贝云计划IOS端项目小结
- MVC5:使用Ajax和HTML5实现文件上传功能
- iOS关于block的内存管理
- Flatten Binary Tree to Linked List
- 转场动画CATransition
- 关于ListView中存在两个EditText焦点的解决方法
- 遍历
- 多线程的深入理解
- React Native 教程-基础教程
- codeforces 540 E. Infinite Inversions (离散化 + 树状数组)
- 爱上linux(3)-僵尸进程
- altium designer电气符号和包的常用元素
- 四则运算
- eclipse编写C/C++语言
- Web前后分离架构研发模式de演变
- Android正则表达式