<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_42815539的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_42815539</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_42815539]]></copyright><item><title><![CDATA[NoSQL中的“BASE”特性]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/116862556</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/116862556</guid><author>weixin_42815539</author><pubDate>Sat, 15 May 2021 20:46:30 +0800</pubDate><description><![CDATA[BASE：基本可用（BA)、软状态（S）、最终一致性（E）
1.基本可用（Basically Available）:
NoSQL允许分布式系统中某些部分出现故障，那么系统的其余部分依然可用。它不会像ACID那样，在系统出现故障时，进行强制拒绝，允许继续部分访问。
2.软状态（Soft State）:
NoSQL在数据处理过程中，允许这个过程，存在数据状态暂时不一致的情况。但经过纠错处理，最终会一致的。
3.最终一致性（Eventually Consistent）：
NoSQL的软状态允许数据处理过程的暂时不]]></description><category></category></item><item><title><![CDATA[tomcat类加载隔离]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/116384097</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/116384097</guid><author>weixin_42815539</author><pubDate>Thu, 06 May 2021 21:17:59 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[jvm中指针压缩]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/116376147</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/116376147</guid><author>weixin_42815539</author><pubDate>Mon, 03 May 2021 13:33:52 +0800</pubDate><description><![CDATA[指针压缩
Java 对象的对象头是放在 Java 对象的内存起始处的，而一个对象的 MarkWord 在对象头的起始处，在 32 位系统中，它占用 4 个字节，而在 64 位系统中它占用 8 个字节，我使用的是 64 位系统，这毫无疑问会占用 8 个字节的偏移量。
紧跟 MarkWord 的应该是 Test 类的类指针和数组对象的长度，数组长度是 4 字节，但 Test 类并非数组，也没有其他属性，数据长度可以排除，但在 64 位系统下指针也应该是 8 字节的啊，为什么只占用了 4 个字节呢？
唯一的可能性]]></description><category></category></item><item><title><![CDATA[用完 ThreadLocal 都要调用 remove()]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/116375780</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/116375780</guid><author>weixin_42815539</author><pubDate>Mon, 03 May 2021 12:23:28 +0800</pubDate><description><![CDATA[什么是内存泄漏
内存泄漏指的是，当某一个对象不再有用的时候，占用的内存却不能被回收，这就叫作内存泄漏。
因为通常情况下，如果一个对象不再有用，那么我们的垃圾回收器 GC，就应该把这部分内存给清理掉。这样的话，就可以让这部分内存后续重新分配到其他的地方去使用；否则，如果对象没有用，但一直不能被回收，这样的垃圾对象如果积累的越来越多，则会导致我们可用的内存越来越少，最后发生内存不够用的 OOM 错误。
下面我们来分析一下，在 ThreadLocal 中这样的内存泄漏是如何发生的。
Key 的泄漏
在上一讲中，我]]></description><category></category></item><item><title><![CDATA[docker]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115472118</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115472118</guid><author>weixin_42815539</author><pubDate>Thu, 08 Apr 2021 00:19:07 +0800</pubDate><description><![CDATA[docker build -t test-docker-image .


产生一个名为 test-docker-image的镜像
docker run -d --name user01 -p 6666:8080 test-docker-image

产生一个名为 user01的容器

创建一个v1的tag
 docker tag test-docker-image test-docker-image:v1

[root@docker tomcat]# docker images
REPOSITORY  .]]></description><category></category></item><item><title><![CDATA[docker使用root身份进入容器]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115362260</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115362260</guid><author>weixin_42815539</author><pubDate>Wed, 31 Mar 2021 21:59:19 +0800</pubDate><description><![CDATA[docker exec -it --user root  /bin/bash

]]></description><category></category></item><item><title><![CDATA[git处理tag]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115313436</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115313436</guid><author>weixin_42815539</author><pubDate>Mon, 29 Mar 2021 22:36:48 +0800</pubDate><description><![CDATA[git checkout tag_name 


此时git可能会提示你当前处于“detached HEAD” 状态。因为tag相当于一个快照，不能修改它的代码。需要在tag代码基础上做修改时，需要tag为基础创建一个新的分支，在新的分支上修改代码：
git checkout -b branch_name tag_name


...]]></description><category></category></item><item><title><![CDATA[maven项目中classpath]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115284943</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115284943</guid><author>weixin_42815539</author><pubDate>Sun, 28 Mar 2021 18:45:02 +0800</pubDate><description><![CDATA[mavne项目classpath就是classes目录下


可以使用相对路径也可以使用绝对路径使用/开头


]]></description><category></category></item><item><title><![CDATA[mysql字符集]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115038220</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115038220</guid><author>weixin_42815539</author><pubDate>Sun, 28 Mar 2021 00:51:30 +0800</pubDate><description><![CDATA[我仔细看看报错信息，应该是MySQL数据库报出来的，大意是说：collation不兼容，一个是 utf8mb4_0900_ai_ci，另一个是utf8mb4_general_ci。
utf8mb4_general_ci这玩意儿我见过，是针对utf8mb4编码的collation，但是utf8mb4_0900_ai_ci是啥，我也没见过。
于是我问他，这玩意儿从哪里出来的？
他说：“我也不知道，我完全没见过啊。再说，我数据库编码已经是utf8mb4了，怎么还会有这么多名堂？”
看他着急又不知所措的样子，我便花]]></description><category></category></item><item><title><![CDATA[mysql索引优化一]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115271337</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115271337</guid><author>weixin_42815539</author><pubDate>Sat, 27 Mar 2021 22:04:47 +0800</pubDate><description><![CDATA[CREATE TABLE `student` (
  `s_no` int(11) DEFAULT NULL,
  `s_name` varchar(500) DEFAULT NULL,
  `s_age` int(11) DEFAULT NULL,
  `s_sex` varchar(10) DEFAULT NULL,
  KEY `index_student_s_no` (`s_no`),
  KEY `index_student_s_age` (`s_age`)
) ENGINE=InnoDB DEF]]></description><category></category></item><item><title><![CDATA[springboot单元测试]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115191057</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115191057</guid><author>weixin_42815539</author><pubDate>Thu, 25 Mar 2021 22:43:09 +0800</pubDate><description><![CDATA[spring boot单元测试
Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库
作为最新版本的JUnit框架，JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
JUnit Platform: Junit Platform是在JVM上启动测试框架的基础，不仅支持Junit自制的测试引擎，其他测试引擎也都可以接入。
JUn]]></description><category></category></item><item><title><![CDATA[java 数组是对象]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115190265</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115190265</guid><author>weixin_42815539</author><pubDate>Wed, 24 Mar 2021 23:06:20 +0800</pubDate><description><![CDATA[In Java, there is a class for every array type, so there’s a class for int[] and similarly for float, double etc.
The direct superclass of an array type is Object. Every array type implements the interfaces Cloneable and java.io.Serializable.
In the Java p]]></description><category></category></item><item><title><![CDATA[uml类图]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115148896</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115148896</guid><author>weixin_42815539</author><pubDate>Wed, 24 Mar 2021 22:08:22 +0800</pubDate><description><![CDATA[1.继承

聚合 个体独立于主体

组合 部分不能存在与整体之外


]]></description><category></category></item><item><title><![CDATA[mybatis源码第四课]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/114994283</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/114994283</guid><author>weixin_42815539</author><pubDate>Sun, 21 Mar 2021 21:20:02 +0800</pubDate><description><![CDATA[mybatis插件扩展
mybatis只能在这四个点扩展
1.Executor
2.StatementHandler
3.ParameterHandler
4.ResultSetHandler

]]></description><category></category></item><item><title><![CDATA[maven]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115050513</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115050513</guid><author>weixin_42815539</author><pubDate>Sun, 21 Mar 2021 17:17:33 +0800</pubDate><description><![CDATA[maven认为src/main/java只是java的源代码路径
比如mybatis的mapper.xml文件，如果将mapper.xml文件和Mapper.java放一起，就需要修改pom.xml文件，来把mapper.xml文件一起打包。
&lt;resources&gt;
      &lt;resource&gt;
        &lt;directory&gt;src/main/java&lt;/directory&gt;
        &lt;includes&gt;
          &]]></description><category></category></item><item><title><![CDATA[通过反射获取静态变量和非静态变量的值的值]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115047919</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115047919</guid><author>weixin_42815539</author><pubDate>Sun, 21 Mar 2021 13:18:49 +0800</pubDate><description><![CDATA[public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Field serialVersionUID = String.class.getDeclaredField("serialVersionUID");
        serialVersionUID.setAccessible(true);
        Object o = serialVersion.]]></description><category></category></item><item><title><![CDATA[mysql中隔离级别和锁]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/115017935</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/115017935</guid><author>weixin_42815539</author><pubDate>Fri, 19 Mar 2021 23:49:58 +0800</pubDate><description><![CDATA[1.在MVCC并发控制中，读操作可以分为两类：快照读与当前读。
快照读（简单的select操作），读取的是记录中的可见版本（可能是历史版本），不用加锁。
当前读（加锁的select操作、insert、delete和update）：
读取的是记录中最新版本，并且当前读返回的记录都会加上锁，这样保证了了其他事务不会再并发修改这条记录。
2.Mysql默认级别是repeatable-read，间隙锁在某些情况下可以解决幻读问题
要避免幻读可以用间隙锁在Session_1下面执行
update account se]]></description><category></category></item><item><title><![CDATA[MySQL中单引号，双引号和反引号的区别]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/114994619</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/114994619</guid><author>weixin_42815539</author><pubDate>Fri, 19 Mar 2021 01:14:16 +0800</pubDate><description><![CDATA[1.单引号(’)或双引号(")表示字符串。
2.反引号区分MYSQL的保留字与普通字符。
比如
create table t1 (id int primary key ,desc varchar(10)); -- 这句报错
 
create table t1 (id int primary key,`desc` varchar(10)); -- 这句成功运行


...]]></description><category></category></item><item><title><![CDATA[mybatis源码第三课]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/114955998</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/114955998</guid><author>weixin_42815539</author><pubDate>Thu, 18 Mar 2021 00:27:05 +0800</pubDate><description><![CDATA[1.二级缓存

从 MappedStatement中取出来cache
当没有配置二级缓存时为null如下图


synchronizedCache中含有多种同类型对象
当sqlsession关闭时才会存储二级缓存并将对象序列化存储
序列化存储前提是
@CacheNamespace(readWrite = false)


...]]></description><category></category></item><item><title><![CDATA[mybatis源码第二课]]></title><link>https://blog.youkuaiyun.com/weixin_42815539/article/details/114910287</link><guid>https://blog.youkuaiyun.com/weixin_42815539/article/details/114910287</guid><author>weixin_42815539</author><pubDate>Wed, 17 Mar 2021 23:20:19 +0800</pubDate><description><![CDATA[1.一级缓存

]]></description><category></category></item></channel></rss>