java源码看一看
文章平均质量分 80
就一个读java源码的专栏
Debuger_工藤胖一
这个作者很懒,什么都没留下…
展开
-
jdk源码之java的NIO稍微了解篇
从JDK1.5开始,java引入了java.nio包,nio的含义为非阻塞型IO。这一篇就从使用到源码来简单了解一下NIO吧。一、基本用法 RandomAccessFile aFile = null; try { aFile = new RandomAccessFile(NIOTest.class.getClassLoader().getR...原创 2019-07-09 12:30:51 · 394 阅读 · 0 评论 -
jdk源码之java的IO
1.类族java.io包中包含了java基于流的IO类库的整个类族,其中包含了字符流和字节流两种流,这里来看一看整个类族结构。1.1 类图借用几张网络图片来说明(图片来自 http://blog.csdn.net/zhangerqing/article/details/8466532 )1.1.1 输入字节流1.1.2 输出字节流1.1.3 输入字符流1.1...原创 2019-07-01 16:22:08 · 256 阅读 · 0 评论 -
jdk源码之重入锁ReentrantLock
在许久前我的博客java锁机制中,我曾经梳理过java中的部分锁机制,通过实验和部分源码阅读来解释原理和优劣。在此先重新梳理一遍:1.最常用的synchronize,俗称悲观锁,但凡被其修饰的代码段(方法等)被执行时便要上锁,这种方式可以绝对保证线性安全,但效率偏低。2.基于CAS的乐观锁,数据的操作和更新分开,当代码段执行完毕执行更新的时候,将之前复制的原值和当前值比较,如果相同就更新,...原创 2019-05-14 13:36:35 · 283 阅读 · 2 评论 -
jdk源码之java集合类(四)——Map & Set
我们来看一下Map和Set这两个集合前两篇我们已经把List和Queue给看完了,这一篇之所以Map和Set一起看,主要是由于Map和Set的关系太紧密了。虽然在接口定义的时候二者并没有太紧密的联系,无非就是Map会返回关于Key的Set、Value的List以及Key-Value组合的Map.Entry的Set。但是,在二者实现类在实现的时候,尤其是Set在实现的时候,几乎就是把Map给用了...原创 2019-05-07 16:17:42 · 209 阅读 · 0 评论 -
jdk源码之java集合类(三)——Queue家族
上一篇文章已经介绍了List的家族,今天就来看一看另一个数据类型Queue的大家族罢!我们先看一看Queue家族的主要成员的类族结构(这里并不是所有的Queue都罗列的,不然太多了)从图中我们可以看出,除了线性集合的统一接口Collection外,Queue家族总共有四个主要接口:Queue、Deque、BlockingQueue、BlockingDeque,四个接口相互继承,构成了Q...原创 2019-05-05 16:11:20 · 390 阅读 · 0 评论 -
jdk源码之java集合类(二)——List家族
在一年多前我曾经简单地记录了一部分集合类源码,主要集中于ArrayList、Vector、HashMap、HashTable这几个常用常被提问的点。从这篇开始我将对集合家族的每个小家庭进行一个简单地描绘,首先我们从我们的线性表——list家族开始聊起,文章将会从浅到深一层层地直到源码解析。一.族谱上图:这里我把List家族的最主要成员全部都画进去了,来看下。 a)...原创 2019-04-26 14:56:34 · 251 阅读 · 1 评论 -
jdk源码之线程池
好久没有写博客了,今天来写一个线程池的内容。我们先来看一个简单地例子:ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);executor.execute(new Running(1));这段代码就是我们在使用线程池的时候最基本的一个使用方式了,而这里出现的几个类,Th...原创 2019-04-24 17:14:38 · 291 阅读 · 1 评论 -
JDBC源码分析&桥接模式
JDBC对于java的开发人员来说并不陌生,它封装了ODBC,简化了java连接数据库的开发,本文我从部分JDBC的源码入手来阐述一下JDBC。桥接模式是由Gang of four整理的23种设计模式中的一种,JDBC是桥接模式一个典型的例子。了解JDBC源码,能让我们更好地理解桥接模式的意图和实现;了解桥接模式,能让我们更清楚JDBC设计的优越之处。首先我们先来看下桥接模式的意图,它旨...原创 2017-11-16 10:29:18 · 2816 阅读 · 1 评论 -
jdk源码之java集合类(一)
在jdk源码中有一个非常庞大的集合类大家族,在上一篇讲到工厂模式的时候介绍了一下其中的迭代器,今天就来简单了解下集合大家族首先先来看下网上摘下来的一张图:从这个类族结构中就可以看出整个集合类族的全貌了,现在我们来看下在源码中的设计。Collection是线性表集合类族的根接口,它定义了集合类的最基本操作,如上一篇讲到的迭代遍历等等,而Collection中有两个非常重要的...原创 2017-11-23 16:37:35 · 380 阅读 · 0 评论 -
工厂模式杂谈&java的迭代器
在java开发中,创建并初始化对象是再平常不过的一件事了,大部分情况下,我们都会选择用new构造符去创建一个新的对象,但是在开发中我们也常常会遇到一些特殊的初始化方式,随举一例,比如在hibernate中,创建session并不是用new构造符去初始化的,往往我们会从sessionFactory实例中去获取session,而这种通过factory获取实例的初始化方式,我们称为工厂模式。事...原创 2017-11-20 12:54:31 · 350 阅读 · 0 评论 -
java观察者模式
在G4的设计模式一书中,观察者模式是一种相对比较难以理解的模式,之所以难以理解,主要是由于单独看类图很难了解观察者和被观察者之间的通知关系。许多设计模式的书本在观察者模式这一章都是讲了一些开源框架中的观察者模式实现以方便读者理解,这篇文章我就以JDK源码中util包的Observable为主来简单说明下观察者模式。既然要来讲解,首先我们要知道怎么使用,首先设计一个类继承Observabl...原创 2017-11-27 13:43:02 · 198 阅读 · 0 评论 -
java锁机制
java的锁,相信大家都不会陌生,在前面讲集合类家族的时候提到了一个线性安全与不安全的概念,而锁这个机制,原本就是一个线性安全的保证。在众多的锁机制中,大家最熟悉的莫过于synchronize关键字,这个关键字修饰的方法、类、代码块在被某处调用时候会加上锁,除非锁解开,否则其他地方完全不能调用,这种机制我们称为悲观锁:无论不加锁存不存在线性安全的问题,都给加上锁。这样的机制无疑会产生两个...原创 2017-12-18 12:48:54 · 326 阅读 · 0 评论