自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 聊聊Spring配置类(Configuration Class)及代理过程分析

本文主要是聊一聊Spring 5.2引入的针对Configuration Class的优化及目的前言自从Spring 3.0 引入@Configuration 这个配置类注解, 那就意味着Spring的XML配置文件的方式已经过去了,迎来了一个注解(java class)的崭新时代。因此Spring后面版本大量使用Configuration Class, 而我们的工作学习中只要涉及到了Spring,这个Configuration Class的大量使用也是不可避免的,所有大家对这个也是非常常见的。看一下@

2021-01-13 15:37:30 1371

原创 Redis 字符串数据结构(String)底层存储源码分析

Redis 字符串数据结构(String)底层存储源码分析以下涉及到的源码均来自 https://github.com/redis/redis (branch 6.2)背景知识在6.2这个版本redis支持的数据结构如下<server.h>/* The actual Redis Object */#define OBJ_STRING 0 /* String object. */#define OBJ_LIST 1 /* List object. */#defi

2021-01-04 17:21:22 373 1

原创 Spring Aware接口执行时机源码深度解读

Spring Aware接口执行时机源码深度解读Spring中有这样一种标记接口的存在Aware,只要是spring管理的bean实现了Aware接口,那么spring就会在bean创建的某个时机将相应的资源注入到该spring bean中,比如ApplicationContextAware, 会将spring 应用上下文ApplicationContext自动注入到bean中。//Sprin...

2020-03-11 20:34:15 1355

原创 对象存储服务MinIO

对象存储服务MinIOOpen Source, S3 Compatible, Enterprise Hardened and Really, Really FastMinIO是一种高性能并兼容Amazon S3 Api的对象存储服务官网地址 Github项目地址MinIO简介1. Erasure Coding(纠删码)MinIO数据存储数据保护数据采用的是Erasure Codi...

2020-03-07 11:04:33 868

原创 Spring事务管理源码深度解读(一)

前言熟悉spring的人大都熟悉@Transactional这个事务注解及其功能,这里就不详述了,但是spring是如何通过@Transactional实现声明式事物的呢?本文主要通过追踪spring相关源码来详细阐述实现过程,以达到知其然并知其所以然的效果。@EnableTransactionManagement那就先来看看@EnableTransactionManagement这个spr...

2019-06-29 10:33:44 352

原创 限流组件Sentinel生产应用实践(一) : 动态规则源持久化(Zookeeper)改造接入

介绍Sentinel是阿里巴巴去年开源的一款轻量级限流组件。引用它官网的一段简要介绍:As distributed systems become increasingly popular, the reliability between services is becoming more important than ever before. Sentinel takes “flow” as...

2019-05-02 21:49:49 2864

原创 RocketMQ源码分析(一): 索引文件(IndexFile)

前引: RocketMQ – 阿里贡献给Apache的消息中间件,现已升级为Apache顶级项目, GITHUB项目地址。一,索引文件(IndexFile)物理结构一个索引文件从整体上可以分为header和其它部分(body)。整个索引文件对应类org.apache.rocketmq.store.index.IndexFile, header对应类org.apache.rocketmq.store.

2017-12-11 18:19:56 5081 2

原创 字符集编码 Unicode UTF8 UTF16 UTF32 和BOM(Byte Order Mark)

BOM(Byte Order Mark)在分析unicode之前,先把bom(byte order mark)说一下。 bom是unicode字符顺序的标识符号,一般以魔数(magic code)的形式出现在以Unicode字符编码的文件的开始的头部,作为该文件的编码标识。来举个很简单的例子,在windows下新建一个文本文件,并另存为utf8的文件格式: 该文件里面没有任何内容,我们再用Hex

2017-07-29 12:58:17 3531

原创 Netty4启动ServerBootStrap源码分析

首记: 来分析下Netty4中的核心NIO模型的启动过程, 如何 bind -> accept -> process -> …. 这些过程,在分析之前,先来熟悉下jdk中原生的NIO模型, 因为Netty中的NIO是基于此上面进行封装的。一,java nio 模型import java.io.IOException;import java.net.InetSocketAddress;impo

2017-07-23 12:41:47 849

原创 从零开始学Scala系列(六)之类(Classes)和对象(Objects)

scala Classes and Objects scala 类和对象 修饰符 包对象。。。

2017-07-08 15:55:47 535

原创 八皇后单解和全解递归算法(Lua实现)

单解递归算法local file = io.open('output.txt', 'w')io.output(file)local N = 8local a = {} local times = 0local function is_place_ok(n, c) -- n >=1 and n <= 8 for i = 1, n - 1 do if (a[i] == c)

