自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GC垃圾回收

给对象添加一个引用计数器,当对象增加一个引用时计数增加1,当引用失效的时候,计数减1。当引用计数为0的时候,对象就可以被回收。通过GC Roots作为起点进行搜索,能够到达对象的都是存活的,不可达的对象是可被回收的,两个对象被循环引用的时候,引用计数永远不为0,导致无法对其进行回收。·方法区中类静态属性引用的对象。·本地方法栈中引用的对象。·方法区中常量引用的对象。·虚拟机栈中引用的对象。

2025-09-10 14:33:16 155

原创 MySQL一条SQL语句的执行过程

MySQL查询语句执行流程解析:1)连接建立和权限验证;2)查询缓存检查;3)SQL语法解析和预处理;4)优化器生成执行计划;5)执行器执行查询。其中涉及连接管理、缓存机制、语法分析、优化决策等关键环节,特别是优化器会根据索引情况优化查询效率。

2025-09-09 20:43:30 262

原创 MySQL中char和varchar的区别

varchar的优点是兼容性更好,以及可变的数据长度。但可能会带来一些问题,varchar可能会产生内存碎片,以及update会导致。char的优点是定长的字符串类型,减少内存碎片,无需额外的磁盘空间去存储长度空间。缺点是会丢失数据列末尾的空格信息。char是一种定长的数据类型,长度固定且会自动在结尾添加空格来讲字符串填满至固定的长度,其长度范围是0到255。varchar是一种可变长度的数据类型,只会存储实际的字符串内容,不会填充空格。

2025-09-09 20:34:43 151

原创 关系型数据库和非关系型数据库

关系型数据库采用二维表格结构存储数据,强调ACID原则(原子性、一致性、隔离性、持久性),通过结构化查询语言管理数据,但以降低读写性能为代价保证数据一致性。数据通常存储在硬盘中,通过undolog和redolog等机制实现事务特性。相比之下,非关系型数据库不严格遵循ACID原则,多基于内存存储,读写速度更快,但可能牺牲部分数据一致性。两种数据库各有特点,适用于不同场景。

2025-09-09 20:23:52 267

原创 常见的字符编码

3.utf系列字符集,由于Unicode没有规定如何存储,因为如果统一规定,每个符号就要用三到四个字节表示,因为字符太多,需要那么多字节才能表示。对于英文字母而言,统一规定必然会导致每个英文字母前有二到三个字节为0,因为在ASCII中英文字母都有,都可以用一个字节表示,剩余位置要补充0,那么会导致文件膨胀2-3倍,对于存储而言极度浪费。4.GBK字符集,针对大部分仅服务于一个国家的网站,GBK+ASCII就可以满足用户需求,而且针对utf系列字符集而言,会减少更多的字节空间。

2025-09-09 17:30:56 120

原创 字符串常量

字符串常量池中的常量有两种来源,一种是字面量会在编译期进入到class常量池,然后再进入到字符串池,还有一种就是在运行期间通过intern方法将字符串对象手动添加到字符串常量池。字符串常量指的是在源代码中直接被双引号引用的字符串字面量。

2025-09-09 17:05:43 105

原创 Class常量池

class常量池可以理解为class文件中的资源仓库,Class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项就是信息就是常量池,用于存放编译器生成的各种字面量和符号引用。其中字面量类似于java中的常量概念,比如文本字符串、final常亮等。

2025-09-09 16:58:11 106

原创 Java集合

基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是 查找效率不如HashSet,HashSet的查找效率为O(1),而TreeSet的查找效率为O(logN)基于哈希表实现,支持快速查找,但是不支持有序操作。并且失去了元素插入顺序的信息,也就是说每次Iterator遍历HashSet得到的结果是不确定的。基于双向链表实现,只能顺序访问,但可以快速的在链表中间插入和删除元素。具有HashSet的查找效率,且内部使用双向链表维护元素的插入顺序。基于堆结构实现,可用来实现优先队列。

2025-09-09 16:43:38 184

原创 Java常用注解

3.@SuppressWarnings,用于表明要忽略的警告。2.@Deprecated,用于表明某个类或方法过时。1.@Override,用于表明重写某个方法。

2025-09-09 15:25:18 89

原创 String、StringBuilder、StringBuffer的区别

3.StringBuffer是线程安全的(使用synchronized进行声明),而StringBuilder是非线程安全的,但效率相对StringBuffer要高。2.StringBuilder和StringBuffer是可变的。1.String是不可变的。

2025-09-09 14:44:03 110

原创 Java绝对值

