![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 52
riant110
这个作者很懒,什么都没留下…
展开
-
spring aop demo
spring aop demo原创 2022-06-25 19:32:38 · 339 阅读 · 0 评论 -
FactoryBean原理
Spring FactoryBean 底层分析原创 2022-06-23 12:46:22 · 570 阅读 · 0 评论 -
idea git Stash Changes和UnStash Changes用法
idea git stash changes unstash changes 使用原创 2022-06-22 15:58:00 · 900 阅读 · 0 评论 -
RestTemplate get请求使用占位符避免代码内部拼接URL地址
RestTemplate get请求使用占位符避免代码内部拼接URL地址原创 2022-06-22 12:40:52 · 846 阅读 · 0 评论 -
xml 文档解析&字符导致must end with the ‘;‘ delimiter
xml报文解析原创 2022-06-13 17:43:10 · 341 阅读 · 0 评论 -
Java gson使用
Gson使用原创 2022-06-13 12:27:33 · 1520 阅读 · 0 评论 -
java spi
一、SPI 是什么?SPI机制(Service Provider Interface)其实源自服务提供者框架(Service Provider Framework,参考【EffectiveJava】page6),是一种将服务接口与服务实现分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引入了spi接口的实现者,通过本地的注册发现获取到具体的实现类,轻松可插拔。二、数据库加载Demopublic class Demo1 { private static String DB_UR原创 2022-05-30 00:15:48 · 111 阅读 · 0 评论 -
Java 摘要算法
一、什么是摘要算法摘要算法是一种加密算法,摘要算法就是对指定数据进行一系列的运算,然后得出一串内容,该内容就是该数据的摘要,不同的数据产生的摘要是不同的,可以用它进行一些数据加密。通过对比两个数据加密后的摘要是否相同,判断这两个数据是否相同。特点:唯一性:任何不同的消息计算出的消息摘要绝对不相同。哪怕仅仅变化了一个字符,产生的结果也是天差地别。不可逆性:仅仅通过消息摘要计算的数据,永远无法还原最原本的消息是什么。长度固定:不管消息消息多长,都能得出固定长度的短消息常见的摘要算法:MD和SH原创 2022-05-26 17:10:09 · 1515 阅读 · 0 评论 -
idea自动生成serialVersionUID
一、idea配置1、ctrl+alt+s–>serial查找,勾选红色框中两个选项,并应用二、创建测试类,实现Serializable接口按住Alt+enter,添加serialVersionUID原创 2022-05-20 16:20:40 · 487 阅读 · 0 评论 -
java遍历数组与集合
一、遍历数组1、for循环遍历 public static <T> void showArray(T[] t){ for (int i = 0; i < t.length; i++) { System.out.println(t[i]); } }2、Arrays.toString() public static <T> void showArray2(T[] t){ Syste原创 2022-05-16 22:29:35 · 315 阅读 · 0 评论 -
java并发包
一、原子变量原子类,存在于java并发原子包中,包含AtomicInteger、AtomicLong、AtomicBoolean、原子引用等。作用:将一些组合操作用原子操作代替,满足多线程同步。1、原理原子类底层通过CAS操作达到原子操作,CAS ,全名compareAndSet()方法,它会先获取原值,然后进行修改后,在更新时,将期望值与原值做比较,如果相同,则更新,返回true,否则返回false。AtomicInteger中,incrementAndGet()方法自增,内部是一个死循环,会原创 2022-04-04 11:45:16 · 1380 阅读 · 0 评论 -
java集合 LinkedList
一、实现接口1、DequeDeque:double ended queue,双端队列,允许在两边进行插入和删除元素Queue:队列,先进先出,在尾部插入元素,在头部删除元素。boolean add(E e);//在尾部插入元素,当队列满时,抛出异常boolean offer(E e);//在尾部插入元素,队列满时,返回falseE remove();//返回头部元素,并从队列中删除,当队列为空时,会抛出异常E poll();//返回头部元素,并从队列中删除,当队列为空时,会返回特殊值null原创 2022-03-22 21:03:02 · 83 阅读 · 0 评论 -
java集合ArrayList
一、ArrayList泛型容器,内部有一个数组elementData,有一个整数size记录实际的元素个数。1、扩容操作1)新增元素add(E e)minCapacity:最小大小,size+1;如果minCapacity-elementData.length>0;就需要扩容;newCapacity:elementData.length+(elementData.length>>1),1.5倍与原来容量的大小;如果newCapacity与minCapacity比较,哪个大用哪原创 2022-03-21 07:55:43 · 718 阅读 · 0 评论 -
java枚举
一、基础1、枚举类关键字enum2、不同值之间用逗号分隔;3、枚举类型可以定义为一个单独文件,也可以定义在其他类内部;4、枚举变量的toString()方法和name()fangfa 返回其字面值,二、相关方法 public static void main(String[] args) { Size size=Size.SMALL; System.out.println(size.toString());//SMALL System.out原创 2022-03-05 11:30:39 · 255 阅读 · 0 评论 -
java static作用
一、修饰类static修饰类时,只能修饰静态内部类,如果在外部类上声明为static,程序编译不通过。静态内部类特点:1、可以有外部类能够拥有的所有属性:静态变量、静态方法、静态代码块、成员变量、成员方法、构造方法;2、可以使用外部类的静态成员变量和静态方法(不管是否私有);但是无法访问成员变量和成员方法;3、public静态内部类可以被外部使用,只是需要通过“外部类.静态内部类”的方式使用(在同一个包内使用时,静态内部类无需声明为public也可以使用)。4、静态类内部也可以定义静态内部类,详原创 2022-03-01 23:31:59 · 2926 阅读 · 0 评论 -
maven依赖jar包时版本冲突的解决
一、第一声明优先原则:在pom.xml配置文件中,若是有两个名称相同版本不一样的依赖声明,那么先写的会生效。因此,先声明本身要用的版本的jar包便可。二、路径近者优先:直接依赖优先于传递依赖,若是传递依赖的jar包版本冲突了,那么能够本身声明一个指定版本的依赖jar,便可解决冲突。三、排出原则:传递依赖冲突时,能够在不须要的jar的传递依赖中声明排除,从而解决冲突。四、版本锁定原则(最常使用)在配置文件pom.xml中先声明要使用哪一个版本的相应jar包,声明后其余版本的jar包一概不依赖。转载 2021-12-31 13:55:10 · 399 阅读 · 0 评论 -
spring事务
一、环境1、SQL:8.0.232、spring+mybatis3、表CREATE TABLE `account` ( `money` DOUBLE NULL DEFAULT NULL, `name` VARCHAR(50) NULL DEFAULT NULL)COLLATE='utf8mb4_0900_ai_ci'ENGINE=InnoDB;二、依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="h原创 2021-08-18 00:54:15 · 60 阅读 · 0 评论 -
创建公钥证书和私钥证书
1、创建密钥库keytool -genkey -alias “mytest” -keyalg “RSA” -keysize 2048 -keystore “mykeystore1.keystore” -validity 4000 -dname “CN=ZhongXin,OU=Citicbank,O=Citic,L=SHENZHEN,ST=GUANGDONG,C=CN”keytool -genkey 生成密钥库文件-alias ; 密钥对别名-keyalg:密钥算法名称-keysize:密钥位大小原创 2021-07-30 15:29:06 · 1092 阅读 · 0 评论 -
ArrayList和JSONArray遍历删除
一、ArrayList遍历删除public class TestArrayList { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(3); list.add(4);原创 2021-07-23 19:36:10 · 1206 阅读 · 0 评论 -
Java多线程(一) 锁
一、什么是锁锁是一种同步机制,能够在多个线程访问资源时进行限制,避免造成数据的不一致。锁需要底层设备支持,能够实现一种或者多种原子操作,比如 test andadd fetch and put compare and swap。二、锁的相关概念1、锁开销锁占用的资源、初始化锁、获得、释放锁的时间2、锁竞争一个线程获取另一个线程持有锁的情况3、死锁存在两个线程,双方都有对方持有的锁,都在等待对方释放锁。锁的粒度越粗,所包括的数据量越大,锁的开销越小,但是锁的竞争越大;锁的粒度越细,锁的个原创 2021-06-28 19:31:22 · 196 阅读 · 0 评论 -
redis开启远程连接
一、redis开启远程连接需要修改两个配置##注释掉#bind 127.0.0.1#将模式改外noprotected-mode no 连接成功原创 2021-06-27 23:16:54 · 97 阅读 · 0 评论 -
高并发场景大量TIME_WAIT导致虚拟机响应变慢
一、事件现象抢兑时,大量用户准点抢兑商品,后端nginx存在大量请求返回5**二、事件分析1、查看nginx日志发现nginx添加了检测模块,当后端tcp连接响应超时的话,会将故障节点移除集群check interval=5000 rise=1 fall=3 timeout=1000 type=tcp;nginx在检测间隔为5s,如果在建立TCP连接时,有1次请求成功则节点为up;如果有3次请求失败则节点为fail ,超时时间为1s2、为什么建立TCP连接耗时超过1s?发现高并发场景是,虚原创 2021-06-24 00:48:09 · 930 阅读 · 0 评论 -
正则表达式
一、限定符在线测试工具regex1011、限定符 ?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。cap?表示p可以出现0次或者1次2、限定符*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。3、限定符+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。精确匹配{n} :前面的子表达式出现的次数为n{m,n} :前面的子表达式出现的次数可以是m~n次4、表达式匹配()标记一个子表达式的开始和结束位置。子表达式原创 2021-06-24 00:07:29 · 2449 阅读 · 0 评论