- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 EasyExcel的导入导出总结
1、先在maven中引用EasyExcel的jar包 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.5</version> </dependency>2、如何向单个sheet导出数据
2020-08-09 22:44:45 324
原创 SpringMVC如何接收JSON格式参数
1、JS定义请求参数1、定义参数必须要定义成JSON格式数据如下let papers = {"answers": answers, "phone": phone, "surplusTime": maxtime};2、$.ajax方法设置data:JSON.stringify(papers),contentType: ‘application/json’,如下 $.ajax({ type: "POST", url: "url",
2020-08-09 22:08:36 732
原创 JWT详解
1、JWT介绍定义:JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案JWT官网:https://jwt.io/由于HTTP协议是无状态的,如果想判定一个接口是否被认证后访问,就需要借助cookie或者session会话机制进行判定,但是由于现在的系统架构不止一台服务器,此时要借助数据库或者全局缓存做存储,这种方案受限太多。JWT提供提供了一种更好的方案,由令牌发布...
2019-12-08 23:16:36 409
原创 【GBK、UTF-8、ISO8859-1】编码总结
https://www.cnblogs.com/amunamuna/p/8922125.html
2019-09-05 23:15:01 542
原创 IDEA快捷键
Ctrl Alt Shift Enter +为了防止忘记IDEA中好用的快捷键,立帖记录。快捷键功能Ctrl+E展示最近打开文件列表Ctrl+Alt+T表达式环绕选中Shit+Alt+U切换字符串大小写Shit+F6批量修改变量名...
2019-08-25 23:34:09 139
原创 IDEA好用的插件
IDEA中好用的插件插件名称描述CamelCaseShit+Alt+U不断切换字符串格式Alibaba Java Coding Guidelines根据阿里代码规范检查代码
2019-08-25 22:59:13 171
原创 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore1、前言2、CountDownLatch理解和使用3、CyclicBarrier理解和使用4、Semaphore理解和使用1、前言由于对CountDownLatch和CyclicBarrier的功能容易混淆不清,于是特地把这两个类拉出来进行对比。顺带也把Semaphore拿过来一起进行介绍。希望本篇博...
2019-07-26 23:32:30 128
原创 AbstractQueuedSynchronizer源码分析(二):独占锁的获取与释放
本篇文章分析AbstractQueuedSynchronizer源码中三块内容1、不响应中断的获取独占锁2、响应中断的独占锁3、释放独占锁以彻底了解独占锁的获取与释放逻辑。
2019-07-25 23:10:47 216
原创 源码解读(三):Java中的LockSupport的使用
Java中的LockSupport的使用1、LockSupport方法介绍对比park() 与park(Object blocker) 的区别parkUntil(long deadline) 方法的时间点在哪里2、LockSupport源码及注释3、关于sun.misc.Unsafe类型1、LockSupport方法介绍在Java多线程中,当需要阻塞或唤醒一个线程时,我们可以使用LockSup...
2019-07-23 00:36:47 388
翻译 AbstractQueuedSynchronizer源码附注释
public abstract class AbstractQueuedSynchronizer
2019-07-21 08:34:54 161
转载 自己备用
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-07-20 19:07:08 148
原创 源码解读(二):Java中的CAS应用
源码解读(二):Java中的CAS1、什么是CAS2、CAS在Java中的使用3、ABA问题1、什么是CASCAS全称为ConmpareAndSwap:比较和交换;CAS有三个要素原始值、期望值和更新值操作逻辑:将原始值与期望值进行比较,只有在值相同的情况下,将改原始值更新为新值。CAS是实现多线程同步的原子指令,具有原子性。原子性:一个操作不能被打断,要么全部执行完毕,要么不执行。...
2019-07-18 21:37:21 202
原创 源码解读(一):interrupt()、isInterrupted()和interrupted()以及InterruptedException
这里写自定义目录标题欢迎使用Markdown编辑器新的改变欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变...
2019-07-18 14:57:13 1029
原创 windows上使用bat文件重启nginx
windows上使用bat文件重启nginx使用 taskkill /f /t /im nginx.exe 命令来查询nginx进程并关闭nginx使用 start nginx.exe 启动nginx把下面的命令写到bat文件中,放在nginx同目录下。需要重启的时,双击bat文件taskkill /f /t /im nginx.exestart nginx.exe...
2019-07-14 21:32:29 1187
原创 AbstractQueuedSynchronizer源码分析(一):AbstractOwnableSynchronizer和Node
static final class Node { /** 标识节点以共享模式等待 */ static final Node SHARED = new Node(); /** 标识节点以独占模式等待 */ static final Node EXCLUSIVE = null; /** 标识线程已经被取消 */ stat...
2019-07-03 23:12:23 164
原创 Java并发编程(二):ReentrantReadWriteLock的介绍与使用
Java并发编程(二):ReentrantReadWriteLock的介绍与使用概述1、公平锁与非公平锁(待补充)2、ReentrantReadWriteLock的可重入锁3、读写锁降级4、锁的中断5、Condition支持概述1、公平锁与非公平锁(待补充)支持公平和非公平的获取锁的方式;import java.util.concurrent.TimeUnit;import java.u...
2019-06-27 23:04:49 122
原创 Java并发编程(一):ReentrantLock的介绍与使用
ReentLock的使用1、ReentrantLock与Condition的使用什么是ReentrantLock?什么是Condition?2、ReentrantLock中的公平锁与非公平锁1、ReentrantLock与Condition的使用什么是ReentrantLock?锁是控制多线程安全方法共享资源访问的工具。锁有两种实现方式,一种是使用synchronized(隐性锁),另一种是...
2019-06-22 22:51:27 345
原创 关于AbstractQueuedSynchronizer部分方法的注释和理解
CANCELLED:值为1,在同步队列中等待的线程等待超时或被中断,需要从同步队列中取消该Node的结点,其结点的waitStatus为CANCELLED,即结束状态,进入该状态后的结点将不会再变化。 SIGNAL:值为-1,被标识为该等待唤醒状态的后继结点,当其前继结点的线程释放了同步锁或被取消,将会通知该后继结点的线程执行。说白了,就是处于唤醒状态,只要前继结点释放锁,就会通知标...
2019-06-16 23:17:12 159
原创 Java enum枚举类使用小技巧
public enum State{ // 成功 Success(1), // 失败 Failed(2), private int value; private State(int value) { this.value = value; } public void setValue(int value) { this.value = value; } publi
2015-10-21 15:45:04 564
原创 多线程join使用注意事项
public class OrderThread{ public static void main(String[] args) { final Thread t3 = new Thread("t3"){ public void run(){ try { System.out.println(Thread.currentThread().getName()
2015-10-16 17:12:58 341
转载 设计模式:抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。人种接口public interface Human{ //每个人种的皮肤都有相应的颜色 public abstract void getColor(); //人类会说话 public abstract void talk(); //人类有性别 public abstract voi
2015-09-26 16:26:40 385
转载 设计模式:工厂模式(Factory Pattern)
工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。(1)普通工厂模式接口类,用于定义总的类型public interface Human{ //每个人种的皮肤都有相应的颜色 public void getColor(); //人类会说话 public void talk();}人类的三种子类型public class
2015-09-25 17:21:59 335
转载 设计模式:单例模式(Singleton Pattern)
单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供整个实例。饥汉式单例public class Singleton{ private static final Singleton singleton = new Singleton(); //私有化构造方法,就无法通過new,创建一个新的对象 private Singleton(){ } public
2015-09-25 15:23:47 404
原创 ThreadLocal使用小技巧
大家都知道使用ThreadLocal可以使对象达到线程隔离的目的。在使用ThreadLocal可以不用单独定义一个变量用于保存和线程相关的属性,这样若出现多个与线程相关的变量也就要定义多个ThreadLocal。与其这样定义,不如定义一个专门和线程进行绑定的类,自身进行管理ThreadLocal,已达到我们的要求。import java.util.Random;public cla
2015-09-24 10:09:16 409
原创 SpringMVC接收数组请求参数小技巧
Java代码部分@RequestMapping("/getSome")@ResponseBodypublic Object getSome(String[] ids){ //TODO}JSP页面代码部分var idArr = new Array(); for(var i=0;i<ids.length;i++){ idArr.push(ids[i]); }$.post('ur
2015-09-23 14:55:32 2288
原创 java.sql.Blob类型如何插入到MySQL数据库
1、首先你需要定义的你MySQL数据库表字段为Blob类型,对于Java来说Blob类型存放的是二进制流2、Java实体类型中属性不需要使用java.sql.Blob类型,对应Blob属性的定义为byte数据,即byte[]3、无论是字符串还是文件,都需要转化为二进制流,然后保存到该属性中4、通过jdbc就可以保存该实体到数据库中
2015-09-05 15:40:27 2054
原创 JSON格式验证规范--JSON-SCHEMA
公司要求用json-schema对json字符串的格式进行校验,发现网络上相关的内容很少,尤其是中文介绍json-schema用法的更是少之又少;只要大费周章的抱着英文文档去啃,为了方便大家,我把自己看明白的分享给大家互相学习和交流,有缺漏和错误之处请大家指正。首先分享四个相关网址,便于大家学习1、应该是json-schema官方文档地址,比较详细和全面,还有一些demo的介绍.htt
2015-07-03 22:26:41 10658 2
转载 dubbo入门学习之Helloworld
服务端代码结构Main.java内容package com.lyf.app;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main { public static void main(String[] args) throws Exception {
2015-06-25 22:24:49 765
Java代码快捷模板
2019-08-25
dubbo入门demo样例
2015-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人