2017-06-25 10:51:21 527

原创 八皇后单解和全解递归算法

八皇后单解 递归算法#include<stdio.h>#include<stdlib.h>#include<math.h>#define N 8int num = 1;int a[N] = { 0 };void show(){ printf("Times %d\n", num++); for (int i = 0; i < N; i++) { fo

2017-06-25 10:37:24 491

原创 Java中的四种引用类型 Strong, Soft, Weak And Phantom (一)

前言总所周知, java不同于c/c++,它不需要程序员自已来管理内存(分配,释放内存),java 会自己来管理内存,比如销毁某些不再被使用的对象。这些操作都是在一个后台线程默默进行(Garbage Collector Thread),也就是垃圾收集器线程,根据jvm实现的策略来释放对象内存。但是程序编写者却无法控制这个后台线程,无法让它在你想要的时候开始释放内存,销毁对象,按照你的规定来销毁那些对

2017-06-04 14:18:37 10122 1

原创 从零开始学Scala系列(五)之集合2--Set和Map

本小节主要是scala中的Set和Map的使用在scala中Array是mutable(可变的), 而List是immutable(不可变的) package.scala中的源码:val List = scala.collection.immutable.List而Set和Map都有两种mutable和immutable的 (取自Predef.scala) /** @group aliases

2017-05-07 19:52:32 551

原创 从零开始学Scala系列(四)之数组集合1

该小节主要是简单介绍在scala中使用数组和集合1 数组数组声明和初始化还是以前一样,先来个简单地例子: 初看是不是和java类型的语言类似, 当然还有更简单的用法。 注: 0 to 2 是scala中RichInt提供的方法 /** like `until`, but includes the last index */ /** * @param end The fina

2017-05-07 18:47:04 3747

原创 从零开始学Scala系列(三)之初识循环分支结构

本节主要内容就是循环分支结构whileforforeach….从该节内容后例子都用idea编写了。scala中的循环结构与传统语言C,Java有些表现形式上的区别,接下来这两种形式都来对比一下。1 While循环首先先建个scala object 带有main函数的演示对象,object是什么后面细说。如下图:其实这和java中的带有main函数类很像,首先跑起来试试。def函数定义在第二

2017-05-06 19:37:32 628

原创 从零开始学Scala系列(二)之初识Scala

1. 学习使用scala解释器C:\Users\rodbate>scalaWelcome to Scala 2.12.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).Type in expressions for evaluation. Or try :help.scala> :help:help命令可查看命令帮助:scala> :he

2017-02-23 00:00:03 1443

原创 从零开始学Scala系列(一)之环境安装及IDE选择安装

Scala简要介绍以及学习初衷 Object-Oriented Meets Functional Have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher

2017-02-16 00:04:38 4127

原创 CGlib 入门

CGlib 入门cglib github地址链接。项目maven构建:<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version></dependency>项目gradle构建:dependencies { compile 'cglib:cgl

2015-12-30 13:45:10 2293

原创 Spring AOP java动态代理实现

Spring AOP java动态代理实现User类public class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this

2015-12-30 11:08:48 404

原创 java 动态代理 [Java Dynamic Proxy]

java 动态代理 [Java Dynamic Proxy]此次java动态代理实验所要用到的java里的包是java.lang.reflect中的一些类,主要是以下几个: java.lang.reflect.Proxy,java.lang.reflect.InvocationHandler,java.lang.reflect.Method等等。第一步首先要定义一个接口(interface)以及其

2015-12-30 09:56:51 437

原创 磁盘基础知识及读写原理

一,磁盘基础知识磁盘的基本组件可分为以下几部分:磁头,盘片,盘面,磁道,柱面,扇区等。1,盘片与盘面一块硬盘一般有多块盘片,盘片分为上下两面,其中有效面称为盘面(也就是可以存储数据的盘面,一般来说盘片的上下两面都是可以存储数据,当然极少数情况下只有单面可用于存储数据),盘片数一般与磁头数相等,也就是:磁头数 = 盘面数 = 盘片数 * 2。盘面一般的命名规则是从磁盘上而下依次为0 ...... N,

2015-12-21 14:30:46 4420 1

原创 AngularJS directive 实现分页包装指令

AngularJS directive 分页指令写这篇文章的主要目的是为了记录自己的学习过程,方便以后查看,当然也希望有人指点一二,互相学习。一些angularjs directive的基础知识就不说了,直接上代码。首先是myPagination.htmlmyPagination.html<div> <nav class="pull-right"> <ul class="pa

2015-12-19 11:49:40 2400

空空如也

空空如也

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

TA关注的人

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