Java 面试题集合
来源:互联网 发布:ff14捏脸数据 编辑:程序博客网 时间:2024/05/19 16:49
HashMap的数据结构:键值存储在数组列表中, 然后对map值, 散列到键值对应的链表中。 LinkedHashMap的区别是存放键值的数据结构是链表。HashTable的存储结构和HashMap的存储结构类似, HashTable是线程安全而已。
请描述下TreeSet怎么存储数据, 它是怎么实现排序的?
TreeSet是将数据存储在红-黑树数据结构中(一种二叉树),TreeSet的插入顺序是由于生成是传入comparator决定的。 默认的comparator是elment的自然顺序
请描述下ClassLoader是怎么工作的?
已答!
请谈一下你对gc的理解?
synchronized和lock的区别:
JDK 官方文档中提到:
ReentrantLock是“一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。
ReentrantLock 将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查此情况是否发生。 ”
简单来说,ReentrantLock有一个与锁相关的获取计 数器,如果拥有锁的某个线程再次得到锁,那么获取计数器就加1,然后锁需要被释放两次才能获得真正释放。这模仿了 synchronized 的语义;如果线程进入由线程已经拥有的监控器保护的 synchronized 块,就允许线程继续进行,当线程退出第二个(或者后续) synchronized 块的时候,不释放锁,只有线程退出它进入的监控器保护的第一个 synchronized 块时,才释放锁。
ReentrantLock 类(重入锁)实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性 能。(换句话说,当许多线程都想访问共享资源时,JVM 可以花更少的时候来调度线程,把更多时间用在执行线程上。)
- JAVA面试题集合
- Java 面试题集合
- Java面试题集合
- Java集合面试题
- java集合面试题
- Java集合面试题
- java集合面试题
- java集合面试题
- Java集合---面试题
- java 集合面试题
- Java 集合面试题
- Java面试题-集合
- Java集合---面试题
- Java集合---面试题
- java 集合面试题
- java集合面试题
- Java面试题集合
- Java集合面试题
- shell-011: gquestionaire
- C#--第七周实验--任务1--创建物体类PhysicalObject,通过其私有字段来存放重量和体积,通过公有方法判断该物体是否会在水中下沉
- 摄氏温度转换华氏温度
- statusbar 透明或者半透
- 关于vs 调试无法进入类库
- Java 面试题集合
- 硬链接(hard link)和符号连接(symbolic link)的区别
- phpmyadmin无法加载mcrypt的解决方法
- 基于linux内核SPI子系统工作机制
- iPhone开发之—守护进程和前台进程之间的通信
- SSL安全证书避免启动输入Enter PEM pass phrase
- c++第二弹
- TE布氏硬度图像自动测量仪
- _T与L 的作用