自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot+vue项目在交互时前端发送请求后端接收不到(记录)

记录一下我在springboot+vue项目在交互时前端发送请求(发送get请求)后端接收不到数据,报错:` Required request parameter 'currentPage' for method parameter type Integer is not present`

2023-05-02 17:35:55 3134

原创 String、StringBuilder 和 StringBuffer 详解

本篇文章主要描述了 String 、StringBuilder 和 StringBuffer 的主要特性,String、StringBuilder 和 StringBuffer 的底层构造是怎样的,StringBuilder 和 StringBuffer 的扩容特性等。

2023-02-23 18:10:17 4224 3

原创 vue直接引入js没有反应(初学)

在官网中将js下载下来,之后直接访问本地js,成功。的那串连接由于某种因素我访问不到,所以没有反应。这样子思考为什么不反应,我觉得是直接引入js中。

2023-02-04 13:51:11 2920

原创 Java实现 leetcode-79. 单词搜索

没想到其他好的方法,试试暴力解题,仔细思考想到几个难点:1.怎么找入口去遍历word,感觉需要遍历二维数组。2. 上下左右在二维数组中寻找下一个单词的时候怎样才能不去找已经找过的位置,好像用回溯可以解决。我自己感觉这个解法就是简单的模拟,看不懂的话拿出纸和笔画一画就懂了。这个题第一眼看去,居然是个中等的难度,不该是hard嘛。

2022-09-14 11:16:34 311

原创 迅速了解JDK线程池以及Spring线程池

对于经常创建和销毁,使用量特别大的资源,比如并发情况下的线程,对性能影响非常大。所以我们一般​提前创建好多个线程,放入线程池中,使用时直接获取,使用完放入池中。可以避免频繁创建销毁,实现重复利用。对于Java多线程不是很熟悉的可以先去。

2022-09-02 11:46:52 673

原创 Java实现 leetcode-946. 验证栈序列

这道题是试卷上经常出的考试题目,但是放在程序题中还是第一次做,使用了一个变量p模拟栈顶部。(注释全在代码里了)如果实在看不懂,拿出纸和笔画一下就知道了。

2022-08-31 08:58:40 1190 2

原创 Java实现 Leetcode-51.N皇后

看完这道题之后画了一下图,大概总结了行列不能相等,也就是横坐标和纵坐标不能相等,斜线不能相等,也就是说横坐标只之差和纵坐标之差不能相等。然后是一个多重的循环的问题,往回溯方向想。之后写出来的代码如下(注释全在代码里了)是在看不懂的话,拿出纸和笔画一画噢。...

2022-08-12 10:33:55 222

原创 idea导入Javaweb项目

第一次使用idea导入Javaweb项目,记录一下。因为这是一个原来在eclipse中运行的项目,所以带着eclipse中的配置信息。我的习惯是将配置文件和.class的文件全部删除,然后使用idea打开(open)让他自动生成配置文件。自动生成的文件信息如下:配置jdk环境:查看导入的jar包,我这里缺少了一个servlet的jar包,我自己加入了。这里尤其注意自己的mysql版本。原项目使用的是5的版本,我换成了8的版本。这里也要记得改一下哦:数据库密码账号,ip地址,端口号都要改

2022-07-01 11:38:15 5845

原创 HashMap的put方法流程

从源码的角度来看看hashmap中的put方法流程

2022-06-20 10:25:14 789

原创 java8新特性之Lambda表达式

Lambda文章目录Lambda语法格式Lambda实例 lambda是一个匿名函数(方法),我们可以把lambda表达式理解为,一段可以传递的代码。java8中引入了一个新的操作符“->”该操作符将Lambda表达式拆分为两部分。左侧:Lambda表达式的参数列表右侧:Lambda表达式中所需执行的功能,即Lambda体。Lambda表达式需要“函数式接口”的支持。函数式接口:接口中只有一个抽象方法。可以使用注解@FunctionalInterface修饰语法格式语法格式一:无

2022-04-29 10:49:08 275

