自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你确定你真的懂了枚举吗?

背景: ​ 在工作中我们都会创建一些静态常量,例如: // 春天 private static final String SPRING = 1; 这种定义方式看似十分简单,但是其实是存在很多问题的: 就是在使用过程中,别的开发人员会把你定义的常量用作别的用途,比如上面可能会被用作与别的数相加等等; 所以这个时候就需要就需要使用枚举,java5新增了enum关键字(它与calss、interface关键字的地位相同),用于定义枚举类。枚举类是一个特殊的类,它一样可以有自己的成员变量、方法,可以实现一个或

2020-12-22 14:47:54 135 1

原创 微信v3版本-native支付和支付宝支付接口对接

微信支付宝对接 背景: ​ 由于公司业务需要想把支付宝和微信整合在一起,做一个统一的支付模块。其中经过了各种坑,因为之前也没搞过这个。所以这里记录下,同时,也让后面做相同业务的小伙伴们少走一些弯路。 支付宝 ​ 接口:alipay.trade.precreate(统一收单线下交易预创建 ​ 接口描述: 收银员通过收银台或商户后台调用支付宝接口,生成二维码后,展示给用户,由用户扫描二维码完成订单支付。 这里我要讲下,我们使用这个功能的前提是你的商户账号已经开通“当面付”功能; 这里我们不在贴出参数和响应参数的

2020-12-06 15:12:30 2284 4

原创 java并发编程5-AQS底层原理你还不知道吗

1.前言 Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AQS实现的。AQS 全称是 AbstractQueuedSynchronizer,顾名思义,是一个用来构建锁和同步器的框架,它底层用了 CAS 技术来保证操作的原子性,同时运用了 CLH 同步队列作同步器,这也是 ReentrantLock、CountDownLatch 等同步工具实现同步的底...

2020-04-05 13:14:11 320

原创 java并发编程4-java之你所不知道的synchronized

1. 锁的基础知识: 1.1 锁的种类: 乐观锁 ​ 乐观锁是对于数据冲突保持一种乐观态度,操作数据时不会对数据锁定(这使得多个任务可以并行的对数据进行操作),只有到数据提交的时候才通过一种机制来验证数据是否存在冲突(一般是通过加版本号然后进行比对的方式实现); 特点:乐观锁是一种并发类型的锁,本身不对数据进行加锁通过业务实现锁的功能,不对数据进行加锁就意味着允许多个请求同时访问数据,这种...

2020-04-03 22:44:21 126

原创 java并发编程3-互斥锁:原子性问题

​ 在 可见性、原子性、有序性的追根溯源 的课后问答中,我们提到了long类型在32位和64位所引发的并发问题,它就是一个典型的原子性问题。那原子性问题的原因是什么?怎么解决原子性问题呢? ​ 其实原子性问题的源头就是线程切换时间片所导致的,在早期单核时代,我们知道操作系统做线程切换是依赖 CPU 中断的,所以禁止 CPU 发生中断就能够禁止线程切换。em…好吧,我错过了这个好时代。那么在多核时代...

2020-04-03 22:28:00 159

原创 java并发编程2-一起看Happens-Before 规则的前因后果

​ 上一章 可见性、原子性、有序性的追根溯源 我们了解到了java并发编程常见的3个问题,那么有问题肯定需要解决呀!这章我们聊聊如何解决可见性和有序性是怎么解决的——java内存模型。 什么是java内存模型? ​ 我们已经知道导致可见性的原因是缓存,导致有序性的原因是编译优化,有人说最直接的办法不就是直接禁用缓存和编译优化嘛!这样当然是不行滴!这样太影响性能了!合理的解决方案就是按需禁用缓存和编...

2020-04-03 12:08:36 175

原创 java并发编程1-可见性、原子性、有序性的追根溯源

1.课前知识: CPU、内存、I/O 设备速度的差异: CPU 和内存的速度差异可以形象地描述为:CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间)。内存和 I/O 设备的速度差异就更大了,内存是天上一天,I/O 设备是地上十年。 解决方法: 为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系机构、操作系统、编译程序都...

2020-04-02 19:44:30 169

空空如也

空空如也

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

TA关注的人

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