自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【daisy-framework】事件监听机制(event,listener)

前言 Github:https://github.com/yihonglei/daisy-framework 一 事件监听 Java很多web框架源码都能看到很多事件监听的存在,主要解决的问题就是类似观察者模式的行为, 当一件事情发生的时候,其他的相关事情需要知道并处理。 事件监听三要素...

2020-05-24 19:14:32 52 0

原创 CopyOnWriteArrayList源码分析

前言 GitHub:https://github.com/yihonglei/thinking-in-concurrent 一 CopyOnWriteArrayList概述 一句话概括,是一个线程安全的集合,用于读多写少,读写分离场景。 CopyOnWriteArrayList的增删改通过...

2020-05-15 12:59:15 35 0

原创 MySql面试题(索引、分库分表、高可用等)

前言 MySql基础:https://blog.csdn.net/yhl_jxy/category_5622941.html MySql进阶:https://blog.csdn.net/yhl_jxy/category_6390753.html 一 为什么要对数据库进行优化? 1、超大容量...

2020-04-12 18:37:34 114 0

原创 缓存中间件面试(redis、memcached、mongodb)

前言 Github:https://github.com/yihonglei/nosql-middle 一 项目中缓存如何使用的,为什么要使用缓存,可能会出现哪些不良问题? 1、项目中如何使用缓存? 项目中如何使用的,需要结合你实际项目的应用场景阐述下,实际项目中如果有用缓存的地方,可以多...

2020-04-08 15:43:54 91 0

原创 消息中间件面试(RocketMQ、RabbitMQ、Kafka、ActiveMQ)
原力计划

前言 Github:https://github.com/yihonglei/message-middle RabbitMQ基础:https://blog.csdn.net/yhl_jxy/category_6979741.html RocketMQ基础:https://blog.csdn....

2020-04-07 09:53:38 88 0

原创 Spring体系面试(spring、spring mvc、spring boot、spring cloud)

先把目录规划了!

2020-04-06 19:43:34 165 1

原创 NIO Server和Client通信

前言 Github:https://github.com/yihonglei/thinking-in-netty 一 NIOServer package com.jpeony.netty.nio; import java.io.IOException; import java.net.I...

2020-03-09 22:56:31 29 0

原创 BIO Server和Client通信

前言 Github:https://github.com/yihonglei/thinking-in-netty 一 SocketServer package com.jpeony.netty.bio; import java.io.IOException; import java.ne...

2020-02-28 22:36:55 65 0

原创 【daisy-framework】集成rocketmq

前言 Github:https://github.com/yihonglei/rose-framework 一rose-rocketmq-spring-boot-starter介绍 自定义rocketmq的starter,使用rocketmq时直接引入jar包使用即可。 二rose-roc...

2020-01-14 10:59:49 78 0

原创 【daisy-framework】开发规范

前言 Github:https://github.com/yihonglei/rose-framework 一 rose-framework介绍 Spring Boot前后端分离,集成MyBatis、数据库、消息中间件、缓存中间件、分布式锁、分布式事务、异步事件、 自定义监控系统、自定义常...

2020-01-12 16:32:43 166 0

原创 饱和策略源码分析

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一 Abort策略 默认策略,新任务提交时直接抛出未检查的异常RejectedExecutionException,该异常可由调用者捕获。 new ThreadPo...

2019-11-23 21:13:08 52 0

原创 Java内存模型

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一 共享内存 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。 二 消息传递 在消息传递的并发模型里,线程之间没有公共状...

2019-11-23 17:21:37 78 0

原创 AQS同步器源码分析

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一 队列同步器 1、概述 AbstractQueuedSynchronizer(队列同步器)简称同步器,是用来构建锁或者其他同步组件的基础框架, 内部维护了一...

2019-10-15 09:15:23 144 0

原创 Java锁

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一 锁的种类 1、乐观锁/悲观锁 悲观锁:悲观锁会假设我们总是处于最坏的情况下,如果不加锁数据完整性就会被破坏; 乐观锁:乐观锁指是一种基于冲突检测的方法,检测到冲...

2019-09-29 15:04:02 253 0

原创 合并分支的某个commit

将A分支的一个commit合并到B分支步骤: 1、首先切换到A分支 git checkout A git log 找出需要合并的commit id。 比如,c76f4719e270ce5b58a5a633a257f2c9cb1224a8 2、然后切换到B分支上 git checkou...

2019-08-31 15:39:38 58 0

原创 Spring Cloud--Config配置中心

前言 Github:https://github.com/yihonglei/thinking-in-springcloud config服务端:config-server config客户端:config-client config配置中心: https://github.com/yi...

2019-07-16 19:28:14 120 0

原创 Spring Cloud--zuul网关

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order zuul网关工程:eureka-gateway...

2019-07-15 15:42:07 263 0

原创 Spring Cloud--Hystrix配置Dashboard,Turbine集群监控

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order Feign-api(服务接口抽象):eurek...

2019-07-12 17:08:34 190 0

原创 Spring Cloud--Hystrix配置Dashboard

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order Feign-api(服务接口抽象):eurek...

2019-07-10 13:48:46 89 0

原创 Spring Cloud--Feign开启对Hystrix支持

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order Feign-api(服务接口抽象):eurek...

2019-07-07 17:54:50 440 0

原创 计算机概论

一 计算机基本概念 1、冯.诺依曼思想 1.1 用二进制代码表示程序和数据 无论程序和数据用字符,还是符号等等表示,最终都要表示为0和1的二进制代码。 1.2 计算机采用存储程序的工作方式 对于使用者来说,先把程序编号,存入到计算机,计算机才能根据程序自动去执行处理。 1.3 计算机硬...

2019-07-02 18:38:59 187 0

