<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaofbing的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaofbing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaofbing]]></copyright><item><title><![CDATA[maven多仓库查找依赖的顺序]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/108379572</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/108379572</guid><author>xiaofbing</author><pubDate>Thu, 03 Sep 2020 11:40:14 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/Ethan_199402/article/details/108141449?utm_medium=distribute.pc_relevant.none-task-blog-title-2&amp;spm=1001.2101.3001.4242

]]></description><category></category></item><item><title><![CDATA[zookeeper核心知识了解]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/105165446</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/105165446</guid><author>xiaofbing</author><pubDate>Sun, 29 Mar 2020 01:52:49 +0800</pubDate><description><![CDATA[zk了解
分布式程序服务之间需要相互调用，调用其它服务则需要知道其它服务的相关信息，如果在每个服务上都存储其它服务的相关信息，效率很低，且工作量大，不好维护，这时就需要一个专门的服务来维护这么服务的数据信息，需要获取其它服务的时候就直接到这里来拿，zk就是来管理这些服务的数据信息的，即也叫分布式应用程序的协调服务。
zk既然要对数据进行管理，则需要提供对数据的基本操作，增删改查等相关命令操作是肯定...]]></description><category></category></item><item><title><![CDATA[JVM参数及调优]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103818413</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103818413</guid><author>xiaofbing</author><pubDate>Fri, 03 Jan 2020 13:48:34 +0800</pubDate><description><![CDATA[调优基本概念

常用JVM参数

GC调优思路

通用GC参数
JVM有自适应调整参数的功能。

垃圾收集器Parallel参数调优

垃圾收集器CMS参数调优

垃圾收集器G1调优参数


...]]></description><category></category></item><item><title><![CDATA[jdk内置工具]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103811036</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103811036</guid><author>xiaofbing</author><pubDate>Thu, 02 Jan 2020 20:59:58 +0800</pubDate><description><![CDATA[目录

javap
jps
jstat
jstat
jcmd
jinfo
jhat
jmap
jstack
Jconsole
JvisualVm

目标
熟悉常用的命令和监控工具。
javap

jps

jstat
主要用总GC监控,监控java虚拟机。


jcmd

jinfo

jhat
保存为网页

jmap

jstack

Jconsole
测试、性能调试。

JvisualVm
比...]]></description><category></category></item><item><title><![CDATA[垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103805887</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103805887</guid><author>xiaofbing</author><pubDate>Thu, 02 Jan 2020 17:39:16 +0800</pubDate><description><![CDATA[目录

自动垃圾回收
如何确定内存需要被回收
可达性分析算法
引用类型可达性级别
垃圾收集算法
分代收集
垃圾收集器

自动垃圾回收

如何确定内存需要被回收
标记用来识别哪些内存正在使用，哪些不再使用。
引用计数：会有循环引用的问题。A和B相互引用，但实际上都没有被使用到。
方法区回收：在类加载中类被卸载。

可达性分析算法
把对象和引用看作一个关系图。找到一个能到作为入口对象，通过这个对象进行...]]></description><category></category></item><item><title><![CDATA[类加载机制]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103803449</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103803449</guid><author>xiaofbing</author><pubDate>Thu, 02 Jan 2020 15:53:59 +0800</pubDate><description><![CDATA[目录

运行时数据区
类生命周期
类加载器
验证问题
查看类对应的加载器
JVM如何知道我们都类在何方
类不会重复加载
类不会重复加载
类的卸载
双亲委派模型

运行时数据区

类生命周期

类加载器
先有C后有java。应用程序加载器，就是加载开发人员编写的代码。

验证问题

查看类对应的加载器
核心类库：String、Object等都属于核心类库。

/**
 * 查看类的加载器实例
 */...]]></description><category></category></item><item><title><![CDATA[Netty零拷贝机制]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103792931</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103792931</guid><author>xiaofbing</author><pubDate>Wed, 01 Jan 2020 15:58:49 +0800</pubDate><description><![CDATA[目录

Netty自己的ByteBuff
ByteBuf做的了哪些增强
ByteBuf操作
基本使用
ByteBuf动态扩容
选择合适的ByteBuf实现
Unsafe的实现
PooledByteBuf对象、内存复用
零拷贝机制

Netty自己的ByteBuff

ByteBuf做的了哪些增强

ByteBuf操作
NIO只有一个位置的字段，即positon。


基本使用
/**
 * byt...]]></description><category></category></item><item><title><![CDATA[Netty线程模型]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103757000</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103757000</guid><author>xiaofbing</author><pubDate>Sun, 29 Dec 2019 22:16:04 +0800</pubDate><description><![CDATA[目录

目标
Netty整体结构图
Netty基本使用
Netty线程模型
EventLoopGroup初始化过程
EventLoop的启动
Bind绑定端口过程
Channel概念
小结

目标
Netty简介

Netty整体结构图

Netty基本使用
Netty线程模型

EventLoopGroup初始化过程
启动的时候会构建多个EventLoopGroup。

EventLoop的启动...]]></description><category></category></item><item><title><![CDATA[NIO非阻塞网络编程]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103754401</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103754401</guid><author>xiaofbing</author><pubDate>Sun, 29 Dec 2019 17:40:15 +0800</pubDate><description><![CDATA[目录

目标
JAVA NIO
Buffer缓冲区
Buffer工作原理
Buffer基本使用
ByteBuffer内存类型
Channel通道
SocketChannel
ServerSocketChannel
Selector选择器
NIO对比BIO
小结

目标
了解NIO、熟悉Buffer API、channel、selector，NIO+多线程
JAVA NIO
NIO：new IO，非...]]></description><category></category></item><item><title><![CDATA[BIO阻塞式网络编程]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103754020</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103754020</guid><author>xiaofbing</author><pubDate>Sun, 29 Dec 2019 15:44:42 +0800</pubDate><description><![CDATA[目录

BIO网络编程
基本的服务端和客户端，Socket+IO
利用多线程技术，解决socketServer线程阻塞的问题
Http协议
Socket+IO和浏览器进行交互
BIO - 阻塞IO的含义

BIO网络编程
基本的服务端和客户端，Socket+IO。
out.write(msg.getBytes(charset)); // 阻塞，写完成
serverSocket.accept()；/...]]></description><category></category></item><item><title><![CDATA[TCP/UDP协议]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103753571</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103753571</guid><author>xiaofbing</author><pubDate>Sun, 29 Dec 2019 15:11:16 +0800</pubDate><description><![CDATA[目录

目标






目标
熟悉TCP网络协议相关内容
OSI网络七层模型
目的是构建最大的网络，分层的意义是让每一层的设计人员，不需要取关注整个网络层次，只需要关注对应的网络层次结构。

各层的主要功能
低三层目的：屏蔽底层网络复杂性，太过底层。
IP协议可以定位到某一台机器，但是无法定位到某一个端口。
传输层：承上启下的作用，保证了跨进程跨机器的数据传输，TCP/UDP就是对具体传输层的定...]]></description><category></category></item><item><title><![CDATA[J.U.C并发工具类]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103748300</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103748300</guid><author>xiaofbing</author><pubDate>Sat, 28 Dec 2019 22:22:13 +0800</pubDate><description><![CDATA[目录

目标
CountDownLatch
Semaphore
CyclicBarrier
Runnable和Callable
fork/join并发处理框架

目标
并发工具类：CountDownLatch
Fork/Join的使用
Futrue的使用
CountDownLatch
倒计数器。共享锁。由AQS共享锁实现。
countDown();-》倒计数器减一，并阻塞。
await()；当co...]]></description><category></category></item><item><title><![CDATA[并发容器类list_set_queue]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103744623</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103744623</guid><author>xiaofbing</author><pubDate>Sat, 28 Dec 2019 18:16:47 +0800</pubDate><description><![CDATA[目录

目标
ArrayList
CopyOnWriteArrayList
Set集合
HashSet
CopyOnWriteArraySet
ConcurrentSkipListSet
Queue API
ArrayBlockingQueue
LinkedBlockingQueue
ConcurrentLinkedQueue
SynchronousQueue同步队列
PriorityBlocki...]]></description><category></category></item><item><title><![CDATA[并发容器类Map]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103743420</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103743420</guid><author>xiaofbing</author><pubDate>Sat, 28 Dec 2019 14:37:02 +0800</pubDate><description><![CDATA[目录

目标
HashMap原理
ConcurrentHashMap
ConcurrentSkipListMap

目标
HashMap
ConcurrentHashMap
认识了解ConcurrentSkipListMap
HashMap内部结构和原理
线程不安全：扩容时是非原子操作，会存在数据不完整，读的时候会存在问题，线程不安全。
从抽象角度，带着问题看源码，看最熟悉的方法，主要关注是什么而...]]></description><category></category></item><item><title><![CDATA[锁原理之AQS]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103732494</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103732494</guid><author>xiaofbing</author><pubDate>Fri, 27 Dec 2019 19:37:59 +0800</pubDate><description><![CDATA[目录


ReadWriteLock




目标
实现线程安全的hashmap。
实现简单的缓存组件。
如何使用读写锁。
AQS原理。
ReadWriteLock
使用场景：

对集合操作可以实现并发读，互斥写，即给读加读锁，写加写锁。


改进提升互斥锁的性能。
锁降级：获取写锁后，可以在获取读锁，即拿着写锁，获取读锁。

基本原理

AQS抽象队列同步器
对加锁解锁的公共代码的抽象，try方...]]></description><category></category></item><item><title><![CDATA[java中一个类实例化的加载顺序]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103733989</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103733989</guid><author>xiaofbing</author><pubDate>Fri, 27 Dec 2019 16:49:24 +0800</pubDate><description><![CDATA[目录

目标
一个java对象实例化会和什么有关系？
总结

目标
了解一个java对象实例化会执行哪些操作。
一个java对象实例化会和什么有关系？

基本数据类型
引用数据类型
static字段
static代码块
构造函数
父类

public class A {
    String sA;  //基本数据类型
    static int iA;//static字段
    //stat...]]></description><category></category></item><item><title><![CDATA[Lock接口及其实现]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103725949</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103725949</guid><author>xiaofbing</author><pubDate>Fri, 27 Dec 2019 10:51:41 +0800</pubDate><description><![CDATA[目录

目标
锁的本质
Lock API
ReentrantLock
synchronized vs Lock
读写锁

目标
ReentrantLock的实现。
锁的本质
因为资源会产生争抢，会产生线程安全问题，所以提出规则，只有抢到锁，才能访问资源。锁的本质实质是添加了一个规则，怎么样才能访问到资源，获得锁，即获得了资源的访问的资格。
获取锁要去抢，和谁创建的没有关系。
Lock API

L...]]></description><category></category></item><item><title><![CDATA[java锁相关]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103722430</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103722430</guid><author>xiaofbing</author><pubDate>Thu, 26 Dec 2019 22:27:37 +0800</pubDate><description><![CDATA[目录

目标
JAVA中锁的概念
同步关键字synchronized
synchronized底层原理
堆内存中的java对象

目标
锁是访问资源的凭据，会消耗资源。
wait会破会Synchronized的原子性，因为会释放锁。
Synchronized从使用到原理。
JAVA中锁的概念
冲突：指数据的不一致性。
自旋锁：CAS操作机制，循环尝试等待。
乐观锁：不会有冲突，会进行比对判断，不一...]]></description><category></category></item><item><title><![CDATA[线程安全之原子操作]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103719326</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103719326</guid><author>xiaofbing</author><pubDate>Thu, 26 Dec 2019 17:52:33 +0800</pubDate><description><![CDATA[目录










Atomic相关类和CSA机制
原子操作

存在原子操作的问题。
核心在于资源在该操作中保持一致

反编译后字节码指令
读取- 赋值- 相加

分析字节码执行顺序

问题原因
在t1线程put后，t2线程在t1线程put之前操作，操作了无效数据，导致出现数据一致性问题。

和可见性问题的区别
可见性：先写后读，无法读到。
此原子问题：在写之前就以读取，所以和可见性问题没有...]]></description><category></category></item><item><title><![CDATA[java内存模型详解-可见性]]></title><link>https://blog.youkuaiyun.com/xiaofbing/article/details/103716259</link><guid>https://blog.youkuaiyun.com/xiaofbing/article/details/103716259</guid><author>xiaofbing</author><pubDate>Thu, 26 Dec 2019 17:02:16 +0800</pubDate><description><![CDATA[目录

JVM运行时数据区
Java内存模型 vs JVM运行时数据区
初看java内存模型
多线程中的问题
从内存结构到内存模型
JIT编译器
 volatile关键字
Shared Variables（共享变量）定义
对于同步的规则定义
Happens-before先行发生原则
final在JMM中的处理
Word Traring字节处理
double和long的特殊处理
再看Java内存模型...]]></description><category></category></item></channel></rss>