<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[time_art的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/time_art</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; time_art]]></copyright><item><title><![CDATA[dubbo-admin控制中心搭建]]></title><link>https://blog.csdn.net/time_art/article/details/112979618</link><guid>https://blog.csdn.net/time_art/article/details/112979618</guid><author>time_art</author><pubDate>Fri, 22 Jan 2021 15:14:27 +0800</pubDate><description><![CDATA[本次搭建的的控制中心是采用新版的，springboot+vue前后端分离的方式搭建（2019年初，官方发布了Dubbo管理控制台0.1版本，采用了前后端分离的方式）

参考了以下文章

https://blog.csdn.net/sophia_0331/article/details/107916945

官网地址：https://github.com/apache/dubbo-admin

进入https://github.com/apache/dubbo-admin，先下载zip包

不同的是，在服务器]]></description><category></category></item><item><title><![CDATA[java并发编程(一)]]></title><link>https://blog.csdn.net/time_art/article/details/108755613</link><guid>https://blog.csdn.net/time_art/article/details/108755613</guid><author>time_art</author><pubDate>Wed, 23 Sep 2020 17:46:45 +0800</pubDate><description><![CDATA[并发编程：希望通过多线程执行任务让程序运行得更快，但会带来上下文切换问题和死锁问题（上下文切换：指CPU从一个进程或线程切换到另一个进程或线程）

并发程序要想正确地执行，必须要保证原子性、可见性以及有序性

原子性：一个操作或者多个操作 要么全部执行,要么就都不执行

可见性：当多个线程访问同一个变量时，一个线程修改了这个变量的值，其他线程能够立即看得到修改的值。

有序性：保证程序执行的顺序按照代码的先后顺序执行（处理器为了提高程序运行效率，可能会对输入代码进行优化，不保证程序中各个语句的执行先后顺..]]></description><category></category></item><item><title><![CDATA[zookeeper介绍(一)]]></title><link>https://blog.csdn.net/time_art/article/details/108735628</link><guid>https://blog.csdn.net/time_art/article/details/108735628</guid><author>time_art</author><pubDate>Tue, 22 Sep 2020 17:04:06 +0800</pubDate><description><![CDATA[zookeeper介绍

 zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目，它主要是用来解决分布式应用中经常遇到的一些数据管理问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义，以及分析 Zookeeper 的典型的应用场景（配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等）。

zookeeper的安装分为三种模式：单机模式、集群模式和伪集群模式

..]]></description><category></category></item><item><title><![CDATA[Stream流的使用]]></title><link>https://blog.csdn.net/time_art/article/details/108723837</link><guid>https://blog.csdn.net/time_art/article/details/108723837</guid><author>time_art</author><pubDate>Tue, 22 Sep 2020 09:36:44 +0800</pubDate><description><![CDATA[本文简单记述Stream的使用

第一种、最常用的，从数据库查出数据后，需要封装成vo类，把需要的字段返回给前端


 List&lt;Order&gt; orderList=orderService.list();
 List&lt;OrderVo&gt; list = orderList.stream().map(order -&gt; {
      OrderVo orderVo = new OrderVo();
      BeanUtils.copyProperties(order, order]]></description><category></category></item><item><title><![CDATA[java 如何查看源码]]></title><link>https://blog.csdn.net/time_art/article/details/108509094</link><guid>https://blog.csdn.net/time_art/article/details/108509094</guid><author>time_art</author><pubDate>Thu, 10 Sep 2020 11:03:08 +0800</pubDate><description><![CDATA[第一种
如果只是想看某个方法的实现，可以在该方法打个断点，通过debug, 一步步step into即可

第二种

想了解某个类，下面以hashmap为例

一 首先了解继承关系，通过idea 的 show diagram,获取继承关系图，比如hashmap的继承关系图



绿色虚线代表实现，蓝色实线代表继承

或者通过dea的Hierarchy



二 了解类中的各个属性



三 了解类中的方法，可以同过idea 的idea structure窗口



c代表类，m代表方法 ，挑选核心方法阅读.]]></description><category></category></item><item><title><![CDATA[Java 判断对象的所有属性是否为空]]></title><link>https://blog.csdn.net/time_art/article/details/108379586</link><guid>https://blog.csdn.net/time_art/article/details/108379586</guid><author>time_art</author><pubDate>Thu, 03 Sep 2020 11:45:11 +0800</pubDate><description><![CDATA[通过反射判断对象的所有属性是否为空


    public static boolean isAllFieldNull(Object o) {
        try {
            for (Field field : o.getClass().getDeclaredFields()) {
                //把私有属性公有化
                field.setAccessible(true);
                Object object = ]]></description><category></category></item><item><title><![CDATA[Hutool 的HttpUtil工具类和json解析]]></title><link>https://blog.csdn.net/time_art/article/details/108365202</link><guid>https://blog.csdn.net/time_art/article/details/108365202</guid><author>time_art</author><pubDate>Wed, 02 Sep 2020 17:13:44 +0800</pubDate><description><![CDATA[Hutool是一个小而全的Java工具类库

官方地址：https://www.hutool.cn/docs/#/

本文主要简单介绍Hutool的Http客户端工具类-HttpUtil和Hutool-json的使用

1、添加依赖


&lt;dependency&gt;
    &lt;groupId&gt;cn.hutool&lt;/groupId&gt;
    &lt;artifactId&gt;hutool-all&lt;/artifactId&gt;
    &lt;version&gt;5.]]></description><category></category></item><item><title><![CDATA[java开发中常用的linux命令]]></title><link>https://blog.csdn.net/time_art/article/details/98729141</link><guid>https://blog.csdn.net/time_art/article/details/98729141</guid><author>time_art</author><pubDate>Wed, 10 Jun 2020 17:46:02 +0800</pubDate><description><![CDATA[ls: 列出目前工作目录所含之文件及子目录

