自定义博客皮肤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 293 1

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

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

2020-05-20 22:57:12 299

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

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

2020-05-19 21:44:56 479

原创 学习之路: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 274

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

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

2020-05-17 21:58:23 168

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

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

2020-05-16 17:39:06 209

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

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

2020-05-15 17:38:19 151

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

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

2020-05-14 17:10:56 360

apache-maven-3.6.3-bin.zip

apache-maven-3.6.3-bin.zip

2021-04-02

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

JDK1.8下载

2021-04-02

空空如也

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

TA关注的人

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