自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木仕的博客

我喜欢的那匹驹身上,有锦,润而不耀,与龙同尘

  • 博客(75)
  • 问答 (1)
  • 收藏
  • 关注

原创 分词组合加密实现加密后可模糊查询

分词组合加密实现模糊搜索

2024-03-11 09:27:09 520

原创 java基础大纲思维导图

不是卖资料,个人整理 纯属分享

2023-12-15 09:58:50 410

原创 Mybatis插件对指定字段加解密

使用mybatis插件对指定数据进行加解密操作

2023-12-14 10:00:44 496

原创 定时任务加线程池处理任务的几种方式

定时任务 + 线程池处理任务的集中方式

2023-02-03 16:16:42 1195 1

原创 LinkedHashSet源码阅读理解

LinkedHashSet源码解析

2023-02-03 16:13:57 442

原创 HashSet源码阅读理解

1、hashset数据结构:每个存储的数据对应一个对象(Object),存储的数据作为key2、用于存储不重复的数据;3、内部维护一个hashmap4、无序5、线程不安全。

2022-08-19 13:53:51 227

原创 Netty从0到入门

Netty基础,BIO、NIO...

2022-06-27 09:20:24 501 2

原创 MySql常用函数汇总

MYSQL常用函数汇总授人以渔1授人以渔21、CONCAT()SELECT CONCAT(A,B) FROM TABLE 用于合并两个字段2、AVG()SELECT AVG(A) FROM TABLE 用于求字段的平均值,会忽略null行3、COUNT()SELECT COUNT(1) FROM TABLE 用于返回某列的行数,1和*的时候返回全表行数4、MAX()SELECT MAX() FROM TABLE 用于返回某列中最大的值5、MIN()SELECT MI

2022-04-29 17:16:35 1429 2

原创 反射的几种使用

反射的几种使用

2022-04-25 17:27:16 168 2

原创 ArrayList源码解析

ArrayList源码解析上图:先看ArrayList的构造方法:无参构造:->无参构造只是新建了一个ArrayList实例并用一个空的Object数组初始化了实例的全局变量elementData且elementData使用了transient关键字修饰,表示该变量不能被序列化;有参构造1:参数initialCapacity :数组初始容量大小,范围在[0,Integer.MAX_VALUE];有参构造2:参数c : 实现了Collection接口的集合用参数中的集合初始

2022-04-25 10:26:37 102

原创 LinkedList源码解析

LinkedList源码解析

2022-04-16 10:26:32 158

原创 对象的访问定位

对象的访问定位OneNote复制后粘贴到MakeDown就变成图片了,可能是因为只放了一张图,发文的时候提示文章质量不佳,此处加些文字消除一下

2022-03-20 23:30:03 66

原创 一次OOM异常解决

问题:操作1000条数据库查出的数据导致的OOMJDK版本:1.8问题代码: //list里有一千条数据 List<Map> listMap = dao.select("xxx"); String otherText = null; if (listMap != null && listMap.size() > 0) { //遍历结果,获取map中的value将其转化成json并拼接 for (Map map :

2022-03-15 19:19:43 1132 1

原创 Java对象的内存布局及创建

Java对象的内存布局及创建

2022-02-28 21:25:38 182

原创 运行时数据区

运行时数据区

2022-02-28 21:23:04 60

原创 HashMap put过程总结

HashMap put过程总结

2022-02-25 21:14:39 170

原创 HashMap-put源码笔记

只是理一个整体上的put逻辑,红黑树和扩容的部分未解释

2022-02-17 21:19:26 142

原创 为什么Redis默认序列化器处理之后的key会带有乱码?

为什么Redis默认序列化器处理之后的key会带有乱码?建议打开代码跟着看1、直接从yml配置中进入redis配置文件:2、看下哪些文件用到了RedisProperties发现只有一个类引用到了3、进到RedisAutoConfiguration类发现也是个自动配置的类,并且内部包含一个自动配置的静态内部类RedisConfiguration可以看到这里定义了RedisTemplate的bean,并初始化了RedisTemplate的ConnectionFactory属性4、进入R

