自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring源码学习之路——Spring中XML解析原理

前言 坚持下去 正文 初识 我先初略的讲述一下,Spring是如何加载XML的? 1.传入需要解析和加载的XML字符串; 2.把该字符串解析后,循环放入AbstractRefreshableConfigApplicationContext类的configLocations数组中; 3.创建出一个BeanFactory工厂; 4.给该BeanFactory创建出一个XML解析器,用于解析XML; 5.用XML解析器,循环解析configLocations数组中的XML; 6.用流的方式加载配置 文件,然后封装

2020-07-10 02:40:10 334 1

原创 学习之路(二):并发编程——第一章:线程基础、线程之间的共享和协作(一)

所有的努力都不会完全白费,你付出多少时间和精力,都是在对未来的积累。世界上什么都不公平,唯独时间最公平,你是懒惰还是努力,时间都会给出结果。线程基础、线程之间的共享和协作基础概念Java里的线程 线程基础、线程之间的共享和协作 基础概念 什么是进程? 答:进程是操作系统进行资源分配的最小单位。 什么是线程? 答:线程是CPU调度的最小单位,必须依赖于进程而存在。 CPU核心数和线程数的关系 答:核心数和线程数一边情况下是1:1的对应关系,即四核CPU一般拥有四个线程。但是Intel引入超线程技术后,核心数和

2020-05-20 22:57:12 327

原创 学习之路:JVM从入门到放弃——第七章:编写优雅的代码

每一个人都有属于自己的一片森林,迷失的人迷失了,相逢的人会再相逢。编写优雅的代码面向对象1.构造器参数太多怎么办?2.不需要实例化的类,应该构造器私有3.不要创建不必要的对象4.避免使用终结方法5.使类和成员的可访问性最小化6.使可变性最小化7.复合优先于继承8.接口优先于抽象 编写优雅的代码 面向对象 1.构造器参数太多怎么办? 如果参数很多:会导致构造方法非常多,拓展性差,可读性差,代码也难以编写。 用JavaBeans模式:get/set 不能一行构造,多行才能完成,有线程安全问题,也要确保一致性。

2020-05-19 21:44:56 529

原创 学习之路:JVM从入门到放弃——第六章:JVM调优和深入了解性能优化

避免过早优化。JVM调优和深入了解性能优化GC调优原则调优原则GC调优的目的逃逸分析常用的性能优化手段 JVM调优和深入了解性能优化 GC调优原则 调优原则 1.大多数的java应用不需要GC调优; 2.大部分需要GC调优的,不是参数问题,而是代码问题; 3.在实际项目中,分析GC情况优化代码比调整GC参数要重要; 4.GC调优是最后的手段。 GC调优的目的 1.GC的时间足够小,参考指标: ①.minor GC执行时间不到50ms; ②.full GC执行时间不到1S。 2.GC的次数足够小,参考指标:

2020-05-18 17:47:06 311

原创 学习之路:JVM从入门到放弃——第五章:JVM性能优化(操作篇)

违背了自己定下的原则,哪怕只有一次,以后就将违背更多的原则。JVM性能优化内存溢出(OOM)内存泄露内存溢出和内存泄露的相同点和不同点MATJDK提供的工具 JVM性能优化 内存溢出(OOM) 内存溢出:是指程序在申请内存的时候没有足够的内存空间。 内存溢出的几种方式: 1.栈溢出: ①:报java.lang.StackOverflowError错,如:死递归。 ②:报java.lang.OutOfMemoryError错,如:虚拟机每个栈需要大约1M左右的内存空间,假设有5000个线程同时在运行,那么需要

2020-05-17 21:58:23 185

原创 学习之路:JVM从入门到放弃——第三章:垃圾回收算法与垃圾回收器

知其然,知其所以然垃圾回收算法与垃圾回收器GC如何判断对象的存活内存回收垃圾回收算法垃圾回收器 垃圾回收算法与垃圾回收器 GC如何判断对象的存活 GC判断对象存活的方式:引用计数算法、可达性分析。 引用计数法:如果对象有一个引用的话,就给他进行一次+1,当GC发现这个对象引用次数是0的话,就把这个对象当成死了,之后将其回收。缺陷:如果A.instance = B 同时 B.instance = A,这种互相引用就会被GC判断成有用对象,便不会回收,但实际上AB均为无用对象。 可达性分析:如果对象有GC ro

2020-05-16 17:39:06 243

原创 学习之路:JVM从入门到放弃——第二章:JVM中的对象

知其然,知其所以然JVM中的对象对象的分配对象内存布局对象访问方式堆内存分配策略 JVM中的对象 JVM中对象分为:对象分配、对象内存布局、对象访问方式、内存分配。 对象的分配 线程私有:程序计数器、虚拟机栈、本地方法栈 线程共享:堆、方法区 堆是内存分配和垃圾回收的重点区域,几乎所有的对象都是在堆中分配。也就是说,在Java语言中万事万物皆对象(object),都是在堆中进行分配。 当虚拟机遇到一条这么一条 "User user = new User()"指令时,虚拟机要做的动作如下: 1.检查加载:类加

2020-05-15 17:38:19 174

原创 学习之路:JVM从入门到放弃——第一章:内存结构

知其然,知其所以然JVM内存结构线程私有区域线程共享区域JVM各版本内存区域的变化直接内存总结 JVM内存结构 jvm内存结构分为三大块:线程私有区域、线程共享区域、直接内存。 线程私有区域和线程共享区域又被称之为运行时数据区,也就是我们常说的内存。概念:jvm在运行过程中会把它所管理的内存划分成若干不同的数据区域。 线程私有区域 线程私有:是拿来运行指令的。 线程私有区域下又包含三块:程序计数器、本地方法栈、虚拟机栈。 java天生就是多线程的,在程序运行时可能会启动多个线程,每启动一个线程,该线程必定

2020-05-14 17:10:56 405

jdk-8u171-windows-x64_JDK1.8下载

JDK1.8下载

2021-04-02

apache-maven-3.6.3-bin.zip

apache-maven-3.6.3-bin.zip

2021-04-02

空空如也

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

TA关注的人

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