![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 86
从前慢慢慢死了
人生到处知何似,应似飞鸿踏雪泥。
展开
-
Spring源码剖析(一):编译 spring 源码(2022最新版)
目录1. 项目克隆2. 下载gradle3. 更改spring在项目中gradle下载位置4. 阿里云配置,修改bulid.gradle文件, 注意加在了哪,可以用“ mavenCentral()”定位一下5. 命令行运行 gradlew.bat, 成功的结果如下:6. 导入idea预编译7. 正式导入idea(要导好一会儿)8. 改用idea构建,主要为了提速9. 新建测试模块10. 为自己的模块添加spring依赖11. 创建自己的测试类总结:参考: 版本说明: JDK:11 Springframe原创 2021-11-22 17:25:43 · 5161 阅读 · 5 评论 -
用Java给暗恋对象们群发一份表白邮件(SpringBoot版)
文章目录设置发送者邮箱开启POP3/SMTP服务获取授权码保存更改代码实战1. 创建Spring Boot项目2. 选择mail插件3. 代码目录4. 更改配置信息(application.properties文件)5. 编写邮件服务(EmailService.java)6. 编写测试类(testEmailService.java)7. 运行文件8. 结果展示参考 接下来让我们应用主流框架,为暗恋的女孩们群发一封表白邮件,万一能中一个呢! 运行环境: JDK 1.8、Intellij IDEA 2021、原创 2021-11-26 17:51:25 · 1396 阅读 · 3 评论 -
Java虚拟机(JVM)的垃圾回收机制(GC)详解(上)
如何判断垃圾? 简单来说我们不用了,但是还占用着内存空间就是垃圾。我们需要一种方法判断哪些是我们不会在用的对象,目前有以下几种主流的方法: 引用计数法 对每个对象都保存一个计数器,当对象被引用时,计数器就加一,引用失效计数器就减一。当计数器为零时,就代表了此对象可以回收了。但是,此方法存在的一个问题就是,当对象间循环引用时就无法被垃圾回收器回收。 可达性分析法 从GC Roots进行遍历,如果不可达,就视为可以回收。那么哪些对象可以作为GC Roots呢?在java语言中主要有以下几种: 虚拟机栈(栈帧原创 2021-11-25 13:26:21 · 468 阅读 · 2 评论 -
Java虚拟机(JVM)垃圾回收机制(GC)详解(下)——垃圾收集器
HotSpot 常用的垃圾收集器 我们昨天早下班了,很惭愧,今天接着讲具体的垃圾回收器,先把昨天的图和文章放上来。 Java虚拟机(JVM)的垃圾回收机制(GC)详解(上) Serial收集器 运行区域: 新生代 主要特点: 单线程,采用上篇文章提到的复制算法进行清理,并且清理时要停掉所有的用户线程,也就是系统会停顿。 ParNew收集器 运行区域: 新生代 主要特点: Serial收集器收集器的多线程版本,它运行是也会停掉所有的用户线程,只是相当于有了多个清扫工人来打扫。但需要注意的是,在单CPU原创 2021-11-25 16:28:57 · 408 阅读 · 4 评论 -
Java虚拟机 内存区域(JVM运行时数据区)理论+实战
本文会对JVM运行时数据区(java内存区域)进行详细的介绍,并对介绍中提到的OOM异常进行实战演示。 运行编译器: Intellij IDEA 虚拟机类型: HotSpot 操作系统: win11 JDK: 1.8 文章目录理论介绍1. 程序计数器2. Java 虚拟机栈3. 本地方法栈4. Java 堆5. 方法区(元数据区MetaSpace)6. 字符串常量池7. 直接内存实战演示1. Java 堆 溢出JVM参数设置(注意参数之间有空格):设置位置:测试代码:结果展示结果分析2. 虚拟机栈和本地原创 2021-11-24 20:07:06 · 1149 阅读 · 5 评论 -
非要把它讲清楚,Java内存模型(JMM)
在解释 java内存模型 之前,我们先来大概了解一下内存模型。 内存模型是操作系统层的概念,它规定了当cpu执行程序时,如何与内存进行数据交互。 为什么要规定这个东西呢? 因为这个东西很复杂,不好搞。具体来说,我们现代计算机的体系结构中,为了优化cpu的处理效率,在处理器和主存之间往往有多级缓存(例如,L1、L2、L3级缓存)。这就意味着同一个数据可能会出现在多个地方,我们十分希望它们都是一致的,但是往往有很多线程在同时的读写,导致一致性很难保证。我们称此类问题为缓存一致性问题 在多线程并发过程中,可以原创 2021-11-12 20:19:30 · 605 阅读 · 0 评论 -
什么是进程?
我尽量用通俗的语言解释什么是进程。 先来个定义: 我们把一个运行中的程序就叫做进程。 这句话很短很抽象。往往对这种比较抽象的东西,不如来描述一下,他是用来干啥的,有啥特性大家就意会了。 如此一来,我们便经常听到这样的描述 “进程是操作系统中资源分配的基本单位”。 我们来分析一下这句话。 进程是谁进行资源分配的基本单位?—— 操作系统 操作系统进行资源分配只认进程,进程会不会将自己的资源细分操作系统不管。我要发女朋友,只需要你告诉我需要几个就行,至于你右手几个左手几个是你的事情。 为啥要进行资源原创 2021-11-07 00:21:32 · 588 阅读 · 0 评论