自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法学习(七)判断一个二叉树是否为完全二叉树

定义一个全局的深度参数,对该二叉树进行前序遍历,当第一次出现null值时,记录当前的深度,之后再遍历到该深度的节点时,如果不是null值,说明不是完全二叉树,如果出现null值的深度不是记录的值,说明不是完全二叉树,如果超过记录值的深度,说明不是完全二叉树(略)完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。数据范围:节点数满足 1 \le n \le 100 \1≤n≤100。

2023-10-24 15:02:21 831

原创 算法学习(六)判断二叉树是否为二叉搜索树

定义一个全局节点保存当前节点的根节点信息,递归该二叉树,判断当前节点的左节点与右节点是否满足搜索树条件,注意:防止左子树的当前节点的右节点超过根节点,需要额外的进行判断,右子树也同理。二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。中序遍历二叉树,观察结果是否有序来判断是否为二叉搜索树(略)给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。

2023-10-24 14:45:38 225

原创 算法学习(五)将两颗二叉树进行合并

以tree1为基础,将tree2上的值或节点加到tree1上,完成合并,递归过程中,当tree1的当前节点为null时,将tree2的节点接在tree1上,当tree2的当前节点为null时,直接返回,都不为空,则将tree1的值加上tree2的值,完成二叉树的合并。已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。进阶:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)

2023-10-24 14:23:52 282

原创 算法学习(四)将一颗二叉搜索树转排序的双向链表

数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000。二叉搜索树的中序遍历正好为排序的结果,通过中序遍历,递归过程中,通过pre节点保存上一节点数据,完成转换。要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。

2023-10-24 14:04:50 139

原创 算法学习(三)利用前序遍历的思想求解层序遍历

