源码阅读计划
缄默的果壳
这个作者很懒,什么都没留下…
展开
-
Guava源码阅读计划:primitives.Ints
com.google.common.primitives:八种原始类型和无符号类型的静态工具包 //在java8中可以被Integer.BYTES替代,代表字节数bytes public static final int BYTES = Integer.SIZE / Byte.SIZE; //int最大存储值,使用 1<<(Integer.SIZE-2) 计算得到,2是因为...原创 2018-07-29 18:29:04 · 454 阅读 · 0 评论 -
Guava源码阅读计划:base.Strings.java
com.google.common.base:基本工具类库和接口。 import com.google.common.annotations.VisibleForTesting;public final class Strings { private Strings() { } public static boolean isNullOrEmpty(@Nulla...原创 2018-07-29 19:15:10 · 321 阅读 · 0 评论 -
Guava源码阅读计划:base.Splitter
策略模式(Strategy)定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。在Splitter中就主要使用了这种模式.主要方法基础写法为:Splitter.on('.').split("a,b,c");第一部分构建Splitter.on( )有很多Splitter.on()方法 每个参数不同,但他们...原创 2018-07-29 23:52:03 · 701 阅读 · 0 评论 -
Guava源码阅读计划:base.Sets
union传入:set1, set2传出:内部实现的 setView 其继承了 AbstractSetpublic static <E> SetView<E> union(final Set<? extends E> set1, final Set<? extends E> set2) { checkNotNull(set1, "...原创 2018-07-30 01:53:36 · 607 阅读 · 0 评论 -
Guava源码阅读计划:collect.Immutable
基础Immutable是guava提供的一系列不可变类1.不可变代表着线程安全,线程调用时完全不用考虑线程安全的问题(不过个人认为意义不大,因为这个不可变是在封锁修改方法的前提下保证的,非不可变类不对其进行修改也完全可以实现同样的效果)2Guava不可变集合不仅仅是源数据结构的视图,而是它的副本,使得对原始结构的更改不会影响复制的不可变集合。3.转成不可变类再输出是一个防御式编程的...原创 2018-08-02 00:36:24 · 285 阅读 · 0 评论 -
源码阅读计划 String
源码阅读这部分H神写的太详细了 基本都摘录自H神的博客1 定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence1.可以看到是final类型的2.实现了ava.io.Serializable(支持序列化与反序列化)、 Comp...原创 2018-08-12 17:55:34 · 353 阅读 · 0 评论 -
String的一些理解
进一步理解很多想法来着:H神的博客1 常量池与intern()可以看到常量池中保存了 字面量和符号引用对常量池的详细讲解参考自:Suntata博客JVM 之常量池符号引用: 下面例子的 s1 s2 s3 引用了字面量字面量:下面例子的 "Str"String s1 = "Str";String s2 = new String("Str");String...原创 2018-08-17 14:44:28 · 488 阅读 · 0 评论