面试题
曦之阳
Enjoy life.
展开
-
Map集合的实现类(HashMap、Hashtable、TreeMap...)
HashMap:线程不安全、运行效率快、允许使用null作为key或value;Hashtable:线程安全、运行效率慢、不允许使用null作为key或value;Properties:Hashtable的子类,要求key和value都是String类型,通常用于配置文件的读取;TreeMap:实现了SortedMap接口,可以对key自动排序,key需要实现Comparable接口。...原创 2020-08-16 11:02:50 · 181 阅读 · 0 评论 -
ArrayList、Vector和LinkedList的区别
ArrayList:数据结构实现,查询速度快,增删速度慢,线程不安全;Vectory:数据结构实现,查询速度快,增删速度慢,线程安全;LinkedList:链表实现,增删速度快,查询速度慢,线程不安全。原创 2020-08-16 10:45:08 · 97 阅读 · 0 评论 -
什么是死锁?
死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。锁的发生必须具备以下四个必要条件:1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了...原创 2019-12-12 13:56:24 · 268 阅读 · 0 评论 -
什么是线程安全?
线程安全主要是指多个线程对同一个对象中的同一个实例变量进行操作时不会出现值被更改、值不同步的情况,进而影响程序的执行流程。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。...原创 2019-12-12 13:39:41 · 376 阅读 · 0 评论 -
StringBuffer和StringBuilder区别是什么?
StringBuffer是线程安全的,而StringBuilder是非线程安全的。 StringBuilder速度比StringBuffer更快 StringBuffer是JDK1.0就有的,而StringBuilder是JDK1.5才出现的 StringBuffer有一个字段toStringCache,用于缓存字符串,每次调用toString()方法会直接使用缓存区的 toStringCa...原创 2019-12-12 13:25:00 · 173 阅读 · 0 评论