ls -a 列出目录所有文件，包含以.开始的隐藏文件

ls -l 除了文件名之外，还将文件的权限、所有者、文件大小等信息详细列出来

cd:切换目录， cd ~

pwd：查看当前工作目录路径

tail:用于查看指定文件末尾内容 ， 例如 tail -20 a.txt (查看a.txt 最后 20行内容)

chmod：用于修改文件...]]></description><category></category></item><item><title><![CDATA[线程安全List  CopyOnWriteArrayList]]></title><link>https://blog.csdn.net/time_art/article/details/106500619</link><guid>https://blog.csdn.net/time_art/article/details/106500619</guid><author>time_art</author><pubDate>Tue, 02 Jun 2020 18:09:36 +0800</pubDate><description><![CDATA[为了解决ArrayList线程安全问题，可以使用synchronizedList和CopyOnWriteArrayList



   ArrayList&lt;String&gt; list = new ArrayList&lt;&gt;();
   List&lt;String&gt; sycList = Collections.synchronizedList(list);

   CopyOnWriteArrayList&lt;String&gt; list = new CopyOnWriteArr]]></description><category></category></item><item><title><![CDATA[ArrayList 分析]]></title><link>https://blog.csdn.net/time_art/article/details/106498440</link><guid>https://blog.csdn.net/time_art/article/details/106498440</guid><author>time_art</author><pubDate>Tue, 02 Jun 2020 16:31:41 +0800</pubDate><description><![CDATA[继承体系



ArrayList实现了List, RandomAccess, Cloneable, java.io.Serializable等接口。

ArrayList实现了List，提供了基础的添加、删除、遍历等操作。

ArrayList实现了RandomAccess，提供了随机访问的能力。

ArrayList实现了Cloneable，可以被克隆。

ArrayList实现了Serializable，可以被序列化。

源码解析

属性


public class ArrayList&lt;E&g]]></description><category></category></item><item><title><![CDATA[idea 工作中常用快捷键]]></title><link>https://blog.csdn.net/time_art/article/details/106493061</link><guid>https://blog.csdn.net/time_art/article/details/106493061</guid><author>time_art</author><pubDate>Tue, 02 Jun 2020 12:05:37 +0800</pubDate><description><![CDATA[Ctrl + F       当前文件进行文本查找

Ctrl + Shift + F 查找整个项目的文件

Ctrl + B       进入光标所在的方法/变量的接口 等效于Ctrl + 左键单击

Ctrl + Alt + B   跳到具体的实现处，可以跳过接口

Alt+F7        光标放到指定的类或方法上，查看方法或者类被引用过

Ctrl + H       显示当前类的层次结构

Ctrl + E  ...]]></description><category></category></item><item><title><![CDATA[java集合框架图]]></title><link>https://blog.csdn.net/time_art/article/details/106483065</link><guid>https://blog.csdn.net/time_art/article/details/106483065</guid><author>time_art</author><pubDate>Mon, 01 Jun 2020 22:59:15 +0800</pubDate><description><![CDATA[简化图：



说明：对于以上的框架图有如下几点说明

1、所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出：Collection和Map，Collection和Map是Java集合框架的根接口，这两个接口又包含了一些子接口或实现类。

2、集合接口：6个接口（短虚线表示），表示不同集合类型，是集合框架的基础。

3、抽象类：5个抽象类（长虚线表示），对集合接口的部分实现。可扩展为自定义集合类。

4、实现类：8个实现类（实线表示），对接口的具体实现。

5、Collect..]]></description><category></category></item><item><title><![CDATA[工作推荐工具]]></title><link>https://blog.csdn.net/time_art/article/details/106378828</link><guid>https://blog.csdn.net/time_art/article/details/106378828</guid><author>time_art</author><pubDate>Wed, 27 May 2020 12:14:13 +0800</pubDate><description><![CDATA[everything

文件搜索软件，搜索速度非常快，用好高级搜索这个功能，查找文件真的非常快

下载地址：https://www.voidtools.com/zh-cn/

mobaxterm

一款很强大的终端工具

Charles

抓包工具

JVisualVM

能够监控线程，内存情况，查看方法的CPU时间和内存中的对 象，已被GC的对象，反向查看分配的堆栈

