<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zrulin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zrulin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zrulin]]></copyright><item><title><![CDATA[springboot+vue项目在交互时前端发送请求后端接收不到（记录）]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/130465288</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/130465288</guid><author>zrulin</author><pubDate>Tue, 02 May 2023 17:35:55 +0800</pubDate><description><![CDATA[记录一下我在springboot+vue项目在交互时前端发送请求（发送get请求）后端接收不到数据，报错：` Required request parameter 'currentPage' for method parameter type Integer is not present`]]></description><category></category></item><item><title><![CDATA[String、StringBuilder 和 StringBuffer 详解]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/129186275</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/129186275</guid><author>zrulin</author><pubDate>Thu, 23 Feb 2023 18:10:17 +0800</pubDate><description><![CDATA[本篇文章主要描述了 String 、StringBuilder 和 StringBuffer 的主要特性，String、StringBuilder 和 StringBuffer 的底层构造是怎样的，StringBuilder 和 StringBuffer 的扩容特性等。]]></description><category></category></item><item><title><![CDATA[vue直接引入js没有反应（初学）]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/128881164</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/128881164</guid><author>zrulin</author><pubDate>Sat, 04 Feb 2023 13:51:11 +0800</pubDate><description><![CDATA[在官网中将js下载下来，之后直接访问本地js，成功。的那串连接由于某种因素我访问不到，所以没有反应。这样子思考为什么不反应，我觉得是直接引入js中。]]></description><category></category></item><item><title><![CDATA[Java实现 leetcode-79. 单词搜索]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/126848994</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/126848994</guid><author>zrulin</author><pubDate>Wed, 14 Sep 2022 11:16:34 +0800</pubDate><description><![CDATA[没想到其他好的方法，试试暴力解题，仔细思考想到几个难点：1.怎么找入口去遍历word，感觉需要遍历二维数组。2. 上下左右在二维数组中寻找下一个单词的时候怎样才能不去找已经找过的位置，好像用回溯可以解决。我自己感觉这个解法就是简单的模拟，看不懂的话拿出纸和笔画一画就懂了。这个题第一眼看去，居然是个中等的难度，不该是hard嘛。]]></description><category></category></item><item><title><![CDATA[迅速了解JDK线程池以及Spring线程池]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/126659341</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/126659341</guid><author>zrulin</author><pubDate>Fri, 02 Sep 2022 11:46:52 +0800</pubDate><description><![CDATA[对于经常创建和销毁，使用量特别大的资源，比如并发情况下的线程，对性能影响非常大。所以我们一般​提前创建好多个线程，放入线程池中，使用时直接获取，使用完放入池中。可以避免频繁创建销毁，实现重复利用。对于Java多线程不是很熟悉的可以先去。]]></description><category></category></item><item><title><![CDATA[Java实现 leetcode-946. 验证栈序列]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/126616660</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/126616660</guid><author>zrulin</author><pubDate>Wed, 31 Aug 2022 08:58:40 +0800</pubDate><description><![CDATA[这道题是试卷上经常出的考试题目，但是放在程序题中还是第一次做，使用了一个变量p模拟栈顶部。（注释全在代码里了）如果实在看不懂，拿出纸和笔画一下就知道了。]]></description><category></category></item><item><title><![CDATA[Java实现 Leetcode-51.N皇后]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/126299077</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/126299077</guid><author>zrulin</author><pubDate>Fri, 12 Aug 2022 10:33:55 +0800</pubDate><description><![CDATA[看完这道题之后画了一下图，大概总结了行列不能相等，也就是横坐标和纵坐标不能相等，斜线不能相等，也就是说横坐标只之差和纵坐标之差不能相等。然后是一个多重的循环的问题，往回溯方向想。之后写出来的代码如下（注释全在代码里了）是在看不懂的话，拿出纸和笔画一画噢。...]]></description><category></category></item><item><title><![CDATA[idea导入Javaweb项目]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/125555090</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/125555090</guid><author>zrulin</author><pubDate>Fri, 01 Jul 2022 11:38:15 +0800</pubDate><description><![CDATA[第一次使用idea导入Javaweb项目，记录一下。因为这是一个原来在eclipse中运行的项目，所以带着eclipse中的配置信息。我的习惯是将配置文件和.class的文件全部删除，然后使用idea打开（open）让他自动生成配置文件。

自动生成的文件信息如下：

配置jdk环境：


查看导入的jar包，我这里缺少了一个servlet的jar包，我自己加入了。
这里尤其注意自己的mysql版本。
原项目使用的是5的版本，我换成了8的版本。这里也要记得改一下哦：

数据库密码账号，ip地址，端口号都要改]]></description><category></category></item><item><title><![CDATA[HashMap的put方法流程]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/125366780</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/125366780</guid><author>zrulin</author><pubDate>Mon, 20 Jun 2022 10:25:14 +0800</pubDate><description><![CDATA[从源码的角度来看看hashmap中的put方法流程]]></description><category></category></item><item><title><![CDATA[java8新特性之Lambda表达式]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124490445</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124490445</guid><author>zrulin</author><pubDate>Fri, 29 Apr 2022 10:49:08 +0800</pubDate><description><![CDATA[Lambda
文章目录Lambda语法格式Lambda实例
 lambda是一个匿名函数（方法），我们可以把lambda表达式理解为，一段可以传递的代码。
java8中引入了一个新的操作符“-&gt;”该操作符将Lambda表达式拆分为两部分。

左侧：Lambda表达式的参数列表
右侧：Lambda表达式中所需执行的功能，即Lambda体。

Lambda表达式需要“函数式接口”的支持。
函数式接口：接口中只有一个抽象方法。可以使用注解@FunctionalInterface修饰
语法格式
语法格式一：无]]></description><category></category></item><item><title><![CDATA[java滑动窗口实现 76. 最小覆盖子串 和 438. 找到字符串中所有字母异位词]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124376686</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124376686</guid><author>zrulin</author><pubDate>Sun, 24 Apr 2022 10:36:31 +0800</pubDate><description><![CDATA[76. 最小覆盖子串
438. 找到字符串中所有字母异位词
两个都是字符串里面使用滑动窗口，我认为有着他们的特定和共性，所以总结出来。
第一个题的窗口大小是变化的，第二个题使用的是固定大小的滑动窗口。
题解写好了注释，实在看不懂的话，拿出纸和笔推演一下就懂了。

最小覆盖子串：

class Solution {
    public String minWindow(String s, String t) {
       int[] temp = new int[123];//模拟所有的字母。
    ]]></description><category></category></item><item><title><![CDATA[java实现49. 字母异位词分组，一错再错，总结一下]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124374359</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124374359</guid><author>zrulin</author><pubDate>Sun, 24 Apr 2022 09:09:11 +0800</pubDate><description><![CDATA[ 第一次提交：“暴力求解？”

 后面看了题解之后：“哦，原来还可以这样”

 二刷看到这个题我一脸懵，“暴力求解？”于是乎：

 我先贴一个我超时的代码（两次超时代码一摸一样，醉了），总结一下我错哪。看题解的小伙伴可以直接跳过这段。
我的思路大概是这样的，两层for循环遍历求解，中间核心代码是用isSome(String s,String t)判断两个字符串是不是字母异位词，用了两种方法来尽量减少暴力求解的用时，第一个是再判断是不是字母异位词的时候用长度26的整形数组做哈希表。第二个是将已经分组的字符串置]]></description><category></category></item><item><title><![CDATA[java 实现剑指 Offer II 010. 和为 k 的子数组，记录一下我第一次使用前缀和]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124364611</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124364611</guid><author>zrulin</author><pubDate>Sat, 23 Apr 2022 15:55:34 +0800</pubDate><description><![CDATA[  看到这道题之后，非常想当然就感觉这是一道简单的滑动窗口，一滑就感觉不对劲了，窗口无论增大或者变小，窗口里面的和都有可能会增大或者变小。坚持滑动窗口到感觉不可能之后，去看了之前写过的滑动窗口，例如剑指 Offer II 008. 和大于等于 target 的最短子数组，我发觉了，那个里面直接写明了，数组里面全是正整数。
于是我开始了暴力解题。两层for循环搞起：
    public int subarraySum(int[] nums, int k) {
        int result = 0;
]]></description><category></category></item><item><title><![CDATA[快速了解MySQL存储引擎]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124360593</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124360593</guid><author>zrulin</author><pubDate>Sat, 23 Apr 2022 10:57:40 +0800</pubDate><description><![CDATA[mysql存储引擎
文章目录mysql存储引擎mysql体系结构存储引擎简介存储引擎特点存储引擎选择
mysql体系结构

连接层:

客户端连接器（JDBC、ODBC、…）
主要是接收客户端的连接，完成一些连接的处理，以及认证授权的相关操作（比如说验证用户名和密码，以及校验每一个客户端所具有的权限。），以及一些相关的安全方案，检查是否超过最大连接数等等。


服务层:

绝大部分的核心功能都是在服务层完成的，像SQL接口，查询解析器，查询优化器，查询缓存等等。所有跨存储引擎的实现也都是在服务层实现的。比如]]></description><category></category></item><item><title><![CDATA[彻底搞懂理解Java，IO流]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124233185</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124233185</guid><author>zrulin</author><pubDate>Sun, 17 Apr 2022 18:17:35 +0800</pubDate><description><![CDATA[1、在理解JavaIO流之前，首先你得对**File类**进行一个了解。

File类的对象代表一个文件或者一个文件目录（俗称：文件夹）。
判断文件是否存在，文件是不是可读或可写，文件长度是多少，文件的最近修改日期是什么时候。这些功能就不能通过IO流去做了，文件本身就可以做这些事。
了解File类中常用的方法，从此去Java中IO流File类详解
当然如果你需要读取或写入文件内容，必须使用IO流来完成。

2、开始进入正题，介绍JavaIO流了。
java.io包下提供了各种“流” 类和接口，用以获取不同.]]></description><category></category></item><item><title><![CDATA[java中的序列化机制详解]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124218279</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124218279</guid><author>zrulin</author><pubDate>Sun, 17 Apr 2022 17:09:21 +0800</pubDate><description><![CDATA[对象的序列化机制
 要想一个对象可以持久化到一个文件当中，必须保证这个对象所处的类是可序列化的。这个持久化的过程就叫做序列化。同理反序列化也需要保证这个对象所处的类是可序列化的。
 当然不仅可以存在持久化到文件，也可以通过网络的方式传输出去。
对象的序列化机制：
 允许把内存中的Java对象转换成与平台无关的二进制流，从而允许把这种二进制流持久的保存在硬盘上，或者通过网络将这种二进制流传输到另一个网络节点。—&gt;(序列化)
 当其他程序获得了这种二进制流，就可以恢复成原来的Java对象。—&gt;（反序]]></description><category></category></item><item><title><![CDATA[Java，IO流之对象流详解]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124217624</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124217624</guid><author>zrulin</author><pubDate>Sat, 16 Apr 2022 18:45:51 +0800</pubDate><description><![CDATA[文章目录对象流对象的序列化机制ObjectInputStream 和 ObjectOutputStream
对象流
对象流：ObjectInputStream 和 ObjectOutputStream
可以把内存中的数据（基本数据类型数据，对象的处理流）持久化起来。需要的时候可以还原成内存层面的数据。
序列化：用ObjectOutputStream类保存基本类型数据或对象的机制。
反序列化：用ObjectInputStream类读取基本类型数据或对象的机制
对象的序列化机制
 要想一个对象可以持久化到一个文]]></description><category></category></item><item><title><![CDATA[JavaIO流之标准输入输出流，打印流以及数据流。]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124216146</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124216146</guid><author>zrulin</author><pubDate>Sat, 16 Apr 2022 17:50:06 +0800</pubDate><description><![CDATA[文章目录标准输入输出流System.inSystem.out打印流数据流
标准输入输出流
前置知识：
File类
文件流
缓冲流
转换流
System.in
System.in：标准的输入流，默认从键盘输入。
eg: 从键盘输入字符串，要求将读取到的整行字符串转成大写输出然后继续进行输入操作，直至当输入“e” 或者“exit”时，退出程序。

方法一：使用Scanner实现，调用next()返回一个字符串。
方法二：使用System.in实现。system.in返回值是一个字节流，然后通过转换流转成字符流，]]></description><category></category></item><item><title><![CDATA[java中的8种基本的数据类型，以及Java中的字符编码集]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124214892</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124214892</guid><author>zrulin</author><pubDate>Sat, 16 Apr 2022 16:33:05 +0800</pubDate><description><![CDATA[文章目录基本数据类型多种字符编码集
基本数据类型

byte
1（字节）
short
2（字节）
int
4（字节）
long
8（字节）
float
4（字节）
double
8（字节）
char
2（字节）
boolean
…

 @org.junit.Test
    public void test(){
        System.out.println("byte所占位数：" + Byte.SIZE);
        System.out.println("byte所占字节数：" + Byt]]></description><category></category></item><item><title><![CDATA[Java、IO流之转换流详解]]></title><link>https://blog.youkuaiyun.com/zrulin/article/details/124203460</link><guid>https://blog.youkuaiyun.com/zrulin/article/details/124203460</guid><author>zrulin</author><pubDate>Fri, 15 Apr 2022 22:07:01 +0800</pubDate><description><![CDATA[转换流属于字符流，也是处理流的一种。
作用：提供了在字节流和字符流之间的转换。
JavaAPI提供了两个转换流：

InputStreamReader：将一个字节的输入流转换为一个字符的输入流。
OutputStreamWriter：将一个字符的输出流转换为一个字节的输出流。

意义：可以把我们不好理解的字节转换成可以理解的字符（解码），然后把我们可以理解的字符再转换成字节存进去（编码）。
前置知识：
java中IO流File类，
IO流中的节点流
InputStreamReader &amp; Outpu]]></description><category></category></item></channel></rss>