
面试题
三月泡
这个作者很懒,什么都没留下…
展开
-
ThreadLocal理解
ThreadLocal(线程变量副本)Synchronized实现内存共享。(这句话看不懂?)ThreadLocal为每个线程维护一个本地变量。采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而...转载 2018-12-02 22:31:48 · 118 阅读 · 0 评论 -
Java内存模型
java虚拟机规范中将Java运行时数据分为六种:1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间来实现的,为了线程切换后能恢复到正确的位置,每条线程都需要一个独立的程序计数器,互不影响,该区域为“线程私有”。(这个叫法有点别扭!)2.Java虚拟机栈:线程私有的,与线程生命周期相同,用于存储局部变量表,操作栈...转载 2018-12-02 22:33:05 · 83 阅读 · 0 评论 -
75道面试题解答
1、hashcode相等两个类一定相等吗?equals呢?相反呢?首先要明白什么叫两个类相等?答案是2个类的地址相等则认为对象相等,即两个类相等。先来看看hashcode是如何生成的?根据jdk的源码,并没有java的实现方式。而是在native方法里,用cpp文件即c++代码实现的。hashcode的生成策略有自增序列,随机数,内存地址等多种,最终取值根据底层算法来定。那么可以推断出来,...转载 2018-12-05 22:02:59 · 331 阅读 · 0 评论 -
面试中遇到的数据结构与算法题
1、数组问题数组是最常用的基础数据结构,它将元素保存在连续的内存中。它也是面试最喜欢的问题之一,在代码面试中你会经常听到很多关于数组的问题,例如,数组的反转、数组的排序或者查找数组中的一个元素。数组结构的一个关键优点是在知道索引的情况能够以 O(1) 的复杂度找到一个元素。但是增加或者删除一个元素是很慢的,因为一旦创建了一个数组,你就不能改变它的大小了。为了创建一个更长或者更短的数组,...转载 2019-01-03 08:59:41 · 447 阅读 · 0 评论