在前序遍历的基础上,增加一个深度参数,结果用集合保存,保存位置为相应的深度索引。给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)给定的二叉树是{3,9,20,#,#,15,7},

2023-10-24 11:55:23 52

原创 算法学习(二)递归求解字符括号匹配问题

在递归字符串的过程中,采用stack保存当前字符,每一次递归将字符与集合最后一个元素进行匹配,如果匹配成功,则清除最后一个元素或添加当前元素,进入下一次递归,最后保证集合为空,说明字符串合法。给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

2023-10-24 11:40:30 109

原创 算法学习(一)归并排序求解N个数中最大的K个数

给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。数据范围:0\le k,n \le 100000≤k,n≤10000,数组中每个数的大小0 \le val \le 10000≤val≤1000。要求:空间复杂度 O(n)O(n) ,时间复杂度 O(nlogk)O(nlogk)采用归并排序的思想,将数组分解成若干数组,再排序,取出前K个数。

2023-10-24 11:29:39 86

原创 若依注解学习(二)@DataScope

判断role的数据权限,生成sql条件append,or。一般写在service层的一些需要权限控制的业务方法上,针对部门和用户的权限,生成sql条件。2.安全框架中获取当前的用户信息,包括用户,部门,角色信息。dao层 ${param.dataScope} 注入条件。设置切入点,@Before,任何加了该注解的方法。遍历用户的role信息,添加权限。添加到baseEntity的param。3.判断是否管理员,非管理员进行处理。从注解获取权信息,进行过滤。dao层注入,实现数据权限的控制。

2023-09-21 14:49:43 275

原创 若依注解学习(一)@Log

execute:参数为一个Task,该Task通过任务工厂AsyncFactory生产你要执行的任务·core中,core是ruoyi框架的核心代码,在aop中对操作进行处理,其中,会调用安全框架来。写在方法上,通过aop切面编程,在方法执行前、方法执行完、方法异常的时候做处理。common中,出现在公共模块,若出现在其他模块,极其容易出现模块相互依赖的问。在我们使用ruoyi的代码生成器的时候,在controller的每个方法出现。设置方法名,请求方式,根据Log上的参数设置信息。

2023-09-18 11:28:39 531

原创 解决多模块导致security配置失效

security模块的包名必须为:com.wwb.XXX。例如主模块启动类包名为:com.wwb。

2023-09-15 16:21:21 122

原创 解决Docker部署SpringBoot项目时各容器的相互调用

但部署到docker后,因为 容器中的ip地址 和 宿主机的ip地址 是不同的,所以当 nacos 用 localhost 时,其实对应的是 nacos容器的ip地址,所以调用 localhost 时,并不能通过 宿主机的ip地址调用8848端口映射到容器中8848端口.因为我的nacos,mysql等服务是部署在docker的容器中的,通过端口映射到我的主机上,所以在java -jar的时候可以正常连接。但是当我将这个jar包打包成镜像部署到docker时,项目报错,提示信息大概就是,如naco连不上。

2023-07-18 20:20:55 784

原创 Spring加载bean的个人理解

把这个bean注入,完成bean的加载,(同时这个earlySingletonObjects还可以保证所有依赖我的bean中的对象是同一个对象,保证单例),这个bean。扫描完后,对这个map进行循环,通过每个beanDefinition中的class信息,是否是预加载,是否是单例,是就把key做beanName,通过class对象。如果属性上有DI注解,如@Autowried,就先看这个对象是否是一个已经注册的bean,就是在beanDefinitionMap中根据类型找,没有就报错,有多个,

2023-07-14 15:50:03 722 2

原创 java面试复习

持续更新【doc文档】

2023-07-13 14:22:03 396

原创 Lucene的全文搜索及高亮显示

【代码】Lucene的全文搜索及高亮显示。

2023-07-05 15:02:17 538

原创 jmeter安装与中文配置及最基本使用

解压后,找到bin目录下的jmeter.properties。在线程组添加取样器,选择http请求,发送http请求。添加线程组:即发送http请求的线程组,用来设置线程。在线程组添加查看结果树,用来查看http请求的响应。只能下载Binaries下的,我选择zip格式。修改JSON可将响应实体转成JSON格式。使jmeter默认使用中文简体。

2023-04-25 21:11:45 221

原创 nacos解决shared-configs下的共享配置文件无法实时更新

使用@RefreshScope注解,服务启动后,在nacos配置中心,修改shared-configs下的配置文件mysql.yml,数据源无法实时更新。nacos针对该服务只监听了以上3个配置文件,而我的mysql.yml并没有被监听。进入Config类,发现他有多个构造方法,怀疑问题出现在这里,于是找到问题所在,只需要在yml构造时调用其他的构造,即可。尝试进入shared-configs发现调用了这个方法。

2023-04-16 10:05:34 1994 4

原创 漏桶算法和令牌桶算法

这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,可以处理瞬时流量,而且拿令牌的过程并不是消耗很大的事情。算法思路简单,水(请求)先进入到漏桶中,漏桶以一定的速度出水(接口有响应速率),当水流速度过大直接溢出(访问频率超过接口响应频率),然后就拒绝请求,可以看出漏桶算法能强制限制数据的传输速率。令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。桶中请求数有限制,满了则丢弃,桶以一定速度处理请求。

2023-04-14 20:44:32 728

原创 SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表(详细)

由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。*代表最新的。

2023-04-14 19:21:59 10734

原创 A component required a bean of type ‘xxx‘ that could not be found.

3.若不在同一模块,在启动类加上包扫描 @ComponentScan("xxx")1.springboot扫描的范围是与启动类同级别的包。2.若在同一模块,检查是否加上了IOC注解。原因:spring boot注入失败。

2023-04-14 19:00:46 687

原创 jdkproxy的简易实现

2.测试前置增强(代理对象调方法前置增强,输出时间)

2023-03-12 10:56:46 84

原创 jdbcTemplate获取自增列

如图为:在添加一条数据时返回这条数据自增的id值。

2023-03-12 10:49:06 389

原创 @ConfigurationProperties()与@Value

3.@EnableConfigurationProperties(ConnectionProperties.class):让使用了 @ConfigurationProperties 注解的类生效, 并且将该类注入到 IOC 容器中,交由 IOC 容器进行管理。2.@ConfigurationProperties("yc.conn"):将配置文件中的yc.conn属性与加了这个注解的Bean的属性绑定。5.@Value:写在属性上,读取配置文件到属性上,用于配置项少的情况。

2023-03-12 10:39:04 179

原创 tomcat服务器的文件上传功能实现

目录一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息1,获取数据2.添加数据3.传回数据到前台二、附:配置CATALINA_HOME三、效果展示 1,获取数据2.添加数据3.传回数据到前台略按‘i’进入insert模式,在最后加入如:/usr/local/tomcat/apache-tomcat-9.0.68按ESC退出insert模式,按‘:wq’,保存退出使配置生效新建一个在webapps下新建upload文件夹可以看到:pid为3的这条数据

2022-12-03 15:16:56 1666

原创 解决:ERROR 1045 (28000): Access denied for user ”root”@”XXX”

发现目前我的Update权限为Y,其他权限都是N,这表示可以我们可以更新权限。虽然你使用的是root用户,但是他的权限被改了,导致无法正常操作数据库。这时退出mysql,再连接发现连接mysql失败,说明把远程访问关了。第一步:开启mysql远程访问,在可视化界面操作。权限都在这个表里,很长,在ssh界面无法正常显示。host表示在任意ip都可以访问root用户。重新登录mysql,等了一会,发现没有报错了。记得最后把远程访问关了,比较安全。我直接把所有的权限都改成Y。2.查看root的权限。

2022-11-06 15:45:27 492 1

原创 vue获取methods中的返回值

【代码】vue获取methods中的返回值。

2022-11-05 10:47:29 476

原创 解决Gson转json对象,null值的处理

【代码】解决Gson转json对象,null值的处理。

2022-10-30 21:09:22 2262

原创 Ubuntu安装redis

(2) 再查找protected-mode yes 把yes修改为no 以上两个操作允许用户从本机访问远程的阿里云。(3) 同时将requirepass foobared取消注释#,改为自己的密码。(1) 找到bind 127.0.0.1 ::1,把这行前面加个#注释掉。输入字母i, 表示插入模式,才能改写以下的内容。按esc 输入:wq保存退出。设置你的root密码,要输两次一样的密码。注:配置文件打开错误多半是权限问题。1. 然后修改配置文件。再修改配置文件就好了。

2022-10-24 20:00:07 430

原创 操作表时获取被AUTO_INCREMENT修饰的参数:

PreparedStatement.RETURN_GENERATED_KEYS 获取自动生成的id号。

2022-10-22 17:25:33 89

原创 解决tomcat出现一个或多个筛选器启动失败。

说一下我遇到的情况:在未在我的项目中加入filter时,tomcat运行正常,加入后tomcat无法正常启动。原因:请查看你所写的filter类中是否有抽象类,若有,请检查你是否在这个抽象类写了注解。导致tomcat去实例这个抽象类,而这是一个抽象类无法实例化,tomcat无法正常启动。就是这个:@WebFilter("*.action")

2022-10-16 10:02:56 1001

原创 解决插入mysql数据库时,时分秒丢失

请检查你建的表的日期字段的数据类型是否是datetime,date类型只保留日期,不保留时间。这是datetime类型。

2022-10-11 20:15:27 864

原创 自定义vue(2)

【代码】自定义vue(2)

2022-10-08 16:49:02 123

原创 自定义vue(1)

实现的双向数据绑定,该方法是es5提供的新功能,不支持ie8及以下版本。当你这样操作的时候,其实会帮你调用name的get方法,至于为什么是空值,是因为我们把name属性进行了修改,你可以指定value来赋新值。当你这样操作的时候,调用了set方法修改了person.name的值,同时页面显示了张三。如图,我们把person对象的name属性进行了一些修改,增加了get set方法。这个方法可以动态的修改一个对象中属性的值,以及增添方法等。

2022-10-08 16:39:22 292

原创 ajax技术详解

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

2022-09-19 19:52:56 312

原创 Servlet的封装

目录封装的必要性我们可以写一个公共类CommonServlet:封装是面向对象的方法应该遵循的一个重要原则!它的英文是encapsulation,有时也叫做数据隐藏。 从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现形式。 对象中的数据称为实例域(instance field),操纵数据的过程叫做方法(method)对于每个特定的类实例(也就是对象),都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state).无论何时,只要向对象发送一个消息,它的状态就有

