基础篇
文章平均质量分 78
有糖哥
这个作者很懒,什么都没留下…
展开
-
面试总结之[JDK1.8新特性]
这几天面试中,问到JDK的基本都会问到有关JDK1.8的新特性,基于这点,自己简单总结了下;看到网上有个人总结了这样一句话,感觉比较通俗易懂;速度更快 – 红黑树 代码更少 – Lambda 强大的Stream API – Stream 便于并行 – Parallel 最大化减少空指针异常 – Optional1:HashMap有人会在问你HashMap的时候会问你...原创 2018-08-16 00:31:25 · 20723 阅读 · 2 评论 -
面试总结之[HashMap与HashTable区别]
面试必问的基础题就是HashMap和HashTable的区别,他设计到底层的原理和线程的安全,还有就是HashMap在JDk1.8以后有什么新变化,我自己简单总结了一下;1:时间HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2。从时间的维度上来看,HashMap要比HashTable出现得晚一些。2:Null Key & Null...原创 2018-08-16 09:56:31 · 611 阅读 · 1 评论 -
面试总结之[单例模式代码实现]
面试中很多笔试会让你写一种设计模式,并问你怎么实现的,此时就可以使用单例模式了; 单例实现由三种:1:懒汉式,也是常用的形式。public class SingletonClass{ private static SingletonClass instance=null; public static synchronized SingletonClass getInst...原创 2018-08-17 00:08:00 · 213 阅读 · 0 评论 -
面试总结之[线程]
1:什么是线程安全问题当多个线程共享一个全局变量做写操作的时候,可能会受到其他线程的干扰,导致数据有问题,这叫做线程安全问题; 注意:1:做读的时候不会产生线程安全; 2:如果是局部变量,也是做写的操作,是不会造成线程安全问题的; 2:线程如何实现同步同步:多个线程共享同一个全局变量,数据安全问题——保证数据...原创 2018-08-20 13:31:49 · 213 阅读 · 0 评论 -
面试总结之[JVM虚拟机]
1:JVM生命周期1:启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 2:运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 3:消失。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runti...原创 2018-08-21 22:37:37 · 266 阅读 · 0 评论 -
面试总结之[gc垃圾回收算法图解]
分代收集算法中堆空间被分为新生代和老年代。因为新生代中对象的存活率比较低,所以一般采用复制算法,老年代的存活率一般比较高,一般使用”标记-清理”或者”标记-整理”算法进行回收。 堆的分区展示: 新创建的对象一般放在新生代的Enden区,如下图所示。 上面对象中,绿色代表的是”存活对象”,灰色的代表的是”待回收对象”。当Enden中被使用完的时候,就会发生新生代GC,也就是Minor ...原创 2018-08-21 22:55:17 · 646 阅读 · 0 评论 -
HashMap的底层剖析
HashMap是基于哈希表的Map接口的非同步实现,Java最基本数据结构就是两种,一种是数组,一种是引用。所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。Entry就是数组中的元素,每个 ...原创 2018-08-21 23:12:49 · 142 阅读 · 0 评论 -
ArrayList底层实现原理
一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyO...原创 2018-08-21 23:18:47 · 322 阅读 · 0 评论