自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM常用GC算法

三色标记算法根可达算法CMS流程G1流程具体标记流程漏标问题漏标解决方案写屏障读屏障根可达算法根可达算法是通过判断对象的引用链是否可达来决定对象是否可以被回收。从GC ROOTS作为起点,向下搜索它们引用的对象,可以生成一棵引用树,树的节点为可达对象,反之不可达。CMS流程G1流程具体标记流程基础概念:1)白色圈圈代表尚未访问过2)黑色圈圈代表本对象已经访问过,而且和它关联的直接引用对象也全部访问过了。3)灰色圈圈代表本对象已经访问过了,但是和它关联的直接引用对象尚未全部访问。流程

2020-09-29 00:07:58 361

原创 JVM类加载机制

JVM类加载机制什么是类加载机制类加载流程图类加载过程加载验证准备解析初始化使用卸载类加载器类和类加载器双亲委派机制双亲委派机制的缺陷?自定义类加载器什么是类加载机制虚拟机把描述类的数据从class文件加载到内存的过程,并对数据进行验证、准备、解析和初始化,最终形成可以被java虚拟机直接使用的Java类型(java.lang.class)类加载流程图类加载过程加载、验证、准备、初始化和卸载这个5个阶段的顺序是确定的,类的加载过程必须按照这种顺序,而解析过程就不一定,涉及到java语言的动态绑定

2020-09-15 00:31:12 105

原创 深入理解多路复用IO模型

多路复用IO模型前置知识内核态和用户态IO读写的底层流程四大IO模式同步阻塞IO同步非阻塞IOIO多路复用异步IO前置知识内核态和用户态上面是操作系统的体系结构,黄色表示内核要做的事情。为什么要划分内核态和用户态呢?其实主要是CPU的有些指令是非常危险的,将导致系统崩溃,比如清内存和设置时钟。内核态和用户态如何切换呢?系统调用、异常和外部设备中断。IO读写的底层流程(1)客户端请求Linux通过网卡,读取客户断的请求数据,将数据读取到内核缓冲区。(2)获取请求数据服务器从内核缓冲区读

2020-09-11 00:39:05 1026 1

原创 JVM

JVMJVM概览字节码简单一瞥JVM概览JVM其实就是一种规范,是虚拟出来的一台计算机。附加jvm规范官方地址: jvm specifications字节码简单一瞥从这个可以看出,我们直观以为相加只是一步,其实是很多步,这也是为什么多线程会有线程安全的原因。...

2020-09-10 01:02:09 77

原创 JVM方法调用的字节码指令

这里写目录标题JVM方法调用的字节码指令invokespecialinvokestaticinvokedynamicinvokeinterfaceinvokevirtualJVM方法调用的字节码指令invokespecial主要是三种,private方法、init方法和super方法,简要来说就是在编译期间就能确定的实例方法。invokestaticjava8官方解释,简单来说就是调用static方法,有两种一种是我们用的最多的class里面的static方法,还有一种是interface的

2020-08-24 01:51:23 216

原创 Spring源码分析(五)

Spring源码分析(五)refresh方法分析中invokeBeanFactoryPostProcessors继续分析postProcessBeanDefinitionRegistry深入分析processConfigBeanDefinitions分析checkConfigurationClassCandidate分析直接进入finishBeanFactoryInitialization说明refresh方法分析中invokeBeanFactoryPostProcessors继续分析上篇分析了inv

2020-08-23 11:57:01 146

原创 Spring源码分析(四)

Spring源码分析(四)refresh方法分析prepareRefreshobtainFreshBeanFactoryprepareBeanFactorypostProcessBeanFactoryinvokeBeanFactoryPostProcessorsregisterBeanPostProcessorsinitMessageSourceinitApplicationEventMulticasteronRefreshregisterListenersfinishBeanFactoryInitiali

2020-08-23 00:55:03 88

原创 Spring注解版源码分析(三)

AnnotationConfigApplicationContext前言register方法分析refresh方法分析前言这篇主要分析register方法和refresh方法register方法分析通过对register方法不断调入,会进入这个核心方法,具体步骤就不贴了。这个方法主要是注册一个bean从一个指定的bean类,从类的注解中获取它的metadata。首先分析下AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBean

2020-08-21 00:34:18 145

原创 Spring注解版源码分析(二)

Spring注解版源码分析(二)AnnotationConfigApplicationContext分析类目分析结构分析AnnotatedBeanDefinitionReader分析AnnotationConfigApplicationContext分析类目分析可能很多人看到那么多类的话,就畏缩了,没有继续攻克源码的精神了。其实这时候,我们需要把握一种思想,就是面向接口编程。为什么设计那么多接口呢,个人认为就是为了拓展性,特别是一个比较复杂的功能,如果你设计的太死的话,后面就可能很难维护,如果加一个

2020-08-19 00:51:27 193

原创 Spring注解版源码分析(一)

Spring注解版源码分析(一)基础概念什么是Bean?什么是BeanFactory?最简单的类子?基础概念什么是Bean?借用下官方的解释In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembl

2020-08-18 02:10:17 393

原创 Springboot内置tomcat原理

内置tomcatspringmvc注解版结合tomcatspringmvc注解版时下非常火的Springboot,有个非常好用的内置tomcat,其实并不是什么非常新的技术,而是对Spring的一层包装。完成一个springmvc注解版,打开官网关于springmvc, 已经给了一个比较好的案例。链接: Springmvc结合tomcat胜多负少的...

2020-08-16 01:11:32 411

原创 Java对象头

Java对象头源码分析(64位)下载Hotspot源码对象头组成(MarkWork、对象类型指针)MarkWord下载Hotspot源码官网链接:http://hg.openjdk.java.net/ 下载较慢,不翻墙基本上下不了推荐的下载方式, 去https://gitee.com/下载,搜索Hotspot,找一个即可对象头组成(MarkWork、对象类型指针)[oop.hpp文件:hotspot/src/share/vm/oops/oop.hpp]class oopDesc {friend

2020-08-15 17:13:29 175

原创 CENTOS7 设置

接虚拟机设置完成之后,虚拟机会自动开启,无需操作。 为什么安装图形化界面呢,最主要的是对linux系统有个直观了解,不要以为linux就是一个黑洞洞界面,真实情况下就是一个黑洞洞界面没人安装图形化界面。但是学习linux的话,没必要那样搞。之后设置桌面环境基本上都是一路点一下去,最后到达上面的界面。此时已经可以试用centos的一些功能,但是...

2019-08-04 08:08:22 550

原创 CENTOS7 安装

1. 下载centos镜像, 直接国内源会比较快,选择liveGnome,会有桌面环境。http://mirrors.163.com/centos/7/isos/x86_64/2. 创建虚拟机

2019-08-04 07:44:21 66

空空如也

空空如也

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

TA关注的人

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