- 博客(61)
- 收藏
- 关注
原创 ArrayList、LinkedList、HashMap、ConcurrentHashMap总结
ArrayListArrayList() 会使用长度为零的数组ArrayList(int initialCapacity) 会使用指定容量的数组public ArrayList(Collection<? extends E> c) 会使用 c 的大小作为数组容量add(Object o) 首次扩容为 10,再次扩容为上次容量的 1.5 倍addAll(Collection c) 没有元素时,扩容为 Math.max(10, 实际元素个数),有元素时为 Math.max(原容量 1.5
2022-05-28 23:05:04
282
原创 面试题总结02
谈谈InnoDB引擎中的锁创建线程有哪几种方式JVM包含哪几部分Redis有哪些数据类型HTTPS协议中间人攻击是什么?Java中有哪些集合类说一说你对双亲委派模型的理解说一说zset类型的底层数据结构给定一个链表,请判断该链表是否为回文结构。
2022-05-11 17:55:02
125
原创 Git的基本概念与操作
Git分布式的版本控制系统,SVN为集中式的版本控制系统下载地址https://git-scm.com/Git 基础直接记录快照而非比较差异近乎所有的操作都在本地执行时刻保障数据的完整性多数操作仅添加数据文件的三种状态已修改(modified)已暂存(staged)已提交(committed)Git文件状态Git文件已被版本库管理的文件已修改在工作目录中修改Git文件已暂存对已修改的文件执行Git缓存操作,将文件存入暂存区已提交将已
2021-09-26 22:54:41
86
原创 [JVM学习]GC的种类、JVM堆上对象的分配过程
JVM堆上GC的种类JVM在进行GC时,并非每次都对三个内存区域(新生代,老年代;方法区(永久代,元空间))一起回收的,大部分回收都指的是新生代针对HotSpot VM的实现,他里面的GC按照回收区域又分为两大种类型,一种是部分收集(Partial GC),一种是整堆收集(Full GC)部分收集:不是完整收集整个JAVA堆的垃圾收集,其中又分为:新生代收集(Minor GC/Young GC):只是新生代的垃圾收集老年代收集(Major GC/ Old GC):只是老年代的垃圾收集
2021-09-12 17:55:11
169
原创 [JVM学习]本地方法栈、堆
本地方法栈本地方法栈概述Java虚拟机栈用于管理Java方法调用,而本地方法栈用于管理本地方法的调用本地方法栈也是线程私有的允许被实现成固定或者是可动态扩展的内存大小(在内存溢出方法是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,JAVA虚拟机将会抛出一个StackOverflowError异常如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么java虚拟机将会抛出一个OutofMemoryEr
2021-09-05 15:00:32
145
原创 [JVM学习]虚拟机栈
虚拟机栈虚拟机栈是运行时数据区的另一个区域,同时虚拟机栈也是运行时数据区的另一个线程私有区域由于跨平台的设计,Java的指令都是根据栈来设计的,不同平台的CPU架构不同,所以不能设计为基于寄存器的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令栈是运行时的单位,而堆是存储的单位栈解决程序的运行问题,即程序如何执行,或者如何处理数据.堆解决的是数据的存储问题,即数据放哪怎么放每个线程创建时都会创建一个虚拟机栈,其内部保存着一个个栈帧,对应着一次次Java
2021-08-29 22:14:39
121
原创 [JVM学习]双亲委派机制及PC寄存器(程序计数器)
双亲委派机制Java虚拟机对class文件的加载采用的是按需加载,也就是说需要使用该类时才会将他的class文件加载到内存生成class对象,而且加载到某个类的class文件时,Java虚拟机采用的是双亲委派机制,他把任务交给父类来进行处理,这是一种任务委派模式工作原理如果一个类加载收到了类加载请求,它并不会自己先去加载而是把这个请求委托给父类的加载器去执行如果父类的加载器还存在存在其父类加载器则进一步向上委托,依次向上递归,请求最终将达到的启动类加载器如果父类加载器可以完成类加载任务,就成
2021-08-22 21:10:33
92
原创 单例模式实例
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式实例需要注意的方面某一个类只有一个实例构造器私有化必须自行创建实例含有一个该类的静态变量来保存这个唯一实例自行向整个系统提供实例对外提供获取该实例对象的方
2021-04-20 13:32:42
210
原创 JDK动态代理的使用
JDK动态代理的使用首先,要使用JDK动态代理就要清楚JDK动态代理的位置,JDK的动态代理位于java.lang.reflect包下的Proxy类中,Proxy提供了创建动态代理类和实例的静态方法,它也是由这些方法创建的所有动态代理类的超类。使用JDK代理需要调用Proxy类中的newProxyInstance方法,调用这个方法可以实现对类的代理,实现对类的加强第一个参数: 用哪个类加载器去加载代理对象第二个参数:增强方法所在的类,这个类实现的接口支持多个接口第三个参数:实现这个接口In
2021-03-15 15:02:28
368
原创 数组模拟队列的两种方式
基本数组模拟队列定义队列头和队列尾(rear 是队列最后[含] front 是队列最前元素[不含])定义队列的最大长度//数组模拟队列--ArrayQueue类class ArrayQueue1{ private int maxSize; //队列长度 private int front; // 队列头 private int rear; // 队列尾 private int[] arr; // 模拟队列的数组 //初始化队列,将最大长度给数
2020-07-12 22:22:19
365
1
原创 稀疏数组与数组的转换和文件读写
二维数组 转 稀疏数组的思路遍历 原始的二维数组,得到有效数据的个数 sum根据sum 就可以创建 稀疏数组 sparseArr int[sum + 1] [3]将二维数组的有效数据数据存入到 稀疏数组稀疏数组转原始的二维数组的思路先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的 chessArr2 = int [11][11]在读取稀疏数...
2020-03-01 18:21:23
184
原创 Spring 的三种注入方式
构造器方法注入顾名思义,构造器方法注入,就是对象可以通过在其构造方法中声明依赖对象的参数列表,让外部(通常是IOC容器)来知道它需要哪些依赖对象构造器方法比较直观,对象被构造完成后,即进入就绪状体,可以马上使用缺点:当依赖对象较多时,构造方法的参数列表会比较长,通过反射构造对象时,对相同类型的参数处理比较困难.此外,构造方法无法设置默认值,对于非必须的依赖,可能需要引入多个方法,而参数数量...
2020-01-19 16:03:39
519
原创 Spring Boot在Eclipse中创建及初步使用
SpringBoot学习Spring Boot简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;环境约束– jdk1.8:Spring Boot 推荐jdk1.7及以上;java version “1.8.0_144”– maven3.x:maven 3.3以上版本;Apache Maven 3.6.0– Eclipse:...
2019-12-26 14:12:01
376
原创 JPA操作
ORM思想ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。主要目的...
2019-11-09 19:34:33
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人