自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java 无锁实现原理CAS解析

以一段取款余额引出问题账户余额提取问题public interface Account { public static void main(String[] args) { // 不安全 无锁 Account accountUnsafe = new AccountUnsafe(10000); Account.demo(accountUnsafe); } // 获取余额 Integer getBalanc

2020-05-25 16:52:47 304

原创 java线程安全的单例模式分析

本文针对于单例模式中对象创建中的线程安全问题。主要以懒汉式,饿汉式,静态内部类,枚举类分析在调用时创建对象的线程安全问题。1.饿汉式类加载会导致该单实例对象被创建 // 问题1:为什么加 final // 问题2:如果实现了序列化接口, 还要做什么来防止反序列化破坏单例public final class HungrySingleton implements Serializable { // 问题3:为什么设置为私有? 是否能防止反射创建新的实例? private

2020-05-21 21:13:12 190

原创 java volatile关键字内存原理

内存屏障(Memory Barrier)1.可见性写屏障(Sfence)保证该屏障之前的,对共享变量改动都同步到主内存中去读屏障(Ifence)保证该屏障之后的,对共享变量读取加载的为主内存中最新数据2.有序性写屏障在指令重排序时,不会将写屏障之前的代码排到屏障之后读屏障在指令重排序时,不会将读屏障之后的代码排到屏障之前volatile原理volatile底层原理基于内存屏障对volatile变量写指令会在之后加入写屏障对volatile变量读指令会在之前加入读屏障如何保

2020-05-19 14:15:51 322

原创 润乾报表在Tomcat服务上的部署步骤

润乾报表在Tomcat服务上的部署1.在润乾报表设计器安装目录(…\report5\web\webapps)下找到demo文件夹;(这里使用的是润乾v5设计器)2.将步骤1.中的demo文件夹放到tomcat的webapps下(此处我将demo文件夹名重命名为了reportserver) 3.配置数据库连接池(此处选用JNDI的连接方式) 1)确定报表中数据源的名称(此处数据源

2017-09-13 11:59:33 3718 2

空空如也

空空如也

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

TA关注的人

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