<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Rok728的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Rok728</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Rok728]]></copyright><item><title><![CDATA[MultipartFormDataInput 获取图片名称]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/126935349</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/126935349</guid><author>Rok728</author><pubDate>Mon, 19 Sep 2022 15:46:04 +0800</pubDate><description><![CDATA[MultipartFormDataInput 获取图片名称]]></description><category></category></item><item><title><![CDATA[Oracle查询时间段内的包含多少周，以及每周的开始时间与结束时间]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/126729208</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/126729208</guid><author>Rok728</author><pubDate>Tue, 06 Sep 2022 17:16:32 +0800</pubDate><description><![CDATA[Oracle查询时间段内的包含多少周，以及每周的开始时间与结束时间]]></description><category></category></item><item><title><![CDATA[FTP的2种工作方式详解]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/124822776</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/124822776</guid><author>Rok728</author><pubDate>Tue, 17 May 2022 15:33:08 +0800</pubDate><description><![CDATA[FTP(File Transfer Protocol)中文名称是文件传输协议，是最早的网络协议之一，用来在两台计算机之间传输数据。

FTP协议比较复杂，使用FTP协议进行传输数据时需要用到两个TCP端口，其中一个端口默认是21端口，用作两台计算机之间的FTP命令的通讯。另一个端口需要根据两台计算机协商的工作模式来决定。

FTP的工作模式有两种，PASV（被动）和PORT（主动），这个被动和主动的工作模式是针对客户端计算机而言的。

PASV（客户端被动）工作模式是，客户端向服务器端的21端口发送连接，服]]></description><category></category></item><item><title><![CDATA[什么是双亲委派机制]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/123358007</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/123358007</guid><author>Rok728</author><pubDate>Tue, 08 Mar 2022 17:02:30 +0800</pubDate><description><![CDATA[说到双亲委派机制，就必须要先要弄清楚Java的类加载器

什么是类加载器


Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分，负责动态的将Java类加载到Java虚拟机的内存空间。

类加载器有哪些
主要有三个：

引导类加载器(Bootstrap ClassLoader)：加载Java的核心库(jre/lib/rt.jar)，同时加载另外两种类加载器，由C++编写；扩展类加载器(Extensions ClassLoader)：加载Java的扩展库(jre/ext/*.ja]]></description><category></category></item><item><title><![CDATA[超详细的RabbitMQ入门]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/123106242</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/123106242</guid><author>Rok728</author><pubDate>Thu, 24 Feb 2022 10:29:25 +0800</pubDate><description><![CDATA[转载：超详细的RabbitMQ入门，看这篇就够了！-阿里云开发者社区

思维导图



一、什么是消息队列

消息指的是两个应用间传递的数据。数据的类型有很多种形式，可能只包含文本字符串，也可能包含嵌入对象。

“消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中，通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列，谁从消息队列中取出数据处理，他不管。消费者只负责从消息队列中取出数据处理，他不管这是谁发送的数据。



二、为什么使用消息队列

主要有三个作用]]></description><category></category></item><item><title><![CDATA[详细讲解，RabbitMQ防止数据丢失]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/123106168</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/123106168</guid><author>Rok728</author><pubDate>Thu, 24 Feb 2022 10:27:27 +0800</pubDate><description><![CDATA[转载：【RabbitMQ】一文带你搞定RabbitMQ死信队列 - 云+社区 - 腾讯云

思维导图



一、分析数据丢失的原因

分析RabbitMQ消息丢失的情况，不妨先看看一条消息从生产者发送到消费者消费的过程：



可以看出，一条消息整个过程要经历两次的网络传输：从生产者发送到RabbitMQ服务器，从RabbitMQ服务器发送到消费者。

在消费者未消费前存储在队列(Queue)中。

所以可以知道，有三个场景下是会发生消息丢失的：

存储在队列中，如果队列没有对消息持久化，RabbitMQ服]]></description><category></category></item><item><title><![CDATA[较实用Java定时任务]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/122535236</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/122535236</guid><author>Rok728</author><pubDate>Mon, 17 Jan 2022 10:56:52 +0800</pubDate><description><![CDATA[Quartz框架实现


除了JDK自带的API之外，我们还可以使用开源的框架来实现，比如Quartz。

Quartz是Job scheduling（作业调度）领域的一个开源项目，Quartz既可以单独使用也可以跟spring框架整合使用，在实际开发中一般会使用后者。使用Quartz可以开发一个或者多个定时任务，每个定时任务可以单独指定执行的时间，例如每隔1小时执行一次、每个月第一天上午10点执行一次、每个月最后一天下午5点执行一次等。

Quartz通常有三部分组成：调度器（Scheduler）、任务（]]></description><category></category></item><item><title><![CDATA[分布式高并发系统如何保证对外接口的幂等性？]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/122468450</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/122468450</guid><author>Rok728</author><pubDate>Thu, 13 Jan 2022 10:28:56 +0800</pubDate><description><![CDATA[前言

接口幂等性问题，对于开发人员来说，是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法，绝大部分内容我在项目中实践过的，给有需要的小伙伴一个参考。

不知道你有没有遇到过这些场景：
有时我们在填写某些form表单时，保存按钮不小心快速点了两次，表中竟然产生了两条重复的数据，只是id不一样。
	我们在项目中为了解决接口超时问题，通常会引入了重试机制。第一次请求接口超时了，请求方没能及时获取返回结果（此时有可能已经成功了），为了避免返回错误的结果（这种情况不可能直接返回失败吧]]></description><category></category></item><item><title><![CDATA[软件设计的七大原则]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/122085806</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/122085806</guid><author>Rok728</author><pubDate>Wed, 22 Dec 2021 14:49:06 +0800</pubDate><description><![CDATA[一、开闭原则

定义：一个软件实体如类、模块函数应该对扩展开放，对修改关闭。强调的是用抽象构建框架，用实现扩展细节。以提高软件系统的可复用性及可维护性帮助我们实现稳定灵活的系统架构。生活中的实例（弹性工作制，每天必须工作满八小时这个是不能修改的，但是对于什么时候来什么时候走没有规定）。实现开闭原则的核心思想是面向抽象编程。

代码场景：web应用通常是有过滤器的，通常有很多个，每个都是一类功能的集合，一般我们只是通过继承 Filter 新增实现类的方式去添加新的过滤器来丰富我们的功能，而不是在原来的过滤器上]]></description><category></category></item><item><title><![CDATA[java中当给一个对象赋值为null时发生了什么]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/122078038</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/122078038</guid><author>Rok728</author><pubDate>Wed, 22 Dec 2021 09:32:22 +0800</pubDate><description><![CDATA[比如下面的代码


String[]  arr  =  new String[10];
arr=null;

将arr这个引用置空，不指向任何对象。
上面new的那个数组对象，则没有任何引用指向它，垃圾回收器可以回收此对象。

java中对象引用放在栈中，对象的实例放于堆中，一个对象要是只声明不赋值，则只会在内存的栈区创建引用，堆中并无此引用的指向。
而null对象在堆中会被java的垃圾回收机制回收。

在Java中，null值表示引用不指向任何对象。运行过程中系统发现使用了这样一个引用时，可以立即停止进]]></description><category></category></item><item><title><![CDATA[ElasticSearch7.6入门学习笔记（一）]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121953545</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121953545</guid><author>Rok728</author><pubDate>Wed, 15 Dec 2021 15:34:13 +0800</pubDate><description><![CDATA[1.下载安装


华为云的镜像去下载
ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&amp;O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&amp;O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&amp;O=D


2.熟悉目录





bin 启动文件目录
config 配置文件目..]]></description><category></category></item><item><title><![CDATA[Java使用POI将Excel文件数据导入到Mongo数据库]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121785166</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121785166</guid><author>Rok728</author><pubDate>Wed, 08 Dec 2021 10:16:30 +0800</pubDate><description><![CDATA[1、导入依赖包

mongodb-driver-3.4.2.jar

mongodb-driver-core-3.4.2.jar

bson-3.4.2.jar

poi-3.10.1-20140818.jar

2、直接上代码


public class ExcelToMongo {
	private static Integer PORT = 27017;                    //端口号
	private static String IP = "localhost";        ]]></description><category></category></item><item><title><![CDATA[腾讯云(COS)对象存储基于java实现的文件上传和下载、删除、查看]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121741079</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121741079</guid><author>Rok728</author><pubDate>Mon, 06 Dec 2021 10:11:59 +0800</pubDate><description><![CDATA[腾讯云(COS)对象存储基于java实现的文件上传和下载、删除、查看]]></description><category></category></item><item><title><![CDATA[Java异常处理：SSL证书异常：SSLHandshakeException: sun.security.validator.ValidatorException]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121352361</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121352361</guid><author>Rok728</author><pubDate>Tue, 16 Nov 2021 11:35:53 +0800</pubDate><description><![CDATA[本地请求第三方接口，出现如下异常、


javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at su]]></description><category></category></item><item><title><![CDATA[java怎么发http请求]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121339841</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121339841</guid><author>Rok728</author><pubDate>Mon, 15 Nov 2021 17:54:53 +0800</pubDate><description><![CDATA[import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {
    /**
 .]]></description><category></category></item><item><title><![CDATA[把Java对象转为xml格式]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/121333299</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/121333299</guid><author>Rok728</author><pubDate>Mon, 15 Nov 2021 14:00:46 +0800</pubDate><description><![CDATA[1.在实体类上加@XmlRootElement注解


@XmlRootElement(name = "ROOT") //代表根标签

2.在对应的set方法上加


@XmlElement(name = "TRANS_CODE")  //代表相应的标签


@XmlRootElement(name = "ROOT")
@Document(collation = "User")
public class User implements Serializable {
    @MongoId
    priv]]></description><category></category></item><item><title><![CDATA[HTTP协议/TCP面试]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/120921889</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/120921889</guid><author>Rok728</author><pubDate>Sat, 23 Oct 2021 15:47:36 +0800</pubDate><description><![CDATA[1. HTTP协议与TCP/IP协议的关系

HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议，在传输层使用TCP协议，在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题，TCP协议主要解决如何在IP层之上可靠地传递数据包，使得网络上接收端收到发送端所发出的所有包，并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。

2. 如何理解HTTP协议是无状态的

HTTP协议是无状态的，指的是协议对于事务处理没有记忆能力，服务器不知道客户端是什么状态。也就是说，打开一个服]]></description><category></category></item><item><title><![CDATA[SQL优化]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/120498497</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/120498497</guid><author>Rok728</author><pubDate>Sun, 26 Sep 2021 22:49:39 +0800</pubDate><description><![CDATA[目录



SQL的执行顺序

SQL优化

创建mysql-db库

准备student表

准备tb_dept表

准备tb_user表

查询SQL尽量不要使用select *，而是具体字段

避免在where子句中使用or来连接条件

使用varchar代替char

尽量使用数值替代字符串类型

查询尽量避免返回大量数据

使用explain分析你SQL执行计划

是否使用了索引及其扫描类型

创建name字段的索引

优化like语句

字符串怪现象

索引不宜太多，一般5个以内

where限]]></description><category></category></item><item><title><![CDATA[商品分类业务实现(后端)]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/120127474</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/120127474</guid><author>Rok728</author><pubDate>Mon, 06 Sep 2021 15:30:19 +0800</pubDate><description><![CDATA[1.1问题说明

原始代码结构.出现俩层循环结构,如果外层循环10个,每个内存循环也是10个,完成这项业务需要查询100次数据库

矛盾点:多次查询数据库!!!

优化策略:能否将查询的次数降到1次,就可以获取所有的数据信息

说明:数据库只查询一次,就可以获取商品分类三级嵌套结构

程序设计:

1.数据结构Map&lt;父级ID,子级列表&gt;列表信息中不包含嵌套关系

例如:Map&lt;0,一级列表信息&gt;一级列表信息不包含二级/三级

Map&lt;一级ID,二级列表信息&g...]]></description><category></category></item><item><title><![CDATA[同源策略与跨域]]></title><link>https://blog.youkuaiyun.com/Rok728/article/details/120025971</link><guid>https://blog.youkuaiyun.com/Rok728/article/details/120025971</guid><author>Rok728</author><pubDate>Tue, 31 Aug 2021 20:20:08 +0800</pubDate><description><![CDATA[同源策略


规定: 浏览器要求在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足三个要求.则满足同源策略.可以访问服务器.
三个要求:
请求协议://域名:端口号都必须相同!!!

要素:1.浏览器的请求路径.
2.Ajax请求的网址

同源策略案例
案例1:
1.浏览器地址 http://localhost:8090/findAll
2.Ajax请求地址 http://localhost:8090/aaaa
满足同源策略.服务器可以正常访问.

案例2:
1.浏览器地址 http://]]></description><category></category></item></channel></rss>