自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String 最多能存储多少个字符/String 字符串的最大长度/String 字符串有没有长度限制

为什么最大长度是 65534 而不是 65535 呢?这是 Java 虚拟机历史上的一个设计缺陷:如果 Java 虚拟机中的一个方法的 code 属性的长度刚好是 65535 个字节,并且以一个 1 个字节长度的指令结束,那么这条指令将不能被异常处理器所处理。不过编译器可以通过限制任何方法、实例初始化方法或类初始化方法的 code[] 数组最大长度为 65534,这样可以间接弥补这个 BUG。String 在不同的时期,具有不同的长度限制。

2024-04-29 02:01:05 979 3

原创 力扣442数组中重复的数据:六种实现方案,暴力线性查找,排序+二分查找,排序+双指针,哈希查找,标记数组,复用 nums 成为标记数组

【代码】力扣442数组中重复的数据:六种实现方案,暴力线性查找,排序+二分查找,排序+双指针,哈希查找,标记数组,复用 nums 成为标记数组。

2024-04-13 14:32:11 341 1

原创 RestTemplate 请求响应数据出现乱码问题,RestTemplate 如何解压缩 gzip 数据

原理:当 RestTemplate 接收到经过 Gzip 压缩的响应时,底层的 HTTP 客户端库会自动解压缩这个响应,然后将解压缩后的内容传递给 RestTemplate 进行处理。在最后呢,我结合着浏览器可以正常响应数据而 RestTemplate 不可以,出现了乱码,以及我观察到响应头的一个字段。但遗憾的是,还是没有用。然后再想的是默认注入的 RestTemplate 是不是内置的字符编码有问题。因此,我猜测是字符编码的问题,于是我需要重新设置一下默认的字符编码。就对数据进行了解压缩。

2024-03-29 01:31:11 894 1

原创 计算机网络第六章:应用层

应用层协议定义:应用进程交换的报文类型,请求还是响应?各种报文类型的语法、语义;进程何时、如何发送报文,以及对报文进行响应的规则(同步)。域名服务: DNS;文件传输:FTP;电子邮件:SMTP 、POP3;远程登陆:TELNET;WWW 服务: HTTP。互联网早期是通过共享一个文本文件的方式,让主机知道 IP 地址与名字(域名)的对应关系。有新主机加入互联网,在该文件中新增加一条域名与 IP 地址相对应的记录。随着互联网规模迅速扩大,这种方式的时效性太差。

2023-12-03 00:33:32 1988

原创 计算机网络第五章:运输层

网络层最终解决的问题分组从一台主机经过网络到达另一台主机,即主机到主机间的通信。主机中谁发送的数据、谁接收数据?IP 分组无序到达目的主机,接收进程如何处理?可靠传输问题。TCP 是面向连接TCP 连接只能有两个端点,TCP 连接是点对点的(一对一);TCP 提供可靠交付的服务;TCP 提供全双工通信。面向字节流TCP 中的“流”(stream)指的是流入或流出进程的字节序列;

2023-12-03 00:32:31 1404

原创 计算机网络第四章:网络层

数据链路层解决了同一局域网计算机间帧的传输问题异构网络互联,即跨局域网连接和资源共享;互联网络中主机标识问题;互联网中主机间路由选择问题(最佳路径);互联网中数据转发的问题(分组转发)。局域网:属于资源子网;广域网:属于通信子网。IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符;

2023-12-02 03:14:25 1543 1

原创 计算机网络第三章:数据链路层

结点:主机、路由器。物理层解决了相邻结点透明传输比特的问题。传输错误问题:发送端发送比特 1,而接收端收到比特 0,接收端无法知道接收的是否正确?谁接收的问题,多个设备连接问题:谁能发送数据?数据发送给谁?谁负责接收和处理?传输结束问题:如何知道一组数据即将到来?这组数据何时结束?比特错误一般为连续比特错误(外界干扰影响连续比特传输),离散比特错误不易检测。

2023-12-02 03:12:56 1456

原创 计算机网络第二章:物理层