后续接更
...]]></description><category></category></item><item><title><![CDATA[Maven Idea查看解决jar包冲突]]></title><link>https://blog.csdn.net/time_art/article/details/106314993</link><guid>https://blog.csdn.net/time_art/article/details/106314993</guid><author>time_art</author><pubDate>Sun, 24 May 2020 14:51:48 +0800</pubDate><description><![CDATA[1.选择Maven Project
2.选中Dependencies
3.点击Show Dependencies



在项目依赖图中，有一些红色标记的线，实际上，这些红色标记出来的线所指向的 jar 包，就是项目中冲突的 jar 包！且在我们点击 jar 包之后，还会显示出多条指向 jar 包的红色虚线，其代表着该 jar 包被多次引用，及具体引用路径。
想要排除冲突的 jar 包，其方法为：点击冲突的 jar 包，右键呼出菜单栏，点击Exclude选项。




...]]></description><category></category></item><item><title><![CDATA[idea 插件]]></title><link>https://blog.csdn.net/time_art/article/details/106254599</link><guid>https://blog.csdn.net/time_art/article/details/106254599</guid><author>time_art</author><pubDate>Thu, 21 May 2020 12:42:47 +0800</pubDate><description><![CDATA[Statistic

统计代码的行数

File-&gt;settings-&gt;plugins，点击下方的browse repositories... 输入Statistic安装插件

Lombok

Lombok能通过注解的方式，在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法

Maven Helper

查找和排除冲突依赖项

.ignore

忽略git不必提交

TranslationPlugin

中文翻译

GrepConso.]]></description><category></category></item><item><title><![CDATA[idea 常见设置]]></title><link>https://blog.csdn.net/time_art/article/details/105909551</link><guid>https://blog.csdn.net/time_art/article/details/105909551</guid><author>time_art</author><pubDate>Sun, 03 May 2020 22:02:29 +0800</pubDate><description><![CDATA[1、project和structure显示在左侧

file-&gt;settings

在Appearance&amp;Behavior在选择Appearance

在右边window options下选择 show tool windows bars

隐藏idea左边project栏的快捷键：Alt+1

view-&gt;tool windows-&gt;structure 查看类的方法
...]]></description><category></category></item><item><title><![CDATA[Netty]]></title><link>https://blog.csdn.net/time_art/article/details/104664838</link><guid>https://blog.csdn.net/time_art/article/details/104664838</guid><author>time_art</author><pubDate>Wed, 04 Mar 2020 23:02:16 +0800</pubDate><description><![CDATA[原生NIO存在的问题：

1、NIO的类库和API繁琐，不易使用

2、需要熟悉Java多线程编程

3、工作量和难度大，例如：客户端中断重连、网络闪断、半包读写、网络拥塞和异常流的处理

Netty优点：

1、使用方便

2、高性能、吞吐量更高；延迟低，减少资源消耗

3、支持各种传输类型的数据



线程模型：

传统阻塞I/O服务模型

Reactor(单Reactor单线程、单Reac...]]></description><category></category></item><item><title><![CDATA[npm ERR! A complete log of this run can be found in]]></title><link>https://blog.csdn.net/time_art/article/details/104600441</link><guid>https://blog.csdn.net/time_art/article/details/104600441</guid><author>time_art</author><pubDate>Sun, 01 Mar 2020 21:14:57 +0800</pubDate><description><![CDATA[vue在执行npm run install 时候报错，npm ERR! A complete log of this run can be found in

1、清理缓存命令：

npm cache clean --force

2、重新安装一次即可：

npm install /cnpm install

如果还不行

或者将项目中node_modules文件夹先删除，再执行1 2步骤
...]]></description><category></category></item><item><title><![CDATA[Java NIO]]></title><link>https://blog.csdn.net/time_art/article/details/104594695</link><guid>https://blog.csdn.net/time_art/article/details/104594695</guid><author>time_art</author><pubDate>Sun, 01 Mar 2020 16:56:04 +0800</pubDate><description><![CDATA[NIO: 同步非阻塞，面向缓冲区，基于通道的io操作。

首先了解阻塞和非阻塞，同步和异步的概念

阻塞和非阻塞(基于进程):

阻塞：调用结果返回之前，当前线程会被挂起。调用线程只有在得到结果之后才会返回

非阻塞：指在不能立刻得到结果之前，该调用不会阻塞当前线程。

同步和异步(基于应用程序)：

同步：主动请求并等待I/O操作完毕

异步：主动请求数据后，便可以继续处理其它任务,随后等待I/...]]></description><category></category></item><item><title><![CDATA[JAVA   BIO通信模式]]></title><link>https://blog.csdn.net/time_art/article/details/104584011</link><guid>https://blog.csdn.net/time_art/article/details/104584011</guid><author>time_art</author><pubDate>Sat, 29 Feb 2020 23:59:26 +0800</pubDate><description><![CDATA[Server客户端：

 建立服务端监听socket，等待接收请求，通信之后，关闭socket

Client客户端：

 创建Socket对象，指明连接的服务器的地址和端口号，连接建立后，通过输出流向服务器端发送请求信息，关闭socket

Server服务端代码：




import java.io.InputStream;
import java.io.OutputStream;
im...]]></description><category></category></item></channel></rss>