
编程语言:Java
文章平均质量分 96
奔奔尚
spawpaw@hotmail.com
展开
-
JDK下载过慢的问题解决方案
下载JDK的时候,10k每秒的速度简直难以忍受,下面列出了一些解决方法可用的加速方法将下载链接去掉https由于下载时默认是https,所以会慢一些,使用http之后虽然还是慢,但是也能稳定在400k左右,不急的话这速度十分钟之内就可以下完,还可以接受使用下载工具下载使用诸如百度网盘、迅雷等下载工具下载,流氓加速,快的一批国内各大公司的镜像站比如华为的:https://repo.h...原创 2019-06-28 13:41:18 · 92327 阅读 · 42 评论 -
SpringBootTest MockMVC绑定session(需要登陆的接口)
操作很简单,只需要一个对象:MockHttpSession。在每次构建请求的时候把session附加进去就行了,下面是示例代码@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublic class BlackCompanyWebApiTests { @Autowired private WebApplicationCo...原创 2019-06-24 10:56:37 · 4502 阅读 · 1 评论 -
JUnit参数化测试的写法
下面举了一个简单的例子来展示如何写一个参数化测试用例@RunWith(Parameterized.class)// 1. 指定Runnerpublic class EqualsTest { /** * 参数化测试用例 * * @return 返回一个一维数组,每个数组元素为一组测试用例。 * 每组测试用例为一个一维数组,将在测试时按照顺序注入被...原创 2019-04-21 21:31:56 · 817 阅读 · 2 评论 -
优雅地实现java枚举与int值地转换(JPA)
使用import lombok.Data;import lombok.Getter;import lombok.RequiredArgsConstructor;@RequiredArgsConstructor//为final字段创建构造函数public enum Process implements ConvertibleEnum { CREATED(1000)//已创建,未提...原创 2019-04-16 15:23:22 · 1842 阅读 · 0 评论 -
tornadofx 实现鼠标拖动窗口(多窗口)
本质上和javafx没有什么不同,网上看到的方案都是通过设置primaryStage的位置来实现,所以在多窗口情形下不论拖动哪个窗口都只会使主窗体移动。解决方案就是通过currentWindow来操作当前窗体,下面贴出我的代码:首先我们创建一个事件处理器来响应鼠标事件:class DragWindowEventHandler(private val currentWindow: Window...原创 2019-04-02 12:58:22 · 484 阅读 · 0 评论 -
Native Library xxx\opencv_java400.dll already loaded in another classloader 错误解决
在将opencv整合进spring时出现了java.lang.UnsatisfiedLinkError异常:Exception in thread "restartedMain" java.lang.UnsatisfiedLinkError: Native Library *\opencv_java400.dll already loaded in another classloader at...原创 2019-02-22 10:21:09 · 1731 阅读 · 1 评论 -
Hibernate Validator 6.0.15.Final (JSR 380 参数验证 的一种实现) 参考文档 翻译
一、前言验证数据是贯穿所有应用程序层(从表示层到持久性层)的常见任务。通常在每一层都要实现相同的验证逻辑,这既耗时又容易出错。而直接将这些验证逻辑捆绑到域模型中,也会使域模型变得非常混乱,因为这会让域模型类充斥验证代码。因为验证代码实际上是类本身的元数据,所以不妨直接在域模型上添加特定注解,直接约束域模型的值。实际上,在JSR 380 - Bean Validation 2.0中就约定了一套...翻译 2019-02-22 09:59:33 · 530 阅读 · 0 评论 -
人民币大写转阿拉伯数字的java实现
人民币大写转阿拉伯数字的工具类,简单粗暴的替换就完事了import java.util.HashMap;import java.util.Map;public class ValueConvertUtil { /** * 将大写金额转换为字符串形式的阿拉伯数字。 * 支持小于一万亿的数字,可精确到小数点后两位 * 如果大写金额的格式错误,本函数不保证能...原创 2019-02-22 09:54:03 · 1411 阅读 · 0 评论 -
Java多线程:线程池
一、为什么使用线程池最基本的开启一个异步任务的方法就是直接像下面这样new一个Threadnew Thread(new Runnable() { @Override public void run() { // TODO } }).start();但是这样做有很多弊端:每次new Thread新建对象性能差。 如果并发的线程数量很多,并且每个线...原创 2018-08-05 09:15:32 · 372 阅读 · 0 评论 -
Java多线程:JUC包-锁的封装
之前在Java多线程:synchronized和volatile这篇文章中,讲了Java在语言层面上对对多线程提供的支持。那么,在实际应用中,很多时候仅仅靠这两个关键字是不够的。那么如果我们想进行更骚的操作,就需要使用 java.util.concurrent 包下的工具类了。这个包的结构如下所示:- java.util - atomic //原子操作 - locks /...原创 2018-08-01 19:21:27 · 654 阅读 · 0 评论 -
Java多线程:synchronized和volatile
一、什么是锁1.1 为什么需要锁: CPU的内存模型大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而数据首先会被从主存取到CPU的cache中,但是当变量在cache中被改变时,是不会立马写回主存的,那么问题就来了,在多核心CPU中,如果执行下面一段代码:i = i + 1;在多线程环境中就会出问题,如果这里不明白可以参考下图或者百度内存模型,这里不再赘述1...原创 2018-08-01 16:53:13 · 451 阅读 · 0 评论 -
Java多线程:锁的底层实现
最近准备招聘,在网上搜集了很多关于JVM获取的锁流程的文章,基本上所有关于偏向锁获取的部分都是错的,所以专门花时间自己看了看代码,整理出来供大家参考。一、 基本概念CAS(compare and swap) 参考资料: https://blog.youkuaiyun.com/ls5718/article/details/52563959 缓存一致性协议1. 什么是...原创 2018-07-31 11:39:11 · 4699 阅读 · 2 评论 -
Java多线程:Thread的使用,以及wait(),notify(),notifyAll()
本文章是Java多线程系列的一篇文章,其他文章: Java多线程:锁的底层实现 Java多线程:synchronized和volatile Java多线程:JUC包-锁的封装 Java多线程:Thread的使用,以及wait(),notify(),notifyAll() Java多线程:线程池一、Thread的状态在Thread类的1750行左右定...原创 2018-08-12 21:00:19 · 991 阅读 · 0 评论