2022-09-15 21:29:46 610

原创 Ubuntu(20.04)服务器配置jdk,tomcat,mysql

1、去官网下载一个任意版本的jdk,以1.8为例(也可通过命令下载安装)2、将下好的jdk上传到服务器上默认/usr/java。将bind-address ==xxxxx注掉。注:用的是Xftp 7,没有的可以去官网下载。输入服务器的公网ip:8080,出现上面的网页。回车后,按i进入编辑模式,加入这一段。进入该文件下的bin目录下,输入。3、解压,在当前目录下解压。8.授权root远程登录。按:+wq退出并保存。3.启动tomcat。4.检查tomcat。选择mysql数据库。

2022-09-07 19:53:53 453

原创 清除composite里的子控件

项目场景:我想要清除composite中的内容,当点击下一页或其他时,重新绘制composite,达到分页效果

2022-07-06 09:39:12 231

原创 解决org.eclipse.swt.SWTException: Widget is disposed

给一个按钮加一个事件,点击后每秒显示当前时间,以及切换图片代码可以正常运行,但关闭这个页面弹出错误代码 运行 关闭时报错 原因分析:解决方案:完美解决

2022-07-03 15:35:23 2488

原创 制作一个记事本

目录1. 为什么要使用SWT?2. SWT应用程序的组成 3.准备工作4.部分功能演示 5.代码部分6.总结   SWT是一个IBM开发的跨平台GUI开发工具包。在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)。虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。如果你不明白的话,换句话说,如果平台A有窗口部件(widgets)1–40,而平台B有

2022-06-29 20:33:57 586

原创 使用html制作一个网页

目录备注效果如下 index.html中的内容 index.css中的内容 做的时候没注意比例,所以都是按105%的比例做的 总结 代码很简单,调试很麻烦

2022-06-27 12:02:27 30130 4

原创 用连接池操作ORACLE中任意一张表

目录1.连接池介绍2.druid1.将这个jar包导入项目,再建一个配置文件,内容如下:2.建一个测试类,读取配置文件3.获取连接池连接4.更新任意一张表5.查询任意一张表6.删除7.测试8.检查数据 为什么需要连接池呢?Java程序操作数据库,必须获得一个连接Connection实际操作中,我们要先获得连接,使用完成后还有关闭连接。这两个操作都比较耗时。思考:那有没有什么比较方便不耗时的方法呢?当我们要用的时候只需要调用一下就ok,用完了再还回去。这样岂不是免去了【获得、关闭连接】节省了很多时间?那应该

2022-06-25 15:43:59 181

空空如也

空空如也

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

TA关注的人

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