自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 JAVA BIO 编程

Java BIO

2022-08-10 21:12:07 273 1

原创 【计算机基础理解】

1.原码、反码、补码计算机中计算使用的是补码,正数的补码、原码、反码一致,负数的反码(补码基础上-1)、原码在反码基础上取反。2.左移、右移int 1<<2 (1向左移动两位,即1乘以2的2次方)int 1<<3 (1向左移动三位,即1乘以2的3次方)int 4>>2((4向右移动两位,即8除以2的2次方))int 8>>2((8向右移动三位,即8除以2的3次方))...

2022-03-05 10:06:09 147

原创 kafka

1.kafka触发reblance的情况增加partition增加消费者消费者主动关闭消费者宕机了coordinator自己也宕机了2.参数配置heartbeat.interval.ms: 参数指定多久发一次心跳session.timeout.ms: 指定多久没发心跳则认为消费者挂了。max.poll.interval.ms: 指定两次poll数据最大允许的时间延迟,如果超过了设定的时间,也会认为消费者挂了。...

2020-08-06 20:06:52 117

原创 过滤器VS拦截器

1.过滤器过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。2.拦截器java中的拦截器是动态拦截action调用的对象。依赖于web框架,在springmvc中依赖于SpringMVC框架,在实现上基于Java的反射机制,属于AOP的一种应用,作用类似于...

2020-03-21 13:46:07 247

原创 Zuul配置详解

1.路由中参数path、url和path、serviceId配置区别Spring Cloud Zuul默认包含了对Hystrix和Ribbon的依赖,所以Zuul拥有线程隔离和断路器的自我保护功能,以及对客户端的负载均衡能力。但是,需要注意在使用path和url的映射关系来配置路由规则时,对于路由转发的请求不会采用HystrixCommand机制,所以这类路由请求没有线程隔离和断路器的保护以及负...

2020-03-19 13:35:29 4052

原创 动态代理

动态代理1.特点字节码随用随创建,随用随加载2.作用不修改源码的基础上对方法增强3.分类3.1基于接口的动态代理涉及的类:Proxy提供者:JDK官方如何创建对象:使用Proxy的newProxyInstance方法创建代理对象的要求:被代理类最少实现一个接口,如果没有则不能使用。newProxyInstance方法的参数:Classloader:类加载器,用于加载代理对象...

2020-03-11 21:16:27 80

原创 Nginx的location配置

1.Nginx location 配置语法location [ = | ~ | ~* | ^~ ] uri { ... } 前缀 + uri(字符串/正则表达式)location @name { ... } @ + name前缀含义= :精确匹配(必须全部相等)~ :大小写敏感~* :忽略大小写^~ :只需匹配uri部分@ ...

2020-03-06 22:38:47 1014

原创 SpringCloud-Hystrix配置

Hystrix 默认加载的配置文件 - 限流、 熔断示例1.线程池大小hystrix.threadpool.default.coreSize=1缓冲区大小, 如果为-1,则不缓冲,直接进行降级 fallbackhystrix.threadpool.default.maxQueueSize=200缓冲区大小超限的阈值,超限就直接降级hystrix.threadpool.default.q...

2020-03-06 17:46:06 351

原创 Mysql索引失效

索引失效1.最佳左前缀法则假设index(a,b,c)Where语句 索引是否被使用where a = 3 Y,使用到awhere a = 3 and b = 5 Y,使用到a,bwhere a = 3 and b = 5 and c = 4 Y...

2020-03-05 10:56:52 178

原创 GIT命令

git 操作git relog 查看历史记录git reset --hard 历史记录标识 撤销提交的记录到历史某次git init 初始化仓库git commit 提交到版本库git status 查看仓库状态git branch 分支名 创建分支git checkout 分支名 切换分支git branch -d 分支名 删除分支git merge 分支名...

2020-03-03 17:10:54 184

原创 AQS解读及AQS相关实现类

AQS解读及相关AQS实现类1. AQS概述简述:AQS全称AbstractQueuedSynchronizer,即抽象队列同步器。AQS是用来构建锁或者其他同步组件的基础框架,它使用一个整型的volatile变量state来维护同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。AQS为一系列同步器依赖于一个单独的原子变量state的同步器提供了一个非常有用的基础。AQS的设计是...

2019-12-03 18:04:21 1865

原创 J.U.C并发容器类(二)

HashMap、ConcurrentHashMap源码解读简述: 目前JDK已经发布到JDK12,主流的JDK版本是JDK8, 但是如果阅读HashMap的源码建议先看JDK7的源码。JDK7和JDK8的源码中HashMap的实现原理大体相同,只不过是在JDK8中做了部分优化。但是JDK8的源码可读性非常差。HashMap 是一个存储键值对(key-value)映射的散列表,继承于Abstra...