原创 java滑动窗口实现 76. 最小覆盖子串 和 438. 找到字符串中所有字母异位词

76. 最小覆盖子串438. 找到字符串中所有字母异位词两个都是字符串里面使用滑动窗口,我认为有着他们的特定和共性,所以总结出来。第一个题的窗口大小是变化的,第二个题使用的是固定大小的滑动窗口。题解写好了注释,实在看不懂的话,拿出纸和笔推演一下就懂了。最小覆盖子串:class Solution { public String minWindow(String s, String t) { int[] temp = new int[123];//模拟所有的字母。

2022-04-24 10:36:31 186

原创 java实现49. 字母异位词分组,一错再错,总结一下

 第一次提交:“暴力求解?” 后面看了题解之后:“哦,原来还可以这样” 二刷看到这个题我一脸懵,“暴力求解?”于是乎: 我先贴一个我超时的代码(两次超时代码一摸一样,醉了),总结一下我错哪。看题解的小伙伴可以直接跳过这段。我的思路大概是这样的,两层for循环遍历求解,中间核心代码是用isSome(String s,String t)判断两个字符串是不是字母异位词,用了两种方法来尽量减少暴力求解的用时,第一个是再判断是不是字母异位词的时候用长度26的整形数组做哈希表。第二个是将已经分组的字符串置

2022-04-24 09:09:11 999

原创 java 实现剑指 Offer II 010. 和为 k 的子数组,记录一下我第一次使用前缀和

  看到这道题之后,非常想当然就感觉这是一道简单的滑动窗口,一滑就感觉不对劲了,窗口无论增大或者变小,窗口里面的和都有可能会增大或者变小。坚持滑动窗口到感觉不可能之后,去看了之前写过的滑动窗口,例如剑指 Offer II 008. 和大于等于 target 的最短子数组,我发觉了,那个里面直接写明了,数组里面全是正整数。于是我开始了暴力解题。两层for循环搞起: public int subarraySum(int[] nums, int k) { int result = 0;

2022-04-23 15:55:34 724

原创 快速了解MySQL存储引擎

mysql存储引擎文章目录mysql存储引擎mysql体系结构存储引擎简介存储引擎特点存储引擎选择mysql体系结构连接层:客户端连接器(JDBC、ODBC、…)主要是接收客户端的连接,完成一些连接的处理,以及认证授权的相关操作(比如说验证用户名和密码,以及校验每一个客户端所具有的权限。),以及一些相关的安全方案,检查是否超过最大连接数等等。服务层:绝大部分的核心功能都是在服务层完成的,像SQL接口,查询解析器,查询优化器,查询缓存等等。所有跨存储引擎的实现也都是在服务层实现的。比如

2022-04-23 10:57:40 418

原创 彻底搞懂理解Java,IO流

1、在理解JavaIO流之前,首先你得对**File类**进行一个了解。File类的对象代表一个文件或者一个文件目录(俗称:文件夹)。判断文件是否存在,文件是不是可读或可写,文件长度是多少,文件的最近修改日期是什么时候。这些功能就不能通过IO流去做了,文件本身就可以做这些事。了解File类中常用的方法,从此去Java中IO流File类详解当然如果你需要读取或写入文件内容,必须使用IO流来完成。2、开始进入正题,介绍JavaIO流了。java.io包下提供了各种“流” 类和接口,用以获取不同.

2022-04-17 18:17:35 693 5

原创 java中的序列化机制详解

对象的序列化机制 要想一个对象可以持久化到一个文件当中,必须保证这个对象所处的类是可序列化的。这个持久化的过程就叫做序列化。同理反序列化也需要保证这个对象所处的类是可序列化的。 当然不仅可以存在持久化到文件,也可以通过网络的方式传输出去。对象的序列化机制: 允许把内存中的Java对象转换成与平台无关的二进制流,从而允许把这种二进制流持久的保存在硬盘上,或者通过网络将这种二进制流传输到另一个网络节点。—>(序列化) 当其他程序获得了这种二进制流,就可以恢复成原来的Java对象。—>(反序

2022-04-17 17:09:21 934

原创 Java,IO流之对象流详解

文章目录对象流对象的序列化机制ObjectInputStream 和 ObjectOutputStream对象流对象流:ObjectInputStream 和 ObjectOutputStream可以把内存中的数据(基本数据类型数据,对象的处理流)持久化起来。需要的时候可以还原成内存层面的数据。序列化:用ObjectOutputStream类保存基本类型数据或对象的机制。反序列化:用ObjectInputStream类读取基本类型数据或对象的机制对象的序列化机制 要想一个对象可以持久化到一个文

2022-04-16 18:45:51 1408

原创 JavaIO流之标准输入输出流,打印流以及数据流。

文章目录标准输入输出流System.inSystem.out打印流数据流标准输入输出流前置知识:File类文件流缓冲流转换流System.inSystem.in:标准的输入流,默认从键盘输入。eg: 从键盘输入字符串,要求将读取到的整行字符串转成大写输出然后继续进行输入操作,直至当输入“e” 或者“exit”时,退出程序。方法一:使用Scanner实现,调用next()返回一个字符串。方法二:使用System.in实现。system.in返回值是一个字节流,然后通过转换流转成字符流,

2022-04-16 17:50:06 689 2

原创 java中的8种基本的数据类型,以及Java中的字符编码集

文章目录基本数据类型多种字符编码集基本数据类型byte1(字节)short2(字节)int4(字节)long8(字节)float4(字节)double8(字节)char2(字节)boolean… @org.junit.Test public void test(){ System.out.println("byte所占位数:" + Byte.SIZE); System.out.println("byte所占字节数:" + Byt

2022-04-16 16:33:05 618

原创 Java、IO流之转换流详解

转换流属于字符流,也是处理流的一种。作用:提供了在字节流和字符流之间的转换。JavaAPI提供了两个转换流:InputStreamReader:将一个字节的输入流转换为一个字符的输入流。OutputStreamWriter:将一个字符的输出流转换为一个字节的输出流。意义:可以把我们不好理解的字节转换成可以理解的字符(解码),然后把我们可以理解的字符再转换成字节存进去(编码)。前置知识:java中IO流File类,IO流中的节点流InputStreamReader & Outpu

2022-04-15 22:07:01 1305

原创 java、IO流之缓冲流详解

前言java.io包下提供了各种“流” 类和接口,用以获取不同种类的数据,并通过标准的方法,输入或输出数据。按照数据的单位不同分为:字节流,字符流。按照流的方向不同分为:输入流,输出流。按照流的角色的不同分为:节点流,处理流。(抽象基类)字节流字符流输入流InputStreamReader输出流OutputStreamWriter 为什么要定义成抽象类呢,因为去读和写的实际情况太复杂了,这里边没办法指明怎么去读,怎么去写,这些事交给具体的子类去做。在这

2022-04-15 19:57:13 1210 2

原创 java、IO流之文件流(节点流)详解

前言java.io包下提供了各种“流” 类和接口,用以获取不同种类的数据,并通过标准的方法,输入或输出数据。按照数据的单位不同分为:字节流,字符流。按照流的方向不同分为:输入流,输出流。按照流的角色的不同分为:节点流,处理流。(抽象基类)字节流字符流输入流InputStreamReader输出流OutputStreamWriter 为什么要定义成抽象类呢,因为去读和写的实际情况太复杂了,这里边没办法指明怎么去读,怎么去写,这些事交给具体的子类去做。在这

2022-04-15 18:23:09 601 2

原创 java实现leetcode-17.电话号码的组合,来讲讲我对回溯的理解

  仔细审题,会发现这是个组合问题,于是我就往回溯的方向去思考了(关于组合的问题可以用回溯哦),可能有小伙伴第一次对回溯有点陌生,我稍微讲讲我对回溯的理解。回溯的本质呢就是穷举,暴力搜索。用来解决那种用for循环嵌套暴力搜索都很难解决的问题。就比如说这个题,用for循环嵌套去解题的话是不是有点窒息呢? 来看看代码吧,思想都在注释里面,要是看不懂的话,拿出纸和笔推算一下就懂了。class Solution { //用于获取结果集 List<String> result = ne

2022-04-15 10:16:50 304 1

原创 Java中IO流File类详解

File类的使用File类的对象代表一个文件或者一个文件目录(俗称:文件夹)。使用到的API:import java.io.File;接下来谈一谈File类中的构造器的使用,了解如何创建File实例。前提:你写了路径的这个文件得要是实际存在的。 /** * 创建File类的实例 * * 路径分隔符: * windows: \\ * Linux: / */ @Test public void test1(){

2022-04-12 20:50:18 815 1

原创 一篇彻底搞懂Java的反射机制

 首先介绍一下反射:加载完类以后,在堆内存的方法区中,就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息,我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为“反射”。...

2022-04-12 15:49:31 2164 1

原创 java实现 leetcode98.验证二叉搜索树,这些坑你就不要再踩了

记录一下,这个easy题我wa了一个小时,总感觉就差一点点就能ac。我的逻辑没错,只要再修改一点点。神tm亿点点,我踩过的这些坑,你就不要再踩了。陷阱1:不能单纯的比较左节点小于中间节点,右节点大于中间节点就够了。我们要比较的是左子树所有节点小于中间节点,右子树左右节点大于中间节点。陷阱2:样例中的最小节点,可能是int的最小值,如果用最小的int(Integer.MIN_VALUE)来比较是不行的。此时可以初始化为Long.MIN_VALUE 先跟大家说说我改代码最后的思想吧(中间的曲折就不

2022-04-11 11:23:37 730 1

原创 Java实现leetcode-106.根据中序遍历和后序遍历构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。思路: 根据后序遍历,先找到这棵树根节点的值,也就是数组中最后一个元素(数组长度-1)的位置,由此创建根节点。然后在中序遍历中找到根的值所在的下标,切出左右子树。示例:中序:inorder = [9,3,15,20,7]后序:postorder = [9,15,7,20,3]那么代码应该怎么写呢?来看一下一共分为几步:第一步:如果数组大小为零的话,说明就是空节点了。第二步:如果不为空的话,那么取后序数组的最后一个元素作为节点元素。第三步:找到

2022-04-10 15:29:29 1118 2

原创 JVM--理解对象的创建

对象的创建 当虚拟机遇到一条字节码new指令时,首先检查这个指令参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载,解析和初始化过。如果没有,那必须先执行相应的类加载过程。 类加载检查通过后,虚拟机为新生对象分配内存,对象所需的内存大小在类加载完成之后就完全可以确定。 假设 Java堆中内存是绝对规整的,使用过的内存放一边,空闲的内存放另一边,中间放一个指针作为分界点的指示器,那分配内存就仅仅是把那个指针向空闲方向挪动一段足够大的空间划分给对象实例,这种分配方式称为

2022-04-09 17:08:04 893 1

原创 JVM内存区域划分

Java虚拟机在执行Java程序的过程中,会把所管理的内存划分为若干个不同的数据区域:程序计数器功能: 可以看作是当前线程所执行的字节码的行号指示器。字节码解释器的工作就是通过改变这个计数器的值,来选取下一条需要执行的字节码文件,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。特点: 为了处理器(cpu)中线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器之间互不影响,独立存储。我们称这类区域为“线程私

2022-04-09 16:39:43 603 1

原创 Java实现leetcode--257.二叉树的所有路径。

看到这个题之后思考了许久,然后想到层次遍历,灵光一闪,似乎好像可以,直接开干。看了许多题解,感觉我自己的这种思想还挺新颖的,时间复杂度的话只遍历了一遍,取值也是以下标形式取址的。所以整体应该是O(N)的复杂度吧。然后除了遍历用的队列,以及结果集所需的List集合,也没有额外的开销了。emm自我感觉还不错,记录下来,与君共享。class Solution { public List<String> binaryTreePaths(TreeNode root) { Lis

2022-04-09 14:26:38 1042 1

转载 当键入网址后,到网页显示时,其间发生了什么?

当键入网址后,到网页显示时,其间发生了什么。

2022-04-08 22:03:12 146

原创 一篇彻底搞懂TCP的三次握手和四次挥手

TCP建立连接tcp是面向连接的协议,所以使用TCP连接前必须先建立连接。而建立连接是通过三次握手来进行的。至于为什么是三次握手,不是两次握手也不是四次,我自慢慢道来,请君倾耳听。下面的有些引文名称为了好理解全使用小写。如果你还不了解TCP报文的首部格式的话,去这里看看吧:TCP的头部格式,详细信息都在这一开始,服务端和客户端都处于close阶段。先是服务器开启某个端口,处于listen阶段。客户端会初始化序号,将此序号 x 至于TCP首部的序号字段中,同时把SYN字段置为1,表示SYN报

2022-04-08 21:19:02 2486 4

原创 使用Java花样解决leetcode102.二叉树的层序遍历

自己用了两种方法写了这个二叉树层序遍历,但没想到看了看题解,又蹦出两种方法,都让我受益匪浅,具体运行时的注解全在代码里面了,刚开始看到这个题,立马想到二叉树的宽度优先遍历嘛。二话不说,直接队列走起:class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<&

2022-04-08 16:30:47 786 2

原创 可以快速了解TCP,以及TCP与UDP的区别。

一、什么是TCP?TCP是面向连接的,可靠的,基于字节流的传输层通信协议。二、什么是TCP连接?(1) 什么是连接?RFC 793中这样来定义连接:用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket,序列号,和窗口大小称为连接。1、Socket:由IP地址和端口号组成。2、序列号:用于解决乱序问题。3、窗口大小:用来做流量控制。...

2022-04-06 08:38:09 2386 1

原创 TCP的头部格式,详细信息都在这

Tcp头部格式记录

2022-04-05 22:03:21 4538 1

原创 28.实现 strStr()---java代码实现

leetcode 28. 实现 strStr() -- java代码实现

2022-04-04 18:22:39 317 1

原创 java求二叉树的最大宽度

看我的这个代码的话,你得先理解二叉树的宽度遍历是怎么做的,如果没有这个基础的话,先移步这里:宽度优先遍历在最后面哦我在这里写了两种方法实现宽度优先遍历,一种使用了hashmap,第二种没有使用,节省了空间。直接上代码吧,注释很清楚了。/** * @author zrulin * @create 2022-04-02 10:05 */public class 求二叉树的最大宽度 { //基于队列,基于宽度优先遍历 public static void widthTraversal

2022-04-02 10:56:15 640 2

原创 java递归和非递归方式实现二叉树的先序遍历,中序遍历,后序遍历

注释全在代码里面了。先序遍历/** * * 遍历顺序:头左右 * * @author zrulin * @create 2022-03-15 21:05 */public class 先序遍历 {//递归实现: public static void preTraversal(Node head){ if(head == null){ return; } System.out.print(head.val.

2022-04-02 09:47:23 1052 1

原创 SpringBoot使用前缀树实现敏感词的过滤

记录一下使用SpringBoot中使用前缀树对敏感词的一个过滤。首先呢在resources目录下建立一个文件用来装敏感词例如我在resources/sensitive-words.txt如下:敏感词就不在这里展示了,从这去开始写过滤器啦,先准备好过滤器:@Componentpublic class SensitiveFilter { //记录日志 private static final Logger logger = LoggerFactory.getLogger(SensitiveF

2022-04-02 08:37:36 755 3

原创 剑指 Offer 58 - II. 左旋转字符串---java代码解决

看到这个题目的第一想法就是使用一个StringBuffer把前面的部分和后面的部分调转顺序存入来解决。代码如下class Solution { public String reverseLeftWords(String s, int n) { StringBuffer result = new StringBuffer(); int p1 = 0; int p2 = n; while(p2 < s.length()){

2022-04-01 15:42:11 78 1

空空如也

空空如也

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

TA关注的人

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