自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(279)
  • 资源 (14)
  • 收藏
  • 关注

原创 鸿蒙系统学习笔记(一) 鸿蒙系统介绍

个人学习鸿蒙系列 鸿蒙系统介绍目录个人学习鸿蒙系列 鸿蒙系统介绍一、鸿蒙系统简介1.简介2.发展进程二、鸿蒙系统特点1.分布架构2.低延时+高性能IPC技术实现系统天生流畅3.基于微内核架构重塑终端设备可信安全4.通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享参考1.https://github.com/Awesome-HarmonyOS/HarmonyOS/blob/master/doc/README-zh.md2.https://blog..

2021-05-06 14:57:06 18548 15

原创 GitHub开源项目学习 Mybatis源码学习

个人学习GitHub开源项目系列 Mybatis源码篇Github Link: https://github.com/mybatis/mybatis-3Mybatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映...

2019-01-24 17:14:10 3587

原创 GitHub开源项目学习 Cloud-Platform

个人学习GitHub开源项目系列 Cloud-Platform篇Github Link: https://gitee.com/minull/ace-securityCloud-Platform简介Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系...

2019-01-22 16:48:08 5959

原创 Kubernetes思维导图总结

 自己学习总结了一些思维导图,后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary        

2018-11-26 10:22:07 7062 4

原创 设计模式学习笔记(九) - 迭代器模式 Iterator & 访问者模式 Visitor

设计模式学习笔记(九) - 迭代器模式 Iterator & 访问者模式 Visitor

2022-10-17 17:18:05 219 1

原创 设计模式学习笔记(八) - 代理模式 Proxy

设计模式学习笔记(八) - 代理模式 Proxy

2022-10-11 16:38:22 357

原创 设计模式学习笔记(七) - 享元模式 Flyweight

设计模式学习笔记(七) - 享元模式 Flyweight

2022-10-11 09:06:27 226

原创 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)

设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)

2022-10-10 17:28:48 158

原创 设计模式学习笔记(五) - 观察者模式 Observer

设计模式学习笔记(五) - 观察者模式 Observer

2022-10-10 17:15:16 277

原创 设计模式学习笔记(四) - 装饰器模式 Decorator

设计模式学习笔记(四) - 装饰器模式 Decorator

2022-10-10 16:12:47 620

原创 设计模式学习笔记(三) - 工厂模式 Factory

设计模式学习笔记(三) - 工厂模式 Factory

2022-10-10 14:53:57 199

原创 设计模式学习笔记(二) - 策略模式

设计模式学习笔记(二) - 策略模式

2022-10-10 09:09:21 225

原创 设计模式学习笔记(一) - 单例模式

设计模式学习笔记(一) - 单例模式

2022-10-09 17:30:31 199

原创 Java并发编程图册学习(六) 面试 volatile 关键字

对一个 volatile 域的写, happens-before 于任意后续对这个 volatile 域的读一、happens-before 之 volatile 变量规则JMM 针对编译器定制的 volatile 重排序的规则,那 JMM 是怎样禁止重排序的呢? 答案是内存屏障二、内存屏障 (Memory Barriers / Fences)为了实现 volatile 的内存语义,编译器在生成字节码时,会在指令序列中插入内存屏障来禁止特定类型的处理器重排序这句话有点抽象,..

2022-05-10 23:05:32 201

原创 Java并发编程图册学习(五) 解决原子性问题,首先需要宏观理解

