<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[litte_frog的博客]]></title><description><![CDATA[小青蛙执意要在代码中找到亲吻他的公主]]></description><link>https://blog.youkuaiyun.com/litte_frog</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; litte_frog]]></copyright><item><title><![CDATA[使用 MediaSource 实现视频边播放边加载效果]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/144326029</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/144326029</guid><author>litte_frog</author><pubDate>Sun, 08 Dec 2024 21:35:51 +0800</pubDate><description><![CDATA[本文通过简单demo实现一下视频分段加载并且边播放边加载的效果]]></description><category></category></item><item><title><![CDATA[MySQL 事务默认隔离级别？能否解决幻读？]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/118702918</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/118702918</guid><author>litte_frog</author><pubDate>Tue, 13 Jul 2021 16:11:40 +0800</pubDate><description><![CDATA[事务隔离级别
MySQL 中事务隔离级别有 read uncommited、read commited、repeatable read、serializable 四种，其中默认为 repeatable read（可重复读）。

为什么默认隔离级别是 RR，其实是个历史问题，参考 为什么mysql选可重复读作为默认的隔离级别？
简单来说就是 MySQL 主从复制是基于 binlog（二进制文件），binlog 模式有 statement、row、mixed 三种，分别代表文件记录修改的 SQL 语句、记录行数]]></description><category></category></item><item><title><![CDATA[nginx 进行 https 反向代理 nextcloud 后 APP 不能访问的解决办法]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/110296459</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/110296459</guid><author>litte_frog</author><pubDate>Sat, 28 Nov 2020 23:35:30 +0800</pubDate><description><![CDATA[问题描述：
nextcloud 运行在 docker 中，之前一直是通过 http 协议 ip 端口方式访问没有问题。
修改为 nginx 反向代理并设置为 https 协议访问后，手机 app 和 pc 端均不能访问。
解决办法：
修改 nextcloud 配置文件，在 /var/www/html/config 目录下的 config.php，添加如下内容
'overwriteprotocol' =&gt; 'https',

修改完不需要重启。
配置文件（参考）
nginx配置如下：
server {
]]></description><category></category></item><item><title><![CDATA[使用 Docker 搭建 Nextcloud]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/109693291</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/109693291</guid><author>litte_frog</author><pubDate>Sat, 14 Nov 2020 17:31:04 +0800</pubDate><description><![CDATA[说明
本文内容参考 GitHub官方文档 和 Docker Hub。
在安装 nextcloud 时选用 MySQL 和 Redis 作为数据库，没有使用默认的数据库。
配置 Docker 仓库
配置国内仓库地址提高下砸镜像速度，修改配置文件/etc/docker/daemon.json，没有就新建，添加如下配置（我这里配置了多个地址）：
{
       	"registry-mirrors": [
       	    "https://3laho3y3.mirror.aliyuncs.com",
 ]]></description><category></category></item><item><title><![CDATA[网上关于 Connection reset 问题的文章]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/105562091</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/105562091</guid><author>litte_frog</author><pubDate>Thu, 16 Apr 2020 17:06:22 +0800</pubDate><description><![CDATA[Connection reset原因分析和解决方案
一次"Connection Reset"的根因和修改方式调查
异常记录——Connection reset


]]></description><category></category></item><item><title><![CDATA[总结几个问题]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/103977429</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/103977429</guid><author>litte_frog</author><pubDate>Tue, 14 Jan 2020 17:55:55 +0800</pubDate><description><![CDATA[1 页面不刷新，token未失效
描述：升级补丁中后台需要前端多传一个参数，约定该参数不为null。升级后，前端页面没有刷新，token未失效，导致给后台传递时没有新增的这个参数，后台接收是用实体对象接收，导致该字段为null。另后台没有对该字段设置默认值和非空校验，导致后台出现数据异常。
解决：后台应该对必要参数做校验。
2 微服务之间调用格式不统一
解决：微服务之间调用的报文格式应该统一，包括...]]></description><category></category></item><item><title><![CDATA[回调函数]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/103609194</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/103609194</guid><author>litte_frog</author><pubDate>Thu, 19 Dec 2019 11:01:45 +0800</pubDate><description><![CDATA[1 JavaScript 中使用回调函数： JS 回调函数浅析
// 函数A
function A(callback) {
	// 执行操作
	console.info("...");
	// 执行回调函数
	callback();
}
// 回调函数
function B() {
	console.info("callback");
}
// 执行A
A(B);

2 C 中使用回调函数： C语...]]></description><category></category></item><item><title><![CDATA[Jackson反序列化错误：com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/101541685</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/101541685</guid><author>litte_frog</author><pubDate>Fri, 27 Sep 2019 16:23:27 +0800</pubDate><description><![CDATA[原文地址：https://www.cnblogs.com/EasonJim/p/7990909.html
// 第一种解决方案
// ObjectMapper对象添加
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
String s = "{\"id\":1,\"name\":\"test\",...]]></description><category></category></item><item><title><![CDATA[难以理解的锁（二） Threads]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/100670963</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/100670963</guid><author>litte_frog</author><pubDate>Wed, 11 Sep 2019 12:00:53 +0800</pubDate><description><![CDATA[一、Interrupt
关于中断的方法
Java中线程的中断（interrupt）是指线程的中断状态，true 或 false。Interrupt相关的方法：

isInterrupted ：判断线程的中断状态，如果线程被中断返回true。
interrupt ：中断当前线程，将中断状态设置为true。
interrupted ：静态方法，判断当前线程是否中断，并且重置中断状态为false。

设...]]></description><category></category></item><item><title><![CDATA[难以理解的锁（一） ReentrantLock]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/100528339</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/100528339</guid><author>litte_frog</author><pubDate>Thu, 05 Sep 2019 16:19:08 +0800</pubDate><description><![CDATA[一、AbstractQueuedSynchronizer
属性




属性
类型
作用




state
int
表示是否被线程持有，0表示没有，n表示线程重入次数


head
Node
线程阻塞队列的头节点，head表示正在持有锁的线程


tail
Node
线程阻塞队列的尾节点，未竞争到锁的Node将添加至队列尾部


unsafe
Unsafe
含有CAS原子操作的类，调用本地方法实...]]></description><category></category></item><item><title><![CDATA[源码：常用集合类 之 HashMap]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/99696213</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/99696213</guid><author>litte_frog</author><pubDate>Sun, 18 Aug 2019 11:02:37 +0800</pubDate><description><![CDATA[0 前言
  Hashmap 内部结构是数组加链表或数组加红黑树实现。table表示数组，存放map中每个 K-V 都封装成node结构放入链表或者树中。table的每个下标位置就是一个桶，桶内是链表或红黑树。size则表示当前map中node个数。

  Node 结构：

1 属性的声明
DEFAULT_INITIAL_CAPACITY：默认初始容量16
MAXIMUM_CAPACITY：最大...]]></description><category></category></item><item><title><![CDATA[源码：常用集合类 之 ArrayList]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/88729189</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/88729189</guid><author>litte_frog</author><pubDate>Sat, 17 Aug 2019 16:24:33 +0800</pubDate><description><![CDATA[前言
在开发过程中下面这段代码不知道写了多少次，是时候拨开它的外壳，看看内部构造了。
List&lt;T&gt; list = new ArrayList&lt;&gt;();

本文的代码片段均来自jdk1.8源码。
属性的声明
每个变量都有详细注释，简单说一下：
DEFAULT_CAPACITY：默认容量为10，常量
EMPTY_ELEMENTDATA：空数组，常量
DEFAULTCAPACI...]]></description><category></category></item><item><title><![CDATA[能不能别再笨拙的处理XML报文了？！]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/98601983</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/98601983</guid><author>litte_frog</author><pubDate>Tue, 06 Aug 2019 12:02:31 +0800</pubDate><description><![CDATA[文章目录前言一、xjc &amp; trang.jar 生成 java code二、IntelliJ IDEA Tools 生成 java code三、XML 与 JavaBean 的映射四、JavaBean 的校验

前言
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
Elem...]]></description><category></category></item><item><title><![CDATA[云提醒 - 我的第一个个人项目]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/95096493</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/95096493</guid><author>litte_frog</author><pubDate>Mon, 08 Jul 2019 20:52:23 +0800</pubDate><description><![CDATA[用了两周自由时间完成了这个小dome，还有很多不完善的功能需要后续更新，核心功能短信发送由于各个平台不对个人项目支持也没有完成，只是预留了接口，后期准备通过短信或者App方式实现。下面是项目展示和说明，代码目前上传至GitHub，链接： Remind 。

展示
1. 登录

2. 注册

3. 日历

4. 提醒列表

说明
1. 开发
项目后端使用Java8+SpringBoot2.1.6+M...]]></description><category></category></item><item><title><![CDATA[使用转接头（适配器）]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/91961739</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/91961739</guid><author>litte_frog</author><pubDate>Fri, 14 Jun 2019 18:09:21 +0800</pubDate><description><![CDATA[  前俩天老妈说从家里抽屉里找到个耳机但是用不了，我让她拍个照片给我看，原来是因为手机是Type-C接口，耳机是3.5mm头的。于是我买了个转接口给她。如下图：

  本能反应的我，立马开始联想了起来…

适配器
情景1 没有耳机
  mom的手机
public class MomPhone {

    private TypeC earphone;

    public void play(...]]></description><category></category></item><item><title><![CDATA[SpringBoot项目中MybatisPlus的使用（二）]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/90383352</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/90383352</guid><author>litte_frog</author><pubDate>Mon, 20 May 2019 22:03:31 +0800</pubDate><description><![CDATA[本文主要内容：

自动生成代码（新）
Wrapper的使用


本文在SpringBoot项目中MybatisPlus的使用一文基础上修改，升级为springboot的2.1.0.RELEASE版本。
一、自动生成代码
1、mysql数据库
在SpringBoot项目中MybatisPlus的使用中已经有了详细的说明，但是在springboot的2.1.0.RELEASE版本下会报错，需要修改以下...]]></description><category></category></item><item><title><![CDATA[Docker安装Redis]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/89528078</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/89528078</guid><author>litte_frog</author><pubDate>Thu, 25 Apr 2019 22:52:31 +0800</pubDate><description><![CDATA[文章目录一、Docker安装与启动安装启动说明二、安装Redis安装启动redis报错自定义配置文件启动查看状态测试连接三、Docker常用简单命令

以下操作均在虚拟机CentOS7中
一、Docker安装与启动
安装
通过以下命令查看内核版本为3.10，支持docker

uname -r
3.10.0-693.el7.x86_64

安装一些必要的系统工具和添加软件源信息

sudo yum...]]></description><category></category></item><item><title><![CDATA[OpenJDK8u中intern()方法实现]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/89102880</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/89102880</guid><author>litte_frog</author><pubDate>Mon, 08 Apr 2019 19:16:10 +0800</pubDate><description><![CDATA[文章目录OpenJDK源码下载native关键字intern方法实现oop-klass模型StringTableStringTable::intern总结

OpenJDK源码下载
Java中String类的intern方法是一个native方法。
    /**
     * Returns a canonical representation for the string object.
  ...]]></description><category></category></item><item><title><![CDATA[分享：掘金酱技术精华汇总]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/88757810</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/88757810</guid><author>litte_frog</author><pubDate>Sat, 23 Mar 2019 11:20:05 +0800</pubDate><description><![CDATA[开始于20190322，更新至20190323
前言
本文分享一下个人收藏掘金上优秀的技术文章，链接直接指向原文地址，侵删。
日积跬步，终至千里
Java基础

Java泛型
深入理解 Java 泛型
Oracle官方文档


...]]></description><category></category></item><item><title><![CDATA[Java8关于Stream的收集器和Collector接口]]></title><link>https://blog.youkuaiyun.com/litte_frog/article/details/88357182</link><guid>https://blog.youkuaiyun.com/litte_frog/article/details/88357182</guid><author>litte_frog</author><pubDate>Fri, 08 Mar 2019 23:41:05 +0800</pubDate><description><![CDATA[  从Stream类中的collect作为本文的开始。现在有一个装有Frog对象的List集合，从这个list中将frog对象的size值提取成一个新的集合，可以通过如下方法实现：
List&amp;amp;amp;amp;amp;lt;Double&amp;amp;amp;amp;amp;gt; sizeList = frogList.stream()
                .map(Frog::getSize)
                .collect(...]]></description><category></category></item></channel></rss>