<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[勿忘初心,方得始终]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014714713</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014714713]]></copyright><item><title><![CDATA[javap进行反编译]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/107644412</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/107644412</guid><author>u014714713</author><pubDate>Tue, 28 Jul 2020 20:28:05 +0800</pubDate><description><![CDATA[进入到Java文件目录下编译该文件：
javac -encoding UTF-8 xxx.java
这时候，该目录会有一个xxx.class编译后的字节码文件；
再执行：javap -p xxx.class
如果想看更加详细的反编译可执行：
javap -c xxx (这里不要写文件后缀.class）
反编译可以输出常量池的信息以及元素个数：
javap -verbose xxx.class

...]]></description><category></category></item><item><title><![CDATA[RocketMQ初识]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/102885705</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/102885705</guid><author>u014714713</author><pubDate>Sun, 03 Nov 2019 19:42:33 +0800</pubDate><description><![CDATA[官网地址：http://rocketmq.apache.org/docs/quick-start/
快速启动

下载源码包，解压并构建

unzip rocketmq-all-4.4.0-source-release.zip
cd rocketmq-all-4.4.0/
mvn -Prelease-all -DskipTests clean install -U
cd distribution/t...]]></description><category></category></item><item><title><![CDATA[Dubbo命令]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/102510624</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/102510624</guid><author>u014714713</author><pubDate>Fri, 11 Oct 2019 21:48:33 +0800</pubDate><description><![CDATA[telnet
连接dubbo
telnet host port
//连接本地dubbo
telnet localhost 20880

ls
//显示服务列表
ls
//显示服务详细信息列表
ls -l
//显示服务的方法列表
ls XxxService
//显示服务的方法详细信息列表
ls -l XxxService

ps
//显示服务端口列表
ps
//显示服务地址列表
ps -l
//显示...]]></description><category></category></item><item><title><![CDATA[Linux常用命令（更新中）]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/100008521</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/100008521</guid><author>u014714713</author><pubDate>Mon, 16 Sep 2019 15:00:51 +0800</pubDate><description><![CDATA[查看端口占用命令

sudo lsof -i :[port]	//冒号后面就是需要查看的端口号
sudo lsof -i :9000


杀掉占用当前端口号的进程

sudo kill -9 [PID]	//PID为要杀死进程的PID
sudo kill -9 716





...]]></description><category></category></item><item><title><![CDATA[Spring中使用@Autowired注解创建静态对象]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/100742077</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/100742077</guid><author>u014714713</author><pubDate>Mon, 16 Sep 2019 14:24:44 +0800</pubDate><description><![CDATA[在Spring里，我们不能@Autowired一个静态变量，使之成为一个spring bean。但静态方法里面的变量必然要使用静态成员变量。例如下面这样:
public class TestUtils {

    @Autowired
    private static DocService docService;

    public static void CallUtil(){
   ...]]></description><category></category></item><item><title><![CDATA[dependencies标签和dependencyManagement标签区别]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/99884273</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/99884273</guid><author>u014714713</author><pubDate>Tue, 20 Aug 2019 21:09:24 +0800</pubDate><description><![CDATA[直观区别

dependencies中的依赖都会被自动引用
dependencyManagement只是声明依赖的版本号，并不会引用该依赖

dependencies
dependencyManagement
项目中依赖包版本号判断途径

若 dependencies 里的 dependency 自己没有声明 version 元素，那么maven 就会 到 dependencyManagement...]]></description><category></category></item><item><title><![CDATA[Git初识]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/98783267</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/98783267</guid><author>u014714713</author><pubDate>Mon, 19 Aug 2019 18:23:30 +0800</pubDate><description><![CDATA[Git基础
Git思想

直接记录快照，而非差异比较
近乎所有操作都是本地执行
Git 保证完整性
Git 一般只添加数据

三种状态
Git 有三种状态，你的文件可能处 于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的 保存在本地数据库中。 已修改表示修改了文件，但还没保存到数据库中。 已暂存表示对一个已修改文件的当前 版本...]]></description><category></category></item><item><title><![CDATA[Dubbo初识]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/99306947</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/99306947</guid><author>u014714713</author><pubDate>Mon, 19 Aug 2019 18:22:13 +0800</pubDate><description><![CDATA[http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
概念
一款轻量量级的rpc框架，⼜又具备了了服务治理理功能。提供三个主要功能:

基于接⼝口的远程调⽤用;
容灾和负载均衡;
服务的注册与发现。

模块

领域模型
在 Dubbo 的核心领域模型中：

Protocol 是服务域，它是 Invoker 暴露和引用的主功能入口，它负责 ...]]></description><category></category></item><item><title><![CDATA[数据库]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/80922045</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/80922045</guid><author>u014714713</author><pubDate>Sun, 09 Sep 2018 15:58:12 +0800</pubDate><description><![CDATA[索引


b-tree索引 
Oracle数据库中最常见的索引类型是b-tree索引，也就是B-树索引，以其同名的计算科学结构命名。CREATE  
INDEX语句时，默认就是在创建b-tree索引。没有特别规定可用于任何情况。
位图索引(bitmap index) 
位图索引特定于该列只有几个枚举值的情况，比如性别字段，标示字段比如只有0和1的情况。
基于函数的索引 
比如经常对某个字段做查询的...]]></description><category></category></item><item><title><![CDATA[调度算法解析]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/82425083</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/82425083</guid><author>u014714713</author><pubDate>Wed, 05 Sep 2018 15:44:12 +0800</pubDate><description><![CDATA[批处理作业调度算法

作业周转时间（Ti）＝完成时间(Tei)－提交时间(Tsi)

作业平均周转时间(T)＝周转时间/作业个数

作业带权周转时间（Wi）＝周转时间/运行时间

响应比＝（等待时间＋运行时间）/运行时间

先来先服务调度算法（FCFS）

就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单，公平。其缺点是没有考虑到系统中各种资源的综合使用情况，往往使短作业...]]></description><category></category></item><item><title><![CDATA[Redis]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/82350520</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/82350520</guid><author>u014714713</author><pubDate>Tue, 04 Sep 2018 22:14:10 +0800</pubDate><description><![CDATA[Redis

Redis 是一个基于内存的高性能key-value数据库，是速度非常快的非关系型（NoSQL）内存键值数据库


速度快，因为数据存在内存中，类似于HashMap，HashMap的优势就是查找和操作的时间复杂度都是O(1)
支持丰富数据类型，支持string，list，set，sorted set，hash
支持事务，操作都是原子性，所谓的原子性就是对数据的更改要么全部执行，要么全...]]></description><category></category></item><item><title><![CDATA[synchronized与lock]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/82223396</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/82223396</guid><author>u014714713</author><pubDate>Thu, 30 Aug 2018 20:10:59 +0800</pubDate><description><![CDATA[Java存在两种锁机制：synchronized和lock

synchronized



介绍

synchronized 是Java的关键字，是Java的内置特性，在JVM层面实现了对临界资源的同步互斥访问，通过对对象的头文件来操作，从而达到加锁和释放锁的目的。当它锁定一个方法或者一个代码块的时候，同一时刻最多只有一个线程执行这段代码。

通常，对于synchronize(lock){…}这...]]></description><category></category></item><item><title><![CDATA[mybatis三种批量插入方式]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/82193237</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/82193237</guid><author>u014714713</author><pubDate>Thu, 30 Aug 2018 12:57:05 +0800</pubDate><description><![CDATA[普通for循环插入

public void testInsertBatch2() throws Exception {
    User user;
    SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(false);
    UserDao mapper = sqlSession.ge...]]></description><category></category></item><item><title><![CDATA[HashMap源码解析]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/80976521</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/80976521</guid><author>u014714713</author><pubDate>Mon, 27 Aug 2018 16:51:28 +0800</pubDate><description><![CDATA[继承体系



HashMap 是一个散列表，它存储的内容是键值对(key-value)映射。 
HashMap 继承于AbstractMap，实现了Map、Cloneable、java.io.Serializable接口。 
HashMap 的实现不是同步的，这意味着它不是线程安全的。它的key、value都可以为null。此外，HashMap中的映射不是有序的。

HashMap 的实例有两个...]]></description><category></category></item><item><title><![CDATA[JVM垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/81167554</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/81167554</guid><author>u014714713</author><pubDate>Mon, 23 Jul 2018 15:10:46 +0800</pubDate><description><![CDATA[如何判断对象是否存活

GC动作发生之前，需要确定堆内存中哪些对象是存活的，一般有两种方法：引用计数法和可达性分析法。

引用计数法

在对象上添加一个引用计数器，每当有一个对象引用它时，计数器加1，当使用完该对象时，计数器减1，计数器值为0的对象表示不可能再被使用。

引用计数法实现简单，判定高效，但不能解决对象之间相互引用的问题。



可达性分析法

通过一系列称为 “GC Roots” 的...]]></description><category></category></item><item><title><![CDATA[GET和POST的区别]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/81128738</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/81128738</guid><author>u014714713</author><pubDate>Fri, 20 Jul 2018 11:58:35 +0800</pubDate><description><![CDATA[Http定义了与服务器交互的不同方法，最基本的方法有4种，分别是GET，POST，PUT，DELETE。URL全称是资源描述符，我们可以这样认为：一个URL地址，它用于描述一个网络上的资源，而HTTP中的GET，POST，PUT，DELETE就对应着对这个资源的 查，改，增，删 4个操作。到这里，大家应该有个大概的了解了，GET一般用于获取/查询资源信息，而POST一般用于更新资源信息。

最基本...]]></description><category></category></item><item><title><![CDATA[工厂模式]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/81023389</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/81023389</guid><author>u014714713</author><pubDate>Thu, 12 Jul 2018 22:18:27 +0800</pubDate><description><![CDATA[工厂模式

概念： 
实例化对象，用工厂方法代替new操作 
工厂模式包括工厂方法模式和抽象工厂模式 
抽象工厂模式是工厂方法模式的扩展

意图： 
定义一个接口来创建对象，但是让子类来决定哪些类需要被实例化。 
工厂方法把实例化的工作推迟到子类中去实现。

适合工厂模式的情况： 
1.有一组类似的对象需要创建。 
2.在编码的时候不能预见需要创建哪种类的实例。 
3.系统需要考虑扩展性，不应依赖...]]></description><category></category></item><item><title><![CDATA[Redis持久化]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/81022145</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/81022145</guid><author>u014714713</author><pubDate>Thu, 12 Jul 2018 20:48:36 +0800</pubDate><description><![CDATA[Redis是内存数据库，它把数据存储在内存中，这样在加快读取速度的同时也对数据安全性产生了新的问题，即当redis所在服务器发生宕机后，redis数据库里的所有数据将会全部丢失。 
于是我们希望Redis能将数据从内存中以某种形式同步到硬盘中，使得重启后可以根据硬盘中的记录恢复数据，这一过程就是持久化。

Redis提供两种方式进行持久化。 
 1. 快照方式（RDB） 
对数据在某时某点的一种完...]]></description><category></category></item><item><title><![CDATA[快速失败和安全失败]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/80981553</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/80981553</guid><author>u014714713</author><pubDate>Tue, 10 Jul 2018 10:16:04 +0800</pubDate><description><![CDATA[快速失败（fail—fast）

在用迭代器遍历一个集合对象时，如果遍历过程中对集合对象的结构进行了修改（增加、删除），则会抛出Concurrent Modification Exception。

原理：迭代器在遍历时直接访问集合中的内容，并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果结构发生变化，就会改变modCount的值。每当迭代器使用hashNext()/next...]]></description><category></category></item><item><title><![CDATA[B 树、B+ 树、B* 树、R 树]]></title><link>https://blog.youkuaiyun.com/u014714713/article/details/80932960</link><guid>https://blog.youkuaiyun.com/u014714713/article/details/80932960</guid><author>u014714713</author><pubDate>Thu, 05 Jul 2018 20:53:43 +0800</pubDate><description><![CDATA[从B 树、B+ 树、B* 树谈到R 树 作者：July、weedge、Frankie。编程艺术室出品。说明：本文从B树开始谈起，然后论述B+树、B*树，最后谈到R 树。其中B树、B+树及B*树部分由weedge完成，R 树部分由Frankie完成，全文最终由July统稿修订完成。出处：http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树、B*树1.前言：动态查找树主...]]></description><category></category></item></channel></rss>