2019-12-03 17:14:28 97

原创 J.U.C并发容器类(一)

JDK容器类List,Set,Queue源码解读简述:List,Set,Queue都是继承Collection接口的单列集合接口。List常用的实现主要有ArrayList,LinkedList,List中的数据是有序可重复的。Set常用的实现主要是HashSet,Set中的数据是无序不可重复的。Queue常用的实现主要有ArrayBlockingQueue,LinkedBlockingQueu...

2019-12-03 12:33:47 124

原创 深入理解JAVA中的锁(二)

深入理解JAVA中的锁(二)1. locks包的介绍2.Lock 接口代码示例:public class GetLockDemo { // 公平锁 static Lock lock =new ReentrantLock(true); // 非公平锁 static Lock lock = new ReentrantLock(); public static voi...

2019-12-02 16:40:15 209

原创 深入理解JAVA中的锁(一)

深入理解JAVA中的锁1. 锁的概念自旋锁 :是指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断判断锁是否能够被成功获取,直到获取到锁才会退出循环。 例如:CAS在for循环的应用乐观锁 :假定没有冲突,在修改数据时如果发现数据和之前获取的不一致,则读最新数据,修改后重试修改。 例如:CAS悲观锁 :假定会发生并发冲突,同步所有对数据的相关操作,从读数据...

2019-12-02 16:22:06 366

原创 线程安全之原子操作

线程安全之原子操作1. 原子操作原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。原子操作可以是一个步骤,也可以是多个步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。将操作视作一个整体,资源在该次操作中保持一致,这是原子性的核心特征。首先我们来看一个非原子操作的示例:public class Cou...

2019-12-02 15:35:49 299

原创 Java内存模型以及线程安全的可见性问题

Java内存模型以及线程安全的可见性问题1.Java内存模型 VS JVM运行时数据区1.1定义JAVA语言规范提出JAVA内存模型,JAVA内存模型是对多线程程序的一些归则。JVM虚拟机规范提出JVM运行时数据区,JVM运行时数据区描述的是线程共享区域堆、方法区,线程独占区域虚拟机栈、本地方法栈、程序计数器。1.2 多线程问题1.3 多线程问题原因分析1.cpu高速缓存导致,程...

2019-12-02 11:25:27 203

原创 线程池应用及实现原理剖析

线程池应用及实现原理剖析1.线程池1.1 为什么使用线程池1.2线程池原理1.3线程池相关API1.4线程池API方法定义(ExecutorService)方法定义(ScheduledExecutorService)Executors工具类2.线程池原理 - 任务执行过程代码示例:import java.util.List;import java.util.c...

2019-08-11 22:44:35 411

原创 线程的通信和封闭

线程的通信和封闭1.线程通信的方式1.1实现方式要想实现线程之间的协同, 如: 线程先后执行顺序, 获取某个线程的执行结果等, 涉及线程之间的相互通信, 分为下面四类:文件共享网络共享变量共享JDK提供的线程协调API 细分为:suspend/resume, wait/notify, park/unpark文件共享变量共享线程协作 - JDK API1.2 AP...

2019-08-11 17:14:16 131

原创 CPU缓存和内存屏障

CPU缓存和内存屏障1.CPU性能优化手段 - 缓存2.多级缓存L1 Cache (一级缓存)是CPU第一层高速缓存, 分为数据缓存和指令缓存, 一般服务器CPU的L1缓存的容量通常在32-4096kb。L2 Cache (二级缓存) 由于L1高速缓存的容量限制, 为了再次提高CPU的运算速度, 在CPU外部放置一高速缓存存储器, 即二级缓存。L3 Cache(三级缓存)现在都是内置的...

2019-08-11 16:39:20 232

原创 线程基础概念

线程基础概念1.线程状态介绍1.1线程状态1.2多线程运行状态切换示例图1.3多线程运行状态切换示例package main.java.com.study.Thread;/** * 示例2 - 多线程运行状态切换示例 <br/> */public class Demo2 { public static Thread thread1; public static...

2019-07-21 11:18:27 99

原创 JAVA程序运行原理分析

JAVA程序运行原理分析1.class文件内容通过WinHex 可对编译后的class文件,进行16进制解析展示,如下图:2.JVM运行时数据区2.1 线程独享/线程共享2.2 方法区2.3 堆2.4 虚拟机栈2.5 本地方法栈2.6 程序计数器3.程序分析3.1程序代码及.class文件内容3.2程序分析3.2.1运行分析(1)3.2.2运行分...

2019-07-19 23:31:56 108

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除