自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 drop,delete与truncate的区别

5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。3、delete (删除表中的数据):delete 语句用于删除表中的行。​ truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。新行标识所用的计数值重置为该列的种子。2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。

2022-10-16 11:42:59 739 1

原创 Redis数据类型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ftLfD34d-1665891690635)(F:\study\学习资料\JavaGuide\docs\database\Redis\images\redis-all\redis-list.png)]命令,你可以基于 list 实现分页查询,性能非常高!下面我们简单看看它的使用!下面我们简单看看它的使用!下面我们简单看看它的使用!下面我们简单看看它的使用!

2022-10-16 11:42:20 195

原创 HTTPS总结

密码作用组成消息认证码确认消息的完整、并对消息的来源认证共享秘钥+消息的散列值数字签名对消息的散列值签名公钥+私钥+消息的散列值公钥密码解决秘钥的配送问题公钥+私钥+消息证书解决公钥的归属问题公钥密码中的公钥+数字签名。

2022-10-16 11:40:35 208

原创 ARQ协议

停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。如果过了一段时间(超时时间后),还是没有收到 ACK 确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明到这个分组位置的所有分组都已经正确收到了。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。

2022-10-16 11:37:23 1795

原创 TCP连接

一个MSL是报文从客户端到服务端的时间,万一最后的一个ACK相应没有到达,服务器会再发一个FIN请求,这样客户端等待一个“来回”的时间,防止最后一个ACK丢失。

2022-10-16 11:36:32 393

原创 在浏览器中输入url地址 ->> 显示主页的过程