2022-01-19 14:29:32 3119 4

原创 记录一下在实际开发中养成的一些习惯

记录一下在实际开发中养成的一些习惯1、记录任务:实际开发中一个项目基本都是一群人在开发,可能你接到任务后很好的完成了开发,但是在这种多人协作的情况下保不齐谁的任务要修改到你的代码,导致你的功能出现问题。当然,在代码管理工具的管理下一般都能找到是谁的开发出现了问题;除此之外,一个系统庞大且复杂的业务逻辑很容易让人开发之后就忘记当初是怎么实现的功能,如果说你在没有任务说明的情况下光靠代码去回忆,那费力的程度其实也快赶上找bug了,不要说git svn提交的时候有提交信息,因为一般都不会认真的写。最重要的

2021-12-14 22:39:44 195

原创 maven用package命令打包后的jar包运行报错或抛异常

clean+install

2021-10-28 18:07:57 1580

原创 守护线程和用户线程

上一篇:线程死锁守护线程和用户线程概述:Java中的线程分为两类【daemon】守护线程和【user】用户线程;在JVM启动时会调用main函数,main函数所在的线程就是一个用户线程,其实在JVM内部还同时启动了很多守护线程,比如垃圾回收线程。区别:当最后一个用户线程结束时JVM正常退出,不论是否有守护线程在执行,即守护线程是否结束不和程序的结束与否无关;而当用户线程没有执行完JVM则不会退出;换句话说JVM是否退出只与用户线程有关代码示例:package com.dwk.thread;

2021-10-15 22:20:18 120

原创 线程死锁.

上一篇:线程中断线程死锁定义:死锁指的是两个及两个以上的线程在执行中,因争夺资源而造成的互相等待的现象,在无外力的作用下这些线程会一直等待而无法继续执行。死锁产生条件:1、互斥条件:对象被一个线程占用,那么其他线程要等这个线程用完才能去占用;2、请求并持有条件:一个线程占用了一个资源,执行过程中还去请求其他的资源;3、不可剥夺条件:一个对象一旦被某个线程占用,必须要等到这个线程释放这个对象的锁,其他线程才可以去竞争;4、环路等待条件:发生死锁时,必然存在“线程-资源”环形链,就是说必定线程

2021-10-15 21:27:56 81

原创 线程中断.

上一篇:yield()–让出CPU执行权线程中断线程中断是一种线程中的协作模式,通过设置线程的中断标志并不能直接终止线程的执行,而是被中断的线程根据中断状态自行处理。中断线程方法:interrupt()     仅仅是给调用这个方法的线程设置一个中断标志,实际上并没有立即被中断,调用这个方法的线程还会继续往下执行;如果A线程调用了wait、sleep、join等方法阻塞了自己,B线程在A阻塞期间调用了A的interrupt()方法,这个时候A会抛出Interr

2021-10-03 20:45:29 160

原创 yield()--让出CPU执行权

上一篇:sleep()–线程休眠yield()–让出cpu执行权yield()是Thread类下的一个静态方法从注释中可以知道 这个方法一般用于测试和调试《JAVA并发编程之美》书中是这么描述的:“当一个线程调用yeild()方法时,实际就是在暗示线程调度器当前线程请求让出自己的cpu使用,但是线程调度器可以无条件忽略这个暗示。操作系统是为每一个线程分配一个时间片来占有cpu,正常情况下当一个线程把时间片使用完之后线程调度器才会进行下一轮的线程调度,而当一个线程调用了yield()时,是在告诉

2021-10-03 18:22:42 334

原创 sleep()--线程休眠

上一篇:join()—等待线程执行终止sleep()是Thread类下的一个静态方法另外一个sleep(long time,int nanos)也是静态的,,最终还是调用了sleep()方法当一个执行中的线程调用了Thread的sleep()方法后,调用线程会暂时让出指定时间的执行权,也就是在这期间,该线程不参与cpu的调度 但是该线程所拥有的监视器资源比如锁,不会让出,也就是线程在sleep()期间,一直占有锁,不会释放。在sleep()时间到了之后,线程正常返回,处于就绪状态然后参与cpu