光纤通信是利用光导纤维(光纤),传递光脉冲进行通信,有光脉冲表示 1,无光脉冲表示 0。由于可见光的频率非常高,约为10810^8108MHz 的量级,因此一个光纤通信系统的传输带宽远远大于目前其它各种传输媒体的带宽;发送端和接收端都有光电转换器。将自由空间称为“非导引型传输媒体”。无线传输所使用的频段很广短波通信(即高频通信)主要是靠电离层的反射,但短波信道的通信质量较差,传输速率低;微波在空间主要是直线传播。地面微波接力通信;卫星通信。无线电波传输:距离远;

2023-12-01 04:02:04 1341

原创 计算机网络第一章:概述

交通网络:高速公路网络、铁路运输网络、航运网络等;通信网络:电信网络、邮政网络等。网络特点:连线和结点。网络作用:连通和共享。分组交换采用的存储转发技术。发送端把较长的报文划分成较短的、固定长度的数据段。每个数据段签名添加上首部构成分组(packet)。邮局对收寄的包裹有重量要求。若需发送的书籍包裹(包裹)超出要求:将书籍包裹分成小包裹(分组);每个小包裹注明目的地址(首部信息);邮局将这些小包裹存储转发至目的地;每个小包裹可能选择不同路径到达目的地。

2023-12-01 03:59:39 1582

原创 千锋计算机网络期末速成笔记目录

计算机网络概述,物理层,数据链路层,网络层,运输层,应用层

2023-12-01 03:57:27 989

原创 Spring的循环依赖问题

你的完整创建要依赖与我,我的完整创建也依赖于你。相互依赖从而没法完整创建造成失败。一级缓存:存储的是 成品Bean 对象 ,存储的所有的单例对象,其实可以说和循环依赖没有关系。二级缓存:存储的是 半成品对象,是解决循环依赖的关键,如果不去考虑 AOP 代理增加的情况,只有二级缓存的情况下也是可以解决循环依赖的,也就是不需要三级缓存。三级缓存:三级缓存存在的意义是解决 AOP 增强对象的原因,存储的是一个 Lambda 表达式(内部类)--> ObjectFactory。

2023-11-10 10:05:18 1109 1

原创 java多线程文件下载器

RandomAccessFile 类的运用HttpURLConnection 类的运用线程池的使用原子类 LongAdder 的运用CountDownLatch 类的运用ScheduledExecutorService 类的运用线程在创建,销毁的过程中会消耗一些资源,为了节省这些开销,jdk 添加了线程池。线程池节省了开销,提高了线程使用的效率。阿里巴巴开发文档中建议在编写多线程程序的时候使用线程池。

2023-11-10 08:16:07 262 1

原创 探讨jdk源码中的二分查找算法返回值巧妙之处

二分查找算法,也称折半查找算法,是一种在有序数组中查找某一特定元素的搜索算法。jdk 中的 Arrays.binarySearch()。未找到目标元素时根据返回值进行数组扩容。jdk 中核心二分查找方法解析。

2023-11-02 00:41:59 234 2

原创 中南林业科技大学javaweb实验报告

其中注册处理页面 treatZhuCe.jsp 负责接收注册页面 zhuce.jsp 传递过来的用户注册信息,并处理信息,根据注册是否成功分别交给注册处理结果页面 zhuCeSuccess.jsp 以及 zhuCeFail.jsp 显示。其中注册处理页面treatZhuCe.jsp负责接收注册页面zhuce.jsp传递过来的用户注册信息,并处理信息,根据注册是否成功分别交给注册处理结果页面zhuCeSuccess.jsp以及zhuCeFail.jsp显示。处理结果交给zhuCeResult.jsp显示。

2023-10-27 03:13:56 2605 2

原创 FutureTask配合Thread实现处理有返回结果的源码、逻辑与架构分析

FutureTask 能够接收 Callable 类型的参数,用来处理有返回结果的情况。FutureTask 类在实例化构造时需要传入一个实现了Callable接口的类,实现 Callable 接口需要重写 call 方法,该方法需要一个返回值,由于 Callable 定义时是以泛型定义返回值,因此我们可以自定义返回值。FutureTask 会将传入的这个 Callable 实现类赋给自己的属性 `private Callable callable;`

2023-10-20 22:01:26 422 1

原创 docker报错问题解决:Error Invalid or corrupt jarfile app.jar

