
java
文章平均质量分 58
焦虑的二狗
这个作者很懒,什么都没留下…
展开
-
Guava包使用实例
Guava原创 2022-08-16 23:43:28 · 1074 阅读 · 0 评论 -
SpringBoot Gateway源码讲解
spring cloud gateway原创 2022-08-15 23:05:34 · 993 阅读 · 0 评论 -
自己梳理的LocalDateTime的工具类
LocalDateTime原创 2022-07-26 11:08:17 · 221 阅读 · 0 评论 -
一个实用的二分法工具类ForkJoinPool
工具类import java.util.List;import java.util.concurrent.RecursiveAction;import java.util.function.Consumer;public class ForkJoinPoolUtil<T> extends RecursiveAction { //二分开始位置 private Integer start; //二分结束位置 private Integer end;原创 2021-06-05 00:20:48 · 371 阅读 · 0 评论 -
java 自定义表达式 表达式解析 QLExpress使用
具体使用语法规则可以查看下面地址中文档说明: QLExpress:https://github.com/alibaba/QLExpress <dependency> <groupId>com.alibaba</groupId> <artifactId>QLExpress</artifactId> <version>3.2.0</version原创 2022-04-17 12:18:11 · 4430 阅读 · 0 评论 -
个人总结一些不错的学习资料文档链接
学习原创 2021-12-05 12:45:58 · 2092 阅读 · 0 评论 -
ReentrantReadWriteLock源码讲解
简介现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。针对这种场景,JAVA的并发包提供了读写锁ReentrantReadWriteLock,它表示两个锁,一个是读操作相关的锁,称为共享锁;一个是写相关的锁,称为排他锁,描述如下:线程进入读锁的前提条件:没有其他线程的写锁,没有写请求或者有写请求原创 2021-11-06 23:26:21 · 191 阅读 · 0 评论 -
ReentrantLock内部原理实现
ReentrantLock是基于AQS(AbstractQueuedSynchronizer)来进行实现的,分为公平锁和非公平锁,可以通过在构造器中出入true将ReentrantLock设置为一个公平锁。AQS是一个FIFO的双向队列,自内部通过节点head、tail记录队首和队尾元素,队列元素的类型为Node,其中Node中thread变量用来存放进入AQS队列里面的线程,Node节点内部的SHARED用来标记该线程是获取共享资源而被阻塞挂起后放入AQS队列中的,EXCLUSIVE用来标记线程是获取独原创 2021-11-04 23:36:37 · 313 阅读 · 0 评论 -
datax-通用文档
离线同步工具DataX3.0介绍一、DataX 3.0概览DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。● 设计理念为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。● 当前使原创 2021-10-28 00:33:41 · 1020 阅读 · 0 评论 -
AtomicInteger cas乐观锁的累加方式 & cas下的ABA问题复现
package com.autonavi.collapse.deteleable;import java.util.concurrent.CountDownLatch;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicStampedReference;import java.util.stream.IntStream;public class Test {原创 2021-10-20 23:29:32 · 326 阅读 · 0 评论 -
Java动态代理---cglib动态代理
需要实现 MethodInterceptor 接口代理类无需实现自己的接口 特点:CGLib采用了非常底层的字节码技术, 其原理是通过字节码技术为一个类创建子类, 并在子类中采用方法拦截的技术拦截所有父类方法的调用, 顺势织入横切逻辑实现方式一ServiceImpl.java public class ServiceImpl { public void sendmessage1 () { System.out.println("send mess原创 2021-04-13 18:05:18 · 196 阅读 · 0 评论 -
Java代理---JDK动态代理
需要实现 InvocationHandler接口被代理类必须要实现自己的接口实现方式一:Service.javainterface Service { void sendmessage1 (); void sendmessage2 (); }ServiceImpl.javaclass ServiceImpl implements Service { public void sendmessage1 () { Sys原创 2021-04-13 17:42:23 · 79 阅读 · 0 评论 -
JDK8日期工具类:Instant/Duration、ZonedDateTime/LocalDateTime、DateTimeFormatter、TemporalAdjusters
用法演示 //Instant/Duration //ZonedDateTime/LocalDateTime //DateTimeFormatter //TemporalAdjusters Instant now = Instant.now(); //获取1970-1-1 00:00:00 至当前得 多少秒,类似于System.currentTimeMillis() 获取毫秒值 System.out原创 2021-04-08 09:51:17 · 321 阅读 · 0 评论 -
Synchronized详解
线程安全问题的主要诱因存在共享数据(也称为临界资源)存在多条线程共同操作这些共享数据解决问题的根本原因:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后在对共享数据进行操作互斥锁特性:互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问,互斥性也称为操作的原子性。可见性:必须保证在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程时可见的(即在获得原创 2021-03-26 22:37:37 · 210 阅读 · 1 评论 -
不同版本JDK之间的intern()方法的区别
测试源码 public static void main(String[] args) { String s = new String("a"); s.intern(); String s2 = "a"; System.out.println(s == s2); String s3 = new String("a") + new String("a"); s3.intern(); Str原创 2021-03-26 17:10:07 · 429 阅读 · 1 评论 -
JVM内存模型
JVM架构图JVM内存模型 – JDK1.8程序计数器1:当前所执行的字节码行号指示器(逻辑)2:改变计数器的值来获取下一条需要执行的字节码指令3:和线程是一对一的关系即线程私有4:对java方法技术,如果natice方法则技术器值为Undefined5:不会发生内存泄漏...原创 2021-03-26 11:27:42 · 109 阅读 · 0 评论 -
双亲委派及自定义类加载器
双亲委派机制图示自定义类加载器新建需要被加载的类ByteCodeSimple.java,放在桌面并通过javac编译为.class文件public class ByteCodeSimple { static { System.out.println("new instance start"); } public static int add(int a, int b) { int c = 0; c = a + b; return c; } }自定义类加载器实现原创 2021-03-25 18:08:15 · 265 阅读 · 0 评论 -
多线程未捕获异常处理---Thread.UncaughtExceptionHandler
UncaughtExceptionHandler 异常捕获实现类import java.util.logging.Level;import java.util.logging.Logger;/** */public class MyUncaughtExceptionHandle implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread t, Throwa原创 2021-03-24 15:11:43 · 374 阅读 · 0 评论 -
通过wait、notify来实现阻塞队列
import java.util.LinkedList;import java.util.stream.IntStream;/** */public class BlockArrayTest { private static int lenth = 10; private static LinkedList<Integer> list = new LinkedList<>(); private static Object lock = new原创 2021-03-24 14:51:04 · 219 阅读 · 0 评论 -
CAS累加操作导致ABA问题描述及解法
import java.util.concurrent.CountDownLatch;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicStampedReference;import java.util.stream.IntStream;public class Test { //验证volatile的线程安全问题 private static cl.原创 2021-03-18 23:21:57 · 229 阅读 · 0 评论 -
设计模式---单例模式示例代码
设计模式—单例模式懒汉式双重检验模式import java.io.Serializable;/** * @date 2021/3/18 14:28 */public class LazySingleton implements Serializable { //volatile 防止类实例化阶段的指令重排序 //注:类初始化重排序问题: // 1:分配内存空间 2:调用构造函数初始化成员变量 3:将变量指向分配的内存空间地址 //执行顺序可能为 1->原创 2021-03-18 15:11:41 · 142 阅读 · 0 评论 -
ReentrantReadWriteLock详解
链接地址: https://www.cnblogs.com/zxporz/p/10874853.html原创 2020-11-19 15:31:52 · 89 阅读 · 0 评论 -
lambda表达式处理集合实用技巧
建实体类:public class Person {private String name;private Integer age;private String sex;public Person(String name, Integer age, String sex) { this.name = name; this.age = age; this.sex = sex;}public String getName() { return name;}原创 2020-09-08 13:21:02 · 2353 阅读 · 0 评论 -
关于实例化对象时自定义操作方法前后顺序
话不多说,线上代码:启动类package com.skyarthur.springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic...原创 2019-11-22 11:18:27 · 261 阅读 · 0 评论 -
快速创建list并生成map
public static void main(String[] args) { List<AnoleIntersection> intersections = new ArrayList<AnoleIntersection>() { { add(new AnoleIntersection() {{this.setId(1L);this.setTypeId(1L...原创 2019-08-12 14:42:37 · 1675 阅读 · 0 评论 -
关于对数组循环时对其元素增删包错ConcurrentModificationException问题
转载 https://www.cnblogs.com/snowater/p/8024776.html原创 2019-08-15 18:38:18 · 169 阅读 · 0 评论 -
mybatis 一级缓存演示实例
转发: https://www.cnblogs.com/51life/p/9523926.html转载 2019-07-24 15:09:30 · 282 阅读 · 0 评论 -
java命令行运行参数
链接地址:https://www.cnblogs.com/jtlgb/p/8466138.html转载 2019-07-17 10:55:06 · 593 阅读 · 0 评论 -
SpringBoot-Shiro示例
https://github.com/hiwayzhu/SpringBoot-Shiro.git转载 2019-06-06 15:14:17 · 158 阅读 · 0 评论 -
java中微信、qq、微博第三方方式登录
1、微信1) 申请地址: https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN登录网站后台需要创建网站应用,填写授权回调域(登录网站的域名)只填写域名即可2)查看微信提供的接口,写java代码public void wx() {try { response.sendRedirect("https://o...原创 2019-06-06 11:17:28 · 692 阅读 · 0 评论 -
java定时获取系统内存使用信息
package com.test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Schedule...原创 2019-06-06 11:03:52 · 644 阅读 · 0 评论