Walker_YAM

九和诸侯,一匡天下

揭秘 HashMap 实现原理(Java 8)

HashMap 作为一种容器类型,无论你是否了解过其内部的实现原理,它的大名已经频频出现在各种互联网面试中了。从基本的使用角度来说,它很简单,但从其内部的实现来看(尤其是 Java 8 的改进以来),它又并非想象中那么容易。如果你一定要问了解其内部实现与否对于写程序究竟有多大影响,我不能给出一个确...

2017-12-07 09:14:19

阅读数:81

评论数:0

深入理解Java内部类

内部类就是定义在一个类中的另外一个类,是一种从属关系。在没有实际了解内部类之前,我始终困惑,为什么要在一个类中定义另外一个类,这不是增加代码结构复杂度么?现在才大致能知道这种设计的优势是大于其劣势的。比如,我们可以通过内部类解决类的单继承问题,外部类不能再继承的类可以交给内部类继承。我们可以通过定...

2017-07-21 15:16:13

阅读数:94

评论数:0

深入理解Java常用类----String

Java中字符串的操作可谓是最常见的操作了,String这个类它封装了有关字符串操作的大部分方法,从构建一个字符串对象到对字符串的各种操作都封装在该类中,本篇我们通过阅读String类的源码来深入理解下这些字符串操作背后的原理。主要内容如下: 繁杂的构造器 属性状态的常用函数 获取内部数值的常用函...

2017-05-13 21:19:07

阅读数:148

评论数:0

java 线程中断机制

上一篇文章我们了解过了java有关线程的基本概念,有线程的属性,线程可能处于的状态,还有线程的两种创建的方式,最后还说了一个关键字synchronized,解决了高并发导致数据内容不一致问题,本篇文章就介绍线程的中断机制。      首先我们需要知道,java中的每个对象都是有内部对象锁的,其实...

2017-03-08 20:13:37

阅读数:147

评论数:0

java 线程及synchronized关键字

从本篇开始,我们将会逐渐总结关于java并发这一块的内容,也可以理解为是我的笔记,主要来自于一些博客和java书籍中的内容,所有的内容都是来自于他们之中并且加上了我自己的理解和认识。      我们将会从以下的几点理解java线程的一些概念: 线程的基本概念和优劣之处 创建一个线程的两种方式 线...

2017-03-07 17:20:34

阅读数:183

评论数:0

从源码解析TreeMap

上篇文章我们介绍了HashMap集合,这是一个键值对集合,可以高效的按照键查找数值。但是它有一个缺陷:数据如果是无序的可以是很高效的,但是如果数据需要排列有顺序就不适合了。本篇将要介绍的一个集合是树集键值对(TreeMap),它能够对数据按照键值有序的存储。      在介绍TreeMap之前,...

2017-03-02 19:52:12

阅读数:187

评论数:0

从源码看HashMap

之前我们看过了两种类型的集合,ArrayList集合和LinkedList集合,两种集合各有优势,我们不具体说了,但是本篇要看的集合可以完成它们完成不了的任务。比如:现有一篇文章,要你统计其中出现了哪些单词,每个单词总共出现了几次。这个问题很明显需要记录两个变量(某单词及其出现次数),但是我们之前...

2017-03-01 20:28:04

阅读数:212

评论数:0

从源码解析LinkedList

上篇文章我们介绍了ArrayList类的基本的使用及其内部的一些方法的实现原理,但是这种集合类型虽然可以随机访问数据,但是如果需要删除中间的元素就需要移动一半的元素的位置,效率低下。并且它内部是用数组来实现的,数组要求连续的存储空间,当数据量大的时候就极耗内存。本篇我们介绍使用链表实现的集合Lin...

2017-02-27 21:04:27

阅读数:177

评论数:0

从源码看ArrayList

可能大家都知道,java中的ArrayList类,是一个泛型集合类,可以存储指定类型的数据集合,也知道可以使用get(index)方法通过索引来获取数据,或者使用for each 遍历输出集合中的内容,但是大家可能对其中的具体的方法是怎么实现的不大了解,本篇就将从jdk源码的角度看看什么是动态扩容...

2017-02-26 14:34:10

阅读数:286

评论数:0

解析java泛型(二)

上篇我们简单的介绍了java中泛型的最基本的内容,知道了什么是泛型以及泛型对我们的程序编写有什么好处,最后一类型限定收尾。本篇将从类型限定开始阐述java泛型中很重要的概念:通配符 一、何为通配符      首先我们看一段代码:/*我们声明了一个泛型方法*/ public class Pair...

2017-02-24 23:18:03

阅读数:179

评论数:0

解析java泛型(一)

对于我们java中的泛型,可能很多人知道怎么使用并且使用的还不错,但是我认为想要恰到好处的使用泛型,还是需要深入的了解一下它的各种概念和内部原理。本文将尽可能的囊括java泛型中的重要的概念。主要内容如下: 泛型的定义及为什么要使用泛型 定义一个简单的泛型类 定义一个简单的泛型方法 类型参数的限定...

2017-02-24 15:45:24

阅读数:224

评论数:0

全面理解java异常机制

在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大V,你也不可避免出错,所以java为我们提供了异常机制。本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的处理过程 抛出异常 捕获异常 异常机制的实现细节 一、异常机制的层次结构       在java...

2017-02-22 17:13:15

阅读数:187

评论数:0

java基础之继承(二)

上篇我们介绍了java中的构造方法,了解了关键字this和super在继承中所起到的作用,this可以显式调用重载的构造方法,super可以显式的调用父类中的任意可见方法。了解方法重载和重写的区别,知道了关键字final的作用,本篇将以一段代码介绍实例化对象时内存的状态。       如果你能看...

2017-02-19 14:57:59

阅读数:339

评论数:0

java基础之继承 (一)

虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展。下面是我的笔记,主要包含以下一些内容点: 构造方法 重写和重载 final关键字 new的背后(内存分析) 理解方法调用 一、构造方法   ...

2017-02-19 10:46:34

阅读数:207

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