每日一道面试题
K_Crazy_Young
菜鸟一枚
展开
-
ArrayList的底层原理
一:ArrayList数据结构底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。如图:二:ArrayList源码分析public class ArrayList<E> extends AbstractList<E> implements List<E>...原创 2019-05-20 16:40:11 · 770 阅读 · 0 评论 -
TreeMap 底层原理
目录一:TreeMap的基本概念:二:源码解析一:TreeMap的基本概念:TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMap可以对添加进来的元素进行...原创 2019-06-04 19:57:39 · 1551 阅读 · 0 评论 -
HashSet底层原理
目录一:概述二:HashSet的实现一:概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。二:HashSet的实现对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比较简单,相关...原创 2019-06-03 20:22:11 · 253 阅读 · 0 评论 -
常见面试题
目录1.HashMap的实现原理,hash冲突如何解决2.ArrayList与LinkedList的区别3.知道哪些索引4.什么情况下索引失效5.redis有哪些数据类型6.线程的生命周期1.HashMap的实现原理,hash冲突如何解决HashMap本质是一个数组,数组的每一项是一个链表,而链表的每一项就是一个entry。通过hash算法对key进行计算,然...原创 2019-06-14 15:51:34 · 120 阅读 · 0 评论 -
Java虚拟机(二)- 常用JVM命令参数象
一、如何使用在Run Configurations设置里,找到VM arguments空白部分就可以设置虚拟机参数二、常用的虚拟机参数(1)-Xms20M表示设置JVM启动内存的最小值为20M,必须以M为单位(2)-Xmx20M表示设置JVM启动内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般...原创 2019-05-29 14:16:04 · 146 阅读 · 0 评论 -
Java虚拟机(一)- Java内存区域及对象
目录一、前言二、对象创建三、对象定位方式一、前言Java虚拟机(JVM)内部定义了程序在运行时需要使用到的内存区域途中黄色部分为线程共享区域,白色部分为线程私有区域。1、线程独有的内存区域(1)PROGRAM COUNTER REGISTER,程序计数器这块内存区域很小,它是当前线程所执行的字节码的行号指示器,字节码解释器通过改变这个计数器的值来选取下一条需...原创 2019-05-29 13:52:59 · 117 阅读 · 0 评论 -
数据结构 - 2-3树、B-树、B+树
目录一、2-3树二、B-树三、B+树一、2-3树2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,所有的叶子都在同一级别。另一方面,2-3树的一个内部节点确实有3个孩子,故比相同高...原创 2019-05-28 10:56:22 · 1989 阅读 · 0 评论 -
Java虚拟机(五)- 内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
目录一、内存溢出和内存泄露的区别二、并行和并发的区别三、Minor GC和Full GC的区别四、Client模式和Server模式的区别一、内存溢出和内存泄露的区别1、内存溢出内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了。2、内存泄露内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可达但无用。内...原创 2019-05-30 11:07:31 · 237 阅读 · 0 评论 -
Java虚拟机(四)- GC机制
目录一、哪些内存需要回收?二、4种引用状态三、方法区回收四、垃圾回收算法五、分代收集六、垃圾收集器七、总结八、GC日子九、触发GC的时机一、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现是,给对象中添加一个引用计数...原创 2019-05-30 11:03:32 · 183 阅读 · 0 评论 -
LinkedList底层原理
一:介绍LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,但是要查询的话只能遍历查询,因此查询的效率低下,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的syn...原创 2019-05-23 11:08:57 · 823 阅读 · 0 评论 -
Exception底层原理
一:异常的概念java异常是一种错误情况,是程序不希望出现的现象,但是由于程序本身的设计逻辑和运行的环境等因素,出现了异常的情况异常的意义:不允许程序沿着其正常的路径继续走下去,并告诉我们程序发生了什么问题。发现代异常的时机:1、程序编译期间,由编译器对代码进行编译,遇到错误会给出提示2、程序运行期间,运行时出现了不可预料的错误,会抛出异常异常的执行顺序 new一个异常对...原创 2019-05-22 21:47:01 · 967 阅读 · 0 评论 -
常见底层面试题
目录一、JVM二、java泛型三、String类的深入理解四、equals和==的区别五、int和Integer的区别六、null和""(空字符串)的区别七、23种设计模式八、多线程九、GC十、Java编译一个.java文件生成的.class文件有多少?一、JVM 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(...原创 2019-05-27 10:09:06 · 755 阅读 · 0 评论 -
HashMap的底层原理
HashMap的底层原理1.数据结构:HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组2.HashMap的源码如下:/** * The table, resized as necessary. Length MUST Always ...原创 2019-05-17 11:19:46 · 174 阅读 · 0 评论 -
数据结构 - 二叉树、红黑树
目录一:二叉树二:满二叉树三:完全二叉树四:堆五:二叉查找树(BST)六:平衡二叉树七:红黑树一:二叉树 二叉树是一种数据结构,其每个结点最多有两个子树的树结构。也就是每个节点下面有两个分叉,通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 最上面的节点称为根节点,相...原创 2019-05-24 14:27:48 · 999 阅读 · 0 评论 -
JAVA基础面试题 - 2019.6.20
目录一、ArrayList排序二、MySQL去重三、MySQL事务隔离级别四、mysql引擎五、HashMap什么时候变成红黑树六、关于GC七、一道算法题一、ArrayList排序1.使用Collections.sort()传入ArrayList,会采用默认的方式进行排序(字典序)2.使用Collections.sort()传入ArrayList和...原创 2019-06-21 14:04:40 · 387 阅读 · 1 评论