- 博客(13)
- 收藏
- 关注
原创 【源码分析】ArrayList的扩充流程
ArrayList的扩充一般都是通过往里面添加元素触发的。也就是add()方法触发的。所以我们首先定位到add()方法。一般来说,都是通过 add 方法触发扩容机制,我们拿最简单的尾部追加的 add() 方法举例public boolean add(E e) { // 确认 list 容量,尝试容量加 1,看看有无必要扩容 ensureCapacityInternal(size + 1); // Increments modCount!! // 赋值 elementDa
2021-12-01 17:11:35
602
原创 深入学习jvm,这一篇就够了(图解+面试题)
jvm完全深入理解,一文即可文章目录jvm完全深入理解,一文即可类加载子系统类加载过程加载链接初始化类加载器的分类引导类加载器(bootstrap ClassLoader):c ,c++ 实现自定义类加载器: java实现需要自定义类加载器的情况有哪些?自定义加载器的步骤?双亲委派机制双亲委派机制有什么作用?执行流程:运行时数据区程序计数器为什么需要程序计数器?为什么每个线程都需要一份私有的程序计数器?虚拟机栈为什么会出现虚拟机栈?什么是java虚拟机栈?优点?既然会内存空间不足异常,那么如何设置栈大小来
2021-08-01 23:19:07
1597
原创 JVM:垃圾回收算法与垃圾回收器
垃圾回收算法什么是垃圾?为什么要回收?在java中,当一个对象没有被任何指针指向的时候,他就成为了一个垃圾,也就应该对其进行回收,如果不对其进行回收就会造成内存泄露,甚至是内存溢出。垃圾回收分为两个阶段垃圾标记和垃圾回收。垃圾标记引用计算算法(java并未使用,不存在循环引用造成内存泄露)对每一个对象保存一个整型的引用计数器属性,用于记录对象被引用的情况。当对象被任何一个对象引用就会对计数器加以,引用失效就减一,直到计数器为0,就把该对象视为垃圾,对其进行回收。该算法具有效率高,没有回收延迟的
2021-08-01 17:11:25
256
原创 Spring Security前后端分离配置以及自定义图片验证码和短信验证码登录功能
自定义图片验证和验证码验证文章目录自定义图片验证和验证码验证Spring Security原理自定义登录自定义验证成功处理器自定义验证失败处理器匿名访问(未登录访问)处理器访问权限拒绝处理器登出成功处理器security配置数据库查询用户服务自定义图片验证码图片验证码自定义验证异常随机生成验证码图片验证码过滤器获取验图片证码接口自定义短信验证码短信验证码过滤器SmsAuthenticationTokenSmsAuthenticationProvider配置短信验证码流程到spring security获取
2021-07-28 17:38:46
1161
原创 JVM: 运行时数据区(图解+面试题)
JVM: 运行时数据区文章目录JVM: 运行时数据区运行时数据区程序计数器为什么需要程序计数器?为什么每个线程都需要一份私有的程序计数器?虚拟机栈为什么会出现虚拟机栈?什么是java虚拟机栈?优点?既然会内存空间不足异常,那么如何设置栈大小来改变某些特定环境下的要求?栈的存储单位栈帧内部结构虚拟机相关面试题:举例栈溢出的情况?(StackOverflowError)调整栈大小,就能保证不出现溢出吗?垃圾回收是否会设计到虚拟机栈?方法中定义的局部变量是否线程安全本地方法接口,本地方法库什么是本地方法?作用本
2021-07-24 19:45:37
313
原创 JVM之类加载子系统(一)
jvm–类的加载子系统文章目录jvm--类的加载子系统类加载子系统类加载过程加载链接初始化类加载器的分类引导类加载器(bootstrap ClassLoader):c ,c++ 实现自定义类加载器: java实现需要自定义类加载器的情况有哪些?自定义加载器的步骤?双亲委派机制双亲委派机制有什么作用?执行流程:类加载子系统类加载过程加载通过一个类的全限定名获取定义此类的二进制文件流、将这个类字节流所代表的静态存储结构转换为方法去的运行时数据结构在内存中的堆区生成一个代表这个类的Cl
2021-07-24 11:50:47
207
原创 Spring5快速入门,一文贯穿
Spring5快速入门,一文贯穿轻量级开源j2ee应用开发程序特点:方便解耦支持aop方便程序测试方便整合框架降低api开发难度方便事务操作IOC 控制反转把创建对象过程交给spring进行管理,降低耦合度底层原理xml解析、工厂模式、反射过程:使用xml创建对象使用xml解析技术解析通过反射创建对象Class clazz = Class.forName(解析出来的class路径);return (类名)clazz.newInstance();IOC容器底
2021-07-13 13:54:01
182
原创 标准输入和参数的区别-刚入门建议别看,我怕你学会了再也不想用Windows
标准输入和参数的区别-刚入门建议别看,我怕你学会了再也不想用Windows在这里,不解释什么是标准输入和参数(不知道的自己百度,学过C语言等语言的可以对比Scanf等输入函数和函数中的传递的参数概念),我们只解决实际问题。将其对应到管道符 ‘|’、文件重定向符号 ’ > ’ , ’ < '的应用以及$()的应用。首先,我们引入一个场景:当我们要查找系统中一个文件,并且要将其删除,而且作为一名程序员,我肯定想在别人面前耍波帅,尽量少操作键盘。那该怎么办?对于稍微熟悉Linux的程序员来说,
2021-06-03 00:42:57
550
原创 快速安装虚拟机
安装虚拟机官网下载VMware 15 pro:https://www.vmware.com安装完成后,进入软件。1.创建一个虚拟机选择创建一个虚拟机一般选典型就可以这里显示创建一个虚拟机,选择稍后安装操作系统选择需要安装操作系统类型指定虚拟机名称,以及安装的位置选择磁盘文件的最大值,同时选择将磁盘拆分为多个文件。完成即可。下面开始配置这个虚拟机选择编辑此虚拟机配置内存大小根据自己电脑的处理器数量配置虚拟机的处理器网络配置这里一般选择NAT模式即可。下面
2021-05-02 19:49:05
270
原创 maven使用
Maven基本配置Maven是什么以及作用在Java中,maven是一个跨平台的构建工具,也是一个依赖管理工具和项目管理工具;可以用于构建和管理Java相关项目的工具。使用Maven管理项目的好处:项目结构相同,便于统一维护jar包;还能构建项目,完成项目代码的编译,测试,打包,部署。maven的使用方式1.独立的使用maven:使用maven的各种命令,完成代码的编译、测试、打包等。2.结合开发工具使用,一般在idea中使用maven,不需要记命令。maven的安装(此处不提供详细的教程)1
2021-03-28 20:07:25
72
原创 XML入门
XML简介1.什么是XMLxml是可扩展标记性语言(区别HTML)。2.xml的作用是什么?(1)保存数据,而且这些数据具有自我描述性。(2)还可以作为项目或者模块的配置文件。(3)可以作为网络传输数据的格式(目前已经是以json为主了)3.如何在idea中创建xml文件?切记需要加上.xml作为文件结尾才能是一个xml文件。4.xml文件的基本写法xml文件声明 <?xml version="1.0" encoding="utf-8" ?> xml文件必须以这样的
2021-03-13 21:00:20
117
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人