首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
王金龙
掘友等级
高级Java
|
杭州***有限公司
Java程序猿
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
50
文章 50
沸点 0
赞
50
返回
|
搜索文章
最新
热门
设计模式之装饰模式
通过这个案例,我们可以了解到:如果我们想要在基础类上添加新的装修功能,只需要基于抽象类 BaseDecorator 去实现继承类,通过构造函数调用父类,以及重写装修方法实现装修窗帘的功能即可。在 main 函数中,我们通过实例化装饰类,调用装修方法,即可在基础装修的前提下,获得…
MYSQL行锁
MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支持行锁的,这也是 My…
线程与协程
在 Linux 操作系统编程中,往往都是通过 fork()函数创建一个子进程来代表一个内核中的线程。一个进程调用 fork() 函数后,系统会先给新的进程分配资源,例如,存储数据和代码的空间。然后把原来进程的所有值都复制到新的进程中,只有少数值与原来进程的值(比如 PID)不同…
Synchronized同步锁实现原理
Synchronized 在修饰同步代码块时,是由 monitorenter 和 monitorexit 指令来实现同步的。进入 monitorenter 指令后,线程将持有 Monitor 对象,退出 monitorenter 指令后,线程将释放该 Monitor 对象。 当…
Java序列化
Protocol Buffers 是一种轻便高效的结构化数据存储格式。它使用 T-L-V(标识 - 长度 - 字段值)的数据格式来存储数据,T 代表字段的正数序列 (tag),Protocol Buffers 将对象中的每个字段和正数序列对应起来,对应关系的信息是由生成的代码来…
HashMap源码分析
假设要添加两个对象 a 和 b,如果数组长度是 16,这时对象 a 和 b 通过公式 (n - 1) & hash 运算,也就是 (16-1)&a.hashCode 和 (16-1)&b.hashCode,15 的二进制为 000000000000000000000000000…
Java中的Stream
中间操作只对操作进行了记录,即只会返回一个流,不会进行计算操作。中间操作可以分为有状态和无状态两种情况: 有状态:元素的处理必需要拿到前面所有的元素才能够进行下去。 无状态:元素的处理不会受到前面元素的影响。 终结操作会进行计算操作。终结操作又可以分为短路操作和非短路操作。前者…
ArrayList与LinkedList分析
因为elementData数组中的每个元素并不一定都存储了数据。如果采用外部序列化的方式,则会序列化整个数据。ArrayList为了避免这些没有存储内容的数组被序列化,重新实现了writeObject和readObject方法来实现自我序列化和反序列化。 因此使用 transi…
如何用链表来实现 LRU 缓存淘汰策略呢?
这是LinkedHashMap的一个构造函数,传入的第三个参数accessOrder为true的时候,就按访问顺序对LinkedHashMap排序,为false的时候就按插入顺序,默认是为false的。 当把accessOrder设置为true后,就可以将最近访问的元素置于最前…
Java字符串优化
类是final的,表明不可继承。 成员属性是final的,表明不可修改。 在实际使用时,还可以使用intern方法,如果常量池中存在对应字符串,则直接返回该引用。 在一开始字符串"abc"会在加载类时,在常量池中创建一个字符串对象。 创建 a 变量时,调用 new Sting(…
下一页
个人成就
文章被点赞
64
文章被阅读
30,247
掘力值
809
关注了
53
关注者
13
收藏集
2
关注标签
34
加入于
2016-08-09