Error: Invalid or corrupt jarfile /app.jar. jar 文件无效或损坏,于是我开始考虑是不是 `-v` 挂载有问题。本地目录或文件必须以 `/` 或 `./` 开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。在指定 容器内路径 时必须使用绝对路径,invalid mount config for type "bind": invalid mount path: 'app.jar' mount path must be absolute

2023-10-18 19:06:10 1982

原创 流程图规范

端点、中断,进程,判断,文档,流向,数据,联系,从上至下,从左至右的流向顺序,开始符号只能有一个出口,进程符号不做逻辑校验,相同流程图,符号大小应为一致,引用流程,而不是重复绘制,路径符号应尽量避免相互交叉,同一路径,箭头只能有一个,校验说明写在流线上

2023-10-15 20:54:12 789

原创 natapp内网穿透-将本地运行的程序/服务器通过公网IP供其它人访问

内网穿透,即 NAT(Network Address Translation,网络地址转换)穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。Natapp 提供了跨平台的客户端和服务器端,用户可以通过在客户端配置映射规则,将内部服务映射到公网上的一个临时域名上,从而实现对内部服务的远程访问。在项目开发阶段我们可以把项目部署在公网能访问的云服务器上,也可以使用内网穿透工具来访问我们自己电脑上运行的测试接口。

2023-10-13 19:12:57 1499

原创 Vmware Linux虚拟机安装教程(Centos版)

VMware 版本可能已经发生了变化,可能变成了 17 或者更高,但没关系,步骤是一样的(已实操过)。这个可能你是已经连接成功的,但是我这里没有连接成功,如果你连接成功了,就不用再往后面看了。耐心等待安装即可,在安装过程中电脑屏幕上可能会出现闪烁,是正常现象,不用管。上方),光标所在行的字会变成白色,再回车即可。点击“连接”后,应该会看到右上角有我下图的这个图标,就说明连接成功了。下载完成以后将该文件拷贝到你的一个常用目录,我这里就放到了。查看是否有图标,如果有我下图的这个图标,说明联网成功。

2023-10-13 16:15:10 1225 1

原创 linux后台运行java项目/ jar包:nohup 命令

我们把一个 SpringBoot 工程导出为 jar 包,jar 包上传到阿里云 ECS 服务器上,使用 java -jar xxx-xxx.jar 命令启动这个 SpringBoot 程序。此时我们本地的 xshell 客户端必须一直开着,一旦 xshell 客户端关闭,java -jar xxx-xxx.jar 进程就会被结束,SpringBoot 程序就访问不了了。所以我们希望启动 SpringBoot 的 jar 包之后,对应的进程可以一直运行,不会因为 xshell 客户端关闭而被结束。

2023-10-11 15:07:48 1213

原创 2023版IDEA的下载、安装、配置、快捷键、模板、插件与使用

介绍,module创建,常用配置,设置主题,设置窗体及菜单的字体及字体大小,设置编辑区颜色主题,鼠标滚轮修改字体大小,设置鼠标悬浮提示,自动导包功能,忽略大小写提示,设置取消单行显示 tabs 的操作与设置最大打开标签数,字体,注释颜色,自定义文档注释信息,设置快捷键,常用快捷键,实时代码模板,自定义模板,常用模板,创建javaweb项目,idea配置Tomcat,关联数据库,版本控制,断点调试,配置 Maven,取消双击 shift 搜索,后缀补全模板,常用推荐插件,编码规范检查,翻译,代码统计,力扣

2023-10-11 15:02:48 6220 6

原创 服务器与网站部署知识体系目录

服务器全套基础知识:包含基本概念,作用,服务器选择,服务器管理等。域名相关基础知识普及。域名备案流程(个人备案,腾讯云 / 阿里云)。将网站域名访问从http升级到https(腾讯云/阿里云)。docsify快速部署搭建个人知识库(支持本地、服务器、虚拟机运行)。halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx。

2023-10-10 13:36:30 1210

原创 将网站域名访问从http升级到https(腾讯云/阿里云)

服务器安装 docker 与 nginx,免费 SSL 证书申请,https 网站部署,nginx.conf对https的配置,docker安装nginx注意事项,nginx使用https访问需要注意的问题,静态网站的部署。

2023-10-10 13:29:00 4057 4

原创 maven的pom.xml文件显示被删除

