Java基础
内容相对而言比较繁杂,但是主要部分还是阅读JDK源码的笔记
周仕林
这个作者很懒,什么都没留下…
展开
-
女娲造人共始祖 -- Obejct类解读
对Object这个根类从源码角度描述对应方法的特点与使用,以及与之有关系知识点的粗略联系原创 2019-03-21 09:06:56 · 247 阅读 · 0 评论 -
智能编码求解放 -- Lombok
1、简介lombok插件的使用原创 2019-04-24 13:42:29 · 179 阅读 · 0 评论 -
面向对象多形态 -- 接口、抽象类、内部类
1、接口与抽象类对比特点2、内部类介绍3、Lambda学习4、Stream操作原创 2019-04-03 15:45:43 · 159 阅读 · 0 评论 -
插入有序可重复(二) -- ArrayList、Vector
一:概述ArrayList采用数组作为底层数据结构实现,必然具备高效的随机访问、插入有序、元素可重复等特点。特点介绍在文章List结构解析中已经介绍,不做过多赘述。接下来将从ArrayList的构造、扩容、添加、删除、迭代等几个方面实现深入理解这个常用的集合类二:构造已无参与携带初始化数组大小参数构造为例,首先明确一点ArrayList采用数组实现,任何构造就是对这个数组属性elemen...原创 2019-06-11 22:46:08 · 840 阅读 · 0 评论 -
流式操作效率高 -- Lambda、Stream
一:Lambda1.1 语法-> 运算符,左参数右表达式参数根据类型推断可以省略类型,一个参数可以省略小括号表达式一行可以省略大括号以及return关键字1.2 函数接口只有一个抽象方法的接口称之为函数接口,注解@FunctionalInterface表示,注解不是必须但加上不满足函数接口要求则报错。Java中内置四大函数接口如上所示,有兴趣可以看看源码里的默认方法1....原创 2019-06-17 18:07:50 · 1015 阅读 · 1 评论 -
插入有序可重复(三) -- LinkedList
一:概述LinkedList底层采用双向链表的数据结构实现,自然第一反应就是它的随机访问需要遍历,但是结构修改操作效率更高,其实不管说出花来这都是LinkedList相较于ArrayList最大的差别。本文就针对LinkedList双向链表、结构修改、随机访问、Deque、迭代等几个方向深入探究一下这个集合二:双向链表简简单单普普通通的一个静态内部类搞定,通过维护一前prev、一后next...原创 2019-06-12 10:49:24 · 2994 阅读 · 0 评论 -
线程安全太监类 -- 枚举
1、介绍枚举特点2、示例枚举使用3、解析枚举序列化与反射4、介绍枚举类专用集合EnumMap5、解析异常继承结构6、介绍异常处理方式原创 2019-04-08 14:59:05 · 317 阅读 · 0 评论 -
镜花水月 -- 反射
1、反射入口Class2、访问控制AccessibleObject3、属性、方法、构造函数、类修饰解码Modifier4、Field、Method、Constructor解析5、可变参处理原创 2019-04-09 14:20:10 · 275 阅读 · 0 评论 -
JavaWEB基础 -- Servlet
修改原文传送地址,原文写的内容比较优秀,不过鉴于排版各方面问题对原文内容进行一些修改与重排版。大家有兴趣可以查看原文作者的文章一:概述与结构现在很多做JavaWEB开发的攻城狮恐怕都对Servlet懵懵懂懂,MVC框架一顿操作猛如虎,随便问一下Servlet怂如狗的人不在少数。Servlet究其根本就是Java中用于和客户端交互达到数据浏览与修改目的。首先具备这样功能的Servlet不少,祖宗...原创 2019-06-30 15:48:18 · 258 阅读 · 0 评论 -
XML格式数据操作 -- JAXB
1、注解详解2、注意事项3、注解标记以及工具类封装4、测试实例5、元素添加CDATA问题原创 2019-04-21 17:09:12 · 633 阅读 · 0 评论 -
孤独的守望者 -- 泛型
1、泛型的使用2、泛型的上下界与通配符3、上界对方形擦除的影响4、使用泛型的注意事项原创 2019-04-10 14:09:22 · 182 阅读 · 0 评论 -
万事万物皆正则 -- Java正则表达
一:吹逼前言正则表达式是很多Javer自动忽略的知识点,不可否认具备一定的难度,并且在线正则生成的开源也催化了这种现象的普遍性。前段时间偶然听说一则新闻某知名IT大神吐槽不会正则的程序员不配称呼程序员,正则表达式的运用场景属实在编程中广泛存在。不求精通,但求略懂。至少需要达到当遇到一个不是很复杂正则我们可以进行解析,编辑正则还是在线生成吧。开源还是存在一定逻辑,手撸正则谁知道是什么情况二:Ja...原创 2019-06-20 00:11:41 · 276 阅读 · 1 评论 -
哈希链表转红黑 -- HashMap
一:概述HashMap在1.8之前采用哈希表 + 链表组合作为底层数据结构。1.8中针对解决Hash冲突的链表优化加入了红黑树的转换,在链长过长场景下遍历性能相对于链表会得到提升。本文将从HashMap类的属性、构造、内部类、元素添加、扩容等方面进行深入剖析。当然最后为了ConcurrentHashMap做铺垫,会涉及一部分线程不安全方面的思考二:属性2.1 常量上面的常量并不想翻译,没...原创 2019-06-14 16:55:55 · 550 阅读 · 0 评论 -
坚定不移话永恒 --字符串相关类
一:String1.1 继承结构1 String 实现序列化标志接口,可以被序列化2 String 实现比较器接口,也就是Set等集合元素为String可以使用其比较器排序3 String 实现字符序列接口,CharSequence也被StringBuilder等实现1.2 初始化类型1 字面量:初始化后的字符串位于常量池中2 对象实例:构造函数new实例化后的对象位于堆内存。重...原创 2019-03-21 14:27:35 · 197 阅读 · 2 评论 -
黑白双煞拆装箱 -- 八大基本类型及其封装类
一:基本类型1.1 内存占用与范围关于数据范围能记住byte为-128 - 127足矣,这是一个十分特殊的数据范围名称byteshortintlongfloatdoublebooleanchar占用内存12484812数据范围-128 - 12732767 - -32768-2147483648 - 2147483647-922...原创 2019-03-21 17:00:38 · 160 阅读 · 0 评论 -
插入有序可重复(一) -- List结构解析
1、List整个继承封装结构解析2、每层封装做的贡献3、详解ArrayList元素添加与扩容过程4、解读LinkedList元素添加方法5、比较ArrayList与LinkedList原创 2019-04-10 16:57:43 · 512 阅读 · 0 评论 -
时间表现多样化 -- Java时间类
一:主要结构图一:java.util.Date1.1 构造函数排除已经被标记废弃方法剩余两种构造函数无参构造默认获取当前系统时间构建date表示1970-01-01开始计算的毫秒数 public Date() { this(System.currentTimeMillis()); } public Date(long date) { ...原创 2019-04-23 16:45:51 · 324 阅读 · 0 评论 -
自定义注解小总结 -- @Annotation
1、介绍注解的结构2、讲解四大基类注解3、详解@Repeatable注解用法原创 2019-04-24 10:55:43 · 244 阅读 · 0 评论 -
日日见君不思君 -- 异常
一:异常概述程序编译或是运行期间发生了意料之外的情况,阻止了程序的正常运行,这种情况就被称之为异常。异常发生时是抛出异常终止程序运行,还是捕获异常做出对应异常逻辑处理,这就涉及到异常的抛出与捕获。Throwable是Java中异常的顶级父类,一个对象只有是该类的子类才能被称之为异常,也就是才能被throw抛出亦或是try-catch捕获二:继承结构继承结构为什么会绘制的如此复杂,这是经过深...原创 2019-06-18 21:13:36 · 396 阅读 · 0 评论 -
红黑树键值对 -- TreeMp
一:概述Collection系列的List与Set实现都只能存储单个元素,想要使用 key – value 的结构就需要使用到Map。整体来说Map的实现结构并不复杂,三个具体实现类TreeMap、HashMap、LinkedHashMap,分别采用红黑树、哈希表、链表 + 哈希表的结构实现。本文将讲解采用红黑树实现的TreeMap,红黑树结构注定这将是一个元素拥有一定比较顺序的集合二:继承结...原创 2019-06-13 22:32:43 · 1848 阅读 · 0 评论 -
剪不断理还乱 -- I/O流
一:IO流设计思想装饰者模式,采用装饰者实现IO流功能嵌套的增强。整体采用单位(字节、字符)、流向(输入、输出)、应用对象进行三个维度的划分二:字节流整体设计结构二:...原创 2019-07-11 21:47:04 · 152 阅读 · 0 评论