异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,
是一种常见运行错误。 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声
明抛出未被捕获的运行时异常
深拷贝和浅拷贝的区别是什么?
浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原
来的对象。换言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。
深拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而那些引用其他对象的变量将指向被
复制过的新对象,而不再是原有的那些被引用的对象。换言之,深拷贝把要复制的对象所引用的对象都复
制了一遍。
!和 "" !的联系?
//+#$是 3!" 类的一个方法返回一个哈希值如果两个对象根据 方法比较相等那么调用这两个
对象中任意一个对象的 //+#$方法必须产生相同的哈希值如果两个对象根据 方法比较不相等那
么产生的哈希值不一定相等碰撞的情况下还是会相等的
# $ 和 $ 的区别?
+#"4# 是集合类的上级接口,继承与他的接口主要有 和 5
+#"4# 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全
化等操作。
%& 和 的区别?
5 都是继承自 +#"4# 接口
5 特点:元素有放入顺序,元素可重复 , 特点:元素无放入顺序,元素不可重复(注意:元素虽
然无放入顺序,但是元素在 中的位置是有该元素的 6/+#$ 决定的,其位置其实是固定的)
5 接口有 三个 实现 类: 57$5,05 , "# , 接口 有两 个实 现类 : 6/底 层由
6/, 实现,57$6/
%% '() 和 * 的区别?
05 在内存不够时默认是扩展 281 个,"# 是默认扩展 倍。
"# 提供 $93:#!接口,05 没有。
"# 属于线程安全级别的,但是大多数情况下不使用 "#,因为线程安全需要更大的系统开销。
% '()*)+) 的存储性能和特性?
05和 "# 是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都
允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据
慢,"# 由于使用了 0"/#;$ 方法(线程安全)所以性能上比 05 要差,57$5 使用双向链
表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,
所以插入数度较快!
% ,"-. 和 ," 的区别?
//.! 同步的,而 6/, 是非同步的,效率上比 //.! 要高。
//, 允许空键值,而 //.! 不允许。
//, 去掉了 6/.!的 "# 方法,但是加上了 "#()和 "#<0()方法。
% 集合如何保证不重复?
主要是要判断 集合中是否有重复的元素,规则如下:
、判断两个对象的 //+#$ 是否相等 。
如果不相等,认为两个对象也不相等,完毕
如果相等,转入
(这一点只是为了提高存储效率而要求的,其实理论上没有也可以,但如果没有,实际使用时效率会大大
评论0
最新资源