自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员小潘

专注于Java后端技术分享!

  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于CAS的一点理解和思考

文章目录CASJava中的CAS操作加锁和CAS性能测试比较CAS不同线程数量下的额外开销CASCAS(Compare And Swap)是对一种处理器指令的称呼,中文译为:比较并交换。它需要三个参数:内存地址V、期望的旧值A、要替换的新值B。它要完成的功能:当且仅当内存地址V的值等于A时,将A替换为B并返回true,否则什么也不做直接返回false。用Java代码描述,大致如下所示:...

2020-03-27 21:08:23 2994

原创 线程间协作——等待与通知

文章目录前言wait和notify存在的问题notify和notifyAll用哪个?生产者消费者实战条件变量Condition前言系统的稳定运行,在单线程程序中得益于类与类之间的协作,在多线程程序中,还得益于线程与线程之间的协作。一段逻辑代码块的执行可能会依赖于某个先决条件,在单线程程序中可以使用if来构建分支,在多线程程序中可以使用Java提供的等待-通知功能。例如:生产者消费者模式中,...

2020-03-27 19:36:29 2950

原创 Java逃逸分析之栈上分配内存

目录什么是逃逸分析?栈上分配内存什么是逃逸分析?在很早以前,Java代码从编写完毕到JVM执行至少需要两个过程:javac将Java代码编译成字节码class文件。JVM载入class文件后,由解释器来逐条将字节码指令解释翻译成本地机器码并执行。因此,Java也被称为是一门”解释执行“的语言,由于解释执行比编译执行要慢,所以”Java程序很慢“在早期深入人心。为了解决“解释执行”的...

2020-03-19 20:31:18 3058

原创 手写MyBatis分页插件

目录前言MyBatis插件手写分页插件总结前言在开发查询类的接口时,有一个让开发者比较头疼的问题:分页。如果每次都要开发者自己去写limit,计算起始行和偏移量就太烦了,于是市面上诞生了一些优秀的分页插件,例如:PageHelper。PageHelper使用起来非常简单,如下示例代码:Page page = PageHelper.startPage(1, 10);//sql: sele...

2020-03-16 20:15:00 3260

原创 关于Java是否应该在循环外声明变量的一点思考

目录前言性能和内存性能测试内存测试编译优化总结前言“不要把变量声明在循环体内”,经常看到类似的言论,那么到底有没有必要这么去做呢?首先,将变量声明在循环体外有以下几个缺点:作用域变大,存在被无意引用的风险防止变量命名冲突可读性较差综上,如果“在循环体外声明变量”不能在其他方面(如性能上)带来优化,那么我实在想不出有什么理由需要这么去做。性能和内存在语法的可读性上,“循环外声明...

2020-03-15 12:29:40 3064

HashMap.java

JDK7的HashMap源码阅读,几乎给每个方法和属性都加上了中文注释。 可以帮助大家更好的阅读源码,可能有理解不对的地方,望指正。

2019-12-27

空空如也

空空如也

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

TA关注的人 TA的粉丝

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