2021-09-26 12:41:08 229

原创 plsql调试sql

plsql调试sql1、创建测试窗口在窗口列表右键也可以创建创建之后的测试窗口:2、调试按照上图写好测试程序后,点击开始测试调试动作如图显示:图标作用忽略断点,全部执行单步进入,一步步执行单步跳过,一段段逻辑执行单步退出,按断点执行执行到游标处,按游标执行运行到下一个异常,用于查错在调试中执行sql,便于调试时操作数据...

2021-09-25 11:44:53 2557 1

原创 join()--等待线程执行终止

所属类: Thread作用:保证当前线程执行完毕再执行下一个线程,类似同步场景:在一个任务结束之后才可以进行下一个任务,例如,文件需要先保存成功才让其他线程操作,不能在文件保存过程中就让其他线程去进行操作...

2021-09-24 12:29:42 239

原创 tomcat清除缓存后重启还是加载老的class

问题是这样的在一个类中加了一个内部类,编译完之后放到服务器上开始的时候疏忽了把内部类编译后的class也放到服务器上,然后就重启tomcat了 后面感觉用内部类对后面的开发不是很友好,就拆分出来重新封装了一个类。编译完成后重新把这两个文件放到服务器上,,,结果启动tomcat后 在程序运行过程中去加载的还是之前的内部类。感觉描述的不清晰,来张图吧最后实在解决不了,,直接重启服务器 然后再把A和C给更新上去就不再加载B了。感觉是tomcat的类加载机制中的哪一个环节出了问题,,可tomcat

2021-09-20 14:49:22 596

原创 wait()--阻塞线程

上一节:进程、线程一张图wait()方法是Object类下的一个方法调用wait()方法的时候,此时占用这个对象的线程会释放这个对象的锁,并进入这个对象的等待队列,等到其他线程调用了这个对象的notify()或者notifyAll()方法的时候,该线程会被唤醒并对这个对象的锁进行竞争,如果竞争到了这个锁的话就继续从wait()的地方执行,如果没有竞争到锁的话那么继续等待这个对象的锁被释放再次进行竞争;现在有对象O,线程A,线程B在某一时刻线程A获取到了对象O的监视器锁,开始执行分配给线程A的逻辑,线

2021-09-14 21:09:51 1758

原创 MobaXterm上传文件后大小为0kb或者非常大

x C:\USER\XXX\XXX\牛x√ C:\english\hello本地文件所在的绝对路径里不能有中文

2021-09-08 17:22:11 2976

原创 进程、线程一张图

另外说明一下,线程上下文切换:理解线程上下文切换内容:在多线程编程中,线程的数量一般都大于cpu个数,而每个cpu在同一时刻只能被一个线程使用,为了让用户感觉多个线程时在同时执行,cpu资源的分配采用了时间片轮转的策略,也就是给每个线程分配一个时间片,线程在时间片内占用cpu执行任务。当前线程的时间片使用完之后,就会处于就绪状态并让出cpu让其他线程占用,这就是上下文切换,从当前线程的上下文切换到其他线程,为了保证线程在下次轮转时知道自己上一次执行到了哪里,在切换线程上下文的时候需要保存当前线程的执行.

2021-09-02 12:20:24 646

原创 接口请求报400:malformed request syntax, invalid request message framing, or deceptive request routing

第一种情况去看一下前端传的参数是不是有接口里没有的参数,,前端调用接口传的参数可以少,但一定不要比接口中的接受对象里的属性多。举个例子:你用ajax发送了一个post请求携带的json参数是这样的:{“name”:“四百”,“age”:“100”,“sex”:“man”}然后你请求的后端接口是这样的:@PostController("/newbee")puiblic String newbee(@RequsestBody Person person){}然后Person是这样的:cl

2021-08-29 13:26:50 6926

原创 tomcat启动成功浏览器却无法访问

