![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 59
viqiang1991
这个作者很懒,什么都没留下…
展开
-
Gson报错Invalid time zone indicator ‘ ‘
1.问题描述今天在用Gson进行反序列化json为java bean时,报Invalid time zone indicator ' '。详细报错日志如下:Caused by: com.google.gson.JsonSyntaxException: 1534467411000 at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:74) at co...转载 2021-07-14 18:04:41 · 1076 阅读 · 0 评论 -
java 两个list 交集 并集 差集 去重复并集
List<String> list1 =new ArrayList<String>();list1.add("A");list1.add("B);List<String> list2 =new ArrayList<String>();list2.add("B");list2.add("C");1.并集list1.addAll(list2);运行结果:A, B, B, C2.无重复并集list2.removeAll(list1)转载 2021-07-14 17:48:02 · 103 阅读 · 0 评论 -
Java之FileChannel类的理解和使用
Java之FileChannel类的理解和使用文章链接:http://blog.csdn.net/qq_16628781/article/details/70532307知识点:FileChannel类及方法理解; 普通输入输出流复制文件; FileChannel复制文件; 新名词记录:{MappedByteBuffer:文件映射在内存的直接换成字节数据;FileLock:代表文件的锁;ByteBuffer:缓存对象}概述对于文件的复制,平时我们都是使用输入输出流进行操作,利用源文件转载 2021-02-19 22:23:33 · 529 阅读 · 0 评论 -
MyBatis关联查询,一对多关联查询
实体关系图,一个国家对应多个城市一对多关联查询可用三种方式实现:单步查询,利用collection标签为级联属性赋值; 分步查询: 利用association标签进行分步查询; 利用collection标签进行分步查询 单步查询利用collection标签实现一对多单步关联查询:指定进行关联查询的Java Bean字段,即collection标签的property属性; 指定集合中的Java Bean类型,即collection标签的ofType属性;实体类...转载 2021-02-18 20:58:54 · 730 阅读 · 0 评论 -
idea设置方法注释模板
edit variablesparam的脚本groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] == '')return result;result+=' * @param ' + params[i] + ((i <...原创 2020-09-30 15:18:44 · 202 阅读 · 1 评论 -
遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了!
在工作中,我们经常要进行各种对象之间的转换。PO:persistent object 持久对象,对应数据库中的一条记录VO:view object 表现层对象,最终返回给前端的对象DTO:data transfer object数据传输对象,如dubbo服务之间传输的对象如果这些对象的属性名相同还好,可以用如下工具类赋值Spring BeanUtils Cglib BeanCopier 避免使用Apache BeanUtils,性能较差如果属性名不同呢?如果是将多个PO对象合并成一个VO转载 2020-07-04 09:50:37 · 401 阅读 · 0 评论 -
从源码级别揭开ThreadLocal的神秘面纱
说在前面ThreadLocal用来提供线程级别变量,变量只对当前线程可见。相比与“使用锁控制共享变量访问顺序”的解决方案。ThreadLocal通过空间换时间的方案,规避了竞争问题,因为每个线程都有属于自己的变量。此时就产生了第一个问题:线程如何维护属于自己的变量副本,搞懂了这个也就搞懂了其原理。 源码分析一、首先看下Thread类Thread中有一个 threadLocals 属性表示线程的本地变量。这个属性的类型是 ThreadLocal.ThreadLocalMap...转载 2020-06-27 11:40:59 · 135 阅读 · 0 评论 -
Java finally 语句到底是在 return 之前还是之后执行?
至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。(2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止Java虚拟机JVM的,连JVM都停止了,所有都结束了,当然fin...翻译 2020-04-21 16:47:34 · 94 阅读 · 0 评论 -
Java 对象浅拷贝和深拷贝,傻傻分不清?
在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。如下图描述:拷贝对象首先,我们定义一下需要拷贝的简单对象。/***用户*/publicclassUser{...转载 2020-04-20 16:12:14 · 121 阅读 · 0 评论 -
简述RESTful API 设计规范
RESTful API 设计规范主要从3个方面来说明:URL设计、状态码以及服务器回应。一 、URL设计1.动词+宾语RESTful的核心思想就是,客户端发出的数据+操作指令都是“动词+宾语”的结构,比如GET /articles这个命令,GET是动词,/articles是宾语,动词通常就有5种HTTP请求方法,对应CRUD操作,根据 HTTP 规范,动词一律大写。# GET:读...翻译 2020-04-15 16:08:04 · 475 阅读 · 0 评论 -
Java 运行时的内存划分
程序计数器记录当前线程所执行的字节码行号,用于获取下一条执行的字节码。当多线程运行时,每个线程切换后需要知道上一次所运行的状态、位置。由此也可以看出程序计数器是每个线程私有的。虚拟机栈虚拟机栈由一个一个的栈帧组成,栈帧是在每一个方法调用时产生的。每一个栈帧由局部变量区、操作数栈等组成。每创建一个栈帧压栈,当一个方法执行完毕之后则出栈。如果出现方法递归调用出现死循环的话就会造...原创 2020-02-23 09:28:03 · 118 阅读 · 0 评论 -
线程池中的一些细节
线程池的工作原理我认为线程池它就是一个调度任务的工具。众所周知在初始化线程池会给定线程池的大小,假设现在我们有 1000 个线程任务需要运行,而线程池的大小为 10,20 个线程来调度这1000个任务。而这里的 10~20 个线程最后会由线程池封装为ThreadPoolExecutor.Worker对象,而这个Worker是实现了 Runnable 接口的,所以他自己本身就是一...原创 2020-02-22 17:12:21 · 122 阅读 · 0 评论 -
线程通信的几种方式
前言开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。可以通过以下几种方式实现:(1)等待通知机制两个线程通过对同一对象调用等待 wait() 和通知 notify() 方法来进行通讯。如两个线程交替打印奇偶数:public class TwoThreadWaitNotify { ...原创 2020-02-22 16:29:19 · 3772 阅读 · 0 评论 -
理解和优雅的使用线程池
线程池原理简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。应当将其放入一个池子中,可以给其他任务进行复用。 解耦作用;线程的创建于执行完全分开,方便维护。我们重点来看下ThreadPoolExecutor是怎么玩的。首先是创建线程的 api:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,...原创 2020-02-22 10:35:45 · 121 阅读 · 0 评论 -
ReentrantLock 实现原理
使用synchronized来做同步处理时,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。而ReentrantLock就是一个普通的类,它是基于AQS(AbstractQueuedSynchronizer)来实现的。AQS是Java并发包里实现锁、同步的一个重要的基础框架。是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己阻塞自己的情...原创 2020-02-22 09:37:20 · 100 阅读 · 0 评论 -
使用maven将项目打包到maven本地仓库
1,cd 到项目的工作空间2,执行mvn clean install原创 2020-01-06 11:00:40 · 2071 阅读 · 1 评论 -
cmd命令行窗口同时执行多个命令
cmd /k "cd /d D:\develop && mvn clean package && java -jar target/xxx.jar"切换目录cd /d D:\develop(注:cd /d 为固定格式)打包mvn clean package运行程序java -jar target/xxx.jar可将上述命令作为bat文件...原创 2019-10-26 18:27:49 · 7346 阅读 · 0 评论 -
误区--变量的错误使用
原创 2017-07-29 14:50:58 · 213 阅读 · 0 评论