JDK

JDK

走进 JDK 之 PriorityQueue

走进JDK系列第16篇文章相关源码:PriorityQueue.java这是Java集合框架的第三篇文章了,前两篇分别解析了ArrayList和LinkedList,它们分别是基于动态数组和链表来实现的。今天来说说Java中的优先级队列PriorityQueue,它是基于堆实现的,后面也会介绍堆的相

2019-05-14
87 0

走进 JDK 之 LinkedList

走进JDK系列第15篇概述如果你了解链表的基本结构的话,LinkedList的源码其实还是比较容易理解的。LinkedList是基于双向链表实现的,与ArrayList不同的是,它在内存中不占用连续的内存空间,相连元素之间通过“链”来链接。对于单链表,每个节点有一个后继指针指向下一个节点。对于双向链

2019-05-08
80 0

走进 JDK 之 ArrayList(二)

上篇文章走进JDK之ArrayList(一)简单分析了ArrayList的源码,文末留下了一个问题,modCount是干啥用的?下面我们通过一个小例子来引出今天的内容。publicstaticvoidmain(String[]args){List<String>list=newArray

2019-04-28
81 0

走进 JDK 之 ArrayList(一)

这篇本来是准备写Java集合框架概述的,就是写起来效果不怎么样,可能是对整个Java集合框架还没有做到了然于心。所以还是先来源码分析,写完所有集合类的分析之后,再来总体概述。今天就从最最常用的ArrayList说起。概述ArrayList是一种可以动态增长和缩减的线性表数据结构,允许重复元素,允许n

2019-04-27
78 0

钻钻 “单例” 的牛角尖

上篇文章走进JDK之Enum提到过,枚举很适合用来实现单例模式。实际上,在EffectiveJava中也提到过(果然英雄所见略同):单元素的枚举类型经常成为实现Singleton的最佳方法。首先什么是单例?就一条基本原则,单例对象的类只会被初始化一次。在Java中,我们可以说在JVM中只存在该类的唯

2019-04-20
81 0

走进 JDK 之 Enum

什么是枚举什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对Java理解的还不够深刻,在可以使用枚举的时候并没有去使用。假设我有两个孩子(其实不用假设),每到周末他们都不知道去上什么辅导班。于是我就写了一个简单的程序来告诉他们,

2019-04-18
80 0

《你并不了解 String》 勘误

写技术文章其实是个很好的学习方式。首先你得自己摸清楚原理,然后才能尝试去表达出来。你写出来的东西,别人看了,给予你反馈,也是一个互相学习的过程。这不,前几天碰到一个读者提出的一个问题,让我发现了自己文章中的一个疏漏,下面就来说说这个问题。在我之前的一篇文章你并不了解String中出了这样一道题目:S

2019-04-16
85 0

走进 JDK 之谈谈字符串拼接

走进JDK之String你并不了解String今天是String系列最后一篇了,字符串的拼接。日常开发中,字符串拼接是很常见的操作,一般常用的有以下几种:直接使用+拼接使用String的concat()方法使用StringBuilder的append()方法使用StringBuffer的append

2019-04-11
82 0

你并不了解 String

先说一些话题外话。上篇文章CoreJava52问(含答案)阅读量意外的高,总算没白费我整理了一个清明假期。其实也挺出乎我的意料的,因为涉及的内容大多数是Java基础。但是基础可能也正是很多人所欠缺的,正如我一直在写的走进JDK系列,也算是从JDK源码的角度,从JVM的角度来梳理Java基础。万丈高楼

2019-04-09
72 0

走进 JDK 之 String

文中相关源码:String.java今天来说说String。贯穿全文,你需要始终记住这句话,String是不可变类。其实前面说过的所有基本数据类型包装类都是不可变类,但是在String的源码中,不可变类的概念体现的更加淋漓尽致。所以,在阅读String源码的同时,抽丝剥茧,你会对不可变类有更深的理解

2019-04-02
75 0