摘要:上一篇知道了Buffer的工作机制,以及FileChannel的简单用法,这一篇介绍下 Scatter&Gather 1.Scatter(分散) 用于描述在Channel中读取的数据分散在不同的Buffer里。 接着上一篇的例子(rua文件内容为123456789),改造下代码: readFile 阅读全文
posted @ 2019-03-07 09:21 胖虎1993 阅读(294) 评论(0) 推荐(0) 编辑
摘要:上一篇简单介绍了NIO,这一篇将介绍FileChannel结合Buffer的用法,主要介绍Buffer FileChannel的简单使用&Buffer的介绍 一、FileChannel例子 上一篇说到,这个Channel属于文件通道,专门读取文件信息,NIO读取文件内容的简单的例子: public 阅读全文
posted @ 2019-03-05 23:56 胖虎1993 阅读(546) 评论(1) 推荐(2) 编辑
摘要:工作中有些地方用到了netty,netty是一个NIO框架,对于NIO却不是那么熟悉,这个系列的文章是我在学习NIO时的一个记录,也期待自己可以更好的掌握NIO。 一、NIO是什么? 非阻塞式IO,与传统的BIO(阻塞式IO)不同,NIO可以通过通道(Channels)来监听各通道的动作,一个线程就 阅读全文
posted @ 2019-03-05 08:55 胖虎1993 阅读(250) 评论(0) 推荐(0) 编辑
摘要:前言:两种模式的相似点与不同点 不得不说,这两种模式真的很像。 相似点:都用到了面向对象的继承、多态、抽象,都拥有相似的结构。 不同点:工厂模式仅提供具体的实例对象,怎么使用这个对象是client的自由,策略模式client可以通过策略类来决定使用哪个实例的哪个方法。 一、两种模式的公共相同部分 下 阅读全文
posted @ 2019-02-27 11:24 胖虎1993 阅读(421) 评论(0) 推荐(0) 编辑
摘要:去年看完的《图解java多线程设计模式》,可惜当时没做笔记,导致后来忘了许多东西,打算再温习下这本书,顺便在这里记录一下~ 一、顺序执行、并行、并发 顺序执行:多个操作按照顺序依次执行。 并行:多个任务同时进行,同一时间内可以执行多个任务,这种方式,叫做并行执行,比如多核处理器,多个核可以同时处理多 阅读全文
posted @ 2019-02-26 23:22 胖虎1993 阅读(1892) 评论(0) 推荐(0) 编辑
摘要:上一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 🍉 🍇 🍓 🍈 🍒本篇文档已转移至新博客,请点击前往:exceting.github.io 一、基本使用 首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的 阅读全文
posted @ 2019-02-20 22:40 胖虎1993 阅读(6166) 评论(4) 推荐(0) 编辑
摘要:上一篇:ThreadLocal系列(一)-ThreadLocal的使用及原理解析 下一篇:ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析 一、基本使用 我们继续来看之前写的例子: private static ThreadLocal tl = ne 阅读全文
posted @ 2019-02-19 12:23 胖虎1993 阅读(1277) 评论(0) 推荐(1) 编辑
摘要:项目中我们如果想要某个对象在程序运行中的任意位置获取到,就需要借助ThreadLocal来实现,这个对象称作线程的本地变量,下面就介绍下ThreadLocal是如何做到线程内本地变量传递的, 下一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、 阅读全文
posted @ 2019-02-15 11:12 胖虎1993 阅读(1084) 评论(0) 推荐(0) 编辑
摘要:借助juc里的ReentrantLock实现一个阻塞队列结构: 以上为主要代码,下面进行简单的测试: 运行结果: 阅读全文
posted @ 2019-02-12 16:44 胖虎1993 阅读(539) 评论(0) 推荐(0) 编辑
摘要:Map系列之HashMap(源码基于java8) HashMap是我们最常用的map实现之一,这篇文章将会介绍HashMap内部是如何工作的,以及内部的数据结构是怎样的 一、数据结构简图 二、源码解析 首先看下Map接口里常用的几个方法: V put(K key, V value); V get(O 阅读全文
posted @ 2019-02-12 12:31 胖虎1993 阅读(271) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2017/08/12 18:32 🌺 原博客地址:https://my.oschina.net/sunqinwen/blog/1507171 前置:redis内存指标 注:本文默认读者已初步学会使用redis了。 首先我们通过info命令查看相关指标,其中几个memor 阅读全文
posted @ 2019-01-28 21:27 胖虎1993 阅读(129) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2017/04/10 00:37 🌺 原博客地址:https://my.oschina.net/sunqinwen/blog/875833 一、数据库事务的几个特性 1.1:原子性 最基本的特性,意思是在一个事务内里所有关于数据库的操作,要么全部成功,要么全部失败;成功 阅读全文
posted @ 2019-01-28 21:14 胖虎1993 阅读(115) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2016/04/15 20:31 🍄 原博客地址:https://my.oschina.net/sunqinwen/blog/660881 本实例中单独为生产者和消费者各开辟一个线程作为生产者和消费者的执行线程,在生产者消费者设计模式中存在一个数据缓冲区,使生产者和消费 阅读全文
posted @ 2019-01-28 21:04 胖虎1993 阅读(248) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2015/12/04 16:41 🍄 原博客地址:https://my.oschina.net/sunqinwen/blog/539397 spring最核心的部分莫过于ioc和aop了,博主菜逼一枚,如果有哪里理解的不对或者代码上有瑕疵的地方欢迎大家指正,大家互相学习 阅读全文
posted @ 2019-01-28 20:17 胖虎1993 阅读(140) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2014/07/04 简单二叉树定义:一个节点下面最多拥有两个子节点,并且两个子节点分为左值和右值,左值比父节点要小,右值比父节点要大 下面,我们来利用java实现一棵如下图中的二叉树: 大家可以根据我的描述分析一下这棵二叉树 下面就来写代码实现这棵二叉树: 首先是要建立 阅读全文
posted @ 2018-12-29 14:03 胖虎1993 阅读(117) 评论(0) 推荐(0) 编辑
摘要:🍄 博客搬家:初版发布于 2014/07/04 定义: 所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表 链表优缺点: 优点:易于存储和删除 缺点:查询起来较麻烦 下面我们用java来实现如下链表结构: 首先定义节点类: package Lin 阅读全文
posted @ 2018-12-29 11:17 胖虎1993 阅读(332) 评论(1) 推荐(0) 编辑