- 博客(91)
- 收藏
- 关注
原创 二叉堆-堆排序
堆排序(Heap Sort)是一种基于二叉堆(Binary Heap)数据结构的排序算法。它的核心思想是通过构建一个最大堆或最小堆,利用堆的性质逐步将堆顶元素(最大值或最小值)取出,从而实现排序。二叉堆的性质是堆排序的基础,理解这些性质是掌握堆排序的关键。由于堆是完全二叉树,因此可以用数组来表示堆。这种表示方法不仅节省空间,还能方便地通过索引访问父节点和子节点。i2 * i + 12 * i + 2假设有一个数组1710281001078堆化(Heapify)是将一个无序数组调整为堆的过程。
2025-03-03 22:53:13
724
原创 栈式指令集架构和寄存器的指令集
栈式指令集架构寄存器式指令集架构操作数存储方式隐式存储在栈中显式存储在寄存器中指令格式简洁(零地址指令)复杂(三地址指令)操作数管理通过栈的入栈(PUSH)和出栈(POP)操作通过寄存器间的显式操作指令执行顺序严格按照栈的LIFO原则灵活,不受栈操作限制代码密度高较低执行效率较低,栈操作较多高,寄存器访问速度快适用场景适用于简单的计算和表达式求值适用于复杂计算和高性能需求的场景。
2024-09-11 15:30:47
392
原创 数字三角形求最大路径
/**问题描述】 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最 大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。 【输入格式】 输入的第一行包含一个整数 N (1 < N ≤ 100),表示三角形的行数。下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。
2022-03-07 15:54:13
1495
原创 Mysql数据库类型对比Java数据类型
tinyint=Integer 很小的整数。带符号的范围是-128到127。无符号的范围是0到255。smallint=Integer 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。mediumint=Integer 中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。int=Integer 普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295..
2022-02-26 16:45:11
585
原创 设计模式工厂方法代码
//工厂接口public interface IFactory { Operation CreateOperation();}//工厂实现类,实例化被代理对象交给抽象工厂的子类去做public class AddFactory implements IFactory { @Override public Operation CreateOperation() { return new OperationAdd(); }}//客户端代码 IFac
2022-01-12 16:07:11
213
原创 力扣算法记录
1. 字符串3.无重复字符的最长子串https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/4. 寻找两个正序数组的中位数
2022-01-11 13:39:32
201
原创 开闭原则实例代码
实现一个作图程序,通过实例化不同类型的对象,画出不同的图形初始代码如下package com.atguigu.principle.ocp;public class Ocp { public static void main(String[] args) { //使用看看存在的问题 GraphicEditor graphicEditor = graphicEditor.drawShape(new Rectangle()); graphicEditor.drawShape(new Circ
2022-01-03 20:27:18
1153
原创 集合等数据结构-01
一、顺序结构1.如何判断链表中有一个环https://blog.youkuaiyun.com/mucaoyx/article/details/813957822. ArrayList和LinkedList区别首先,他们的底层数据结构不同。ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的由于底层数据结构不同,他们所适用的场景也不同,Araylist更适合随机查找,Linkedlist更适合删除和添加,查询、添加、删除的时间复杂度不同3.另外Arraylist和LinkedLi
2021-07-18 14:18:49
289
3
原创 设计模式-代理模式
什么是代理模式? **代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。**举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。为什么要用代理模式?中介隔离作用:在某些情
2021-07-06 14:21:28
139
1
原创 新redis
根据哔哩哔哩 狂神说讲解视频记录笔记,并添加自己的一些理解1. 关系数据库简介https://aws.amazon.com/cn/relational-database/关系数据库是数据项之间具有预定义关系的数据项的集合。这些项被组织为一组具有列和行的表。表用于保存有关要在数据库中表示的对象的信息。表中的每列都保存着特定类型的数据,字段存储着属性的实际值。表中的行表示一个对象或实体的相关值的集合。表中的每一行可标有一个称为主键的唯一标识符,并且可使用外键在多个表中的行之间建立关联。可以通过许多不同的方
2021-05-03 12:59:04
679
原创 多线程详解-03线程通信
6. 线程通信6.1Object提供了三个方法,可通过同步监视器对象来调用:wait():让当前线程等待,知道其他线程调用该同步监视器的notify()方法或notifyAll()来唤醒该线程notify():唤醒在此同步监视器上等待的单个线程。notifyAll():唤醒所有同步监视器上等待的单个线程。如同操作系统中的P/V操作一般,可以利用信号量机制辅助,从而实现多个线程之间通信。示例代码:private boolean flag = false;public syuchroniz
2021-04-07 17:43:50
168
原创 多线程详解-02线程周期与同步
3. 线程的生命周期线程的生命周期存在五个状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead)运行和阻塞状态线程死亡线程结束的方式run()或call()方法执行完成后,线程正常结束线程抛出一个未捕获的Exception或Error直接调用stop()方法结束线程,当容易导致死锁isAlive()方法可以测试线程是否死亡:当处于就绪、运行、阻塞时放回true。反之返回false。4. 控制线程4.1 jo
2021-04-07 17:42:38
172
原创 多线程详解-01实现方式
1.线程概述1.1 进程和线程当一个程序进入内存运行时,就变成一个进程。晋城市处于运行过程中的程序,并具有一定的独立功能,进程是系统进行资源分配和调度的一个基本单位。进程特征独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源,拥有自己私有的地址空间。在没有允许情况下,一个用户进程不能直接访问其他进程的地址空间。动态性:进程的实质是程序在多道程序系统中的一次执行过程,具有自己的生命周期和各种不同的状态,进程是动态产生,动态消亡的。结构特征:进程由程序、数据、和进程控制块组成。并发性;多
2021-04-07 17:40:49
197
原创 Java内存模型(JMM)-volatile-JMM笔记01
1.3 成员变量和局部变量有什么区别?A:在类中的位置不同成员变量:类中方法外局部变量:代码块,方法定义中或者方法声明上(方法参数)B:在内存中的位置不同成员变量:在堆中局部变量:在栈中C:生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失D:初始化值不同成员变量:有默认值(构造方法对它的值进行初始化)局部变量:没有默认值,必须定义,赋值,然后才能使用1.3.1 为什么局部变量存在于栈中而不是堆中
2021-04-05 11:42:54
175
1
原创 Mysql常用存储引擎:InnoDB,MyISAM,Memory认识--笔记
1. MySQL 的常用引擎都有哪些?答案:MySQL 的常用引擎有 InnoDB、MyISAM、Memory 等,从 MySQL 5.5.5 版本开始 InnoDB 就成为了默认的存储引擎。存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分-- 查看支持的存储引擎SHOW ENGINES;Mysql共支持八种引擎,从 MySQL 5.5.5 版本,InnoD
2021-03-28 13:36:01
236
原创 后端开发Springboot个人使用最小应用-jwt通过配置完成登录验证
1. application配置属性#安全验证jwtjwt.header=Authorization#令牌前缀,前后端发送token添加上此令牌jwt.token-start-with=Bearer#令牌签名jwt.sing=!@#$/*-QRIU234^&^Y*2. 获取属性的实体对象import lombok.Data;import org.springframework.beans.factory.annotation.Value;import org.springfra
2021-03-21 15:09:24
246
原创 后端Java-Springboot项目配置最小应用环境
适合第一次做后端环境开发借鉴。一个可用的后端Springboot开发环境,比较简单,做为很小的project来说应该已经够了。1. 创建Springboot项目选择Spring Initializr, Project SDK 1.8版本,Java版本8,Springboot选择2.0以上版本就可。2. 引入项目所需依赖这里有最小的应用环境所需依赖导入pom.xml-dependencies引入链接:pom.xml最小应用配置如果没有某些特殊需求,有一些依赖是不需要引入的,例如阿里云短信服务,
2021-03-21 14:46:51
519
原创 后端开发Springboot个人使用最小应用-pom.xml依赖
个人使用-后端配置最小开发环境pom.xml引入依赖<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.output
2021-03-21 13:37:20
396
原创 后端开发Springboot个人使用最小应用-application配置文档
springboot项目配置文件application.properties# 应用名称spring.application.name=blog# 应用服务 WEB 访问端口server.port=9090#server.servlet.context-path=/blog/#spring.profiles.active=dev# 数据库驱动:spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy#
2021-03-21 13:28:06
232
原创 Java代码,springboot集成mail,简单邮箱发送验证码--笔记
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>实现Java代码@Componentpublic class SendEmailUtil { @Autowired private JavaM
2021-03-14 09:58:51
255
原创 执行git stash apply 报错误:……needs merge
unable to refresh index查看文档,发现git stahs save之后,本地数据又发生改变,这时如果你执行git stash apply或其他上传操作,就会报这个错误。解决方法:也就先git add .下,将变更文件保存在本地仓库中。...
2021-03-13 21:35:57
11439
2
原创 Springboot Mybatis如何在一个注解@Delete中执行多个SQL方法
只需要在配置数据源的时候在spring.datasource.url添加allowMultiQueries=true即可,例如:spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/databaseName?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true...
2021-03-13 21:21:48
799
原创 Swagger无法访问
在WebMvcConfigurer配置静态资源访问路径 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 解决静态资源无法访问 // registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); // 解决sw
2021-03-13 21:17:31
1098
原创 自定义文件上传--记录
<form action="http://localhost:8080/api/fileUpload" method="post" enctype="multipart/form-data"> <label>上传图片</label> <input type="file" name="file"/> <input type="submit" value="上传"/></form>controller代码i
2021-03-13 21:02:52
110
原创 Base64添加干扰字段来进行简单加密处理
Base64一种字符编码方式,可解码,所以不适合用于加密。不过有时为了简单,也会使用它,方法记录如下://加密,在编码后的字符串固定位置添加定长随机字符串,形成干扰,外人不能直接解码获取信息public String encode( String name ) { String encode = Base64.encode(name); StringBuilder sb = new StringBuilder(); sb.append(encode).i
2021-03-13 20:42:57
395
1
原创 log4jdbc-log4j2-jdbc4.1仅使用笔记
简介log4jdbc是一个JDBC驱动器,能够记录SQL日志和SQL执行时间等信息。log4jdbc使用SLF4J(Simple Logging Facade)作为日志系统。特性:支持JDBC3和JDBC4。支持现有大部分JDBC驱动。易于配置(在大部分情况下,只需要改变驱动类名并在jdbc url前加上jdbc:log4,设置好日志输出级别)。能够自动把SQL变量值加到SQL输出日志中,改进易读性和方便调试。能够快速标识出应用程序中执行比较慢的SQL语句。能够生成SQL连接数信息帮助识别
2021-03-13 20:22:53
2806
原创 HTML元素CSS样式水平居中,垂直居中
水平居中元素为文本或者图片等行内元素时,可以通过text-align:center实现。当设置的元素为块元素时,text-align:center 就不起作用了,这时候分两种情况:1.定宽块状元素通过设置左右 margin 为 auto 即可实现。margin:0 auto2. 不定宽块状元素加入 table 标签;设置 display:inline 方法,然后 text-align:center 实现。与第一种类似,显示类型设为行内元素;优势:不用增加无语义标签缺点:变成了行内元素
2021-03-13 15:22:30
194
原创 并发和并行--笔记
并发与并行是操作系统四个特性之一(并发与并行,共享,虚拟,异步)并发性:指两个或多个事件在同一时间间隔内发生的。(多线程便是并发)并行性:指两个或多个事件在同一时刻发生的。引用知乎上一位大佬的例子:你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。并发的关键是你有处理多个任务的能力,不一定要同时。并行的关键
2021-03-12 15:22:38
101
原创 数据表整型字段,默认值为null,导致进行加减运算时数值为null
数值增加,数据库中值默认为null,接受参数也也默认为null,问题: 传递参数:per,数据表中字段clu如果per为null,clu不为空,或者per不为空,clu为null,那么两者相加就为null,会有冲突产生。解决通过mysql关键字IFNULL(clu,0)来判断库中是否为空,为空就转换0另外使用动态SQL,来控制传值是否为空 "<if test='passDto.workPoint !=null'>", ", work_
2021-03-12 11:39:16
605
原创 Mybatis-动态SQL笔记,IF对查询结果进行判定
基于XML文档的映射基于Mapper层使用注解的sql@Select({"<scripe>", "……", "</script>"})if判断<select select * from user where 1 =1 <if test="username != null"> and username = #{username} </if> &
2021-03-12 11:35:30
4469
原创 使用nginx部署HTML项目,静态资源资源无法访问
将项目拉倒nginx/html文件夹下复制nginx/conf/nginx.conf在同级目录,我的取名为nginx/conf/custom.conf修改custom.conf配置文件server { #监听端口 listen 9999; server_name XXX; index index.html index.htm index.php; # root /www/server/phpmyadmin;.
2021-03-08 22:04:58
2303
原创 操作系统-第四章 存储器管理
存储管理是操作系统的重要组成部分,它负责管理计算机系统的重要资源主存储器。由于任何程序、数据必须占用主存空间后才能执行,因此存储管理直接影响系统的性能1 存储器的层次结构1.1 多层结构的存储器系统可执行寄存器计算机系统的存储层次中,寄存器和主存又被称为可执行存储器。操作系统负责对可执行存储器的管理,进程对可执行存储器是可直接访问的,而设备和文件管理则负责根据用户的需求,提供对辅存的管理机制。但对辅存的访问是需借助I/O设备。主存储器主存储器简称内存或主存,是计算机系
2021-03-08 09:07:44
2219
原创 文件上传烦恼?利用FTP完成服务器文件上传文件服务器,并映射网络地址直接访问文件
我的情况是利用宝塔面板,将新建FTP 和 本地文件链接一.上传1. 新建上传目录在根目录下,新建/www/upload/,作为上传目标地址2. 新建FTP其中根目录要指定之前建立的目录TCP控制连接端口21,默认的协议端口,20:主动模式数据端口39000~40000:被动模端口范围这几个端口需要在防火墙中放行,使用命令firewall-cmd --zone=public --add-port=20/tcp --permanent开启端口查看已打开的端口:firewall-cmd
2021-01-28 15:32:26
993
原创 try{}catch{}finally{}
异常类主要有两个子类,IOException和RuntimeExceptiong分别是数据输入异常,运行时异常。Throwable的另一个类 Error是系统异常,和程序无关。try{}catch(Exception e){ }finally{}try会捕捉异常,使的程序能够继续运行,可以使用在有可能出错的地方。catch块,如果发生的异常类型和catch的参数类型相同,异常会进入catch块,可在此对异常进行处理。finally 创建再try后执行的代码块。无论是否.
2021-01-26 12:10:19
134
原创 conteos服务器安装redis
下载地址:https://www.cnblogs.com/hunanzp/p/12304622.html下载并安装,安装在usr/local/redis# wget http://download.redis.io/releases/redis-6.0.8.tar.gz# tar xzf redis-6.0.8.tar.gz# cd redis-6.0.8# make启动默认配置的redis# cd src# ./redis-server修改配置文件redis.confprotect
2021-01-18 23:12:19
186
原创 SpringBoot项目图片上传-01,并返回项目中图片路径
Springboot官网在这里:https://spring.io/guides/gs/uploading-files/需要使用的jar包<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2021-01-16 22:45:54
680
1
原创 SpringBoot-CORS:When allowCredentials is true, allowedOrigins cannot contain……value “*“
SpringBoot 2.4CORS配置出现问题:java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set o
2021-01-16 22:29:27
1568
1
原创 计算机网络-错题记录本
单选题1. 以下关于计算机网络的讨论中,哪个观点是正确的?A 组建计算机网络的目的是实现局域网的互联B 联入网络的所有计算机都必须使用同样的操作系统C 网络必须采用—个具有全局资源调度能力的分布操作系统D 互联的计算机是分布在不同地理位置的多台独立的自治计算机系统解析:组件计算机网络的目的是实现资源共享,资源主要指硬件、软件、数据2. 若BSC帧的数据段中出现字符串”A DLE STX”,则字符填充后的输出为()A DLE STX STXB AA DLE STXA DLE DLE
2021-01-12 11:24:44
526
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人