走进 JDK
路遥在路上
这个作者很懒,什么都没留下…
展开
-
走进 JDK 之 LinkedList
走进 JDK 系列第 15 篇概述如果你了解链表的基本结构的话,LinkedList 的源码其实还是比较容易理解的。LinkedList 是基于双向链表实现的,与 ArrayList 不...原创 2019-05-10 08:00:00 · 238 阅读 · 0 评论 -
走进 JDK 之 ArrayList(二)
上篇文章 走进 JDK 之 ArrayList(一) 简单分析了 ArrayList 的源码,文末留下了一个问题,modCount 是干啥用的?下面我们通过一个小例子来引出今天的内容。p...原创 2019-04-29 08:00:00 · 124 阅读 · 0 评论 -
走进 JDK 之 ArrayList(一)
这篇本来是准备写Java 集合框架概述 的,就是写起来效果不怎么样,可能是对整个 Java 集合框架还没有做到了然于心。所以还是先来源码分析,写完所有集合类的分析之后,再来总体概述。今...原创 2019-04-28 08:00:00 · 207 阅读 · 0 评论 -
走进 JDK 之 PriorityQueue
走进 JDK 系列第 16 篇文章相关源码:PriorityQueue.java这是 Java 集合框架的第三篇文章了,前两篇分别解析了ArrayList和LinkedList,...原创 2019-05-14 22:47:46 · 124 阅读 · 0 评论 -
钻钻 “单例” 的牛角尖
上篇文章 走进 JDK 之 Enum 提到过,枚举很适合用来实现单例模式。实际上,在 Effective Java 中也提到过(果然英雄所见略同):单元素的枚举类型经常成为实现 Singleton 的最佳方法 。首先什么是单例?就一条基本原则,单例对象的类只会被初始化一次。在 Java 中,我们可以说在 JVM 中只存在该类的唯一一个对象实例。在 Android 中,我们可以说在程序运行期...原创 2019-09-24 23:01:47 · 148 阅读 · 0 评论 -
走进 JDK 之 Enum
什么是枚举什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对 Java 理解的还不够深刻,在可以使用枚举的时候并没有去使用。假设我有两个孩子(其实不用假设),每到周末他们都不知道去上什么辅导班。于是我就写了一个简单的程序来告诉他们,伪代码如下:public final static int DAVID = 0;publ...原创 2019-09-24 23:01:09 · 331 阅读 · 0 评论 -
走进 JDK 之谈谈字符串拼接
走进 JDK 之 String你并不了解 String今天是 String 系列最后一篇了,字符串的拼接。日常开发中,字符串拼接是很常见的操作,一般常用的有以下几种:直接使用 + 拼接使用 String 的 concat() 方法使用 StringBuilder 的 append() 方法使用 StringBuffer 的 append() 方法那么,这几种方法有什么不同呢?...原创 2019-09-24 22:58:17 · 252 阅读 · 0 评论 -
《你并不了解 String》 勘误
写技术文章其实是个很好的学习方式。首先你得自己摸清楚原理,然后才能尝试去表达出来。你写出来的东西,别人看了,给予你反馈,也是一个互相学习的过程。这不,前几天碰到一个读者提出的一个问题,让我发现了自己文章中的一个疏漏,下面就来说说这个问题。在我之前的一篇文章 你并不了解 String 中出了这样一道题目:String str1 = new String("j") + new String("av...原创 2019-09-24 23:00:30 · 140 阅读 · 0 评论 -
你并不了解 String
先说一些话题外话。上篇文章 Core Java 52 问(含答案) 阅读量意外的高,总算没白费我整理了一个清明假期。其实也挺出乎我的意料的,因为涉及的内容大多数是 Java 基础。但是基础可能也正是很多人所欠缺的,正如我一直在写的 走进 JDK 系列,也算是从 JDK 源码的角度,从 JVM 的角度来梳理 Java 基础。万丈高楼平地起,对于一个程序员来说,抛去现在纷繁复杂,学也学不完的各种框...原创 2019-09-24 22:57:42 · 138 阅读 · 0 评论 -
走进 JDK 之 String
文中相关源码: String.java今天来说说 String。贯穿全文,你需要始终记住这句话,String 是不可变类 。其实前面说过的所有基本数据类型包装类都是不可变类,但是在 String 的源码中,不可变类 的概念体现的更加淋漓尽致。所以,在阅读 String 源码的同时,抽丝剥茧,你会对不可变类有更深的理解。什么是不可变类 ?首先来看一下什么是不可变类?Effective J...原创 2019-09-24 22:55:38 · 140 阅读 · 0 评论 -
走进 JDK 之 谈谈基本类型
回顾一下前面的一系列文章,走进 JDK 之 Integer走进 JDK 之 Long走进 JDK 之 Float走进 JDK 之 Byte走进 JDK 之 Boolean除了 char 和 double,基本涵盖了 Java 的所有基本类型。今天就来总结一下基本类型的相关知识。基本类型概述Java 中有 8 种基本类型,如下表所示:基本类型大小最大值最小值包装...原创 2019-09-24 22:54:54 · 187 阅读 · 0 评论 -
走进 JDK 之 Long
文中相关源码:Long.java上一篇文章 走进 JDK 之 Integer 解析了 Integer.java,而 Long.java 和 Integer.java 的源码结构几乎是一模一样的,所以这篇文章会写的比较简略,没有细读过 Integer.java 源码的可以先看一下我的上一篇文章。这里就简单介绍一下 Long 以及源码中和 Integer 的细微区别。类声明public f...原创 2019-03-30 07:20:20 · 178 阅读 · 0 评论 -
走进 JDK 之 Boolean
往期目录:走进 JDK 之 Integer走进 JDK 之 Long走进 JDK 之 Float走进 JDK 之 Byte今天来说说 Boolean 。Boolean 类源码也很简单,在阅读源码的过程中思考这么一个问题,Boolean 类型在内存中是如何表示的?或者说,JVM 是如何看待 Boolean 的?类声明public final class Boolean implem...原创 2019-03-30 07:24:15 · 107 阅读 · 0 评论 -
走进 JDK 之 Float
文中相关源码:Float.javaFloat.c0.3f - 0.2f = ?相信很多人会不假思索的填上 0.1f,那么,打开 IDEA,默默的执行一下:0.10000001如果你对这个答案抱有疑问,那么在阅读 Float 源码之前,我们先来看一下 Float 在内存中是如何表示的。从熟悉的十进制浮点数说起,以 12.34 为例,显然下面这个等式是成立的:12.34 =...原创 2019-03-30 07:22:03 · 190 阅读 · 0 评论 -
走进 JDK 之 Integer
文中相关源码:Integer.java开发的越久,越能体会到基础知识的重要性。抽空捋一下 JDK 源码,权当查漏补缺。读完之后,你会发现 JDK 源码真的会给你很多惊喜。Integer 是基本类型 int 的包装类,它提供了一些处理 int 数值的方法,String 和 int 相互转换的方法。另外,它还提供了一些位运算,这些位运算来自于 Henry S. Warren Jr. 的 ...原创 2019-03-28 23:06:09 · 404 阅读 · 0 评论 -
走进 JDK 之 Byte
整理一下前面几篇文章,按顺序阅读效果更好。走进 JDK 之 Integer走进 JDK 之 Long走进 JDK 之 Float今天来说说 Byte。类声明public final class Byte extends Number implements Comparable<Byte> 和之前的一模一样,不可变类,继承了抽象类 Number,实现了 Compara...原创 2019-03-30 07:23:20 · 225 阅读 · 0 评论