- 博客(164)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 JavaWeb项目中添加live2d模型
之前在个人博客中使用的 live2d 模型一直用的是网上一个大佬免费提供的 API ,这段时间发现这个 API 失效了,模型显示不出来,所以想着在自己的服务器上配置好 live2d 看板娘需要的所有文件,实现在项目中只需要引用一个 js 文件就可以在网页上显示看板娘。
2023-01-25 13:20:12
1771
1
原创 SpringBoot中使用OpenCV并部署到Linux服务器
项目在Windows底下运行时一切都好好的,但是,当我打成 jar 包放到 CentOS 服务器上运行时,问题出现了,如下:在CentOS安装OpenCV我寻思着应该是服务器上没安装 OpenCV 导致的,所以我四处寻找教程,试错几次之后,终于找到一篇靠谱的,centos7下java使用opencv下载opencv 并解压编译编译opencv的java版本注意:3、4两步的操作需要的时间可能比较长,请耐心等待…就当我以为安装好 OpenCV 就大功告成之后,没想到启动后它又报
2022-07-14 14:35:14
1726
1
原创 编译原理之 LL1 语法分析器(Java)
前言:编译原理实验要求做一个语法分析器,所以才有了这个项目语法分析器实验要求PS:这里其实还可以选择算符优先分析法和SLR(1)分析法做的,但是由于我对预测分析法比较熟悉,所以…测试用例文字版://直接左递归P——>Pa|bV——>Eabc|bc|Vabc|cE——>E+T|TT——>T*F|FF——>(E)|i//间接左递归S——>i|h|c|t|QcQ——>Rb|bR——>Ba|aB——>Cf|HC——&.
2022-05-13 00:03:41
4188
8
原创 Spring Boot2.6.0新特性之默认禁止循环引用
今天在项目中使用MyBatis的分页插件Pagehelper时遇到一个错误,在这里记录一下Spring Boot2.6.0新特性之默认禁止循环引用起因我在项目中使用了MyBatis的分页插件Pagehelper,在项目启动时,编译器报错,如下:2022-05-08 22:30:27.463 WARN 5356 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during.
2022-05-08 23:00:25
1405
1
原创 解决 Could not autowire. No beans of ‘UserDao‘ type found 问题
前言:今天在完善项目的时候发现使用@Autowired注入的Dao层依赖出现报错,但是不影响项目的运行,在此记录一下问题这个错误不影响项目运行,但是它看着很烦…分析Dao层代码:@Mapperpublic interface UserDao { User findUserById(@Param("userId") int userId); User findUserByNickname(@Param("nickname") String nickname); .
2022-02-23 11:18:03
4313
2
原创 HikariPool 连接池问题
前言:今天在一个项目运行的时候发现一个很奇怪的问题,当我有一段时间无操作之后再进行操作的话,就会出现HikariPool相关的报错,在此记录一下问题2022-02-20 13:14:04.178 WARN 4012 --- [nio-8888-exec-6] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@.
2022-02-22 00:27:53
9059
5
原创 Nginx学习4:负载均衡实例
Nginx配置实例-负载均衡目标在浏览器地址栏输入地址 http://192.168.126.131:8080/edu/a.html,负载均衡效果,平均分配到 8080 和 8081 端口中准备工作(1)准备两台 tomcat 服务器,一台 8080,一台 8081(2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建页面 a.html,用于测试具体配置在 nginx 的配置文件中进行负载均衡的配置最终结果我们可以看到,随着不
2021-12-27 15:42:18
1271
2
原创 哈夫曼编译码器
前言:又到了学校一年一度的数据结构课设的日子,经不住学弟学妹热心地“询问”我数据结构课设的内容,我就在这里把我之前数据结构课设做的东西总结一下哈夫曼编译码器我课设选择的题目是哈夫曼编译码器,类似于我们平时用的解压缩软件,可以把大文件压缩成一个较小的文件。设计目的数据结构课程设计的主要目的是使学生通过系统分析、系统设计、编程调试、写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用,进一步提高分析问题和解决问题的能力,提高程序设计水平。设计内容.
2021-12-25 12:28:05
2859
原创 “ Error:(1, 1) java: 非法字符: ‘\ufeff‘ ”错误的解决方法
前言:今天为了做作业,在 github 上面下载了个项目,然后在运行项目时发现报错,在此记录一下“ Error:(1, 1) java: 非法字符: ‘\ufeff’ ”错误的解决方法发生原因这个项目从目录的结构可以很明显地看出是使用 Eclipse 开发的,而 Eclipse 可以智能的把文件的格式为 UTF-8-BOM 编码的文件转为普通的 UTF-8 文件,IDEA 没有这个智能转换,在程序编译时是按照 UTF-8 的格式来编译运行的,因此报错,如下图:解决方案用 IDEA 转换,先转.
2021-12-22 18:24:54
2457
5
原创 IDEA的CPU占用率高问题解决方法
前言:这段时间发现 IDEA 的 CPU 占用率猛涨,时不时就飙升到百分之7、80,使得敲代码的体验感十分不佳,在经过一番查找之后终于解决了问题,在此记录一下IDEA的CPU占用率高问题解决方法问题定位我们先定位一下为什么IDEA的CPU占用率会变高。电脑内存不足?这个问题我在19年也遇到过,那时候的 8G 内存属实不太能带的动 IDEA ,开了IDEA 后 CPU 基本上都是在疯狂跑,然后我换了内存条之后才好转了,但是这次明显不是,因为我换成 32G 的内存之后还是没有好转…安装的插件.
2021-12-21 12:13:44
29836
27
原创 Nginx学习3:反向代理实例
Nginx配置实例-反向代理1目标打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中准备工作我们在官网下载好tomcat之后,直接将tomcat的压缩包放到相应的目录下编译解压,然后进入tomcat的bin目录中使用./startup.sh命令启动tomcat,如下图:注意:要开放系统防火墙的8080端口才能访问tomcat的主页面,我这里懒得设置,所以就直接把虚拟机的防火墙给关了…虚拟机IP地址加8080端口访问tomcat主页面,如
2021-12-08 15:08:20
1088
原创 Java爬取某旅游网站的景点信息
前言:这两周在做 Web 课的大作业,顺便琢磨了一下如何使用 Java 从网上获取一些数据,现在写这篇博客记录一下。PS:这里仅限交流学习用,如利用代码进行恶意攻击他网站,和作者无关!!!Java爬取解析携程景点信息网上用 Java 做数据爬取的案例不少,但是很少是能用的,有些是几年前能用,但是现在不行了,有些则是只有一个思路,在上网查阅许多资料之后我琢磨出了一个可行的爬取去哪儿景点信息的方案。使用工具:HttpClient:发出请求Jsoup:解析页面MyBatis:数据保存所需 .
2021-12-05 23:49:51
1482
3
原创 关于安卓手机改装成Web服务器的尝试
前言:之前刚好有部旧手机淘汰了,然后想着与其让它在那积灰,倒不如来发光发热,然后就寻思着能不能把它改成像阿里ECS那样的云服务器关于安卓手机改装成Web服务器的尝试手机型号:华为的畅享9然后,我这几天尝试了网上的许多种方法把手机安装一个Linux系统,下面是几种可行的方法方法一:Busybox + Linux Deplay(要root权限)这个方法的先行条件是你手机得要有 root 权限,所以我在淘宝花了80¥把手机 root 了一遍,但在使用 Linux Deplay 装CentOS 的时候.
2021-11-23 18:36:11
10521
7
原创 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源
前言:这个是昨天晚上在部署一个项目的时候发现的,在此记录一下关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源问题描述在部署了一个项目之后,打开项目页面进行测试,发现有一个查询页面查询失败了,自动跳转到错误页面,我看了看日志,发现是一个文件读取失败了,如下图:报错信息被读取文件所在目录文件读取部分的代码 public String readFileContent() { File file = new File("src/main/reso.
2021-11-21 11:37:29
784
原创 Ajax+SpringBoot+Thymeleaf使用中遇到的跳转页面问题
前言:这周在使用 Ajax+Thymeleaf 时遇到一个问题,折腾了我很久,在此记录一下Ajax+SpringBoot+Thymeleaf使用中遇到的跳转页面问题问题描述我的目的:通过 Ajax 获取数据,并通过 Model 渲染 View ,实现跳转页面并渲染数据但是… Ajax 获取到数据并发送回服务器了,但是却无法跳转页面。这个问题困扰了我一段时间,主要是当时只是以为页面数据没有刷新,并没有发现页面根本就没跳转…HTMLJS(Ajax)Controller 层解决方法我.
2021-11-21 10:43:28
2011
原创 唯一索引和普通索引的选择
前言:最近在研究阿里的开发手册中关于 MySQL 的一些规定,所以来记录一下学习中的心得唯一索引和普通索引的选择规约:业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。根据这个规约,可以理解为唯一索引虽然在一定程度上影响插入的速度,但是为了查询速度的提高可以忽略这点损耗。但是这是为什么呢?唯一.
2021-11-03 23:19:47
257
原创 设计模式学习2:单例模式
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到单例模式。单例模式有八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同
2021-10-08 15:44:31
95
原创 计算机网络学习1:计算机网络概论
计算机网络概论计算机网络的定义定义计算机网络(Computer Network)可以定义为由通信信道连接的主机和网络设备的集合。因特网术语“主机(host)”或称为“端系统(end system)”:指计算机网络中传统和非传统的计算机。计算机网络中的“计算机”是自治的。计算机网络最主要的特征是通用性。网络的组成网络(network)是由若干结点(node)和连接这些结点的链路(link)组成的。构成网络的所有实体都可以抽象为两种基本构件:结点(node):计算设备(端系统、中间结点)
2021-10-07 17:57:35
2591
原创 《深入理解Java虚拟机》(第二版)学习3:垃圾收集器
垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。我们这里讨论的收集器主要是基于JDK 1.7 Update 14之后的 Hotspot VM 。Serial 收集器Serial 收集器是最基本、发展历史最悠久的收集器,曾经(在 JDK 1.3.1 之前)是虚拟机新生代收集的唯一选择。这个收集器是一个单线程的收集器,但它“单线程”的意义并不仅仅说明它只会使用一个 CPU 或者一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直
2021-10-06 19:45:18
174
原创 《深入理解Java虚拟机》(第二版)学习2:垃圾收集算法
对象存活判断在对堆进行回收之前虚拟机需要判断这些对象中那些是“存活”的。引用计数算法(Reference Counting)原理:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为0的对象就是不可能再被使用的。优点:实现简单,判定效率高。缺点:很难解决对象之间相互循环引用的问题。JVM并没有使用这种判断方法,而是被广泛使用在FlashPlayer、Python等语言上。可达性分析算法(Reachability Analysis)
2021-10-05 17:44:58
107
原创 学生管理系统(Java版)
学生管理系统(Java版)前言:这个是大二做的课设(还是学生管理系统…),理论上虽然是4个人一组一起做的,但是,注意这个“但是”,还是我一个人承担了所有…代码和文档基本都是我一个人写的,当初直接肝得吐血,这也是为啥后面的 Web 版部分功能没有完成的原因。项目介绍项目分为一个JavaSwing写的GUI桌面应用和一个半成品的Web应用,下图是项目的整体功能结构展示JavaSwingJavaSwing这里使用的是 MyBatis + Spring 的框架组合,后面发现使用 Spring 框架在 S
2021-10-05 11:46:15
10676
8
原创 学生管理系统(C语言版)
学生管理系统这个是大一学习C语言的时候做的一个小项目,代码部分基本都是自己一人完成,没用到什么高大上的技术,在图形化方面用了EasyX(一个C++的图形库),其他都是C语言的基础内容。项目介绍项目总体功能概览这个是项目的总体功能,主要分为两个部分:学生端和教师端,学生端具有创建账号、修改密码、学生登录、查询学生信息的功能;教师端具有创建账号、修改密码、教师登录,教师登录后可以添加、修改、删除、查找、统计学生成绩的相关信息的功能。项目部分功能展示主要功能展示:1、开始界面2、学生端登录后
2021-10-05 10:28:55
5061
6
原创 《深入理解Java虚拟机》(第二版)学习1:JVM的内存划分
JVM的内存划分运行时数据区程序计数器(Program Counter Register)简介:程序计数器(Program Counter Register)是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。特点:线程私有,各个线程之间的计数器互不影响;它是在Java虚拟机规范中唯一没有规定任何内存溢出(OutOfMemoryError)情况的区域。使用:如果线程当前执行的是Java方法,则计数器记录的是当前执行的虚拟机字节码指令的地址;如果当前执行的是 Native
2021-10-03 16:16:40
140
原创 Nginx学习2:Nginx的安装配置和常用命令
Nginx的安装、常用命令和配置文件在Linux系统安装Nginx我们使用虚拟机来完成在Linux系统安装Nginx的步骤,在这里我选择的是CentOS7的Linux系统,1、到官网下载Nginx官网地址:http://nginx.org/en/download.html我们选择稳定版的直接下载。2、安装Nginx所需的依赖首先我们安装 pcre 这个依赖,我们挑个目录,在控制台执行下列代码wget http://downloads.sourceforge.net/project/pcre
2021-10-01 20:36:32
120
原创 设计模式学习1:设计模式简述和设计模式原则
设计模式简述什么是设计模式?软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式的目的:代码高可用(相同作用的代码能重复使用)可读性(编程规范性)可扩展性(增加新的功能时,非常方便)可靠性(增加新的功能后,对原有的功能没有影响)代码的高内聚、低耦合设计模式的原则设计模式常用的七大原则(设计模式为什么这样设计的依据):单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用
2021-09-13 21:03:38
184
原创 MyBatis复习笔记6:MyBatis缓存机制
配置文件详解属性(properties)MyBatis可以使用 properties 来引入外部 properties 配置文件的内容resource:引入类路径下的资源url:引入网络路径或者磁盘路径下的资源properties 有三种方式使用:1、通过 resource/url 属性指定配置文件<properties resource="dbconfig.properties"></properties>2、properties 元素体内指定的属性<da
2021-08-25 16:36:17
139
原创 MyBatis复习笔记5:MyBatis代码生成器
前言:做过几个项目之后深感代码生成器的便捷,有了它我们可以少写许多重复的、基础的代码,如基本的增删改查的代码,我们可以交给代码生成器生成,而我们只需要专注于业务逻辑上的代码即可。MyBatis GeneratorMyBatis官方提供了代码生成器,MyBatis Generator,我们可以去他们的MyBatis Generator官方文档查看它的详细使用,这里简单记录一下如何使用MyBatis GeneratorMyBatis Generator的Github下载地址:https://githu.
2021-08-25 16:32:48
111
原创 操作系统学习2:操作系统的发展和概览
操作系统的发展和概览手工阶段(电子管时代)特点:用户独占全机用户独占计算机所有资源,资源利用率低CPU等待用户计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低。脱机输入输出技术 由于输入输出效率慢,于是催生了脱机输入输出技术。 当主机系统进行IO时,直接从快速的磁带或者磁盘存取数据,而不是从低速的磁带机或者打印机输入输出了,这样,CPU与慢速外设的矛盾得到了缓解,但这是以专门的外围处理机为代价的。单道批处理系统(晶体管时代)什么是作业?作业包含三
2021-08-24 16:42:45
143
原创 操作系统学习1:操作系统概述
操作系统概述什么是操作系统?操作系统(Operating System,简称OS)是一个系统软件,它管理计算机的软硬件资源,并为计算机程序提供服务。操作系统的五大功能文件管理文件管理包括:存储空间管理、目录管理、读写管理、权限管理进程管理进程管理包括:进程控制、进程调度、进程通信、进程同步操作系统的接口内存管理内存管理包括:内存分配、内存保护、地址映射、内存扩充外设管理外设管理包括:设备分配、设备处理、缓冲管理操作系统的特征并发性多个进程在一段时间内同时运行共享性系统
2021-08-24 15:43:46
107
原创 Object类解析
Object类概述官方介绍:翻译内容:Object类是类层次结构的根。每个类都有Object作为超类。所有对象,包括数组,都实现这个类的方法。其中class hierarchy这个词组翻译为类的继承关系会比较容易理解网上 + 个人理解:Object类是java.lang包下的核心类,Object类是所有类的父类,所有对象(包括数组)都实现这个类的方法;何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类;可以使用类型为Object的变量指向任意类型的对象。Obje
2021-08-16 22:01:10
864
原创 JVM学习1:JVM和Java体系结构
JVM和Java体系结构计算机本身是不识别高级语言的,这个大家应该都知道,我们的Java、C、Python这些代码都要执行下面的一个流程随着Java7发布以后,Java虚拟机可以根据JSR-292标准实现在Java虚拟机平台上运行非Java的语言编写的程序,如下图所示:虚拟机和Java虚拟机虚拟机虚拟机是一台虚拟计算机,是用来执行虚拟计算机指令的软件。虚拟机可以分为系统虚拟机和程序虚拟机。如VMware就是系统虚拟机,他是对物理计算机的仿真,提供了一个运行完整的操作系统的软件平台。Java
2021-07-27 20:45:22
85
原创 Docker初学5:下载安装可视化图形工具Portainer
下载安装可视化图形工具Portainer# 搜索Portainer[root@iZh40ti53pk77iZ ~]# docker search portainerNAME DESCRIPTION STARS OFFICIAL AUTOMATEDportainer/portainer This Repo is now deprecate
2021-07-23 17:19:09
408
原创 Docker初学4:下载运行一些必要的镜像
下载运行一些必要的镜像下载运行nginx# 下载命令docker pull nginx# 试运行# -d 后台运行# --name 设置容器名称# -p 设置开放的端口号,宿主机端口端口号、容器端口号[root@iZh40ti53pk77iZ blog]# docker run -d --name nginx01 -p 8083:80 nginxbe2700afa519e1b0966621dc93afc5a8907be9fe7f38c1e32640d801136a82b5# 查看运行
2021-07-23 16:40:18
159
原创 Docker初学3:Docker的常用命令
Docker的常用命令帮助命令帮助命令可以在我们遇到不懂的命令时帮助我们去了解它们怎么使用。docker version # 显示 Docker 版本信息。 docker info # 显示 Docker 系统信息,包括镜像和容器数。。 docker --help # 帮助镜像命令docker imagesdocker images# 列出本地主机上的镜像 [root@iZh40ti53pk77iZ blog]# docker images REPOSITORY TAG
2021-07-23 11:50:40
257
1
原创 Docker初学2:Docker的安装
Docker的安装Docker的架构图我们先来介绍一下上面这张Docker架构图镜像(image):Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的类和对象,类就是镜像,容器就是对象!容器(container):容器是用镜像创建的运行实例。 它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用
2021-07-22 19:42:52
103
1
原创 Docker初学1:初识Docker
前言:本博客内容是对【狂神说Java】中的Docker教程学习过程中的记录与总结Docker的历史Docker公司Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“D.
2021-07-22 16:27:33
151
原创 Redis初学17:集群
集群简介Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。集群搭建这次实在电脑开不了那么多台虚拟机,就在一台服务器上模拟了。集群的搭建最少需要6个节点我们既然要搭建集群,那么master节点至少要3个,slave节点也是3个,为什么呢?
2021-07-21 15:34:02
379
1
原创 Redis初学16:主从复制
主从复制简介主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主,如下图:好处:1.读写分离,性能扩展2.容灾快速恢复搭建我这里准备了三台Linux设备(一台阿里云服务器,两台虚拟机),服务器当主机,两台虚拟机当从机。我在两台虚拟机上面也安装了Redis。过程:启动三台设备上的Redis服务然后使用info replication命令查看主从复制的相关信息一般显示的信息都如下图所示:我们可以看到,一开始,
2021-07-20 19:46:53
89
1
原创 Redis初学:14(Redis中的事务)
Redis中的事务Redis的事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。Redis中的事务操作Multi、Exec、discard从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。组队的过程中可以通过discard来放弃组队。事务的错误处理案例:
2021-07-16 16:10:47
103
原创 Redis初学:11(Redis的配置文件)
Redis的配置文件Units单位配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit。大小写不敏感,可以用大写也可以用小写。Includes包含类似jsp中的include,多实例的情况可以把公用的配置文件提取出来。Network网络方面的配置bind如下图:默认情况bind=127.0.0.1只能接受本机的访问请求。不写的情况下,无限制接受任何ip地址的访问,生产环境肯定要写你应用服务器的地址;而服务器是需要远程访问的,所以这里我们需要将其注释掉如果开
2021-06-20 15:38:47
89
mysql-connector-java-8.0.20.zip
2020-06-02
有大佬知道这个吗?
2021-03-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人