举例:查找www.google.com的ip地址,先从本地域名服务器查询,如果查不到,依次向根域名服务器、com顶级服务器查询,直到找到google.com域名服务器,这时为了以防下次查询这么麻烦,直接存到DNS高速缓存中,不仅本地有缓存(DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。(请求报头允许客户端向服务器传递请求的附加信息和客户端自身的信息。

2022-10-16 11:34:47 293

原创 计算机网络五层结构

负责向两台主机进程之间的通信提供通用的数据传输服务。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。**数据链路层:**在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。**物理层:**在物理层上所传送的数据单位是比特。

2022-10-16 11:33:37 315

原创 String、StringBuffer与StringBuilder的区别String、StringBuffer与StringBuilder的区别

StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder。String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象。

2022-10-16 11:07:46 73

原创 jdk1.7 hashmap死循环

HashMap死循环只发生在JDK1.7版本中,主要原因是JDK1.7中的HashMap,在头插法 加 链表 加 多线程并发 加 扩容这几个情形累加到一起就会形成死循环。多线程环境下建议采用ConcurrentHashMap替代。

2022-09-11 12:21:17 1161

原创 JVM引用实例

虚引用,也叫幽灵引用,不会决定对象的生命周期,如果一个对象持有虚引用,那么它就和没有引用一样,虚引用的作用仅仅是为了跟踪垃圾回收的情况。软应用在实际中有重要的应用,例如浏览器的后退按钮,如果将网页的内容全部存到内存中,必然会发生内存溢出,这个时候就利用了软引用的方式。软引用可以和一个引用队列联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。只有弱引用的对象,只能存活到一次垃圾回收以前,也就是说,只要垃圾回收的时候,发现有弱引用的就将其回收。

2022-09-11 11:45:12 117

原创 Java Comparator比较器

在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口。匿名内部类的方式,在list需要排序的时候,才具体定义排序的规则。一个实现了该接口的类,可以通过如下方法排序。该接口只有一个compareTo方法。

2022-09-04 23:10:24 741

原创 AOP底层原理(代理)

概念:面向切面编程(方面)利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。以对象为基本单位完成程序开发,通过对象间的相互协同,完成程序构建。以函数为基本单位完成程序开发,通过函数间的相互调用,完成程序构建。类里面哪些方法可以被增强,这些方法称为连接点。(1)实际增强的逻辑部分称为通知(增强)实际被真正增强的方法,称为切入点。(1)把通知应用到切入点的过程。OOP 面向对象编程。POP 面向过程编程。(2)通知有多种类型。

2022-09-04 22:04:05 393

原创 Java异常体系

首先异常体系分为:错误、异常两大类。:(这种错误无法处理)描述了Java运行时系统的。一般是指虚拟机(JVM)相关的问题,如等,。因为如果出现这样的内部错误,除了通告用户,并尽力使程序安全地终止之外,再也无能为力了。。Java的异常分为两种,checked Exception(编译时异常也叫非运行时异常)和 RuntimeException(运行时异常)。

2022-09-02 22:59:11 269

原创 Java抽象类和接口的联系和区别

概念:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

2022-09-02 22:10:54 402

原创 Java代理

1. 代理模式在Java开发中是广泛应用的,特别是在框架中底层原理经常涉及到代理模式(尤其是动态代理)2. 静态代理和动态代理,实际使用时还是动态代理使用的比较多。原因就是静态代理需要自行手写代码,维护、修改非常繁琐,会额外引入很多工作量。也不能很好的使用配置完成逻辑的指定,所以使用较少。3. 基于JDK和基于CGLIB,实际使用时两个都会用到。1. 在spring中,默认情况下它就支持了两种动态代理方式。如果你指定的目标类实现了接口,spring就会自动选择jdk的动态代理。...

2022-08-31 21:06:56 1279

原创 Java反射

结论:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的class对象都是同一个。:将字节码文件加载进内存,返回class对象(多用于配置文件,将类名定义在配置文件中,读取文件,加载类):getClass()方法在Object(多用于获取字节码文件):通过类名的属性class获取(多用于参数的传递)将类的各个组成部分封装为其他对象,这就是反射机制。1、可以在程序运行过程中,操作这些对象。2、可以解耦,提高程序的扩展性。我们接下来看看代码编译顺序。...

2022-08-31 20:24:27 79

原创 在重写equals方法的时候,为什么还要重写hashcode方法

Java中的hashCode方法就是根据一定的规则与对象相关信息(例如对象的存储地址,对象的字段等)映射成一个数组,这个数值就被称为散列值。这里可以看到,重写HashCode方法之后,两个实例对象的hashcode的值也就是相同的,HashSet也就能起到了去重的效果。很多情况下,我们比较对象并不需要比较对象的地址,而是只要是同一个类的不同对象,成员属性值相同,我们就认为是同一个对象。(1)如果两个对象通过equals方法比较是相等的,那么它们的hashCode方法结果值也是相等的。set.size为2。.

2022-08-30 21:09:15 239

原创 java 128陷阱

说到128陷阱之前,我们补充一个小的Java知识。==和equals的区别:简单的理解就是:==比较的是连个数据的地址是否相等,而equals比较的是两个数值是否相等。而equals是来源于Object类的,对其进行了重写才会判断数值是否相等对比一下代码接下来我们回归正题当我们有这样的一段代码意想不到的输出出现了truefalse这就是我们通常见到的128陷阱问题。...

2022-08-30 18:24:37 239

原创 Java线程池的使用(简单实现)

创建Java线程需要给线程分配。

2022-08-27 20:59:20 1066

原创 SpringBoot自定注解实现权限管理(项目实现)

本文章讲解的是基于RBAC模型的数据库设计的拦截器+自定义注解的形式实现权限验证。service层(主要的作用是获取用户相应的token,并存入redis)拦截器的配置(拦截了所有的请求并,验证是否存在token以及是否过期)切面的方式(环绕的方式返回验证结果)接下来,就是该用户是否有权限访问。登入的controller层。...

2022-08-27 20:11:08 1091

原创 关于使用RBAC模型,实现用户权限管理

简单的来说,RBAC模型就是把用户、角色、权限分成了三个部分一个用户会有一个属于自己的角色,而每个角色又有属于自己的权限,这样就实现了,角色和权限的分离来一张图可能比较清楚。

2022-08-27 19:39:42 843

原创 list map set 在项目中的应用,阐述底层实现原理

List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMapCollection接口下还有个Queue接口,有PriorityQueue类Queue接口与List、Set同一级别,都是继承了接口。

2022-08-22 20:03:59 230

原创 使用java实现一棵二叉树,并使用他完成二叉树的层次遍历,两种中序遍历 递归 &非递归

首先实现一颗二叉树二叉树的定义树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的树。二叉树是一种特殊的树,每个节点最多只能有两个子节点。二叉搜索树要求:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。

2022-08-22 19:46:32 150

原创 java8中 lambda表达式,stream操作

用::提取的函数,最主要的区别在于静态与非静态方法,非静态方法比静态方法多一个参数,就是被调用的实例。方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式。类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function。静态方法引用,通过类名::静态方法名, 如 Integer::parseInt。实例方法引用,通过实例对象::实例方法,如 str::substring。构造方法引用,通过类名::new, 如 User::new。

2022-08-22 18:58:19 331

原创 git命令

这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;的分支名 (branchname) 即可完成本地分支的建立(分支内容与master一样,因为在新建分支时的当前所处分支为master(*标识) ,也即你是基于master新建的test分支),并且此分支仅存在于本地。比如说我现在test1分支,想查看远端test2的代码(此时本地会新建并切换一个分支,当然你可以把这个本地的分支名设置成与远端同名)参数可以显示本地所有分支追踪(关联)的远程分支的情况,最后面是最近一次提交commit的注释。

2022-08-22 17:23:20 2155

原创 常见的linux命令

一、简介:awk是一种编程语言,用于linux下对文本和数据进行处理。数据可以来来自标准输入、一个或多个文件,或其他命令的输出。更多作为脚本来使用。awk处理数据的方式:逐行扫描文件,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定动作,则把匹配的行显示到标准输出(屏幕)。如果没有指定模式,则所有被操作所指定的行都被处理。二、工作原理:逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

2022-08-22 16:30:49 77

原创 使用java实现有序的单链表,并且添加一个方法,用于反转链表

尾插法实现有序链表的构建。

2022-08-21 23:46:50 166

原创 mybatis补充

接下来,我们再补充一些mybatis中sql语句的编写,主要介绍批量sql在mybatis中遇到的问题批量查询直接使用in(1,2,....)即可,返回的是有个List类型,明确了这两点后,我们需要一个循环遍历的操作,将接收来的id值也就是in()里面的值遍历出来这里使用了foreach循环遍历的方法collection代表输入值的类型,item代表每次遍历数值的名称,open代表以"("开始,separator表示中间用逗号隔开,close表示以")"结束。

2022-08-21 17:34:20 243

原创 Spring boot 自定义注解+AOP

作用:在不惊动原始设计的基础上为其进行功能增强,前面咱们有技术就可以实现这样的功能即代理模式。1.通知(Advice)——给目标方法添加额外操作称之为通知,也可以称为增强。2.连接点(Joinpoint)——就是可以增强的地方(方法的前后某个阶段)6.织入(Weaving)——将切面插入到目标从而生成代理对象的过程。然后,我们利用切面,将切入点改成该注解,就实现了,自定义注解的切面。4.切面(Aspect)——封装了通知和切入点用来横向插入的类。5.代理(Proxy)——将通知应用到目标类动态创建的对象。

2022-08-21 17:11:19 588

原创 基于niua框架的Excel的导出

基于niua框架的Excel的导出。

2022-07-27 10:33:01 127

原创 Java 读取excel文件并导入数据库

java的excel读取并导入数据库

2022-07-27 00:31:21 6925 7

原创 mysql的基本查询操作

mysql的基本查询操作

2022-07-26 15:22:34 157

原创 java上传实现 spring boot +element ui

基于niua框架 的上传实现 结合spring boot 前端element ui

2022-07-26 11:32:57 2774 2

原创 mybatis相关操作理解

mybatis相关操作理解mybatis相关操作理解

2022-07-26 11:31:07 177

原创 spring boot相关注解的理解

spring boot相关注解的理解

2022-07-26 11:29:40 248 1

空空如也

空空如也

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

TA关注的人

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