- 博客(20)
- 资源 (3)
- 收藏
- 关注

原创 对象拷贝那些事
对象拷贝那些事拷贝方法该文章对以下几种拷贝方式进行使用场景和性能对比进行说明。- clone - set - spring beanutils - cglib beanCopier - stream - orika深拷贝或浅拷贝深拷贝:指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。浅拷贝:指拷贝的对象根据原对象属...
2018-07-15 20:58:01
886

原创 分布式锁实现方式
前言 实现分布式锁的三种方式,1:数据库乐观锁,2:redis锁,3:zk锁,本文将说下这三种的分布式锁,因为我平时用的最多的就是redis锁,所以先以它开写。高可用要保证分布式锁的高可用性,需要满足以下几个条件: 1:唯一性(互斥性):同一时间,只有个客户端获得锁 2:无死锁:要保证由于解锁失败导致其他客户端一直不能获得锁。 3:容错性:要保证
2018-01-19 11:09:23
505
转载 final
Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以声明成员变量、方
2017-07-22 14:05:31
292
转载 Spring aop 一些问题
前言我们通常可以用aop做一些公共的问题,比如:权限管理,事务委托,验证,日志管理。通知环绕通知和前置通知,后置通知前置和后置通知是在方法的调用前后执行通知,目标方法一定会执行的,然而环绕通知是可以决定方法是否可以执行的。环绕通知可以控制返回对象,即你可以返回一个与目标对象完全不同的返回值,虽然这很危险,但是你却可以办到。而后置方法是无法办到的,因为他是在目标方法返回值后调用参数验证aop D
2017-07-22 13:38:15
421
翻译 Java1.8源码阅读-DualPivotQuicksort
在刷leetcode时,涉及到一个排序算法时,自己采用的冒泡,和快速排序,出现超时问题,于是看了解决方案,解决方案采用的是Arrays.sort,于是对其内部实现排序进行了查看。总的来说,Arrays.sort在对int[] 数组进行排序时,根据其长度进行动态的排序算法选择。基本流程:1:如果长度小于 QUICKSORT_THRESHOLD(286),则采用非归并并排序 // U
2017-07-15 15:04:29
450
原创 JAVA使用ScriptEngine 解析脚本
前言最近做一个功能需要把一个数学公式保存到数据库,然后通过java读取数学公式,传入参数进行计算,发现了java中的javax.script,它开始存在于JDK1.6,它可以解析通用的表达式,如三目,还可以利用js函数语法,创造一个就像java的函数一样存在于内存中随时可以被调用的函数,更可以将js中的对象直接转换成java对象。script包最主要的几个类和接口为:ScriptEngineMana
2017-07-07 11:58:27
26794
2
转载 Ibatis 中关于sql动态传值问题
如何传多个值,通过hashMap一个包含List元素的HashMap参数赋给sqlMap public int getCountById(Integer dataType, List ids) throws Exception { Map paramMap=new HashMap(); paramMap.put("dataType", dataType);
2017-06-27 13:30:28
1561
原创 Spring cloud config 配置文件加密
前言我们会使用git来保存我们项目的配置文件,但是文件中总有一些敏感数据,对于这些敏感数据我们通常需要给它加密,加密通常有两种加密方式,一种是对称加密,一种是非对称加密,对称加密简单方便,但是安全性没有非对称加密高,非对称加密需要生成证书,安全性比较高。但是请记住没有绝对的安全。配置环境java8 jceconfig server 的加密解密需要依赖与java Cryptography Exten
2017-06-13 11:17:43
12450
2
原创 内存泄漏和内存溢出
内存泄漏和内存溢出解决内存泄漏被分配的对象可达,但是无用,内存溢出无法申请到足够的内存用于创建对象内存泄漏情况长生命周期对象,持有短生命周期一个对象 private static Map<String,Object> map=new HashMap<>(); void doSomeThing(){ Object object=new Object();
2017-06-01 22:55:37
581
原创 Spring事务传播性
1:前言 最近在修改公司支付问题时,碰到一个问题,当支付失败时,业务逻辑没有回滚。很明显没有做事务回滚。可以建模成以下模型: public class UserServiceImpl implements UserService{ ....... public void addUser(User user){ userTagService.ad
2017-04-07 09:37:55
442
原创 SpringMVC整合Swagger
1:Swagger介绍Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。2:SpringMvc整合Swagger
2017-04-02 13:26:09
439
原创 解决Idea 导入项目出现 building“project name”gradle project info 问题
摘要:解决Idea 导入项目出现 building“project name”gradle project info 问题
2017-03-26 12:41:06
2959
原创 Java URL 转义与反转义
URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。
2017-03-22 17:02:36
36854
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人