菜鸟分享
文章平均质量分 85
杨家昌
这个作者很懒,什么都没留下…
展开
-
Hibernate-validator(HV)异常
一直在犹豫要不要写一些经常会遇到的一些异常情况,直到最近引用同事jar包老是报错,才下定决心对异常做一下总结。先拿一段错误的代码看看:@Min(value = 0, message = "DD_VALIDATION_1009")private Float cargo_price;通过Hibernate-validator校验参数是一种十分常见的检验方式,这里就不多原创 2016-08-03 11:15:45 · 2402 阅读 · 2 评论 -
java中assert关键字
Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion)。,它的语法形式有如下所示的两种形式:1、assert condition; 这里condition是一个必须为真(true)的表达式。如果表达式的结果为true,那么断言为真,并且无任何行动如果表达式为false,则断言失败,则会抛出一个AssertionError对象。原创 2016-08-29 12:14:02 · 16737 阅读 · 0 评论 -
ArrayStoreException
最近看到一段JDK中ArrayList类中的源码,其中一段注释吸引了我的眼球,为了弄清其含义,特意找了一些资料,写了一点测试代码。源代码如下:/** * Constructs a list containing the elements of the specified * collection, in the order they are returned by the collec原创 2016-09-09 17:21:46 · 15233 阅读 · 0 评论 -
AES对称加密
public class AES { private static final String KEY = "99ssavv"; /** * base 64 encode * @param bytes 待编码的byte[] * @return 编码后的base 64 code */原创 2016-09-10 15:00:27 · 508 阅读 · 0 评论 -
slf4j优于log4j
之前已经写过以前简要的《log4j》,讲述了log4j的配置及使用。现在来说说slf4j优于log4j的几个点。先说结论吧:请尽量使用slf4j。1.依赖抽象而不是依赖具体实现slf4j对比Log4J,logback和java.util.Logging,slf4j是接口,其他都是具体的实现类。当客户端调用slf4j打印日志的时候,将通过Log4jLoggerAdapter这样一个log4j原创 2016-09-12 10:01:39 · 602 阅读 · 0 评论 -
JDK里的设计模式
下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patternsStructural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList转载 2016-08-25 17:25:23 · 318 阅读 · 0 评论 -
map的遍历性能测试
java中遍历通过不同的元素遍历map的方式有3种:1.通过keySet遍历;2.通过entrySet遍历;3.获取values遍历value。通过不同的方式遍历又分为foreach和iterator。因为本文按照这几个维度,以不同数据量来分别测试所需时间。主要测试方法如下:private static void valuesIterator(Map, String> map)原创 2016-09-18 13:38:01 · 1405 阅读 · 0 评论 -
properties配置载入
.properties文件是一种常用的KEY-VALUE键值对形式的配置文件。spring通过加载配置文件获取键值对,然后value值赋予给和key对应的属性上,从而使得程序能运用到这个配置属性。下面看一下例子:user.properties配置文件user.username=yangjiachanguser.password=yjcyjcyjcsprin原创 2016-07-22 10:45:14 · 540 阅读 · 0 评论 -
分布式交易一致性问题
下面是一个订单系统向支付系统发送请求的一个场景:这是一个极具代表性的例子,用户提交一次请求,订单系统向支付系统发出支付请求并处理回执。通常在开发这种订单交易系统的时候,会遇到几种常见的问题,下面是个人对此的一些总结:1.支付系统API通常需要一个“订单号”作为入参,而实际调用API接口时使用到的往往不是正在意义上的订单号,而是交易流水号。这个很好理解,像银行或者其他原创 2016-10-19 00:42:37 · 4985 阅读 · 0 评论