有一种特殊情况,当int类型的数据为-2147483648的时候,得到的绝对值还是-2147483648,因为int的范围在-2**31到2**31-1范围内,简单来说绝对值超出了int范围,但只需要将该值转换为long数据类型,就不会出现越界。一般使用Math.abs方法。

2025-09-09 14:38:14 158

原创 为什么不能用BigDecimal的equals方法做等值比较

可以看到上面的示例,看上去精度不同,但一个为true,一个为false。因为0.1和0.10所创建出来的bigdecimal的值都是属于double自身的一个近似值,小数点后大约55位,标度相同,而字符串所创建出来的值如代码所示,一个为0.1,标度为1,一个为0.10,标度为2.因为BigDecimal方法会同时比较值(value)和标度 (scale),而对于0.1和0.10两个数字而言,虽然值是相同的,但是精度不一样。一般采用compareTo方法进行值的比较。

2025-09-09 14:29:39 112

原创 为什么不能用浮点数表示金额

举例为 十进制的0.2,转换为二进制,过程为 0.2*2=0.4取0,0.4*2=0.8取0,0.8*2=1.6取1,0.6*2=1.2取1,0.2*2=0.4取0,到这步就开始无限循环了。实际举例比如0.1+0.2!= 0.3,而是等于0.30000000000000004。浮点数知识近似值,而不是精确值,不能用来表示金额,否则会有精度丢失。float和double都不能用,只能使用BigDecimal。因为不是所有的小数都能用二进制表示。

2025-09-09 14:14:43 138

原创 Java基本数据类型

int,4字节,范围-2147483648到2147483647,long,8字节,范围-9223372036854775808到9223372036854775807。为了让基本类型也有对象的特征,就出现了包装类型,它相当于将基本类型包装起来,使它具有对象的性质,并为其添加了属性和方法,丰富了基本类型的操作。另外基本类型的默认值和包装类型的默认值不同,如基本类型的默认值基本是0,false,\u0000等,而包装类型的默认值为null。4.浮点型:float,4字节,范围约-3.4E38到3.4E38;

2025-09-09 14:02:40 167

原创 面向对象编程与面向过程编程

例如,用户管理模块不应同时处理用户认证和日志记录,而是拆分为独立的类。依赖倒置原则:高层模块不应依赖低层模块,二者应共同依赖抽象。多态:子类继承父类的属性和方法后,可以重写父类的方法,可以使得父类与子类的同样方法具有不同的实现。面向对象将问题分解为一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。:单一职责原则,开放封闭原则,Liskov替换原则,依赖倒置原则,接口隔离原则。面向过程把问题分解为一个一个步骤,每个步骤用函数实现,依次调用即可。:封装、继承、多态。

2025-09-09 12:34:35 320

原创 Java和C++主要区别以及优缺点

Java是解释型语言。源代码不直接翻译成机器码,而是先翻译成中间代码(Java字节码,.class文件),再由解释器对中间代码进行解释运行。执行速度相对较慢、效率较低。依赖解释器,跨平台兼容性好。C++是编译型语言。首先将源代码编译生成机器码,再由机器运行机器码,执行速度快,效率高,依赖编译器、跨平台性相对较差。Java是自动内存管理和垃圾回收的,C++需要手动进行内存管理。

2025-09-09 12:16:55 123

原创 Ar开源框架

Vuforia:Vuforia是一个强大的增强现实平台,提供了图像识别、跟踪、虚拟内容生成和渲染等功能。它支持多种平台,包括Android、iOS和Unity等。ARToolKit:这是一个广泛使用的增强现实框架,提供了图像识别、跟踪和渲染等功能。它支持多种平台,包括Android、iOS和Windows等。ARCore:ARCore是由Google开发的增强现实框架,专门用于Android平台。它提供了图像识别、跟踪、环境感知和虚拟内容渲染等功能。它提供了图像识别、跟踪、环境感知和虚拟内容渲染等功能。

2023-08-12 10:07:57 1697

原创 Spring Boot 引入 thymeleaf

static里面放dist文件夹的东西(就是vue打包之后的东西,css和js文件以及html都在里面)(注意static里面放的不是dist文件夹,而是dist里面的那些文件)第一步,首先将vue项目打包至dist文件夹(若开发者不熟悉vue前端,直接将此项任务交给前端,让他传给你dist)第三步,在 resources文件夹下 创建两个文件夹,一个命名为 static,一个命名为 templates。在第四步中,我配置的访问路径是 /# , springboot端口是8081。

2023-02-25 12:11:01 1574

原创 springboot配置mybatis

