- 博客(18)
- 资源 (2)
- 收藏
- 关注
原创 类加载机制
我们知道,我们写的java文件是不能直接运行的,我们可以在IDEA中右键文件名点击运行,这中间其实掺杂了一系列的复杂处理过程。这篇文章,我们只讨论我们的代码在运行之前的一个环节,叫做类的加载。按照我写文章的常规惯例,先给出这篇文章的大致结构;首先,认识类加载机制,然后,详细介绍类加载的过程。最后,介绍了类加载器,还有双亲委派原则。废话不多说,直接来看吧。一、什么是类的加载java文...
2020-03-25 10:18:27 164
原创 springboot整合xxl-job
一、使用背景 目前项目中,采用的是微服务框架,由于在微服务中,存在需要定时的任务。但如果定时任务维护在每个微服务下,当微服务部署多个实例的情况下,会出现定事任务多次执行的情况。并且在解决问题的基础上,希望能够实现动态修改任务的定时时间,可以通过页面对定时任务进行控制。二、XXL-JOB简单介绍 首先,XXL-JOB是一个轻量级分布式任务调度平台,内容采用了Quartz定时框架实现,...
2020-03-03 17:34:05 247
原创 阿里云安装redis
一、在阿里云服务器上安装redis: 1.下载 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.解压 tar xzf redis-4.0.9.tar.gz 3.跳转目录 cd redis-4.0.10 4.安装 make 5.启动服务端:src/redis-server 6.启动客户...
2020-02-28 11:40:13 201
原创 防止重复提交的解决办法
token 机制,防止页面重复提交 业务要求:页面的数据只能被点击提交一次 发生原因:由于重复点击或者网络重发,或者 nginx 重发等情况会导致数据被重复提交解决办法:集群环境:采用 token 加 redis(redis 单线程的,处理需要排队)单 JVM 环境:采用 token 加 redis 或 token 加 jvm 内存处理流程:数据提交前要向服务的申请 tok...
2019-01-09 10:18:41 344
原创 transient和@Transient的使用
transient为java关键字,可阻止实例变量值的持久化。ObjectInputStream,ObjectOutputStream @Transient为hibernate注解,表示在ORM映射框架中,对应的字段为非数据库表的字段映射,可灵活应用为辅助字段。 ...
2019-01-09 09:44:54 1395
原创 JWT
/** * jwt工具类 */public class JwtUtils { public static final String SUBJECT = "zhuzhenqi"; public static final long EXPIRE = 1000*60*60*24*7; //过期时间,毫秒,一周 //秘钥 public static fin...
2019-01-08 19:41:27 171
原创 获取客户端ip
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.abc.com/的URL时,用request.getRemoteAd...
2019-01-08 19:13:50 208
原创 lambda之reduce操作
{ List<Integer> list = new ArrayList<>(); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); list.add(7); ...
2019-01-08 19:11:30 2985
原创 深刻理解++i 与i++本质区别
i++:1.先把i的值push到操作数栈,假设i的初始值为0;2.把操作数栈的值写回本地变量表里;3.本地变量表对应的数值加1注意:但是当把i++赋值给i,即i=i++时本地变量表中对应的数值首先不会进行自增操作,而是把当前本地变量表中对应的数值push到原来的操作数栈中,然后本地变量表中对应的数值再进行自增,时本变量表中对应的数值为1,操作数栈中的i为0,还没有结束,此时操作数栈...
2019-01-08 16:59:27 1170 1
原创 base64加密解密
package com.example.demo.study;import java.nio.charset.StandardCharsets;import java.time.Clock;import java.util.Base64;public class Base64Study { public static void main(String[] args) { ...
2019-01-08 11:29:35 259
原创 基于redis实现分布式锁
首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version>
2019-01-04 11:06:48 120
原创 try finally运用细节
1、不管try,finally都会执行;2、在try中return,在finally执行前会把结果保存起来,即使在finally中有修改也以try中保存的值为准,但如果是引用类型,修改的属性会以finally修改后的为准;3、如果try/finally都有return,直接返回finally中的return。...
2018-12-06 17:21:08 392
原创 lambda表达式运用的细节
1.在l利用ambda表达式进行集合操作的时候,break,return 不能终止或者跳出循环2.在lambda表达式的局部变量一定是只初始化一次,如果不是的话会报错:not effictive final,这样设计的目的为了防止当这个变量被别的地方引用,会改变变量的值。3.如果想在遍历集合的时候改变集合的元素的值,可以用peek这个惰性操作4.求集合的交集,差集和交集用conta...
2018-11-11 22:33:38 244
原创 io的理解
package com.example.demo.study;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class IoStudy { public static void main...
2018-11-04 23:55:24 251
原创 冒泡排序
package com.example.demo.study;/** * * @author Administrator */public class BubbleSort { public static void main(String[] args) { int [] arr = {2,4,1,8,6,5,7,5,4}; BubbleSor...
2018-10-28 22:08:35 110
原创 快排
package com.example.demo.controller;import com.google.common.primitives.Ints;public class StudyQuickSort { /** * 把基准元素放在中间 * @param arr * @param start * @param end *...
2018-10-21 21:33:03 125
原创 Spring boot 定时任务
package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.Enab...
2018-05-30 13:39:31 194
原创 spring boot Excel导出
yml: spring: datasource: name: mybatis url: jdbc:mysql://127.0.0.1:3306/test1 username: root password: root type: com.mysql.jdbc.Driver initialSize: 5 minIdle: 5 ...
2018-05-24 15:44:12 2468 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人