java
文章平均质量分 74
GodOfCode_
这个作者很懒,什么都没留下…
展开
-
Java实现批量下载图片,打包成zip压缩包
Java实现批量下载图片,打包成zip压缩包。原创 2022-07-29 14:26:43 · 2887 阅读 · 2 评论 -
【阳历转阴历工具类】
工具类原创 2022-07-14 10:21:14 · 180 阅读 · 0 评论 -
面试题汇总---安心云&商涌
..原创 2022-06-19 11:16:22 · 316 阅读 · 1 评论 -
【熔断基础】
熔断原创 2022-06-17 11:33:04 · 624 阅读 · 0 评论 -
【熔断使用】
熔断原创 2022-06-17 11:29:17 · 361 阅读 · 0 评论 -
【JCZH】知识笔记整理
1.连接超时:2.getOutputStream()被占用:java.lang.IllegalStateException: getOutputStream() has already been called for this response下载PDF文件时报错,HttpResponse response在方法的参数列表里面,请求并没有进入控制器,将HttpResponse response设置成成员变量自动注入之后,报以下错误:3.没有导入合同模板文件:freemarker.temp原创 2022-03-21 11:29:19 · 1978 阅读 · 0 评论 -
【111】知识笔记总结
1.QueryWrapper使用:mybatis-plus官网传入一个实体类对象,设置查询条件(queryWrapper.eq()方法设置查询条件的字段和对应的值):QueryWrapper queryWrapper = buildQuery(dto);private QueryWrapper buildQuery(SearchBlacklistDto dto) { QueryWrapper queryWrapper = new QueryWrapper(); if (Objects原创 2022-03-21 11:15:17 · 1790 阅读 · 0 评论 -
MySQL查询常见优化方式
MySQL查询常见优化方式1.常见15个优化小技巧2.个人总结(1).慎用select *(2)多进行批量操作(3)使用limit进行分页优化(4)连接代替子查询连接查询使用注意事项:(5)控制索引的数量(6)索引优化1.常见15个优化小技巧2.个人总结(1).慎用select *一般情况下,为了方便很多时候都会直接select * 查询表的所有字段,但是正常来说,不可能一次性使用到表的所有字段;查询所有字段一方面在网络传输的时候需要更大的开销,尤其是存在一些文本字段,或者长文本字段的时候;另一方原创 2021-12-05 23:16:21 · 1146 阅读 · 0 评论 -
java中的Stream流式计算的基本应用
1 概述java.util.stream.Stream 接口,表示能应用在一组元素上,一次执行的操作序列,也就是可以对一组数据进行连续的多次操作。Stream在使用的时候,需要指定一个数据源,比如 java.util.Collection 的子类, List 或者 Set都可以,但是 Map 类型的集合不支持。Stream是对集合功能的增强,它提供了各种非常便利、高效的聚合操作,可以大批量数据操作,同时再结合Lambda表达式,就可以极大的提高编程效率。Stream操作分为中间操作或者最终操作两原创 2021-10-05 23:43:10 · 477 阅读 · 1 评论 -
java线程池
线程池为什么要用线程池?有什么优势?二级目录三级目录为什么要用线程池?有什么优势?二级目录三级目录原创 2021-07-31 15:39:04 · 605 阅读 · 0 评论 -
阻塞队列(BlockingQueue)
1.什么是阻塞队列?当队列是空的,从队列中获取元素的操作将会被阻塞当队列是满的,从队列中添加元素的操作将会被阻寨试图从空的队列中获取元素的线程将会被隆塞,直到其他线程往空的队列插入新的元素试图向已满的队列中添加新元素的线程将会被阻塞,直到其他线程从队列中移除一个或多个元素或者完全清空,使队列变得空闲起来并后续新增2.阻塞队列的用处?在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤起为什么需要BlockingQueue?好处是我们不需要关心原创 2021-07-31 15:02:35 · 390 阅读 · 0 评论 -
MySQL和Oracle的区别
MySQL和Oracle的区别一、mysql和oracle宏观上的区别:1、发展1.1 默认端口号1.2 登录方式1.3 管理工具2、数据库的层次结构:3.最重要的区别(本质的区别)二、操作区别:1、数据库中表字段类型:1.1、MySQL和Oracle的字符数据类型比较:2、主键:3、单引号处理:4、分页处理:5、对事务提交:6、对事务的支持:7、事务隔离级别:8、并发性:9、逻辑备份:10、复制:11、性能诊断:12、保存数据的持久性:13、热备份:14、日期转换:15、权限与安全16、分区表和分区索引1原创 2021-06-06 23:41:45 · 583 阅读 · 1 评论 -
单例模式
视频饿汉式:不存在线程安全问题!1.直接实例化饿汉式:2.枚举:3.静态代码块饿汉式:懒汉式:1.多线程不安全模式:单线程下是安全的:多线程下:可能线程一发现单例类实例为null,然后还未创建新实例就被挂起了,然后线程二开始运行,由于线程一还未创建实例,所以实例还是null,所以线程二又会进行实例的创建,然后等线程一重新运行的时候,又会创建一个实例对象,所以出现了两个实例对象;2.多线程安全:加锁方式一:方式二:3.静态内部类形式:小结...原创 2021-05-20 23:33:52 · 83 阅读 · 1 评论 -
部分Linux常用命令
菜鸟教程Linux命令大全Linux find 命令Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。Linux file命令Linux file命令用于辨识文件类型。通过file指令,我们得以辨识该文件的类型。Linux ln 命令Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某原创 2021-05-20 20:08:14 · 119 阅读 · 0 评论 -
生产者消费者
传统版:(传统版Lock)package InterviewTest;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;//资源类class ShareData{ private int number = 0; private Lock lock = new Reentrant原创 2021-05-18 15:13:09 · 91 阅读 · 0 评论 -
同步队列:SynchronousQueue
这里写目录标题定义:代码测试:定义:SynchronousQueue:单元素队列,一次只放一个元素,用完再生产,不生产不使用。代码测试:package InterviewTest;import java.util.concurrent.BlockingQueue;import java.util.concurrent.SynchronousQueue;public class SynchronousQueueDemo { public static void main(String[]原创 2021-05-18 14:52:24 · 325 阅读 · 0 评论 -
阻塞队列(BlockingQueue)
阻塞队列(BlockingQueue)定义作用具体实现类SynchronousQueue:定义;BlockigQueue核心方法:ArrayBlockingQueue代码测试:定义.试图从空的阻塞队列中获取元素的线程将会被阻寨,直到其他的线程往空的队列插入新的元素。同样试图往已满的阻塞队列中添加新元素的线程同样也会被阻寒,直到其他的线程从列中移除一个或者 多个元素或者完全清空队列后使队列重新变得空闲起来并后续新增作用在多线程领域:所谓阻塞在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂原创 2021-05-18 14:43:58 · 259 阅读 · 0 评论 -
HashMap底层原理,以及与HashTable,ConCurrentHashMap的区别
HashMap底层原理,以及与HashTable,ConCurrentHashMap的区别HashMap底层原理:底层数据结构:JDK1.7JDK1.8为什么加入红黑树?扩容(resize())负载因子(loadFactor):扩容:加载因子:链表转红黑树的条件:HashMap线程不安全的体现:HashMap与HashTable的区别:HashMap与ConCurrentHashMap的区别:TreeMap:HashMap底层原理:底层数据结构:JDK1.7jdk1.7中HashMap底层的数据结构原创 2021-05-13 15:02:59 · 1100 阅读 · 0 评论 -
java集合类的安全性和不安全性总结
java集合类的安全性和不安全性总结list(不安全)并发修改异常导致原因解决方案。**安全性:**set底层原理安全性Map安全性:三级目录list(不安全)并发修改异常java.util.ConcurrentModificationException导致原因ArrayList底层没有加锁,它实现了并发性,但是无法保证安全性解决方案。(1)使用Vector(2)使用Collections.synchronizedList(new ArrayList<>());Vector(J原创 2021-05-12 19:41:53 · 630 阅读 · 0 评论 -
并发同步器:CountDownLatch,CyclicBarrierDemo,SemaphoreDemo
并发同步器CountDownLatch(减法器)含义:减法;为0了才继续两个重要的方法:使用(测试):CyclicBarrier(加法器)含义:加法,到达规定数值才继续使用(测试):SemaphoreDemo(信号量)含义:CountDownLatch(减法器)含义:减法;为0了才继续让一些线程阻塞直到另- -些线程完成- -系列操作后才被唤醒CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计数器减1(调用c原创 2021-05-10 17:10:13 · 198 阅读 · 0 评论 -
Java自旋锁和读写锁
Java自旋锁和读写锁Java自旋锁理论知识定义Java自旋锁代码验证优缺点:独占锁(写锁)/共享锁(读锁)/互斥锁定义读写锁代码验证Java自旋锁理论知识定义Java自旋锁代码验证package InterviewTest;import java.util.concurrent.atomic.AtomicReference;/* * 题目:实现一个自旋锁 * 自旋锁的好处:循环比较获取,直到成功为止。没有类似wait的阻塞 * 通过CAS操作完成自旋锁,A线程先进来调用myLock方法原创 2021-05-10 16:26:35 · 216 阅读 · 0 评论 -
Java锁:可重入锁实现公平,非公平锁Java锁:可重入锁实现公平,非公平锁
Java锁:可重入锁实现公平,非公平锁什么是可重入锁可重入锁代码测试:公平锁和非公平锁什么是可重入锁可重入锁(也叫做递归锁):指的是同- -线程外层函数获得锁之后,内层递归函数仍然能获取该锁的代码,在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁也即是说,线程可以进入任何一个它已经拥有的锁所同步着的代码块。可重入锁代码测试:package InterviewTest;import java.util.concurrent.locks.Lock;import java.u原创 2021-05-06 09:59:21 · 266 阅读 · 0 评论 -
ABA问题
ABA问题一.概述:二.什么是ABA问题?三.ABA问题的解决:原子引用:(存在ABA问题)带版本号的原子引用(解决ABA问题)一.概述:ABA问题是在多线程并发的情况下,发生的一种现象。上一次记录了有关CAS操作的一些知识,CAS通过比较内存中的一个数据是否是预期值,如果是就将它修改成新值,如果不是则进行自旋,重复比较的操作,直到某一刻内存值等于预期值再进行修改。而ABA问题则是在CAS操作中存在的一个经典问题,这个问题某些时候不会带来任何影响,某些时候却是影响很大的。二.什么是ABA问题?理解一原创 2021-04-28 20:16:39 · 14943 阅读 · 4 评论 -
CAS问题
CAS问题一.定义1.1 CAS是什么?1.2 代码测试2.底层原理2.1 自旋锁2.2 unsafe类三.CAS的缺点3.1 自旋锁的存在可能导致循环时间过长3.2 this对象只有一个,因此只能保证一个共享变量的原子操作。3.3ABA问题(待补充)一.定义1.1 CAS是什么?CAS是什么:(compareAndSwap)比较并交换1.2 代码测试package InterviewTest;import java.util.concurrent.atomic.AtomicIntege原创 2021-04-21 19:48:17 · 128 阅读 · 0 评论 -
JMM模型与volatile关键字
JMM模型与volatile关键字一.JMM内存模型1.1 什么是JMM内存模型1.2 什么是volatile关键字二.volatile关键字保证可见性2.1可见性的含义:2.2 代码验证三.volatile关键字不保证原子性3.1原子性指的是什么意思?3.2 验证:四.volatile关键字之禁止指令重排一.JMM内存模型1.1 什么是JMM内存模型多个线程在使用同一个共享变量的时候:第一步:将共享变量从主内存里面拷贝一个副本到自己的工作内存当中,在自己的工作内存里面对这个共享变量的副本进行原创 2021-04-15 19:36:34 · 245 阅读 · 0 评论 -
Java OOM异常
Java OOM异常一. 概述二. 栈溢出错误:java.lang.StackOverflowError2.1 典型出错情景:三. 内存耗尽错误:java.lang.OutofmemoryError3.1 发生OOM常见的的五大原因3.2 java.lang.OutOfMemoryError:Java heap space代码测试3.3 java.lang.OutOfMemoryError:GC overhead limit exceeded代码测试3.4 java.lang.OutOfMemoryE原创 2021-04-12 17:15:32 · 332 阅读 · 0 评论 -
强软弱虚四大引用
强软弱虚四大引用1 概述2 强引用2.1 垃圾回收方式2 .2 代码实例3 软引用3.1 垃圾回收方式3.2 代码实例4 弱引用4.1 垃圾回收方式4.2 代码实例4.3 使用场景4.4 WeakHashMap4.4.1 代码示例5 虚引用5.1 回收方式5.2 代码实例5.3 引用队列5.3 .1 引用队列代码实例6 总结1 概述在JVM里面把引用分成四种类型,每种类型在JVM进行垃圾回收的时候又不同的操作,这四种类型非别是:Reference:强引用SoftReference:原创 2021-04-07 18:58:12 · 170 阅读 · 1 评论 -
部分本人使用过的JVM参数盘点
部分本人使用过的JVM参数盘点1.如何查看一个正在运行的程序,它的JVM,某个参数是否开启?具体指是多少?2.标配参数3.X参数4.XX参数(重点)4.1 Boolean类型:4.1.1 一般形式:4.1.2 例子:4.2 Key:value类型:4.2.1 一般形式:-XX:key=value4.2.2 例子:1.如何查看一个正在运行的程序,它的JVM,某个参数是否开启?具体指是多少?jps:查看java的后台进程jinfo:查看正在运行的java程序的各种信息右击程序打开Terminal,使用原创 2021-04-01 19:42:25 · 137 阅读 · 0 评论 -
JVM中的垃圾回收器详解
垃圾回收器的种类和使用1.概述1.1垃圾回收器和垃圾回收算法的关系1.2垃圾回收器的分类1.3 如何使用参数查看当前使用的垃圾回收器2 串行收集(Serial)2.1 概念3 并行收集(parallel)2.1 概念2.2 ParNew<==>CMS+SerialOld2.3 Parallel scavenge<==>Parallel Old2.3.1 Parallel scavenge2.3.2 Parallel Old3 并发收集(CMS)3.1 概念3原创 2021-03-29 20:26:40 · 801 阅读 · 0 评论 -
Java的垃圾回收算法
Java的垃圾回收算法1.垃圾回收机制介绍2.如何确认垃圾对象2.1引用计数算法2.2根可达性算法3.如何回收垃圾对象3.1复制算法3.2标记清除算法3.3标记整理(压缩)算法。1.垃圾回收机制介绍在java虚拟机中的五大区域里面,只有堆内存会发生垃圾回收,因为java的对象都是在堆里面产生的,所以要对这些对象进行管理,保留有用的对象,清除无用的垃圾对象,而实现这些功能的就是垃圾回收算法以及垃圾回收器垃圾回收算法有分为用于判断何种对象是垃圾的:引用计数法和根可达性算法。以及用于回收垃圾对象的复制算法,标原创 2021-03-26 10:47:41 · 190 阅读 · 0 评论 -
JVM内存区域划分
JVM内存区域划分概述线程私有区域线程共有区域原创 2021-03-24 19:49:01 · 167 阅读 · 3 评论