目录一、前言二、锁三、总结一、前言原子性问题的源头就是线程切换,但在多核 CPU的大背景下,不允许线程切换是不可能的互斥: 同一时刻只有一个线程执行上面这句话的意思是: 对共享变量的修改是互斥的,也就是说线程 A 修改共享变量时其他线程不能修改,这就不存在操作被打断的问题了二、锁 synchronized 的三种用法:public class ThreeSync { private static final Object object = new Obj

2022-05-05 17:57:09 416

原创 Java并发编程图册学习(四) 有序性可⻅性 Happens-before

目录一、前言二、Happens-before1. 程序顺序性规则2. volatile变量规则3. 传递性规则4.监视器锁规则5. start()规则6. join()规则三、总结一、前言1. 作为我们程序猿不想写出 bug 影响 KPI,所以希望内存模型易于理解、易于编程。这就需要基于一个强内存模型来编写代码2. 作为编译器和处理器不想让外人说它处理速度很慢,所以希望内存模型对他们束缚越少越好,可以由他们擅自优化,这就需要基于一个弱内存模型既然.

2022-05-05 17:23:06 119

原创 Java并发编程图册学习(三) 并发Bug之源有三,找对根源是关键

一、前言作 为"资本家",你要尽可能的榨取 CPU,内存与 IO 的剩余价值,但三者完成任务的 速度相差很大,CPU > 内存 > IO分,CPU 是天,那内存就是地,内存是天,那 IO 就是地,那怎样平衡三者,提升整体速度呢?...

2022-05-05 16:14:29 394

原创 Java并发编程图册学习(二) 透彻理解并发三个核心是关键

目录一、并发编程可以抽象成三个核心问题二、分工三、同步/协作四、互斥五、总结一、并发编程可以抽象成三个核心问题分工 同步/协作 互斥二、分工将当前 Sprint 的 Story 拆分成「合适」大小的 Task,并且安排给「合适」的 Team Member 去完成这里面用了两个「合适」,将 Story 拆分成大小适中,可完成的 Task 是非常重要的。拆分的粒度太粗,导致这个任务完成难度变高,耗时⻓,不易与其他人配合; 拆分的粒度太细,又导致任务太多,不好管

2022-04-26 17:05:01 211

原创 Java并发编程图册学习(一) 并发的世界很有趣

一、并发开胃菜1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个⻋间使用。也就是说,一个⻋间开工的时候,其他⻋间都必须停工。背后的含义就是,单个 CPU 一次只能运行一个任务。3.进程就好比工厂的⻋间,它代表 CPU 所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4.一个⻋间里,可以有很多工人。他们协同完成一个任务。5.线程就好比⻋间里的工人。一个进程可以包括多个线程。6.

2022-04-26 16:47:04 191

原创 JDK源码剖析- Java并发实现原理学习 (四) wait()与notify()

目录一、生产者-消费者模型二、为什么必须和synchronized一起使用三、为什么wait()的时候必须释放锁四、wait()与notify()的问题一、生产者-消费者模型 生产者-消费者模型是一个常见的多线程编程模型。一个内存队列,多个生产者线程往内存队列中放数据;多个消费者线程从内存队列中取数据。(1)内存队列本身要加锁,才能实现线程安全。(2)阻塞。当内存队列满了,生产者放不进去时,会被阻塞; 当内存队列是空的时候,消费者无事可做,会被阻塞。(3)双向通知。

2022-04-26 09:24:04 240

原创 JDK源码剖析- Java并发实现原理学习 (三) synchronized关键字

目录一、锁的对象是什么二、锁的本质是什么三、Synchronized实现原理一、锁的对象是什么很容易误解 synchronized 关键字:它通常加在所有的静态成员函数和非静态成员函数的前面,表面看好像是“函数之间的互斥”,其实不是,synchronized关键字其实是“给某个对象加了把锁” 等价于对于非静态成员函数,锁其实是加在对象a上面的;对于静态成员函数,锁是加在A.class上面的。当然class本身也是对象二、锁的本质是什么多个线程要访问同一.

2022-04-26 08:56:53 183

原创 JDK源码剖析- Java并发实现原理学习 (二) InterruptedException与Interrupt函数

一、什么情况下会抛出Interrupted异常Interrupt这个词很容易让人产生误解。从字面意思来看,好像是说一个线程运行到一半,把它中断了,然后抛出了InterruptedExcept ion异常,其实并不是。这个时候,在主线程中调用一句t.interrupt(),请问该线程是否会抛出异常? 答案是不会。假设这个线程阻塞在一个 synchronized 关键字 的地方,正准备拿锁,如下代码所示。在主线程中调用一句t.interrupt(),请问该线程是否会抛出异常?.

2022-04-25 14:37:01 284

原创 JDK源码剖析- Java并发实现原理学习 (一) 线程的优雅关闭

一、stop()与destroy()函数线程是“一段运行中的代码”,或者说是一个运行中的函数。既然是在运行中,就存在一个最基本的问题: 运行到一半的线程能否强制杀死?答案肯定是不能。在Java中,有stop()、destory()之类的函数,但这些函数都是官方明确不建议使用的。原因很简单,如果强制杀死线程,则线程中所使用的资源,例如文件描述符、网络连接等不 能正常关闭。一个线程一旦运行起来,就不要去强行打断它,合理的关闭办法是让其运行完(也就是函数执行完毕),干净地释放掉所有资源,然后退.

2022-04-25 11:12:19 276

原创 Spring漫画学习笔记(十) 什么是BeanPostProcessor

2022-02-13 21:56:08 290

原创 Spring漫画学习笔记(九) 什么是ApplicationContext

2022-02-13 21:33:44 172

原创 Spring漫画学习笔记(八) 什么是FactoryBean

2022-02-13 21:09:47 107

原创 Spring漫画学习笔记(七) @Value是如何工作的

2022-02-13 21:00:26 132

原创 Spring漫画学习笔记(六) @Resource是如何工作的

2022-02-13 20:55:46 118

原创 Spring漫画学习笔记(五) @Autowired是如何工作的

1.@Autowired写在属性上2.@Autowired写在方法上 3.@Autowired写在构造方法上

2022-02-13 20:51:20 95

原创 Spring漫画学习笔记(四) 什么是Bean生命周期

2022-02-13 20:40:27 189

原创 Spring漫画学习笔记(二) 什么是BeanFactory

2022-02-12 23:42:32 212

原创 Spring漫画学习笔记(一) 什么是BeanDefinition

2022-02-12 23:37:07 250

原创 IT老齐架构300讲笔记(086) 新年将至,100W用户8000W流量在线贺卡应用架构如何优化

目录一、场景背景二、架构分析2.1 分析核心复杂度2.2 计算架构核心数据三、架构改进3.1 结果推导​3.2 改进架构​专栏链接: IT老齐架构300讲笔记一、场景背景 二、架构分析2.1 分析核心复杂度当下架构核心复杂度有3点每个贺卡要占用5mb的带宽,而单台ECS只有200MB,肯定不够用 单台ECS API性能极限有限,肯定扛不住 100万用户在5个小时内预计将产生8000万数据,数据库扛得住吗2.2 计算架构核心数据.

2022-01-25 17:10:00 2626

原创 IT老齐架构300讲笔记(077) 几张图讲明白RocketMQ高可用方案

目录一、RocketMQ有哪些角色二、RocketMQ消息生产消费流程三、Broker主挂了RocketMQ怎么办​四、Broker主从都挂了RocketMQ怎么办五、NameServer挂了RocketMQ怎么办六、同步复制与异步复制之间的区别于应用场景专栏链接: IT老齐架构300讲笔记一、RocketMQ有哪些角色二、RocketMQ消息生产消费流程三、Broker主挂了RocketMQ怎么办不会进行自动的主从切换四、Broker..

2022-01-24 23:27:38 2953

原创 IT老齐架构300讲笔记(074) 从76237到753毫秒,海量数据大页码MySQL查询该如何优化?

目录一、场景需求二、查询改进2.1 初步改进2.2 利用上下页机制改进2.3 连续切换页还要考虑出现大量重复数据的情况专栏链接: IT老齐架构300讲笔记一、场景需求按日期升序排列,查看第50000页数据二、查询改进2.1 初步改进 2.2 利用上下页机制改进2.3 连续切换页还要考虑出现大量重复数据的情况...

2022-01-24 17:25:06 2281

原创 IT老齐架构300讲笔记(068) 高并发电商热门商品缓存访问倾斜,该怎么解决

目录一、热门商品缓存访问倾斜二、访问倾斜解决方案 2.1 热门数据分片2.2 如何区分热点数据2.3 缓存前置 + 闪电缓存专栏链接: IT老齐架构300讲笔记一、热门商品缓存访问倾斜访问倾斜: 少量的服务器承载了大量的请求二、访问倾斜解决方案热门数据分片(热点数据特征是短时间访问超高,数据总量相对较少) 缓存前置 + 闪电缓存2.1 热门数据分片 2.2 如何区分热点数据2.3 缓存前置 + 闪电缓存...

2022-01-23 23:04:49 368

原创 IT老齐架构300讲笔记(065) 十分钟上手阿里巴巴分布式流控神器Alibaba Sentinel

目录一、为什么需要做流量控制1.1Sentinel 是什么?1.2 Sentinel架构1.3 Sentinel 的开源生态二、Alibaba Sentinel 部署与接入2.1 启动Sentinel控制台2.2 启动Sentinel Demo三、Sentinel拦截执行原理一、为什么需要做流量控制1.1Sentinel 是什么? https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8DSe..

2022-01-21 15:56:40 255

原创 IT老齐架构300讲笔记(064) 上了微服务就能高并发?扯淡,几张图给你讲明白微服务架构的作用

目录一、微服务帮我们解决了什么问题?1.1 系统间通信困难1.2 系统内部复杂度对外暴露1.3 系统间通信逻辑复杂1.4 系统的重复建设二、微服务改造2.1 改造后的微服务架构2.2 标准化的通信过程Restful2.3 对外屏蔽系统内部复杂度2.4 有序的调用链路2.5 大一统的架构设计2.6 规避大一统的架构设计一、微服务帮我们解决了什么问题?1.1 系统间通信困难1.2 系统内部复杂度对外暴露1.3 系统间通信逻辑复杂.

2022-01-21 14:34:38 826

原创 IT老齐架构300讲笔记(063) 大型电商整点秒杀业务场景商品库存如何预防超卖现象

目录一、分析库存超卖的产生二、秒杀场景的分析三、高并发下预防超卖的解决方案一、分析库存超卖的产生二、秒杀场景的分析秒杀商品库存总量固定 先到先得,瞬间并发极大,但写库量有限三、高并发下预防超卖的解决方案利用预减库存方式杜绝超卖 利用Nginx+Lua在网关层面将无效请求阻挡 利用MQ消息队列的限流特性保证MySQL不会被瞬间击垮 APP需要额外设计轮询机制查询订单状态...

2022-01-20 17:56:33 1275

原创 IT老齐架构300讲笔记(062) 聊聊Cache Aside Pattern与延迟双删 缓存一致性如何保障

目录一、为什么不能直接更新缓存二、Cache Aside Pattern到底说了什么2.1为什么不是“先删缓存,再写库”2.2 Cache Aside Pattern三、延迟双删3.1 Cache Aside Pattern不一致场景3.2 延迟双删解决极端场景数据不一致专栏链接: IT老齐架构300讲笔记一、为什么不能直接更新缓存不要考虑去update更新缓存二、Cache Aside Pattern到底说了什么Cache Asid..

2022-01-20 09:31:35 294

DeOldify ColorizeArtistic_gen.pth

DeOldify ColorizeArtistic_gen.pth

2021-03-10

大型网站系统与Java中间件实践

从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。

2018-06-22

微服务设计

微服务设计全面介绍了微服务的建模、集成、测试、部署和监控,通过一个虚构的公司讲解了如何建立微服务架构。主要内容包括认识微服务在保证系统设计与组织目标统一上的重要性,学会把服务集成到已有系统中,采用递增手段拆分单块大型应用,通过持续集成部署微服务,等等。

2018-06-22

微信公众平台开发最佳实践第2版.zip

微信公众平台开发最佳实践第2版.zip 深入浅出的学习微信公众平台开发

2016-01-07

Head.First.SQL(中文版).pdf

Head.First.SQL(中文版).pdf

2016-01-07

Head First Networking 中文版.pdf

Head First Networking 中文版.pdf

2016-01-07

head first javascript 中文版.pdf

head first javascript 中文版.pdf

2016-01-07

Head First 软件开发(中文版).pdf

Head First 软件开发(中文版)

2016-01-07

Head First iPhone开发(中文版).pdf

Head First iPhone开发(中文版).pdf 深入浅出的介绍iPhone开发

2016-01-07

北大verilog课件

北大verilog课件 深入浅出的讲解verilog原理与应用

2012-11-05

eclipse ADT-20.0

android eclipse软件进行开发的必要插件,有助于进行手机模拟机的运行

2012-11-05

java学习资料精选

java学习资料精选,很不错的学习资料,对java编程学习有很大帮助

2012-11-05

空空如也

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

TA关注的人

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