自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Netty源码学习笔记之serverBootstrap的启动分析

serverBootstrap的启动serverBootstrap 的启动从 bind() 方法进入serverBootstrap.bind(port).sync();然后一路跟进去,直到跟到 doBind() 方法private ChannelFuture doBind(final SocketAddress localAddress) { //创建、初始化以及将该channel注册到selector上,异步操作 final ChannelFuture regFuture = init

2021-11-14 22:46:33 1653

原创 netty源码学习笔记之NioEventLoopGroup初始化分析

NioEventLoop首先我们先来了解一下NioEventLoopNioEventLoopGroup就是一组NioEventLoop,而NioEventLoop又继承了Executor。因此,NioEventLoop本身实际上就是一个Executor。我们可以在源码中找到它的 execute() 方法public void execute(Runnable task) { if (task == null) { throw new NullPointerEx

2021-11-13 21:09:36 340

原创 Linux中进程的调度

本文主要介绍一下在Linux系统中进程的调度调度类和调度策略进程主要可以分为两种:实时进程:实时进程一般是需要操作系统尽快返回结果,因此优先级比较高普通进程:一般情况下大多数进程都是普通进程,优先级没有实时进程那么高因此,对于不同的进程就会有不同的调度策略。在进程数据结构 task_struct 中有一个成员变量为该进程的调度类unsigned int policy;配合这个成员变量的还有用于描述优先级的成员变量int prio, static_prio, normal_prio;

2021-09-21 22:21:40 414

原创 Spring 中 BeanDefinition 的注册

本文我们来了解下 spring 中 BeanDefinition 的注册在 spring 中对 bean 的注册主要有两种方式:第一种是通过配置来注册我们的bean,对应的方法是 DefaultListableBeanFactory 里的 registerBeanDefinition() 方法第二种是直接注册一个单例 bean,对应的方法则是 DefaultListableBeanFactory 里的 registerSingleton() 方法下面我们分别来看看这两个方法registerBe

2021-07-14 00:14:25 751

原创 spring依赖查找过程

Spring依赖查找上篇文章依赖处理过程我们通过简单分析了解到了spring处理依赖时的过程,而其中里面有一个方法 resolveDependency() 就是依赖查找过程。而今天我们主要深入去探讨一下这个方法以及相关的实现resolveDependency()方法我们发现,resolveDependency() 方法实现在DefaultListableBeanFactory 这个类里,也就是我们底层IOC容器BeanFactory的实现类@Override@Nullablepublic Obj

2021-07-06 15:27:24 282

原创 spring依赖处理过程

今天我们来聊一聊spring依赖处理的过程关于依赖处理比较重要的类就是org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor于是我们着重看看这个类里的两个方法,分别是postProcessMergedBeanDefinition 和 postProcessProperties,我们一个方法一个方法来看1.依赖处理经过的第一个方法:postProcessMergedBeanDefinition

2021-07-05 16:19:09 258

原创 Spring中的ObjectFactory

1.ObjectFactory的实现类ObjectFactory在Spring中提供的是延迟依赖查找的功能,(具体演示先跳过,感兴趣可以自己试试),而ObjectFactroy有两个比较重要的实现类,一个是org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean$TargetBeanObjectFactory ,另一个则是org.springframework.beans.factory.support.Defau

2021-07-04 15:08:52 2269

原创 Spring中BeanFactory与ApplicationContext的关系

首先我们先来看BeanFactory与ApplicationContext的UML图(继承关系)从图上可以看出,ApplicationContext继承了BeanFactory,也就是说ApplicationContext是BeanFactory的子类,那么它们之间有什么区别呢?下面通过一个简单的例子来说明:public class DependencyInjectionDemo { public static void main(String[] args) { BeanFa

2021-07-03 14:41:53 605

原创 ReentrantLock 原理及源码剖析

首先看看ReentrantLock 的UML类图1. 非公平锁实现原理1.1 加锁解锁流程从构造器看,ReentrantLock 默认实现为非公平锁public ReentrantLock() { sync = new NonfairSync();}NonfairSync 继承自 AQS没有竞争时static final class NonfairSync extends Sync { final void lock() { //没有竞争时,将锁的状

2021-05-05 22:32:58 137

原创 本地方法

本地方法接口什么是本地方法?简单地讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。在定义一个native method时,并不提供实现体(有些像定义一个Javainterface),因为其实现体是由非java语言在外面实现的。本地接口的作

2020-12-22 16:50:48 418

原创 静态变量与局部变量的对比

变量的分类:1.按照数据类型分:①基本数据②引用数据类型2.按在类中声明的位置分:①成员变量:在使用前,都经历过默认初始化赋值类变量:linking的prepare阶段:给类变量默认赋值—> initial阶段:给类变量进行显示赋值即静态代码块赋值实例变量:随着对象的创建,会在堆空间中分配实例变量空间,并进行默认赋值②局部变量:在使用前,必须要进行显示的赋值如上图所示,方法内的局部变量num未进行显示的赋值。...

2020-12-13 17:06:41 207

空空如也

空空如也

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

TA关注的人

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