Java
文章平均质量分 50
成为一枚软男
这个作者很懒,什么都没留下…
展开
-
如何防止RocketMQ重复消费
利用数据库有条件的插入语句限制重复插入,查询消息系统验证消息是否重复,分布式锁,数据库约束+java异常处理机制原创 2022-07-27 16:26:45 · 5390 阅读 · 1 评论 -
简单搞定缓存穿透、击穿和雪崩
缓存穿透、击穿和雪崩原创 2022-07-23 13:14:58 · 302 阅读 · 0 评论 -
重定向和转发的区别
1.转发的方法是 HttpServletRequest 对象中的方法,而重定向的方法是 HttpServletReponse 对象中的方法。2.转发发送一次请求,而重定向会发出多次请求。3.转发浏览器地址栏不会发生变化,而重定向浏览器地址栏会发生变化。4.在一个转发链中可以使用 HttpServletRequest 对象中的属性,而重定向不能使用 HttpServletRequest 对象中的属性。......原创 2022-03-22 10:52:54 · 192 阅读 · 0 评论 -
Stack(栈)
1.Stack是Vector的子类,Stack(栈)表示的是先进后出(FILO),Stack除了继承了Vector的一些方法,也定义了一些自己的方法。原创 2021-11-24 19:50:05 · 130 阅读 · 0 评论 -
Hashtable和HashMap的区别
Hashtable:1.Hashtable的几乎所有函数都是同步的,所以其线程是安全的,因为其里面的方法被synchronized修饰2.不允许空(null)值和空(null)键3.底层结构是:数组+单向链表4.Hashtable默认的容量大小是11;在进行扩容的时候,每次将容量变为“原始容量x2 + 1”。5.Hashtable支持Iterator(迭代器)和Enumeration(枚举器)两种方式遍历6.Hashtable没有自定义哈希算法,而直接采用的key的hashCode(原创 2021-11-24 20:16:55 · 242 阅读 · 0 评论 -
什么是Hash冲突?如何解决Hash冲突?
1.HashHash叫做”散列表“,就是把任意长度的输入,通过散列算法,变成固定长度输出,该输出结果是散列值。其实这种转换是一种压缩映射,散列表的空间通常小于输入的空间,不同的输入可能会散列成相同的输出,所以不能从散列表来唯一的确定输入值。这就出现了Hash冲突。Hash冲突:根据key(键)即经过一个函数f(key)得到的结果的作为地址去存放当前的key value键值对(这个是hashmap的存值方式),但是却发现算出来的地址上已经被占用了。这就是所谓的hash冲突。2.解决Hash冲原创 2021-11-22 19:33:33 · 17626 阅读 · 0 评论 -
Java泛型的协变和逆变
1.什么是泛型擦除Java的泛型本质上不是真正的泛型,而是利用了类型擦除(type erasure)2.协变(covariant)<?extends T>,?3.逆变(contravariant)原创 2021-11-18 20:01:15 · 720 阅读 · 0 评论 -
Jdk1.8新特性
1Lambda表达式(闭包)它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。它本质上是一段匿名内部类,也可以是一段可以传递的代码。lambda的语法:()->();2.函数式接口1、Lambda表达式使用的前提,就是接口必须是一个函数式接口2、如果在接口中,只有一个抽象方法,那么这个接口就是函数式接口3、使用注解来检查当前接口是否是一个函数式接口 @FunctionalInterface 如果不是函数式接口,则编译报错函数式接口的提出是为了...原创 2021-11-22 19:24:30 · 224 阅读 · 0 评论 -
Java的Collection和Collections的区别
1.Collection是一个Java集合框架中的基本接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。2.Collections是Java集合框架提原创 2021-11-18 19:07:01 · 1421 阅读 · 1 评论 -
String使用 == 和 equals 的区别
1.String作为一个基本类型结论1:我们可以看出无论是==,还是equals,返回的值都为true。String a = "123"中的值存放在对空间里面的方法区的常量池里面,该常量指向String a。当执行String b ="123"的时候会在常量池里面去找"123"这个值,将这个值的地址赋值给变量b,这个常量也指向对象的引用。2.String作为对象2.1对象不同,new出来的对象的内容相同结论2;在==的情况下,两个的对象不相同,new出来的对象是存放在堆内存中的,每.原创 2021-11-01 21:58:04 · 3070 阅读 · 1 评论 -
类的加载顺序
1.什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个这个类的java.lang.Class对象,用来封装类在方法区类的对象。2.类的加载顺序父类的静态代码块 > 子类的静态代码块 > 父类的代码块 > 父类的构造方法 > 子类的代码块 > 子类的构造方法具体代码实现:运行结果:...原创 2021-11-01 20:10:51 · 187 阅读 · 0 评论 -
Java是值传递还是引用传递
1.什么叫做值传递和引用传递值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。...原创 2021-10-29 12:10:02 · 348 阅读 · 0 评论