第一步,在pom.xml文件中引入依赖。第二步,在application.yml中配置 数据库连接信息 和 mybatis配置。

2023-02-25 10:41:59 667

原创 vue设置全局变量

在src下新建一个utils文件夹,并在此文件夹下新建一个config.js文件。配置完成,.vue文件都可以访问此变量,访问方式为 this.baseurl。在config文件中写入,这里以配置全局请求url为例。到main.js文件中引入此全局变量。

2023-02-23 16:55:14 1187

原创 后台运行jar包(linux)

若要关闭进程,则需要查看进程号PID并关闭。

2023-02-23 16:42:16 165

原创 springboot跨域配置

在config包中配置。

2023-02-23 16:34:38 135

原创 springboot配置ssl

第七步,在application.yml配置ssl,key-store就是pfx文件的路径,注意在前面添加一个classpath。key-store-password就是下载中的pfx-password.txt文件中的一串密码。第四步,下载tomcat的证书,因为springboot是建立与tomcat服务器的。第五步,下载成功后,会有两个文件,一个是配置文件,一个配置文件的密码。第八步,在对应的服务器启动jar包,就可以进行https访问了。第二步,找到SSL证书中的,免费证书。第三步,点击证书的下载。

2023-02-23 15:59:11 2566

原创 springboot开启定时任务

定时任务使用的 是spring自带的@Scheduled注解。

2023-02-23 15:36:56 1049

原创 Java springboot接收文件流并保存至本地

使用 MultipartFile 接收文件流。

2023-02-23 15:25:06 5185

原创 js上传文件流

第一步,创建FormData对象。第二步,读取文件列表,并添加到FormData实例化对象中。第三步,使用axios上传文件至后端。

2023-02-23 15:17:36 1737

原创 Java中使用restTemplate发送get请求

第一步,在springboot的启动类(Application)中添加RestTemplate的类。第二步,在controller层或service层使用restTemplate发送请求。

2023-02-23 14:58:42 969

原创 vue加载腾讯地图

vue加载腾讯地图。

2023-02-13 17:24:20 323

原创 js 获取当前时间

javaScripts 获取当前时间

2023-02-13 17:17:29 137

原创 html图片文字环绕

html图片文字环绕。

2022-12-01 13:21:33 1649

原创 idea-spark-消除INFO日志内容

只需在 resource 文件夹下 添加 log4j.properties 文件,

2022-11-30 18:38:25 714

原创 AOP的五种类型

After Throwing Advice(后置返回建议),即在方法抛出异常时 执行该后置方法。After Returning Advice(后置建议),即在方法正确执行后 才执行后置方法。After (Finally) Advice(后置抛出建议),即在方法执行后 执行后置方法。Around Advice(环绕建议),即在方法执行前后 进行执行前后置方法。Before Advice(前置建议),即在方法执行前 执行前置方法。根据spring官方文档所介绍,目前Aop共有五种通知类型。

2022-11-30 18:32:26 861

原创 spring配置AOP

Aop中有三种主要通知方式,分别为前置通知--@Before(""),后置通知--@After(""),环绕通知@Around(""),execution(* com.Aop.service.dao.save() 就是选择某个方法注入切面aop。如图所示,我在Aop包下创建了AopMethod的Aop操作类。如图所示,创建service接口层和impl实现类层。第三步,创建service层,用于测试Aop操作类。Aop操作类中,需注入切入点,即。第二步,创建AOP的方法类。第四步,书写Aop操作类。

2022-11-30 18:08:50 982

原创 html+css实现三角形

一个div盒子,盒子宽度和高度设置为0,然后给盒子设定border边框线,赋予不同的颜 色。思路就是给不同的边线赋予不同的颜色。

2022-11-30 14:53:27 504

原创 Jsp输出中文乱码问题

使用 req.getParameter 获取 Jsp页面参数后,若直接返回数据,则会出现中文乱码。

2022-11-30 14:39:34 480 1

原创 文字背景动效(纯css)(vue)

文字背景动效(纯css)(vue)

2022-11-30 14:09:06 492

原创 css+js 图片展示(vue)

css+js 图片展示(vue)

2022-11-30 14:05:14 354

原创 炫酷登录界面(html+css)

炫酷登录界面(html+css)

2022-11-24 21:00:42 2283

原创 带动画效果的登录页面(手撕版)

带动画效果的登录页面(手撕版)

2022-11-24 20:54:22 571

原创 数据结构--Java实现线性表之顺序表

Java实现线性表之顺序表

2022-11-19 14:26:36 489

空空如也

空空如也

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

TA关注的人

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