![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
java
waterkid0
这个作者很懒,什么都没留下…
展开
-
redis设置密码
【代码】redis设置密码。原创 2023-09-16 10:16:54 · 44 阅读 · 0 评论 -
ThreadLocal存放当前用户
在拦截器中,,拦截token,,将token中的用户信息,存入ThreadLocal中,,在拦截器执行过后的方法中清除ThreadLocal,防止内存泄露。用户信息必须由后端获取,不能通过前端传入的id是不可信的,,可能会出现越权的问题,,,怎么通过后端获取当前登录用户,,,就需要将User 和 当前线程绑定在一起,,因为Servlet中的每一个请求,线程都是不同的,,,原创 2023-08-21 23:50:00 · 870 阅读 · 0 评论 -
项目部署
【代码】项目部署。原创 2023-07-02 23:56:59 · 172 阅读 · 0 评论 -
PageHelper使用
PageHelper : mybatis中的分页插件文档 : https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md。原创 2023-06-04 10:04:30 · 644 阅读 · 0 评论 -
生成器模式
生成器模式: builder pattern ,,,用于创建复杂的对象,提供一种分步骤创建的方式,允许使用相同的构造过程创建不同的配置对象。为什么要使用生成器模式: 生成器模式提供一种清晰,灵活和可扩展的方式来构建复杂对象。就是 相同的构建过程 根据传入参数不同,,创建不同的对象,,也就是不同的表示。根据你传入的参数的不同,,相同的构建流程,,构建出不同的对象。原创 2023-05-19 12:49:22 · 41 阅读 · 0 评论 -
jpa使用
在一对多的关系中,一般将 @JoinColumn 放在。如果不需要两边都映射对应的实体,,可以在。设置@JoinColumn ,并在。指定一个外键属性来映射这个关系。原创 2023-05-15 19:02:51 · 64 阅读 · 0 评论 -
Optional使用
Optional 在get() 的时候,如果为空,会返回 no value present,, 报错NullPointer : 隐藏性的错误,潜在的风险,,随着函数调用栈变深,会越来越难调试,需要溯源,追踪所有的函数,,而 optional.get() 会在赋值的时候就产生异常,定位异常位置。原创 2023-05-03 15:42:55 · 194 阅读 · 0 评论 -
https访问fastdfs图片
引用:https://blog.csdn.net/love8753/article/details/128872320。配置nginx 的SSL模块:https://www.cnblogs.com/ghjbk/p/6744131.html。目录下的 tracker.conf , storage.conf , client.conf 的。模块,该模块提供了 SSL/TLS 功能,使得nignx可以通过 https协议提供加密传输服务。将ssl证书,拷贝到服务器的一个目录下。最开始安装的nginx只有。原创 2023-04-13 20:18:56 · 822 阅读 · 0 评论 -
todo-list遇到的问题
vue事件修饰符mysql默认字符集是 latin,,在插入中文的时候会报错,js获取时间。原创 2023-04-04 21:04:16 · 412 阅读 · 0 评论 -
docker安装mysql5.7
引用:https://blog.csdn.net/qq_44936392/article/details/128935294。引用:https://blog.csdn.net/qq_40226073/article/details/115983266。java -jar xxx 这种方式运行的springboot在断开连接或者按了 ctrl+c。原创 2023-02-23 18:17:58 · 62 阅读 · 0 评论 -
flowable编译
下载之后File-Open,打开工程,modules是核心代码模块找到我是先打包之后再引入的模块,引用:https://blog.csdn.net/houyj1986/article/details/85725202h2数据库:java编写的数据库。原创 2023-01-17 14:45:08 · 867 阅读 · 1 评论 -
mybatis插件
prepared : 预编译sqlparameterize : 设置参数query/update : 执行sql其中是调用 ParameterHandler的方法去设置的,而且参数是根据类型处理器typeHandler处理。是通过resultHandler进行处理结果的封装,如果是update就返回整数,否则就通过typeHandler处理,,最后用 ObjectFactory 提供的规则组装对象,返回给调用者。原创 2023-01-01 16:19:48 · 567 阅读 · 0 评论 -
itext中html2pdf使用
itext默认不支持中文,需要在 中设置 字体原创 2022-08-12 15:42:57 · 1490 阅读 · 0 评论 -
Zip4j使用
引用:https://www.jianshu.com/p/89bf65317e6b。ZIp4j :支持加密,解密压缩,支持文件的添加,删除,等。原创 2022-08-03 15:05:32 · 819 阅读 · 0 评论 -
java遇到的问题02
将keyExtractor算出的值,用keyComparator比较。比较器比较,null排最后。原创 2022-07-29 11:05:29 · 144 阅读 · 0 评论 -
时间java8
引用:https://blog.csdn.net/wufagang/article/details/115061218 判断两个日期是否相等检查生日这种周期性事件 增加或减少时间 Clock时钟判断日期是早于还是晚于一个日期 YearMonth 获取固定日期中返回当月天数,判断2月 是 28天 还是 29天LocalDate检查闰年计算两个日期间的天数和月数相差几个小时 使用 格式化...原创 2022-07-27 11:49:37 · 44 阅读 · 0 评论 -
二叉树遍历
二叉树binarytree每个节点最多有2个孩子节点名词根的节点根的子树叶子节点没有“孩子”的leaf父节点parent兄弟节点sibling孩子节点child树的高度左孩子leftchild右孩子rightchild满二叉树一个二叉树的所有非叶子节点都存在左右孩子,并且所有的叶子节点都在同一个层级上。。。每一个分支都是满的完全二叉树二叉堆一种特殊的完全二叉树,用数组存储,只要求父节点比它的左右孩子都大。...原创 2022-07-26 14:33:32 · 182 阅读 · 0 评论 -
com.google.zxing二维码生成与解析
引用:https://blog.csdn.net/wangmx1993328/article/details/83856391/代码pom原创 2022-07-13 16:54:18 · 795 阅读 · 0 评论 -
BufferedImage使用
引用:https://blog.csdn.net/jiachunchun/article/details/89670721https://blog.csdn.net/Robin_hc/article/details/124776786原创 2022-07-13 16:21:21 · 1570 阅读 · 0 评论 -
java生成pdf
引用:https://blohttps://blog.csdn.net/YINLUXIA/article/details/116915071https://gitee.com/mu-zuo/java-generation-pdf/blob/master/src/main/java/com/muzuo/pdf/service/impl/PdfServiceImpl.java原创 2022-07-12 17:08:53 · 279 阅读 · 0 评论 -
maven使用
如果在配置文件中引用变量,,在设置为true,打包会过滤配置文件,将配置文件中引用的变量替换成想要的值设置引用符号为@ ,在springboot中可以引用当前配置文件的变量只有 过滤了才会,替换maven变量...原创 2022-07-10 17:16:58 · 102 阅读 · 0 评论 -
自定义类加载器对类加密解密
加密解密工具类:classLoader:遇到的问题:NoClassDefFoundError: User (wrong name: security/User)被编译的User有包名,解析的时候也需要包名java.lang.IllegalArgumentException: character to be escaped is missing引用:https://blog.csdn.net/rockvine/article/details/124836389https://blog.csdn.net原创 2022-06-25 12:00:49 · 326 阅读 · 0 评论 -
正则表达式java
正则表达式默认使用贪婪匹配,任何一个规则,他总是尽可能的向后匹配更多的字符,非贪婪匹配,需要在规则后面加一个:第一个问号是0或1个,第二个是非贪婪匹配,非贪婪匹配会尽可能的少匹配,会匹配0个数字反向引用替换 : 将上次替换的位置到这次替换位置之间的字符串 加上替换的字符串 ,一起追加到StringBuffer中 : 将最后一次匹配到内容之后的字符串,,追加到StringBuffer中引用:https://www.liaoxuefeng.com/wiki/125259954834374原创 2022-06-23 16:43:35 · 186 阅读 · 0 评论 -
redisTemplate序列化
默认使用jdk序列化方案,存的时候,会有一堆前缀,自己写一个 更改他的序列化方式原创 2022-06-20 09:39:15 · 373 阅读 · 0 评论 -
若依分页_
若依分页会拦截第一个查找语句进行分页,如果第一个查找语句找的不是最终的结果,分页就会有问题解决:方法1: 将数据查出来在内存中分页引用:https://wenku.baidu.com/view/2e8559f575a20029bd64783e0912a21614797f7a.html方法2: 自己写分页......原创 2022-06-17 15:52:56 · 1827 阅读 · 2 评论 -
字符串驼峰转下划线
驼峰转下划线转载 2022-06-15 10:11:27 · 314 阅读 · 0 评论 -
dom4j解析xml
jar包 <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j --> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version>原创 2022-05-30 15:47:44 · 155 阅读 · 0 评论 -
遍历未知类型对象属性
引用:https://blog.csdn.net/ExceptionalBoy/article/details/79203465反射获取field反射获取getXXX() 方法 @Test public void test02 () throws IllegalAccessException { Object cc = new Student(1, "cc");// printBeanField(cc); printBeanField2(原创 2022-05-25 10:38:10 · 123 阅读 · 0 评论 -
构造者模式
构造者模式又叫生成器模式: 将一个复杂对象的构建与它的表示相分离,使得同样的构造过程可以创建出不同的对象四个角色:Product : 要创建的产品Builder : 抽象的,创建产品的builderConcreteBuilder: builder的具体实现Director: 统一组建过程代码:public class Computer { private String board; private String display; private String.原创 2022-05-13 11:56:01 · 655 阅读 · 0 评论 -
synchronize和ReentrantLock
引用:https://blog.csdn.net/qq_49229970/article/details/121863258https://zhuanlan.zhihu.com/p/343305760https://baijiahao.baidu.com/s?id=1713003848756478129&wfr=spider&for=pcsynchronized对象:对象头对象头分为,Mark word : 存储对象自身运行时的数据,每个状态的对象,对象头存储的东西不原创 2022-05-11 11:24:40 · 132 阅读 · 0 评论 -
jvm调优
jmap: 查看有多少类,每个类的是实例数,这种类型所占的内存# 查看历史生成的实例jmap -histo 进程id # 查看当前存活的实例,执行过程中可能会触发一次full gc jmap -histo:live 进程id# 查看堆信息jmap -heap 进程id # 导出堆内存dump 。。 dump:转储,转存jamp -dump:format=b,file=xxx.hprof 进程id也可以设置 -XX:+HeapDumpOnOutOfMemoryError.原创 2022-05-01 13:44:16 · 165 阅读 · 0 评论 -
jvm对象创建
对象创建:加载类–》分配内存–》初始化成员变量值 --》 设置对象头 --》执行init方法分配内存的方法:指针碰撞(bump the pointer) :java堆中内存是绝对规整的,所有用过的内存放在一边,空闲的内存放在一边,中间分隔的地方有个指针,那所分配的内存就会将指针向空闲空间那边移动一段与对象大小相等的距离空闲列表(free list):java堆中的内存不是规整的,已经使用和空闲的内存相互交错,,那就需要jvm维护一个空闲列表,记录哪些内存块是可用的划分内存的时候,解决并原创 2022-04-28 11:51:07 · 245 阅读 · 0 评论 -
jvm内存模型
JRE(java runtime environment)JVM(java virtual machine)java内存模型:类装载子系统 :将java字节码文件加载到jvm内存区域(c++实现)运行时数据区 (内存模型) :堆 :存放对象方法区 : 存放,常量,静态变量,类元信息线程栈(java virtual stack):给每一个线程分配独立的内存空间,存放自己的局部变量栈帧:给每一个方法分配一个专属的内存空间,存放自己的局部变量栈帧里面包括:- 局部变量表 .原创 2022-04-25 20:46:35 · 157 阅读 · 0 评论 -
java中&&,&,|,||
& 和 && 都可以作为逻辑与运算符, &&具有短路功能,即第一个表达式为false,不再计算第二个,,对于 if(str != null & str.equals("")){} ,&&不会报错,&会空指针& 还可以作为按位与运算符:即两边数字转换成二进制,按位与12 & 5 = 4000001100000001100000010引用:https://blog.csdn.net/qq_35464899.原创 2022-03-26 08:50:59 · 692 阅读 · 0 评论 -
ThreadLocal
强引用strong reference: 强引用不会被垃圾回收软引用soft reference : 内存空间充足时,垃圾回收器不会回收它,内存空间不足了,jvm首先将软引用的对象引用置为null,然后通知垃圾回收器回收(场景:页面浏览历史内容)弱引用weak reference: 更短暂的生命周期,一旦发现了只具有弱引用的对象,不管当前内存空间是否足够,都会回收他的内存。。虚引用phantom reference:ε=(´ο`*)))唉,如果一个对象仅持有虚引用,那么他就和没有任何引用一样引用:.原创 2022-03-13 18:39:55 · 439 阅读 · 0 评论 -
Enum赋值使用
引用:https://blog.csdn.net/funnyfu0101/article/details/53366359public enum SBLXEnum { HQL("9830"),ABL("9004"),HLL("9901"),YLL("9904"); private String xxdm; SBLXEnum(String value) { this.xxdm = value; } public String getXxdm() {原创 2022-01-13 21:20:45 · 819 阅读 · 0 评论 -
关于mybatis异常 invalid comparison: java.util.Date and java.lang.String 的解决方法
引用:https://blog.csdn.net/m0_43584016/article/details/89510052转载 2022-01-06 17:08:23 · 211 阅读 · 0 评论 -
jackson使用
ObjectMapper mapper = new ObjectMapper();mapper.readValue(Json,Student.class) // json 转换 对象mapper.writeValueAsString(对象) // 对象 转换 字符串引用:https://blog.csdn.net/peach90/article/details/77875432原创 2021-12-28 20:26:20 · 123 阅读 · 0 评论 -
动态代理Proxy
对原有功能的增强;静态代理限定了只能是一个类动态代理可以根据传入的对象类型来生成对应类型的代理对象动态代理实现实现InvocationHandler,实现这个接口会重写一个方法,这个方法是代理类的增强方法public class KeywordFilter implements InvocationHandler { private Object origin; // 被代理的真实对象 private List<String> blackList= Arrays.a.原创 2021-12-23 10:45:03 · 242 阅读 · 0 评论 -
java线程
线程的状态:NewRunnableBlocked : 某些操作被阻塞Waiting: 某些操作在等待Time Waiting: 因为sleep()的计时等待Terminated: 打断t.join() // 让这个线程一直运行t.join(毫秒); // 超过时间不等了线程打断:interrupt()中断一个线程,目标线程通过检测isInterrupted()标志获取自身是否被打断。。如果目标线程处于等待状态,该线程会捕获到 InterruptException;当你捕获到.原创 2021-10-19 23:35:43 · 185 阅读 · 0 评论