原创 Spring Cloud--Feign负载均衡

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order Feign-api(服务接口抽象):eurek...

2019-07-01 15:21:46 199 0

原创 【Intellij idea】设置鼠标移动到方法显示注释

使用Intellij idea鼠标放在某个方法或类上自动显示注释设置。 比如,当我鼠标挪到schedule方法上时,这个方法的相关注释自动弹出,就不用点进去看了。 ...

2019-06-28 16:49:16 1610 0

原创 Spring Cloud--Eureka注册中心安全认证

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka安全认证注册中心:eureka-server-security 客户端通过安全认证方式进行服务注册:eureka-provider-order 一 eu...

2019-06-23 15:59:25 815 0

原创 Redis持久化(rdb、aof、混合)

前言 Redis是基于内存操作的单线程缓存中间件。 一 RDB快照(snapshot) 在默认情况下,Redis将内存数据库快照保存在dump.rdb二进制文件中, Redis服务重新启动时根据dump.rdb文件重写Redis内存。 dump.rdb文件默认在redis安装目录下面。 ...

2019-06-15 18:15:24 4543 0

原创 Python3-植物大战僵尸

一 前言 Github:https://github.com/yihonglei/thinking-in-python 二 项目运行 1、python3 + pygame环境,运行manage.py启动; 2、空格键发送炮弹,上下键移动炮弹; 三 项目运行效果 ...

2019-05-31 18:20:58 1100 0

原创 zookeeper curator客户端

前言 GitHub:https://github.com/yihonglei/ZooKeeper-Study 本文采用zk原生客户端方式对zk进行操作,对应github的zk-curator项目。 maven引入jar包: <dependency> <groupI...

2019-05-18 16:02:27 109 0

原创 zookeeper zkClient客户端

前言 GitHub:https://github.com/yihonglei/ZooKeeper-Study 本文采用zk原生客户端方式对zk进行操作,对应github的zk-client项目。 maven引入jar包: <dependency> <groupId...

2019-05-18 15:29:47 141 0

原创 zookeeper核心znode、watcher、ACL

前言 GitHub:https://github.com/yihonglei/ZooKeeper-Study 本文采用zk原生客户端方式对zk进行操作,对应github的zk-native项目。 maven引入jar包: <dependency> <groupId...

2019-05-17 17:34:35 153 0

原创 zookeeper常用命令

1、ls 查看某个目录包含的所有文件,例如: [zk: 127.0.0.1:2181(CONNECTED) 1] ls / 2、ls2 查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息,例如: [zk: 127.0.0.1:2181(CONNECTED...

2019-05-11 15:46:31 71 0

原创 Netty快速开始

前言 Github:https://github.com/yihonglei/thinking-in-netty 一 Netty概述 Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速简单开发高性能、高可靠性的网络服务器和客户端程序。 它大大简化了网络编程,如TCP和UDP...

2019-04-21 12:16:22 97 0

原创 MySql锁和事务隔离级别

前言 MySql索引底层数据结构和算法:https://blog.csdn.net/yhl_jxy/article/details/88392411 MySql explan执行计划详解:https://blog.csdn.net/yhl_jxy/article/details/8857015...

2019-03-20 19:25:43 153 0

原创 MySql 索引优化原则

索引优化有很作最佳实践原则,下面对常用原则进行分析。 MySql索引底层数据结构和算法:https://blog.csdn.net/yhl_jxy/article/details/88392411 MySql explan执行计划详解:https://blog.csdn.net/yhl_jxy...

2019-03-18 19:23:19 1503 0

原创 MySql explain执行计划详解

前言 MySql使用explain关键字可以模拟优化器执行sql语句,我们就能够知道MySql会如何处理咱们的sql, 可以根据explain的分析结果和MySql底层数据结构优化sql。文章内容基于MySql 5.7.24分析, 不同MySql版本可能有差别。如果用的是MySql 5.6....

2019-03-17 09:15:19 920 1

原创 MySql 索引底层数据结构和算法

前言 文章基于MySql 5.7.24分析,部分图片源于网络,是MySql索引学习笔记。 MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。 这里只关注BTree索引,这是平时实战中使用最多的索引。 一 MySql索引概要 MySql索引是帮助MySql高效获取...

2019-03-14 13:23:38 434 1

原创 Java多线程/高并发面试

1、什么是线程? 2、线程和进程有什么区别? 3、如何在Java中实现线程? 4、用Runnable还是Thread? 5、Thread 类中的start() 和 run() 方法有什么区别? 6、Java中Runnable和Callable有什么不同? 7、Java中CyclicBa...

2019-03-04 18:13:40 818 4

原创 ThreadLocal、ThreadLocalMap源码分析

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一ThreadLocal原理 ThreadLocal的作用就是让每个线程绑定自己的变量值,用于存储每个线程的私有数据。 1、创建一个ThreadLocal对象 pr...

2019-02-21 19:28:14 182 0

原创 CAS和ABA

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一 CAS 在Java中可以通过锁和CAS的方式来实现原子操作。 JVM中的CAS操作利用处理器提供的CMPXCHG来实现。自旋CAS实现的基本思路就是循环进行CAS...

2019-02-17 15:57:37 1009 0

原创 PipedOutputStream和PipedInputStream管道实现线程通信

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一PipedOutputStream和PipedInputStream简介 PipedOutputStream和PipedInputStream通过字节流实现线程间的通...

2019-02-15 17:45:43 143 0

原创 wait、notify、notifyAll

前言 Github:https://github.com/yihonglei/thinking-in-concurrent 一等待/通知机制 等待/通知机制是线程间通信的一种方式,首先需要了解wait、notify、notifyAll方法含义。 1、wait() wait()方法为Obj...

2019-02-15 17:10:23 114 0

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