- 博客(28)
- 收藏
- 关注
原创 如何防止RocketMQ重复消费
利用数据库有条件的插入语句限制重复插入,查询消息系统验证消息是否重复,分布式锁,数据库约束+java异常处理机制
2022-07-27 16:26:45 5439 1
原创 重定向和转发的区别
1.转发的方法是 HttpServletRequest 对象中的方法,而重定向的方法是 HttpServletReponse 对象中的方法。2.转发发送一次请求,而重定向会发出多次请求。3.转发浏览器地址栏不会发生变化,而重定向浏览器地址栏会发生变化。4.在一个转发链中可以使用 HttpServletRequest 对象中的属性,而重定向不能使用 HttpServletRequest 对象中的属性。......
2022-03-22 10:52:54 210
原创 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 252
原创 Stack(栈)
1.Stack是Vector的子类,Stack(栈)表示的是先进后出(FILO),Stack除了继承了Vector的一些方法,也定义了一些自己的方法。
2021-11-24 19:50:05 144
原创 什么是Hash冲突?如何解决Hash冲突?
1.HashHash叫做”散列表“,就是把任意长度的输入,通过散列算法,变成固定长度输出,该输出结果是散列值。其实这种转换是一种压缩映射,散列表的空间通常小于输入的空间,不同的输入可能会散列成相同的输出,所以不能从散列表来唯一的确定输入值。这就出现了Hash冲突。Hash冲突:根据key(键)即经过一个函数f(key)得到的结果的作为地址去存放当前的key value键值对(这个是hashmap的存值方式),但是却发现算出来的地址上已经被占用了。这就是所谓的hash冲突。2.解决Hash冲
2021-11-22 19:33:33 18189
原创 Jdk1.8新特性
1Lambda表达式(闭包)它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。它本质上是一段匿名内部类,也可以是一段可以传递的代码。lambda的语法:()->();2.函数式接口1、Lambda表达式使用的前提,就是接口必须是一个函数式接口2、如果在接口中,只有一个抽象方法,那么这个接口就是函数式接口3、使用注解来检查当前接口是否是一个函数式接口 @FunctionalInterface 如果不是函数式接口,则编译报错函数式接口的提出是为了...
2021-11-22 19:24:30 235
原创 Java泛型的协变和逆变
1.什么是泛型擦除Java的泛型本质上不是真正的泛型,而是利用了类型擦除(type erasure)2.协变(covariant)<?extends T>,?3.逆变(contravariant)
2021-11-18 20:01:15 734
原创 Java的Collection和Collections的区别
1.Collection是一个Java集合框架中的基本接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。2.Collections是Java集合框架提
2021-11-18 19:07:01 1444 1
原创 Java的二叉树的前序、中序和后序
1.什么叫做二叉树1.1二叉树(binary tree)是指树中的节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。结点:包含一个数据元素及若干指向子树分支的信息节点的度:一个结点拥有子树的数目叶子结点:也称为终端结点,没有子树的结点或者度为零的结点分支结点:也称为非终端结点,度不为零的结点称为非终端结点树的度:树中所有结点的度
2021-11-16 20:38:16 837
原创 Java中的throw和throws的区别
throw:抛出异常。用来抛出一个具体的异常(自己定义异常的行为)1.在方法体的内部,用在方法体后面抛出的是异常的对象2.只能抛出一个异常对象名3.表示抛出的异常,有方法体中的语句来进行处理4.throw表示一定抛出了某种异常throws:声明异常。在写方法时候用于给自己声明检查异常,可以不用做任何处理,直接往上面抛,谁来调用谁就来处理。1.在方法声明的后面,抛出的是异常的类型2.可以包含有多个异常类型,用“,”隔开3.抛出的异常由调用者来进行处理4.throws表示可能
2021-11-16 17:30:31 1221
原创 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 3107 1
原创 类的加载顺序
1.什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个这个类的java.lang.Class对象,用来封装类在方法区类的对象。2.类的加载顺序父类的静态代码块 > 子类的静态代码块 > 父类的代码块 > 父类的构造方法 > 子类的代码块 > 子类的构造方法具体代码实现:运行结果:...
2021-11-01 20:10:51 198
原创 Java是值传递还是引用传递
1.什么叫做值传递和引用传递值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。...
2021-10-29 12:10:02 358
原创 JAVA数据类型
JAVA数据类型的分类Java语言的数据类型分为两种,一种是基本数据类型,另一种是引用数据类型。基本数据类型又分为数字类型和非数字类型。数字类型包括整型和浮点型。整型的有字节型(byte)、短整型(short)、整型(int)、长整型(long)。浮点型的有单精度浮点型(float)和双精度浮点型(double)。非数字型包括字符型(char)和布尔类型(boolean)。JAVA类型的结构图如下图所示:在java的编码中出现的常量如果是整型的话,默认为int类型。 如果是浮点.
2021-10-19 16:44:59 89
原创 Float类型和long类型哪个取值范围更大
Float类型:单精度。在内存中占用4个字节,共32位(bit)。它的取值范围按常理应该是 -2^32~2^32-1long类型:长整型。在内存占用8个字节,共64位(bit)。它的取值范围为 -2^64~2^64-1很明显应该是long整型比float整型的取值范围更大。但是浮点数的取值范围并不是这么表示的。V=(-1)^E* N* 2^M所以指数域的取值范围为-127~128,所以Float类型和long类型哪个取值范围更大。...
2021-10-18 22:52:33 1428
原创 JVM的运行原理
1.什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写。JVM是一种用于计算设备的规范,它是一个虚构出来计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。2.JVM的体系结构每个Java程序都离不开Java虚
2021-10-18 22:26:50 121
原创 Linux向linux系统添加磁盘、分区和文件系统小练习
1、添加两块5g大小的磁盘,将第一块磁盘的分区分为两个主分区并格式化为xfs的文件系统类型,第二块磁盘的分区分为一个逻辑分区并格式化为ext4的文件系统类型。(1)向Linux系统添加两块5g大小的磁盘,可以选择SCSI、SATA、NVMe,之后根据需要选择磁盘的内存大小(2)将第一块磁盘的分区分为两个主分区(3)格式化为xfs的文件系统类型(4)第二块磁盘的分区分为一个逻辑分区并格式化为ext4的文件系统类型先创建一个扩展分区,再创建一个逻辑分区...
2021-10-17 14:32:13 780
原创 HCAI综合实验
要求:1.ISP路由器只能配置IP地址,之后不得进行任何配置2.内部整个网络基于192.168.1.0/24进行地址规划3.R1/R2之间启动ospf协议,单区域4.PC1-PC4自动获取IP地址5.PC1不能telnet R1,PC1外的其他内网PC可以6.PC1-PC4可以访问PC5,R2的公网接口只拥有一个公有IP 12.0.0.17.外部的client可以通过域名访问http server8.ISP路由telnet 12.0.0.1,最终成功登录到R11.内部整个网络基于.
2021-09-12 22:05:25 478
原创 管理本地linux用户、组以及管理用户密码的小练习
1、新建几个普通用户wukong,wuneng,wujing,他们都属于xiyouji组的成员,其中wujing没有和系统交互的shell。(1)新建几个普通用户wukong,wuneng,wujing,并且他们都属于xiyouji的成员查看/home下的用户(2)让wujing没有与和系统交互的shell对三个用户是否能进行系统的交互进行验证2、wukong和wuneng的密码都为redhat。3、通过sudo使得wukong可以使用wuneng和...
2021-07-21 18:40:44 248
原创 LInux创建,复制,移动目录文件以及压缩与解压到Windows系统
1、在根下创建一个目录ceshi,在测试目录下创建一个user目录,将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中,给/ceshi//user/passwd文件创建一个硬链接文件为passwd.bak,给/ceshi/user/shadow文件创建一个软链接为sh.link。(1)首先,我们先在测试目录下创建一个user目录。(2)其次,将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中(3)再给/...
2021-07-19 23:40:26 1508
原创 静态路由(综合)
要求:对于静态路由的配置,首先我们借助华为的eNSP或者Cisco Packet Tracer或者H3C H3C Cloud Lab网络模拟软件进行网络拓扑图的构建及使用。并对其中的路由器,交换机,PC机有一定的知晓能力和进行有必要的文本字段说明,当然,使用合理的设备和熟练掌握要求将会使你完成的轻松一点。1.确定广播域的总个数(计算网段的总个数)总个数:15(14+1(5.5.5.0))2.根据要求进行合理的IP地址划分192.168.1.0/24 划分16个...
2021-07-13 13:35:58 643
原创 CSS盒子模型
“盒子模型”(box model)是CSS中一个很重要的概念,因为它决定了元素在浏览器窗口中如何定位。CSS模型在本质上是一个盒子,用于封装周围的HTML元素,包括
2021-06-15 15:03:08 224
原创 表格<table>
HTML表格布局<table>1.表格的定义 <table> 标签定义 HTML 表格,一个简单的html表格,包含两行两列。简单的 HTML 表格由 table 元素以及一个或多个 tr、th 或 td 元素组成。<table> <tr> <td>姓名</td> <td>年龄</td> </tr> <tr> <td>...
2021-05-29 11:01:49 349
原创 <form>标签
HTML-表单<form>标签1. 在HTML标签中,<form>标签用来定义表单,来实现用户信息的收集和传递。2. 表单能够包含input 元素,比如文本字段、复选框、提交按钮、单选按钮、多选按钮、普通的按钮、图像按钮等。2.1 表单的格式:2.2 文本框(text)(用户名和密码): 用户名:<input type="text" name="UserName"> 密码:<input type="pass...
2021-05-29 10:29:56 1436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人