自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 ByteBuffer是怎么构成的,如何使用?

ByteBuffer通常用于Java原生NIO操作中,对Channel进行读取或者写入,其中封装了一些操作byte数组的方法,还是很实用的。ByteBuffer的几个基本属性: position:表示进行下一个读写操作的下标位置 limit:表示进行读写操作时的结束位置; capacity:表示存储的容量 mark: 对数据进行标记 初始化:对ByteBuffer进行初始化,可以使用静态方法wrap(byte[] data)封装数组,也可以通过另一...

2021-10-26 22:03:48 290

原创 Java Nio中Selector是什么?Selector怎么使用呢?

以前大家都是用阻塞式IO来对网络IO进行数据请求,对于不同的IO都要分配一个线程来处理,如果没有数据就会进行等待,从而造成了阻塞,这种方式极大地浪费了资源(如图1)。于是,有人就提出了一个想法,使用一个线程去监控多个IO请求,如果哪一个IO数据准备完毕后就通知相应的线程来处理,这就是selector模型(如图2)。而Java中的selector就是对selector模型的一种实现,用于询问选择已就绪的IO处理任务。Selector的几个核心的概念Channel(通道):用于进行网...

2021-10-25 22:08:49 501

原创 五种IO模型,BIO、NIO、AIO之间的区别

说到io模型,就不得不先提一下阻塞与非阻塞,同步与异步了,下面就来聊聊这几个概念。当系统进行io操作时,一般会涉及两个对象,用户线程(或进程)和操作系统内核,这个操作主要分为两个步骤: 等待数据准备 将数据从系统内核加载到进程中 阻塞与非阻塞的区别主要在数据准备阶段。所谓阻塞就是当用户线程进行数据请求时,如果数据还没准备好,系统并不会立即返回,而是等数据准备好之后再返回。而对于非阻塞而言,用户线程在请求数据时,不管数据有没有准备好,都会直接返回。举个例子,你饿了要去一家店吃饭,点菜打

2021-10-24 17:20:12 518

原创 CSS3制作扑克牌展开动画

今天偶然看见一篇关于css3的加载动画的文章,刚学完css3部分知识的我就迫不及待地想大练一手,强化自己的学习成果。做的不是很好,仅供学习讨论,欢迎大神指教。最终的效果如下,看着比较简约,截图没截好,见谅。首先,先写好骨架,也就是html代码,一个div包裹7个div,分别存放loading的各个字母。部分代码如下:<div class="puke-wra...

2019-02-02 19:48:47 1946

原创 Python 创建虚拟环境

1.为什么需要虚拟环境?        在程序开发中,我们常常会用到不同的包和不同的python环境,比如说:有时我们需要同时用到不同的python版本或者不同的包。如果把所有的包都放在本机上,不同的版本之间难免会相互影响,而且也不便于管理。于是,我们在开发过程中会通过创建虚拟环境来进行开发环境的管理,不同的虚拟环境可以配置不同的python版本和包,不同虚拟环境包的安装和删除互不影响,而...

2019-01-21 21:11:30 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除