- 博客(34)
- 收藏
- 关注
原创 MybatisPlus之QueryWrapper、LambdaQueryWrapper以及LambdaQueryChainWrapper用法
MybatisPlus之QueryWrapper、LambdaQueryWrapper以及LambdaQueryChainWrapper用法
2023-03-01 16:51:09
1584
原创 net.sf.jsqlparser.parser.ParseException:+MyBatis-Plus写SQL时,like和like concat()的区别?
net.sf.jsqlparser.parser.ParseException:+MyBatis-Plus在写SQL时,like和like concat()的区别
2022-12-30 16:24:02
725
原创 Cannot find local variable ‘httpResponse‘
Cannot find local variable 'httpResponse'
2022-11-04 10:27:41
2433
原创 java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
2022-10-31 14:07:21
2808
原创 Sa-Token+redis实现账号封禁
账号正常输入 密码持续输入错误,为了防止系统会遭遇暴力破解,设置在5次持续错误后,账号被上锁5分钟,账号封禁
2022-10-17 09:31:19
1997
原创 System.currentTimeMillis() 和new Date().getTime()区别
System.currentTimeMillis() 和new Date().getTime()区别打开java.util.Date的源码:public Date() { this(System.currentTimeMillis());}从源码可以看出,new Date()其实就是调用System.currentTimeMillis(),new Date()对象也会有些许的性能消耗,如果仅仅是需要或者毫秒数,那么完全可以使System.currentTimeMillis()去代替new Da
2021-12-27 14:20:58
644
原创 spring 注解@NotNull等使用方法
Lombok判断注解怎么使用,总结下来为@NotEmpty 用在集合类上@NotBlank 用在String上@NotNull 用在基本类型上(@NotNull(message = “邮箱不可为空”))最后最重要的是,在接口参数前加注解’@Valid’ 否则不会验证!spring 注解验证@NotNull等使用方法@Null 被注释的元素必须为null@NotNull 被注释的元素不能为null@AssertTrue 被注释的元素必须为true@AssertFalse 被注释的元素
2021-12-27 14:18:24
2790
原创 Throwable异常
Throwable异常1,异常的分类:2.处理异常的方法:1.throw抛出异常,2.try-catch处理异常throw:举例:test方法是运行时异常,运行时异常可以处理也可以不处理,抛出RuntimeException异常后,main方法调用也需要抛出异常,main方法可以抛出RuntimeException,Exception,Throwable,main方法抛出的异常必须大于等于运行时异常,但若是test方法抛出Exception异常,编译时异常必须进行处理,main方法需要抛出
2021-09-16 10:40:45
140
原创 redis 常用数据类型
redis 常用数据类型(string,list,set,hash,zset)1.字符串stringstring 数据结构是简单的 key-value 类型。构建了一种简单动态字符串SDS,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度为 O(1),Redis 的 SDS API 是安全的,不会造成缓冲区溢出。常用命令:set【添加键值对】,get【获取键值对】strlen【获取值的长度】append【数据追加到原值的末尾】dect【key中储存
2021-09-15 21:45:27
112
原创 公平锁和非公平锁
公平锁和非公平锁公平锁―是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象并发包中ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或非公平锁,默认是非公平锁公平锁和非公平锁的区别:1.公平锁,就是很公平,在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个
2021-09-15 09:11:00
4135
原创 HashMap的底层实现原理
一、HashMap的底层实现原理?(jdk7):HashMap map = new HashMap():在实例化以后,底层创建了长度是16的一维数组Entry[ ] table。…可能已经执行过多次put. . .map.put( key1, value1):(1)首先,调用key1所在类的hashCode(),计算key1哈希值,此哈希值经过某种算法计算以后,得到在Entry数组中的存放位置。如果此位置上的数据为空,此时的key1-value1添加成功。----情况1(2)如果此位置上的数据
2021-09-09 23:01:53
103
原创 List集合常用方法及list.remove()
List集合常用方法1.void add(int index,object ele):在index位置插入ele元素2.boolean addAll(int index,collection eles):从index位置开始将eles中的所有元素添加进来3.object get(int index):获取指定index位置的元素4.int indexof(0bject obj):返回obj在集合中首次出现的位置5.int lastIndexof(object obj):返回obj在当前集合中末次出
2021-09-09 00:00:38
174
原创 ArrayList、LinkedList、 Vector三者的异同?
面试题: ArrayList、LinkedList、 Vector三者的异同?collection接口:单列集合,用来存储一个一个的对象List接口:存储有序的、可重复的数据。–>“动态数组,替换原有的数组同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据不同:1. ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] eLementData存储2. LinkedList:对于频繁的插入、删除操作,使用此类效率比Ar
2021-09-08 23:45:50
205
原创 垃圾收集器与内存分配策略
1、判断对象是否死亡垃圾收集器在对堆进行回收前,第一件事就是确定这些对象之间哪些还“存活”着。1.1引用计数法给对象添加一个引用计时器,每当有一个地方引用它,计数器就加1;当引用失效时,计数器就减1,任何时刻计数器为0的对象就是不可能在被使用的。但是主流的虚拟机都没有选用这种方法来管理内存,因为他不能解决对象之间循环引用引起的问题。例:对象objA和对象objB都有字段instance,赋指令objA.instance = objB 以及objB.instance = objA,在之后把这两个对象
2021-08-18 23:39:27
132
转载 java中的代理模式
java中的代理模式:定义:给目标对象提供一个代理对象,并且由代理对象控制对目标对象的引用目的:①:通过代理对象的方式间接的访问目标对象,防止直接访问目标对象给系统带来不必要的复杂性②:通过代理业务对原有业务进行增强java当中有三种方式来创建代理对象:静态代理,基于jdk(接口)的动态代理,基于CGLLIB(父类)的动态代理。静态代理: 在代码的编译阶段植入Pointcut的内容,性能好,需要额外的编译动态代理:在代码执行阶段,在内存中截获对象,动态的插入Pointcut的内容,不需要额外的编
2021-08-13 23:25:50
122
原创 Java值传递说明方法参数
一、基本概念参数类型:形参:方法被调用时需要传递进来的参数,例如:function(int a)中的a,他只有func被调用期间a才有意义,也就是被分配内存空间,在方法function方法被执行完后,a就会被销毁释放内存空间,也就不存在了实参:方法被调用时传递进来的实际值,他在方法被调用前就已经被初始化,并且在方法被调用时传入。值传递和引用传递值传递:在方法被调用时,实参通过把他的内容副本传入方法内部,此时形参接收的内容是实参的一个拷贝,因此在方法内对实参的任何操作,都仅仅是对这个内容的副本进
2021-08-12 00:08:30
314
1
原创 包装类+128陷阱
一.在面向对象中,基本数据类型不是对象,涉及到类型之间的转化,数据类型之间的基本操作,工作量大,所以java针对每一个基本数据类型都设计了一个包装类。二,自动拆装箱:1.装箱:把基本类型数据转成对应的包装类对象。Integer i = Integer.value(13);2.拆箱:把包装类对象转成对应的基本数据类型数据。int value = i.intValue();三,举例:1.integer与int作比较结果:true true原因:包装器类型自动拆箱成int类型..
2021-08-11 22:52:48
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人