确保你的tomcat启动成功了1、查看ip端口是否都正确2、进入tomcat的路径看看webapp下是不是有你的项目3、浏览器访问地址是不是和tomcat配置的url一致4、webapp下项目名称和地址中访问的是不是不一样...

2021-08-19 09:20:07 13075

原创 用File写一个创建文件夹的小工具

工作的时候经常要把提测文件严格按照服务器上的目录来创建提测的文件夹,,手动创建太麻烦,用File类搞个小工具 直接复制粘贴路径就创建好了,多省事附个代码,,File的基础使用????????package com.dwk.fileoperate;import java.io.File;import java.util.Scanner;/** * @Auth duweikun * @Date 2021/8/8 */public class Test { private sta

2021-08-08 19:50:05 143

原创 23种设计模式全解

声明:本文所指向的所有文章都是作者在“C语言中文网”学习之后的总结和个人理解1、简单工厂模式2、抽象工厂模式3、工厂方法模式4、单例模式5、责任链模式6、策略模式7、访问者模式8、装饰模式9、享元模式10、状态模式11、代理模式12、原型模式13、观察者模式14、模板方法模式15、备忘录模式16、中介者模式17、迭代器模式18、外观模式19、组合模式20、命令模式21、建造者模式22、桥接模式23、适配器模式...

2021-07-25 17:26:07 247

原创 访问者模式

定义将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新操作;为数据结构中的每个元素提供多种访问方式,将对数据的操作与数据结构进行分离。架构抽象访问者:定义一个访问具体元素的接口,为每个具体元素类对应一个访问操作,该操作中的参数类型代表被访问的具体元素;具体访问者:确定一个访问者访问元素的时候做些什么;抽象元素:声明一个包含接收操作的接口,被接收的访问者对象作为接收方法的参数;具体元素:实现被接收的访问者对象要做的操作;对象结构:是

2021-07-25 17:06:30 97

原创 装饰模式.

作用在不改变现有对象结构的前提下动态地给对象增加一些职责(即扩展功能)架构抽象角色、具体角色、抽象装饰角色、具体装饰角色应用场景1、当需要给一个现有类添加附加职责,而又不能采用生成子类的方法进行扩充的时。举个例子,一个类被隐藏或者这个类是终极类(final修饰的类)或者采用继承方式会产生大量的子类(入侵性强);2、当需要通过现有的一组基本功能进行排列组合而产生非常多的功能时,采用继承关系很难实现,使用装饰模式却很好实现;3、当对象的功能要求可以动态地添加也可以再动态地撤销时。代码...

2021-07-25 16:40:52 80

原创 享元模式.

定义利用共享技术支持大量对象的复用、通过共享已经存在的对象来大幅度减少需要创建对象的数量,换句话说相同的对象只保留一份。本质缓存共享对象、降低内存消耗架构抽象享元角色、具体享元角色、非享元角色、享元工厂角色代码...

2021-07-25 16:20:26 70

原创 策略模式.

定义完成一个流程有多种策略,择优;定义一系列规则,并将每个规则封装起来,使它们可以相互替换,并且规则的变化不会影响执行规则的对象,通过对规则的封装把规则的条件和规则的结果分割开。架构抽象策略:各种不同的规则以不同的方式实现这个接口,环境角色使用这个接口调用不同的规则;具体策略:实现了抽象策略定义的接口,提供具体的规则实现;环境类:持有一个策略类的引用,最终给客户端调用。应用场景1、一个系统需要动态地在几种规则中选择一种时,可将每个规则封装到策略类中;2、 一个类定义了多种行为,并且这些行为

2021-07-23 22:21:41 108

原创 状态模式.

定义对有状态的对象,把复杂的判断逻辑提取到不同的状态对象中,允许其状态对象在其内部状态发生改变时改变其行为;架构环境类:也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换;抽象状态:定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为;具体装态:实现抽象状态所对应的行为,并且在需要的情况下进行状态切换;应用场景1、当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时;2、一个操作中含有庞大的分支结构,并且这些分支决定

2021-07-23 21:47:45 88

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除