架构师
文章平均质量分 73
旷世奇才李先生
阿里云专家博主、华为云享专家,多年工作经验,博客定期开源一些项目,定期分享一些大厂高频面试题。
展开
-
JVM内存模型详解
JVM内存模型详解原创 2022-02-21 17:09:15 · 478 阅读 · 9 评论 -
JVM类加载机制
JVM类加载机制原创 2022-02-18 08:24:24 · 528 阅读 · 0 评论 -
CAS实现单点登录
前言1.单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS下载安装1.CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SI原创 2022-01-25 22:20:25 · 2984 阅读 · 21 评论 -
SSM项目使用拦截器实现登录验证功能
SSM项目使用拦截器实现登录验证功能原创 2022-01-22 02:25:09 · 1954 阅读 · 11 评论 -
自定义类加载器并打破双亲委派机制
前言今天我们来自定义一个类加载器第一步继承ClassLoader类public class MyClassLoader extends ClassLoader第二步重写findClass方法public Class<?> findClass(String name) throws ClassNotFoundException{ try { byte[] data = loadByte(name); return原创 2021-02-06 14:31:14 · 586 阅读 · 4 评论 -
JVM之三色标记算法
前言前面的文章里讲到过JVM通过可达性分析算法进行垃圾回收,那么可达性分析算法它分析完了以后是怎样进行记录的呢,它怎么知道哪些是垃圾对象哪些不是垃圾对象呢,今天我们来讲解一下三色标记算法。下面我先介绍一下理论,但是单看理论可能太抽象,请再结合我后面的图片进行分析思考。理论黑色:表示对象已经被垃圾收集器访问过,且这个对象的所有引用都已经扫描过。黑色的对象代表已经扫描过,它是安全存活的。灰色:表示对象已经被垃圾收集器访问过,但是这个对象上至少存在一个引用还没有被扫描过。白色:表示对象尚未被垃圾收集器访原创 2020-10-24 19:53:22 · 1044 阅读 · 0 评论 -
垃圾收集器以及垃圾收集算法
前言由于我们之前学过了JVM的垃圾回收机制以及JVM如何判断一个垃圾对象,所以在这里我有必要讲一下几种垃圾收集算法和几种垃圾收集器,首先为什么会有不同的垃圾收集算法呢?因为随着我们的发展,我们的业务出现多种多样的情况,有些业务需要内存比较大,有些业务需要垃圾收集的时间比较短,所以针对不同的业务我们要使用不同的垃圾收集算法,而不同的垃圾收集算法我们又封装成不同的垃圾收集器,接下来我就简单来讲解一下这几种垃圾收集算法和垃圾收集器。垃圾收集算法——复制算法通过上面图片我们可以简单看出复制算法是将整个内存原创 2020-10-21 07:32:55 · 437 阅读 · 0 评论 -
jdk自带程序监控工具——JVisualVm
前言通过我之前的文章《JVM堆内存模型概括》、《java垃圾回收机制概括》、《JVM怎样判断是垃圾对象进行垃圾回收》、《eclipse怎么设置堆内存大小》大家可以大概知道JVM的内存模型、JVM的垃圾回收机制、JVM对垃圾对象的判断方法、以及使用eclipse怎样进行堆内存大小的调整,当我们大概知道这些后就可以自己尝试着写一个小Demo来模拟大量业务对象的生成,然后再对JVM进行调优来实验JVM调优后到底有没有效果,那么我们怎样看有没有效果呢?这里我们就需要用到一个jdk自带的工具了,下面我来讲解一下工具原创 2020-10-20 22:49:52 · 905 阅读 · 0 评论 -
JVM怎样判断是垃圾对象进行垃圾回收
前言相信大家都听说过JVM垃圾回收机制,大概就是当我们的内存满了的话就会进行垃圾回收机制,将不再用到的对象清理掉,这样我们的内存就又可以有空间存东西了,那么JVM怎么能够知道哪些对象不再用到了呢?下面我来用一个小故事讲解一下。小故事李老板开了一个小超市,但是自己平时特别忙,就雇佣了一个管家来看店,平时管家一个人还可以忙的过来,但是快要过年了,大家都来买年货了,管家一个人忙不过来了,然后李老板就找了两个假期短工,一个是学生小明,一个是小明的老师老王,但是呢这两个都需要管家去面试,李老板因为在外地谈生意就原创 2020-10-19 22:59:07 · 559 阅读 · 0 评论 -
eclipse怎么设置堆内存大小
前言通过我前面的文章可以得知JVM调优就是为了减少full GC的产生次数,所以为了不使其产生就需要根据业务场景合理的设置堆内存各个区域的大小,下面我来说一下怎么设置堆内存各个区域的大小。操作找到eclipse.ini文件,如下图:用Notepat++或者记事本打开eclipse.ini文件,文件内容如下图:其中:-Xms:是最小堆内存大小,也是初始堆内存大小,因为堆内存大小可以根据使用情况进行扩容,所以初始值最小,随着扩容慢慢变大。-Xmx:是最大堆内存大小,随着堆内存的使用率越来越高,堆原创 2020-10-19 07:37:41 · 2361 阅读 · 1 评论 -
java垃圾回收机制概括
前言我们经常听说java垃圾回收机制,那么什么是垃圾回收呢,其实就是我们程序中创建一个对象来进行操作,在操作完以后不再用这个对象的时候,这个对象就成为了垃圾对象,今天就带大家来简单了解一下java中怎么进行垃圾回收。JVM堆内存模型垃圾回收机制详解上述图片是jvm中的堆内存模型,下面我通过步骤讲解对象的生成到销毁与垃圾回收机制的关系。第一步我们新new的对象都放到eden区中,当我们的eden区被放满的时候我们进行一次轻量级的垃圾回收机制简称“轻GC”,这个时候我们将eden区中存活的对象复制原创 2020-10-18 18:52:54 · 340 阅读 · 0 评论 -
JVM堆内存模型概括
前言我们想要对jvm进行性能调优就需要首先了解jvm堆内存模型,堆内存模型图如下:整个堆内存分为年轻代和老年代,年轻代分为eden区和survivor区,survivor区又分为s0区和s2区。年轻代大约占整个堆的1/3,其中eden区占整个堆的8/30,survivor区占整个堆的2/30,其中s0和s1区各占1/30,老年代占整个堆的三分之二。...原创 2020-10-18 15:06:28 · 318 阅读 · 0 评论 -
java类加载机制概括
前言在我们运行java程序时,java底层进行了一系列的操作,大体有五个操作步骤,分别按照先后顺序为:加载——>验证——>准备——>解析——>初始化,下面分别来解释这五个步骤具体干了什么。加载jvm将我们写好的类从磁盘加载到内存中。(在我们编写java代码的时候,我们保存是将代码保存到我们的硬盘上,而在我们执行java程序的时候,就会将我们硬盘上的代码拷贝到内存中来进行操作,因为内存中操作速度更快)验证jvm验证字节码文件的正确性,如果我们写的代码语法有错误,在这一步就会检原创 2020-10-18 14:07:14 · 289 阅读 · 2 评论 -
双亲委派机制的由来
什么是双亲委派机制?首先我们通过一个简单的例子来理解以下,首先我们先来理解委派机制,顾名思义委派就相当于一个用户委派快递员寄快递,这个过程是单项的,不可能换成快递员委派用户来寄快递。然后我们再理解一下单亲委派机制,单亲委派机制就相当于儿子放假了回家给父亲要生活费,父亲必须得给儿子生活费,这是单亲委派机制。那么双亲委派机制就是儿子给父亲要生活费,父亲如果有就给儿子生活费,如果没有就告诉儿子让他自己去赚,这就是双亲委派机制。什么是类加载器?我们java中所有的类都需要通过类加载器来加载,所有的类分成原创 2020-10-06 18:41:20 · 539 阅读 · 0 评论