这些 pom.xml 文件被 maven 视为了忽略文件。

2023-10-07 17:37:17 775

原创 域名备案流程(个人备案,腾讯云 / 阿里云)

实名认证,网站备案的目的,备案准备的材料,个人备案流程,主办单位信息,个人主体信息,网站信息,接入商核验信息,管局下发备案号

2023-09-26 14:08:58 10565

原创 域名相关基础知识普及

域名的概念,顶级域名、二级域名、三级域名的去呗,域名的作用,常见域名类型,推荐的域名,中文域名,域名分配和管理,域名注册,域名多少钱,whois 信息保护,管理域名,域名实名认证,域名所有者信息更换,域名续费,域名到期没续费后果,更换域名服务商,域名解析方式,域名 A 记录 IP 解析,域名 CNAME 解析,域名泛解析,域名邮件 mx 解析,域名解析不生效原因,如何开通企业邮箱

2023-09-26 12:15:37 795

原创 2023 版 QQ 机器人运行部署文档

QQ机器人框架,登录QQ机器人,消息处理,Linux 服务器持续运行 QQ 机器人,将手机与 linux 服务器处于同一网络,socks5,pbrq,pbbot-rq。问题解决:当前设备网络不稳定或处于夏杂网络环境,为了你的帐号安全,建议将两个设备连接同一网络或将被扫描设备连接你的手机热点后,重新扫码登录。

2023-09-25 17:48:29 2123 5

原创 讯飞星火认知大模型Java后端接口

我已经写了一个比较完整的 SpringBoot Demo 项目,为了方便理解对代码做了详细注释,已开源在 GitHub。下载后只需要找到 xfxh-web-simple-demo 模块,在其 application.yml 文件配置你自己的 `APPID`、`APISecret`、`APIKey` 信息,再以 GET 方式访问接口进行测试:http://localhost:8080/test/sendQuestion?question=hello

2023-09-21 23:18:42 6353 75

原创 swing组件通过setBounds设置位置不生效,最后一个加入容器的组件始终居中显示问题分析

因为 BorderLayout 布局是生效的,换句话说,BorderLayout 布局设置优先级高于 setBounds。通过设置 setLayout(null),我们将 JFrame 的布局管理器设置为空,这意味着我们需要手动控制组件的位置和大小,而不是依赖于自动布局。这对于我们在 setBounds() 方法中直接设置组件的位置和大小非常有用。因此,如果我们想让我们的所有组件位置布局生效,或者说是最后一个组件的位置布局生效,就需要移除默认的 BorderLayout 布局管理器。

2023-09-19 02:19:29 615 1

原创 编程初学者指南(2023版):零基础小白如何学习编程-两万字详述

编程的几个基本概念,学习编程难吗,英语和数学不好可以学编程吗,我应该要学习很多编程语言吗,世界上最好的编程语言是什么,大一上需要去纠结走哪个方向吗,初次刷题没思路没感觉正常吗,如果我在写代码时遇到问题怎么办,学习编程是应该先看书还是先看视频呢,我是非计算机专业可以学好编程吗,我认认真真上好学校的课程就够了吗,关于 C 语言,编程学习的心得分享,程序员成长的三阶段,计算机基础知识,在大学如何学习,编程相关的常见工作岗位

2023-09-11 01:45:37 1067 2

原创 windows磁盘清理

清理 temp 文件,清理系统更新后的旧文件,更改系统默认文件夹路径,软件不要安装在 C 盘,软件生成的资源文件不要放在 C 盘,卸载软件采用正规卸载流程

2023-08-31 00:09:27 546

原创 Java生成二维码(前后端分离项目实战)

zxing,google,qrcode-plugin,普通黑白二维码,带 logo 二维码,彩色二维码,带背景图的黑白二维码,特殊形状的二维码,图片填充二维码

2023-08-29 23:47:12 922

原创 mybatis多参数传递报错问题分析+硬核mybatis底层源码分析+@Param注解+图文实战环境分析【4500字详解打通,没有比这更详细的了!】

操作 mybatis 时报错:org.apache.ibatis.binding.BindingException: Parameter 'tableName' not found. Available parameters are [arg1, arg0, param1, param2]。【抱歉,没有比这更详细的了】

