
ArrayList
和 Vector
都是使用数组方式存储数据,此数组元素数大于实际存
储的数据
以便增
加和插入
元素,它
们都允
许直接按
序号索引
元素,
但是插入
元素要涉及数组元素移动等内存操作,
所以索引数据快而插入数据慢,
Vector
由于使
用了
synchronized 方
法(线
程安全
)
,通常
性能
上较
ArrayList 差,
而
LinkedList 使用双向链表实现存储,
按序号索引数据需要进行前向或后向
遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
9
、Coll
ection
和 Colle
ctions
的区别。
Collection 是集合类的上级接口,
继承与他的接口主要有
Set 和
List.
Collections
是针对集合类的一个帮助类,他提供一系列静态方法实现对各
种集合的搜索、排序、线程安全化等操作。
10
、&
和&&
的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示
逻辑与(
and)
。
11
、Hash
Map
和 Hasht
able
的区别。 HashMap 是 Hashtable 的轻量级实现
(非线程安全的实现)
,
他们都完成了
Map 接口,
主要区别在于
HashMap 允许
空(
null)键值(
key)
,由于非线程安全,效率上可能高于
Hashtable。
HashMap
允许将 null
作为一个 entry
的 key
或者 value
,而 Hashtable
不允
许。
HashMap
把 Hashtable
的 contains
方 法 去 掉 了 , 改 成 containsvalue
和
containsKey
。因为 contains
方法容易让人引起误解。
Hashtable
继承自
Dictionary
类,而 HashMap
是 Java1.2
引进的 Map interface
的一个实现。
最
大
的
不同
是
,
Hashtable 的
方
法
是
Synchronize 的
,
而
HashMap 不
是,
在
多个
线
程
访问
Hashtable 时
,
不需
要
自
己为
它
的
方
法实
现
同
步,
而
HashMap
就必须为之提供外同步。
Hashtable
和 HashMap
采用的 hash/rehash
算法都大概一样,所以性能不会
有很大的差异。
12
、fin
al, fi
nally,
final
ize
的区别。
final 用于声明属性,方法和类,
分别
表
示属
性
不可
变
,方
法
不可
覆盖
,
类不
可
继承
。
finally 是
异常
处
理语
句结
构
的
一部
分
,
表示
总
是执
行
。
finalize 是
Object 类的
一
个
方法
,
在垃
圾收集器
执行的
时候会调
用被回收
对象的
此方法,
可以覆盖
此方法
提供垃圾
收集时的其他资源回收,例如关闭文件等。
13
、sle
ep()
和 wait() 有什么区别? sleep 是线程类(Thread)的方法,导
致此线程
暂停执
行指定时
间java基础书籍 知乎;,给执
行机会
给其他线
程,但是
监控状
态依然保
持,
到
时
后会
自
动
恢复
。
调用
sleep 不
会释
放
对
象锁
。
wait 是
Object 类
的
方法,
对此对象调用
wait 方法导致本线程放弃对象锁,
进入等待此对象的等
待锁定池,只有针对此对象发出
notify 方法(或
notifyAll)
后本线程才进
入对象锁定池准备获得对象锁进入运行状态。
14
、Ov
erload
和 Ove
rride
的区别。
Overloaded 的方法是否可以改变返回值
的类型
?
方法的
重写
Overriding 和
重载
Overloading 是
Java 多
态性
的不同
表现
。重
写
Overriding 是父类与子类之间多态性的一种表现,
重载
Overloading 是一
个类中多
态性的
一种表现
。如果在
子类中
定义某方
法与其父
类有相
同的名称
和参数,我们说该方法被重写
(Overriding)。子类的对象使用这个方法时,
将调用子
类中的
定义,对
它而言,
父类中
的定义如
同被
“屏
蔽
”了
。如果在
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/25401.html