<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_lg的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_lg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_lg]]></copyright><item><title><![CDATA[JAVA BIO 编程]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/126274158</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/126274158</guid><author>java_lg</author><pubDate>Wed, 10 Aug 2022 21:12:07 +0800</pubDate><description><![CDATA[Java BIO]]></description><category></category></item><item><title><![CDATA[【计算机基础理解】]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/123290254</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/123290254</guid><author>java_lg</author><pubDate>Sat, 05 Mar 2022 10:06:09 +0800</pubDate><description><![CDATA[1.原码、反码、补码
计算机中计算使用的是补码，正数的补码、原码、反码一致，负数的反码（补码基础上-1）、原码在反码基础上取反。
2.左移、右移
int 1&lt;&lt;2 (1向左移动两位，即1乘以2的2次方)
int 1&lt;&lt;3 (1向左移动三位，即1乘以2的3次方)
int 4&gt;&gt;2((4向右移动两位，即8除以2的2次方))
int 8&gt;&gt;2((8向右移动三位，即8除以2的3次方))

...]]></description><category></category></item><item><title><![CDATA[kafka]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/107848592</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/107848592</guid><author>java_lg</author><pubDate>Thu, 06 Aug 2020 20:06:52 +0800</pubDate><description><![CDATA[1.kafka触发reblance的情况

增加partition
增加消费者
消费者主动关闭
消费者宕机了
coordinator自己也宕机了

2.参数配置
heartbeat.interval.ms： 参数指定多久发一次心跳
session.timeout.ms： 指定多久没发心跳则认为消费者挂了。
max.poll.interval.ms： 指定两次poll数据最大允许的时间延迟，如果超过了设定的时间，也会认为消费者挂了。

...]]></description><category></category></item><item><title><![CDATA[过滤器VS拦截器]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/105005391</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/105005391</guid><author>java_lg</author><pubDate>Sat, 21 Mar 2020 13:46:07 +0800</pubDate><description><![CDATA[1.过滤器
过滤器是处于客户端与服务器资源文件之间的一道过滤网，在访问资源文件之前，通过一系列的过滤器对请求进行修改、判断等，把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤，拦截或修改响应。
2.拦截器
java中的拦截器是动态拦截action调用的对象。依赖于web框架，在springmvc中依赖于SpringMVC框架，在实现上基于Java的反射机制，属于AOP的一种应用，作用类似于...]]></description><category></category></item><item><title><![CDATA[Zuul配置详解]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104964307</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104964307</guid><author>java_lg</author><pubDate>Thu, 19 Mar 2020 13:35:29 +0800</pubDate><description><![CDATA[1.路由中参数path、url和path、serviceId配置区别
Spring Cloud Zuul默认包含了对Hystrix和Ribbon的依赖，所以Zuul拥有线程隔离和断路器的自我保护功能，以及对客户端的负载均衡能力。但是，需要注意在使用path和url的映射关系来配置路由规则时，对于路由转发的请求不会采用HystrixCommand机制，所以这类路由请求没有线程隔离和断路器的保护以及负...]]></description><category></category></item><item><title><![CDATA[动态代理]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104805431</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104805431</guid><author>java_lg</author><pubDate>Wed, 11 Mar 2020 21:16:27 +0800</pubDate><description><![CDATA[动态代理
1.特点
字节码随用随创建，随用随加载
2.作用
不修改源码的基础上对方法增强
3.分类
3.1基于接口的动态代理
涉及的类：Proxy
提供者：JDK官方
如何创建对象：使用Proxy的newProxyInstance方法
创建代理对象的要求：被代理类最少实现一个接口，如果没有则不能使用。
newProxyInstance方法的参数：
Classloader:类加载器，用于加载代理对象...]]></description><category></category></item><item><title><![CDATA[Nginx的location配置]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104706151</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104706151</guid><author>java_lg</author><pubDate>Fri, 06 Mar 2020 22:38:47 +0800</pubDate><description><![CDATA[1.Nginx location 配置语法
location [ = | ~ | ~* | ^~ ] uri { ... }     
前缀 + uri（字符串/正则表达式）
location @name { ... }                     
@ + name

前缀含义
=  ：精确匹配（必须全部相等）
~  ：大小写敏感
~* ：忽略大小写
^~ ：只需匹配uri部分
@ ...]]></description><category></category></item><item><title><![CDATA[SpringCloud-Hystrix配置]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104700717</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104700717</guid><author>java_lg</author><pubDate>Fri, 06 Mar 2020 17:46:06 +0800</pubDate><description><![CDATA[Hystrix 默认加载的配置文件 - 限流、 熔断示例
1.线程池大小
hystrix.threadpool.default.coreSize=1
缓冲区大小， 如果为-1，则不缓冲，直接进行降级 fallback
hystrix.threadpool.default.maxQueueSize=200
缓冲区大小超限的阈值，超限就直接降级
hystrix.threadpool.default.q...]]></description><category></category></item><item><title><![CDATA[Mysql索引失效]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104669817</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104669817</guid><author>java_lg</author><pubDate>Thu, 05 Mar 2020 10:56:52 +0800</pubDate><description><![CDATA[索引失效
1.最佳左前缀法则
假设index(a,b,c)
Where语句                                							索引是否被使用
where a = 3     													Y,使用到a
where a = 3 and b = 5											Y,使用到a，b
where a = 3 and b = 5 and c = 4							Y...]]></description><category></category></item><item><title><![CDATA[GIT命令]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/104636578</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/104636578</guid><author>java_lg</author><pubDate>Tue, 03 Mar 2020 17:10:54 +0800</pubDate><description><![CDATA[git 操作
git  relog  查看历史记录
git reset --hard 历史记录标识      撤销提交的记录到历史某次
git init 初始化仓库
git commit 提交到版本库
git status 查看仓库状态
git branch 分支名  创建分支
git checkout 分支名  切换分支
git branch -d 分支名  删除分支
git merge 分支名...]]></description><category></category></item><item><title><![CDATA[AQS解读及AQS相关实现类]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103372537</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103372537</guid><author>java_lg</author><pubDate>Tue, 03 Dec 2019 18:04:21 +0800</pubDate><description><![CDATA[AQS解读及相关AQS实现类
1. AQS概述
简述：AQS全称AbstractQueuedSynchronizer，即抽象队列同步器。AQS是用来构建锁或者其他同步组件的基础框架，它使用一个整型的volatile变量state来维护同步状态，通过内置的FIFO队列来完成资源获取线程的排队工作。AQS为一系列同步器依赖于一个单独的原子变量state的同步器提供了一个非常有用的基础。
AQS的设计是...]]></description><category></category></item><item><title><![CDATA[J.U.C并发容器类（二）]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103371660</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103371660</guid><author>java_lg</author><pubDate>Tue, 03 Dec 2019 17:14:28 +0800</pubDate><description><![CDATA[HashMap、ConcurrentHashMap源码解读
简述： 目前JDK已经发布到JDK12，主流的JDK版本是JDK8， 但是如果阅读HashMap的源码建议先看JDK7的源码。JDK7和JDK8的源码中HashMap的实现原理大体相同，只不过是在JDK8中做了部分优化。但是JDK8的源码可读性非常差。
HashMap 是一个存储键值对(key-value)映射的散列表，继承于Abstra...]]></description><category></category></item><item><title><![CDATA[J.U.C并发容器类（一）]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103364946</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103364946</guid><author>java_lg</author><pubDate>Tue, 03 Dec 2019 12:33:47 +0800</pubDate><description><![CDATA[JDK容器类List，Set，Queue源码解读
简述：List，Set，Queue都是继承Collection接口的单列集合接口。List常用的实现主要有ArrayList，LinkedList，List中的数据是有序可重复的。Set常用的实现主要是HashSet，Set中的数据是无序不可重复的。Queue常用的实现主要有ArrayBlockingQueue，LinkedBlockingQueu...]]></description><category></category></item><item><title><![CDATA[深入理解JAVA中的锁（二）]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103351617</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103351617</guid><author>java_lg</author><pubDate>Mon, 02 Dec 2019 16:40:15 +0800</pubDate><description><![CDATA[深入理解JAVA中的锁（二）
1. locks包的介绍

2.Lock 接口

代码示例：
public class GetLockDemo {
  // 公平锁  
   static Lock lock =new ReentrantLock(true);
  // 非公平锁  static Lock lock = new ReentrantLock();
  public static voi...]]></description><category></category></item><item><title><![CDATA[深入理解JAVA中的锁（一）]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103350939</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103350939</guid><author>java_lg</author><pubDate>Mon, 02 Dec 2019 16:22:06 +0800</pubDate><description><![CDATA[深入理解JAVA中的锁
1. 锁的概念
自旋锁 ：是指当一个线程在获取锁的时候，如果锁已经被其他线程获取，那么该线程将循环等待，然后不断判断锁是否能够被成功获取，直到获取到锁才会退出循环。 例如：CAS在for循环的应用
乐观锁 ：假定没有冲突，在修改数据时如果发现数据和之前获取的不一致，则读最新数据，修改后重试修改。 例如：CAS
悲观锁 ：假定会发生并发冲突，同步所有对数据的相关操作，从读数据...]]></description><category></category></item><item><title><![CDATA[线程安全之原子操作]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103349521</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103349521</guid><author>java_lg</author><pubDate>Mon, 02 Dec 2019 15:35:49 +0800</pubDate><description><![CDATA[线程安全之原子操作
1. 原子操作
原子性就是指该操作是不可再分的。不论是多核还是单核，具有原子性的量，同一时刻只能有一个线程来对它进行操作。
原子操作可以是一个步骤，也可以是多个步骤，但是其顺序不可以被打乱，也不可以被切割而只执行其中的一部分（不可中断性）。
将操作视作一个整体，资源在该次操作中保持一致，这是原子性的核心特征。
首先我们来看一个非原子操作的示例：
public class Cou...]]></description><category></category></item><item><title><![CDATA[Java内存模型以及线程安全的可见性问题]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/103345701</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/103345701</guid><author>java_lg</author><pubDate>Mon, 02 Dec 2019 11:25:27 +0800</pubDate><description><![CDATA[Java内存模型以及线程安全的可见性问题
1.Java内存模型 VS JVM运行时数据区
1.1定义
JAVA语言规范提出JAVA内存模型，JAVA内存模型是对多线程程序的一些归则。
JVM虚拟机规范提出JVM运行时数据区，JVM运行时数据区描述的是线程共享区域堆、方法区，线程独占区域虚拟机栈、本地方法栈、程序计数器。

1.2 多线程问题

1.3 多线程问题原因分析
1.cpu高速缓存导致，程...]]></description><category></category></item><item><title><![CDATA[线程池应用及实现原理剖析]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/99240481</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/99240481</guid><author>java_lg</author><pubDate>Sun, 11 Aug 2019 22:44:35 +0800</pubDate><description><![CDATA[线程池应用及实现原理剖析
1.线程池
1.1 为什么使用线程池

1.2线程池原理

1.3线程池相关API

1.4线程池API
方法定义(ExecutorService)

方法定义(ScheduledExecutorService)

Executors工具类

2.线程池原理 - 任务执行过程

代码示例：
import java.util.List;
import java.util.c...]]></description><category></category></item><item><title><![CDATA[线程的通信和封闭]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/99207528</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/99207528</guid><author>java_lg</author><pubDate>Sun, 11 Aug 2019 17:14:16 +0800</pubDate><description><![CDATA[线程的通信和封闭
1.线程通信的方式
1.1实现方式
要想实现线程之间的协同， 如： 线程先后执行顺序， 获取某个线程的执行结果等， 涉及线程之间的相互通信， 分为下面四类：

文件共享
网络共享
变量共享
JDK提供的线程协调API  细分为：suspend/resume,  wait/notify, park/unpark

文件共享

变量共享

线程协作 - JDK API

1.2 AP...]]></description><category></category></item><item><title><![CDATA[CPU缓存和内存屏障]]></title><link>https://blog.youkuaiyun.com/java_lg/article/details/99203775</link><guid>https://blog.youkuaiyun.com/java_lg/article/details/99203775</guid><author>java_lg</author><pubDate>Sun, 11 Aug 2019 16:39:20 +0800</pubDate><description><![CDATA[CPU缓存和内存屏障
1.CPU性能优化手段 - 缓存

2.多级缓存
L1 Cache (一级缓存)是CPU第一层高速缓存, 分为数据缓存和指令缓存, 一般服务器CPU的L1缓存的容量通常在32-4096kb。
L2 Cache (二级缓存) 由于L1高速缓存的容量限制, 为了再次提高CPU的运算速度, 在CPU外部放置一高速缓存存储器, 即二级缓存。
L3 Cache(三级缓存)现在都是内置的...]]></description><category></category></item></channel></rss>