Java EE
rookiedev
做好当下的每一件事
微信公众号:rookiedev
个人博客:http://www.gittab.net
展开
-
JVM 的运行时数据区域分布
说到 Java 虚拟机(Java Virtual Machine, 简称 JVM),可能对于我们大部分 Java 程序员来说都感觉望而生畏,都觉得它很高大上,毕竟我们都知道因为它我们的 Java 程序才能做到一次编写,到处运行,而且因为它我们才能够做到只专注于业务代码实现,而不用去关心内存分配和回收的事情,仅从这两点就能看出 Java 虚拟机为我们做了多少事情,但也正因为它为我们做的事情太多了,以至于我们只需要一心一意的去实现我们的需求,在大多数情况下我们都不用去关心底层如何做到的,但也因为它做了太多,导致原创 2020-12-23 16:33:13 · 187 阅读 · 1 评论 -
Java 细粒度锁续篇
在上篇文章中大概介绍了 Java 中细粒度锁的几种实现方式,并且针对每种方式都做了优缺点说明,在使用的时候就需要根据业务需求选择更合适的一种。上篇文章中的最后一种弱引用锁的实现方式,我在里面也说了其实还有更优雅的实现,其实也算不上更优雅,只是看起来更优雅,原理还是一样的,今天我打算用一篇文章的篇幅来好好说下。首先,我们来再次回顾一下,这里为什么可以利用弱引用的特性拿掉分段锁呢?分段锁在这里主要是为了保证每次在创建和移除锁时的线程安全,而采用了弱引用之后,我们不需要每次创建之后都进行移除,因为当弱引用指向的原创 2020-12-10 00:15:21 · 416 阅读 · 0 评论 -
日常开发中常用命令之 nohup 命令
之前几篇文章分享了异步接口的实现和原理,基本上都是需要查看源码来辅助理解,说实话,看懂之后可能觉得还好,但是在一开始不太清楚的时候阅读源码确实有点枯燥,尤其是在你不是很想去了解这个的时候。只有当我们真正想去了解这个东西的时候可能才会愿意花精力去研究,这时候就不会那么无聊了,反而会觉得在探索的过程中很有趣。接下来我开始分享稍微轻松一点但又不那么无聊而且很实用的东西,那就是日常中我们肯定会用到很多命令,有一部分是我们用的比较频繁,而且又是必备的命令,这些命令我们需要熟练掌握,这有利于提高我们日常的工作效率。原创 2020-11-25 13:43:19 · 211 阅读 · 0 评论 -
Java 中常见的细粒度锁实现
上篇文章大致说了下 ReentrantLock 类的使用,对 ReentrantLock 类有了初步的认识之后让我们一起来看下基于 ReentrantLock 的几种细粒度锁实现。这里我们还是接着用之前 synchronize 关键字加锁实现线程安全 文章中举的账户扣款的例子好了,不过这里为了更贴近系统的功能实现,我们换一下思路,功能实现不变,只是把钱转换成我们系统中的使用的礼券好了,用户每次在系统中购买某项功能需要支付一定的礼券。那既然要实现细粒度锁,那就意味着不同用户账户扣除礼券的操作互不影响,只需要原创 2020-11-23 18:16:53 · 1263 阅读 · 2 评论 -
MyBatis学习之动态SQL标签
在实际开发中,往往有一些复杂的SQL语句,MyBatis中就需要写一些动态的SQL语句,这时就需要借助于MyBatis中的OGNL表达式,这样可以很方便的实现一些复杂的逻辑,MyBatis中的动态SQL标签主要有以下几种:1.if标签(简单的条件判断) <select id="dynamicIfTest" parameterType="Blog" resultType="Blog">原创 2016-12-28 22:32:55 · 2146 阅读 · 0 评论