- 博客(16)
- 收藏
- 关注
原创 Spring IOC创建流程一(概述)
关于IOC的创建流程,本篇文章只介绍他的大体流程,旨在让多数人对spring有一个整体的概念,源码介绍将在下一篇文章讲解。1、简介 首先介绍一下IOC是什么,IOC全称Inversion of Control 中文直译叫做控制反转,这个概念非常抽象,导致初学者一头雾水(包括我在内,其实现在也只是一知半解,还请各位大佬指导),通常IOC这个概念会跟IOC容器一起出现。那么spring的容器到底是什么,以及里面存储了一些什么东西。s...
2021-12-24 19:04:19
980
原创 Bean创建流程二(源码分析)
接上篇文章:Bean创建流程一(源码分析)总体步骤:1. 实例化(Instantiation) 2. 属性填充(Populate) 3. 初始化(Initialization) 4. 销毁(Destruction)先上简单流程图:1.实例化阶段:进入关键方法:// Instantiate the bean. BeanWrapper instanceWrapper = null; ...
2021-12-20 21:50:09
466
原创 Bean创建流程一(源码分析)
如有错误,敬请指出,共同学习!感谢!1.综述先上总体的流程图:简单流程图:2.bean创建涉及的关键方法2.1.根接口:beanfactorypublic interface BeanFactory 2.2AutowireCapableBeanFactorypublic interface AutowireCapableBeanFactory extends BeanFactory2.3 正题:AbstractAutowireCapableBeanF...
2021-12-20 21:24:48
715
原创 JAVA NIO(new IO)
1.简介Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。1.1.IO和NIO的区别:IO和NIO的区别 IO NIO 面向流(Stream Oriented) 面向缓冲区(Buffer Oriented) 阻塞IO(Blocking ...
2021-12-15 15:42:20
720
原创 JAVA并发三(synchronized进阶)
1.Monitor 概念1.1Java 对象头 32位虚拟机中,普通对象的对象头结构如下,其中的Klass Word为指针,指向对应的Class对象;数组对象:mark word结构:所以一个对象的结构如下:1.2.Monitor 原理Monitor被翻译为监视器或者说管程Java虚拟机(HotSpot)中,Monitor是通过ObjectMonitor实现的(c++),里面有三个重要的属性:...
2021-12-13 17:56:37
255
原创 JAVA并发二(多线程的问题)
1.为什么多线程会出现问题?首先来看一段经典的多线程问题代码: static int count = 0; public void findProblem() throws InterruptedException { Thread t1 = new Thread(() -> { for (int i = 0; i < 100000; i++) { count++; }
2021-12-13 15:02:48
274
原创 JAVA并发一(Java线程)
1.并发和并行的区别并发是一个CPU在不同的时间去不同线程中执行指令。并行是多个CPU同时处理不同的线程。引用 Rob Pike 的一段描述:并发(concurrent)是同一时间应对(dealing with)多件事情的能力并行(parallel)是同一时间动手做(doing)多件事情的能力2.进程与线程进程:程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到...
2021-12-12 16:55:16
171
原创 JVM对象生命周期一(内有举例说明)
类的生命周期图:从大的方面说类加载阶段分为三个步骤:加载,链接,初始化。1.类文件结构:ClassFile { u4 magic; //Class 文件的标志:魔数 java中编译后是cafebabe u2 minor_version;//Class 的次版本号 u2 major_version;//Class 的主版本号 JDK版本号 u2 cons...
2021-12-10 17:39:54
509
原创 JVM垃圾回收之G1收集器
1.1 G1收集器的设计目标先介绍两个概念:吞吐量和响应能力,响应能力和吞吐量是评价一个系统的两个重要指标吞吐量 吞吐量关注的是,在一个指定的时间内,最大化一个应用的工作量。 如下方式来衡量一个系统吞吐量的好坏: 在一定时间内同一个事务(或者任务、请求)完成的次数(tps) 数据库一定时间以完成多少次查询 对于关注吞吐量的系统,一定次数卡顿(即stw)是可以接受的,因为这个系统关注长时间的大量任务的执行能力,单次快速的响应并不值得考虑 响应能...
2021-12-08 21:20:18
666
原创 JVM内存模型(二)
一.JVM内存架构JVM内存模型总体预览:JVM内存结构主要分为图中的几个内存区域: 1.虚拟机栈2.本地方法栈 3.程序计数器 4.堆 5.方法区二.虚拟机内存结构:(前面4节内容见JVM内存模型(一))2.5 方法区方法区是JVM规范中规定的一块内存区域,官方在规定的时候没有明确方法区的位置,并且不同的厂商在具体的实现的时候也各有各的不同...
2021-12-08 15:56:43
117
原创 JVM内存模型(一)
目录一.JVM内存架构二.虚拟机内存结构:1.1 虚拟机栈异常1.2 本地方法栈1.3 程序计数器1.4 堆异常:一.JVM内存架构JVM内存模型总体预览:JVM内存结构主要分为图中的几个内存区域: 1.虚拟机栈2.本地方法栈 3.程序计数器 4.堆 5.方法区二.虚拟机内存结构:1.1 虚拟机栈此区域是线程私有的,虚拟...
2021-12-08 15:10:56
240
原创 JVM垃圾回收模型二:JVM内存分配和内存回收
目录一.内存分配1.1 空间分配(担保机制)1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定二 垃圾回收2.1 垃圾判断算法引用计数算法(Refesrence Counting)根搜索算法( Root Tracing)2.2 垃圾回收期的选择和实现引用类型2.3 GC时机-线程角度GC的时机抢占式中断主动式中断安全区域3.3 一些经典的内存泄漏的原因1.对象定义位置过大:2...
2021-12-07 20:25:37
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人