- 博客(6)
- 收藏
- 关注
原创 ThreadLocal
ThreadLocal处理并发问题:一般有以下两种方法锁:时间换空间ThreadLocal:空间换时间ThreadLocal是线程的局部变量,也就是说一个ThreadLocal的变量只有当前自身线程可以访问,别的线程都访问不了,那么自然就避免了线程竞争。ThreadLocal提供了一种与众不同的线程安全方式,它不是在发生线程冲突时想办法解决冲突,而是彻底的避免了冲突的发生。ThreadLocal的基本使用//创建一个ThreadLocal对象//由于ThreadLocal是一个泛型类,这里指
2021-07-19 15:35:08 188
原创 I/O多路复用
I/O多路复用什么是IO多路复用IO多路复用的三种实现方式select 时间复杂度O(n)poll 时间复杂度O(n)epoll 时间复杂度O(1)select、poll、epoll 区别总结epoll缺点epoll应用select/poll/epoll之间的区别高频面试题什么是IO多路复用IO多路复用是一种同步IO模型,实现一个线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个线程I
2021-07-08 16:53:56 149
原创 LRU
LRU称是Least Recently Used,即最近最久未使用LRU缓存的思想固定缓存大小,需要给缓存分配一个固定的大小。每次读取缓存都会改变缓存的使用时间,将缓存的存在时间重新刷新。需要在缓存满了后,将最近最久未使用的缓存删除,再添加最新的缓存。1:加入新的数据2:队列空间满了的时候,尾部的数据会被淘汰掉3:如果要访问队列中的数据,该数据会被移动到队列的头部缺点:频繁地访...
2019-08-22 16:56:38 2125
原创 右旋
右旋结果:将该节点变成其左孩子的右孩子右旋源码如下: /** From CLR */ private void rotateRight(Entry<K,V> p) { //右旋前提,p和l都存在 if (p != null) { Entry<K,V> l = p.left; --------------------...
2019-04-11 11:09:17 682
原创 面向对象的特征
面向对象的特征1.封装高内聚,低耦合,防止程序相互依赖带来的影响,保证软件具有良好的模块性对象是封装的最基本单位将一个类的成员变量全部定义成私有,只有自己才能访问,就基本实现了封装例如:人在黑板上画圆:三个对象:人,黑板,圆,画圆的方法必须分配给圆,人只是调用画圆的方法司机将货车刹住:两个对象:司机,货车,刹车的方法必须分配给货车,司机只是调用刹车的方法2.继承提高...
2019-03-08 10:19:52 65
原创 json数据格式
json数据格式json定义json结构访问json数据的方法JSON和XML的比较json定义JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON 语法是 JavaScript 对象表示法语法的子集。JSON:JavaScript 对象表示法(JavaScript Object Notation)。JSON 是存储和交换文本信息的语法...
2019-03-07 19:50:18 168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人