2023-07-04 03:01:26 1581 2

原创 一文打通:从字节码指令的角度解读前置后置自增自减(加加++减减--)

分析了单独使用前置++和后置++的指令,我们发现字节码指令是一样的,实际上都是将局部变量表对应位置的数据进行加1操作。🚩 当单独使用++或--时,不需要关心其返回值,因此前置和后置的效率是一样的。实际上,在编译时,编译器可能会将单独使用的++或--运算符优化为一条简单的指令iinc,因此在机器指令级别上,它们的执行效率是相同的。后置++(先操作再加1):先复制一份局部变量表对应数据压入到操作数栈,再将局部变量表对应数据加1。

2023-06-10 19:08:03 1130

原创 力扣82删除排序链表中的重复元素 II:思路分析+代码实现+方法总结(三指针法&快慢指针法【双指针】&递归法)

p1 是待删除的上一个节点,每次循环对比 p2、p3 的值。 如果 p2 与 p3 的值重复,那么 p3 继续后移,直到找到与 p2 不重复的节点,p1 指向 p3 完成删除。如果 p2 与 p3 的值不重复,p1,p2,p3 向后平移一位,继续上面的操作。p2 或 p3 为 null 退出循环。p2 为 null 的情况,比如链表为 1 1 1 null。递归函数负责返回:从当前节点(我)开始,完成去重的链表。1. 若我与 next 重复,一直找到下一个不重复的节点,以它的返回结果为准。

2023-05-15 03:29:11 435 2

原创 力扣83删除排序链表中的重复元素:代码实现+思路分析+方法总结(快慢指针法&递归)

步骤:当节点数小于2时,则不会发生重复节点的情况,无需删除,直接返回。设置快慢指针,慢指针指向头节点head,快指针指向 head 的下一个节点。使用fast指针遍历链表,每次对 fast.val 与 slow.val 进行比较。快慢指针的val值相等,说明当前链表中还存与当前slow指向节点的值相等的节点。不需要理会当前fast指向的节点,直接向后移动一位。当 fast和last的val值不相等的时候,将slow的下一个节点设置为fast即可达到跳过重复节点的效果。快慢指针的val值不相等,说

2023-05-14 01:11:58 300

原创 力扣19删除链表的倒数第 N 个结点:思路分析+图文全解+方法总结(快慢指针法&递归法)+深入思考

我们知道在单链表中我们想要删除一个节点需要依靠它的上一个节点,而头节点head没有上一个节点,因此我们暂时给 head 前面加一个伪头节点 sentinel 指向 head。这样就能像其它节点一样通过待删除节点的上一个节点来删除待删除的节点。已知链表 1 -> 2 -> 3 -> 4 -> 5,需要删除倒数第 2 个节点(n = 2)但上述代码有一个问题,就是若删除的是第一个节点,它没有上一个节点,因此可以加一个哨兵来解决。思路:写一个递归函数,用来返回下一个节点的倒数序号。

2023-05-14 00:26:58 563

原创 力扣203移除链表元素:思路分析+代码实现+方法总结(伪头节点法&递归)

如果用自身来遍历的话,当满足 tmp.val = val 时,应该删除自身,这时候如何将该 tmp 的上一个节点与 tmp 的下一个节点所联系是一个问题。思路,递归函数负责返回:从当前节点(我)开始,完成删除的子链表。

2023-05-13 01:14:38 307

原创 力扣206反转链表:代码实现+图文全解+方法总结(四种方法)

方法一:生成新节点到新链表。方法二:复用旧节点到新链表(面向过程式思想方法&面向对象式思想方法)。方法三:递归。旧链表中移动旧节点。

2023-05-11 02:32:01 1078

原创 力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 & 记忆法/备忘录)

杨辉三角数学规律公式。记忆法解杨辉三角。我们来看下两种方法的执行效率:1️⃣数学规律法2️⃣记忆法很明显,数学规律法花费的时间更少,这是因为数学规律法只需要我们逐一计算第 rowIndex 行每个元素的值即可,而记忆法需要我们从第0行开始,计算每一行每一个元素的值。

2023-04-14 15:10:13 847

QQ机器人所需的安装包

QQ机器人所需安装包

2023-09-25

空空如也

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

TA关注的人

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