自定义博客皮肤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)
  • 收藏
  • 关注

转载 深入理解JVM —— 类加载器原理

我们知道我们编写的java代码,会经过编译器编译成字节码文件(class文件),再把字节码文件装载到JVM中,映射到各个内存区域中,我们的程序就可以在内存中运行了。那么字节码文件是怎样装载到JVM中的呢?中间经过了哪些步骤?常说的双亲委派模式又是怎么回事?本文主要搞清楚这些问题。 类装载流程 1、加载 加载是类装载的第一步,首先通过class文件的路径读取到二进制流,并解析二进制流将里面的元数据...

2020-04-17 12:04:57 2218

转载 深入理解JVM —— 垃圾回收器

上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某一种算法进行垃圾回收,而是将不同的垃圾回收算法包装在不同的垃圾回收器当中,用户可以根据自身的需求,使用不同的垃圾回收器,以便让自己的java程序性能到达最佳。 在介绍垃圾回收器之前,我们先回顾一下java堆的结构。 堆内存回顾 java堆内存结构包括:新生代和老年代,其中新生代由一个伊甸区和2个幸存区组成,...

2020-04-17 12:00:29 127

转载 深入理解JVM —— 垃圾回收算法

我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理。 stop the world 在介绍垃圾回收算法之前,我们需要先了解一个词“stop the world”,stop the world会在执行某一个垃圾回收算法的时候产生,JVM为了执行垃圾回收,会暂时java应用程序的执行,等垃圾回收完...

2020-04-17 11:55:11 170

转载 深入理解JVM —— 内存模型、可见性、指令重排序

上一篇我们介绍了JVM的基本运行流程以及内存结构,对JVM有了初步的认识,这篇文章我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排序的情况。 内存模型 首先我们思考一下一个java线程要向另外一个线程进行通信,应该怎么做,我们再把需求明确一点,一个java线程对一个变量的更新怎么通知到另外一个线程呢?我们知道java当中的实例对象、数组元素都放...

2020-04-17 11:48:01 124

转载 深入理解JVM —— 基本原理

前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图: java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的ja...

2020-04-17 11:26:32 131

原创 拦截器与过滤器的区别

具体区别: 1、拦截器是基于java的反射机制,而过滤器是基于函数回调。 2、拦截器依赖于web框架,而过滤器依赖于servlet容器。 3、拦截器只对action请求起作用,而过滤器几乎对所有请求起作用。 4、在action生命周期中,拦截器可以被调用多次,而过滤器只能在容器初始化时被调用一次。 ...

2019-12-31 21:27:02 73

原创 SpringMVC的执行流程

SpringMVC框架的核心组件 1.DispatcherServlet: 前端控制器,用来过滤客户端发送过来,想要进行逻辑处理的请求。 2.Controller/Headler: 控制器/处理器。开发人员自定义,用来处理用户请求的,并且处理完成之后返回给用户指定视图的对象。 3.HandlerMapping: 处理器映射器。DispatcherServlet接收到客户端请求的URL之后...

2019-12-25 14:52:33 106

原创 svn与git的区别

版本控制器的作用: 1.可以协同代码管理,让团队开发项目得以实现。 2.可以回归以前提交的任意一个版本的代码。 3.可以查看每个人具体的操作,便于出现问题能够及时准确地排查。 SVN svn即版本控制器,主要是为了多人协同开发项目,管理代码,也可以管理个人代码,也叫程序界的“后悔药”。 svn是一个集中式的版本控制系统,严重依赖服务器端,当服务器端无法使用的时候,版本控制也就无法再使用了。 GIT...

2019-12-18 19:14:12 128

空空如也

空空如也

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

TA关注的人

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