java刷题之查漏补缺(六)

来源:互联网 发布:淘宝手机版怎么看信誉 编辑:程序博客网 时间:2024/09/21 09:21
1.抽象类不一定都有抽象方法


2.Vector & ArrayList 的主要区别 
1)同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的数2。 
2)数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的50%,这样,ArrayList就有利于节约内存空间。 
如果涉及到堆栈,队列等操作,应该考虑用Vector,如果需要快速随机访问元素,应该使用ArrayList。


3.HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null,与之对应的是Hashtable,(注意大小写:不是HashTable),Hashtable不能将键和值设为null,否则运行时会报空指针异常错误;
HashMap线程不安全,Hashtable线程安全


4.一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
2)禁止进行指令重排序。
volatile只提供了保证访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器缓存该值——每次都会从内存中读取。
而对该变量的修改,volatile并不提供原子性的保证。
由于及时更新,很可能导致另一线程访问最新变量值,无法跳出循环的情况
多线程下计数器必须使用锁保护。


5.java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。


6.接口允许定义成员,但必须是常量。
原创粉丝点击