自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java高级--网易微专业课程--2001期

专题一 Java核心基础–万丈高楼平地起,勿在浮沙筑高台 1.Java程序运行原理分析 JVM运行时数据区、class文件内容分析 JVM类加载机制 2.注解、反射和封装 3.多线程核心 线程状态(六种) 线程可见性(JMM内存模型) 线程原子性(Java锁/synchronized、CAS、AQS源码原理) 线程封闭(ThreadLocal原理和栈封闭) 线程通信和控制、死锁(suspend/resume /wait/notify/park/unpark) 线程池原理 4.JVM性能优化 JVM

2020-06-28 20:48:34 298

原创 线程安全--线程原子性

一、线程安全概念 临界区:关键部分代码段在多线程并发执行,会对执行结果影响。 竞态条件:多线程访问下,在临界区的特殊条件导致不安全的问题。 共享资源:多线程并发访问的资源。 栈封闭:不会在线程之间共享变量,ThreadLocal保证线程安全的原理。 局部变量:引用本身不会共享,方法内创建的对象不会在线程间传递的话也线程安全的。 不可变对象:不提供修改的(对象状态唯一)方法,即使共享了也是线程安全的。 二、原子操作 1.原子操作概念 原子操作:一系列的操作步骤,顺序不可以打乱,也不可以的切割只执行一部分。 存

2020-06-27 16:05:47 784

原创 线程可见性问题--JVM内存模型

一、回顾–JVM程序运行原理 jvm内存存储结构: 线程共享区存在多个线程的竞争和协同的问题,java多线程核心技术就是线程安全机制和协作机制,虚拟机的内存模型是针对多线程问题提供的java语言规范。 一个例子,揭示线程可见性问题: package shen.example.demo.mutithread; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * &l

2020-06-27 15:25:42 161

原创 JAVA线程状态:5种?6种?

一、 java线程状态到底几种? 线程状态网上各种奇葩文章描述5种的也有,7种的也有,这里告诉你: JDK源码中Thread类内部有枚举类State详细描述了线程6种线程状态: 1.NEW:尚未启动; 2.RUNNABLE:运行中 3.BlOCKED:线程等待monitor锁定的状态(synchronized同步块中阻塞) 4.WAITING:等待线程,主动调用wait()、join()、park()后的状态 5.TIMED_WAITING:等待超时,Thead.sleep(long),wait(long)

2020-06-27 11:58:00 948

原创 JVM内存缓存优化

一、什么是缓存 临时存储数据的高速存储层 本质是空间换时间,提升接口响应速度 硬件缓存:cpu多级缓存 客户端缓存:比如浏览器缓存 服务端缓存:内存缓存(进程内)、分布式缓存、组合缓存 二、使用场景 高并发查询 高并发写入 热点查询 热点写入 三、缓存特点 需要设置存活时间–过期策略 空间有限–淘汰策略 支持并发更新 四、使用缓存需要考虑的问题 缓存一致性:缓存数据和磁盘数据不同业务场景存在一致性要求;需要提供同步方案,更新操作候直接删除缓存或者利用MQ的消息一致性保证或者任务调度更新缓存 缓存

2020-06-27 02:46:13 887

原创 单机限流实战

一、 限流算法介绍 漏桶算法 该算法关键是漏桶取出请求的速率是固定的,请求过多(流入)超过容量时会排队或者拒绝。所以处理的请求的速度是固定的,面对大量的突发请求,请求会排队按照固定的速率处理。 令牌桶算法 该算法的核心是在创建令牌桶的时候,指定固定的速率生成令牌可以应对突发流量。同时能够使用所有的请求平均分布到时间段区间内。 和漏桶不一样,令牌桶有以下特点: 固定的速率放入令牌 正常情况下,桶内会保持一定数量的令牌(桶大小),满则丢弃令牌。当请求到达时取令牌,取到则可以执行。 桶空了取不到则等待或直

2020-06-26 20:02:03 270

原创 消息中间件MQ-基于RabbitMQ分布式事务处理

一、回顾 1.消息中间件核心概念 消息中间件,本质就是接收数据、保存数据、发送数据的网络应,常常应用在分布式架构系统中,实现业务服务(系统)之间拆分解耦、可靠性消息通信等协同处理。基于消息(数据)传递和消息队列,实现跨进程的通讯。 理解上可以认为是一个外置的queue队列,但需要协同不同的服务或系统,所以复杂的多,一般的消息中间件设计核心有5个: 支持的协议–解决消息通讯的问题 持久化机制–消息数据存入磁盘 消息分发机制–发布订阅(推送)、拉取、重发等,解决消息消费方式 高可用机制–支持集群部署,实现高

2020-06-25 22:37:50 399

原创 Java基础知识梳理和回顾

前言 很久没写博客了,最近在学习网易的高级java工程师的课程,在这儿重新梳理下自己的知识体系。如有纰漏欢迎指正。 Java语言重要特性 Java一种面向对象的高级语言。和其他高级语言一样都有总要的特性,继承、重写/重载、多态是Java重要,也是基本的特性。无论Java怎么发展,这是Java语言的基石。 继承extends/implements 继承我们肉眼可见的作用是:可消除重复代码(抽象类的使用),继承我们记住四个特点就行: 1.子类拥有父类非private属性和方法; 2.子类可以扩展父类,即拥

2020-05-11 01:11:09 311

空空如也

空空如也

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

TA关注的人

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