自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Mysql中存储引擎InnoDB,MyISAM的区别及适用场景

Mysql中存储引擎InnoDB,MyISAM的区别1.支持的锁级别:InnoDB支持行级锁和表级锁.,默认为行级锁;MyISAM 只有表级锁2.事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB快,但是不提供事务。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全型表。3. 外键: MyISAM不支持,Inno

2021-06-15 21:50:40 621

原创 数据库三大范式

数据库三大范式上次面试的时候面试官问我数据库的三大范式是啥,直接给我问蒙了。所以在此记录一下第一范式--------无重复的列。在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范

2021-06-15 21:25:52 243 1

原创 GC垃圾回收算法

1. 标记-清除算法(Mark-Sweep)最基础的垃圾回收算法,分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。如图:从图中我们就可以发现,该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可利用空间的问题。2. 复制算法(Copying)为了解决Mark-Sweep算法内存碎片化的缺陷而被提出的算法。按内存容量将内存划分为等大小的两块。每次只使用其中一块,当这一块内存满后将尚存活的对象复制到另一块上去,把已使用的内存清掉,如图:这

2021-03-01 10:52:24 205

原创 JVM的GC垃圾回收机制

JVM会分配一个运行时内存空间。包括5大部分:程序计数器(Program Counter Register)、虚拟机栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。其中程序计数器、虚拟机栈、本地方法栈是每个线程私有内存空间,随线程而生,随线程而亡。这3个区域内存分配和回收都是确定的,无需考虑内存回收的问题。但方法区和堆就不同了,一个接口的多个实现类需要的内存可能不一样,只有在程序运行期间才会知道会创建哪些对象,这部分内存的分配

2021-02-28 22:58:03 288

原创 JVM的内存结构

1、程序计数器程序计数器(Program Counter Register)是在jvm内存模型中最小块线程私有的内存区域,生命周期与线程相同,可看作是当前线程执行字节码的行号指示器。是 JVM 中唯一一个不会出现 OOM(OutOfMemeryError)的区域。如果线程执行的是一个 Java 方法,计数器记录的是正在执行的虚拟机字节码指令的地址;如果执行的是一个 Native 方法,则计数器值为空。程序计数器的作用:字节码解释器通过改变程序计数器的值来选取下一条需要执行的字节码指令,从而.

2021-02-28 21:14:01 63

原创 类加载的双亲委任模型

概念如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委任给付加载器去完成,一次向上,故所有的类加载请求最终应该被传递到顶层的启动类加载器中,只有当父类的加载器在它的搜索范围中没有找到所需的类时,那就没有办法完成该加载,子加载器才会自己去加载该类双亲委派机制:1、当 AppClassLoader加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器ExtClassLoader去完成。2、当 ExtClassLoader加载一个class时,

2021-02-25 17:47:27 60

原创 java类执行的过程

java类执行的过程分为两个步骤:类的加载类的执行一,类的加载 :将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。二,类的加载过程其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和

2021-02-25 17:10:41 576

原创 快手Java开发实习生一面

快手Java开发实习生一面hashset实现string类的扩展方法spring容器初始化实现jvm内存,细节(创建一个类把它放在那,堆的什么部分,新生代,老年代)jdk与jreJava垃圾回收算法springAOP和IOCJava多线程实现方法抽象类和接口的区别ARP地址解析协议SMTP协议ICMP协议算法题:链表翻转,数组实现最长公共序列...

2020-11-12 14:57:33 341 2

原创 Java的构造方法

Java的构造方法首先,咱们先说说构造方法的用途,先了解一下它到底是干什么的。其实很多人都把构造方法的作用说成是为了创建一个对象,其实我认为这种理解是有一些偏差的,当我们创建一个对象的时候,是一定会调用构造方法的。但是构造方法的作用并不是创建对象的。那构造方法的作用其实是当创建一个对象的时候对对象的属性进行初始化,也就是给对象的各个属性赋初值。接下来我们再说一下定义构造方法的规则:构造方法的方法名称必须和类名一致。可以定义多个构造方法,编译器根据参数自动判断到底调用哪个构造方法。在一个构造方法

2020-11-09 15:02:42 107

原创 重载与重写的区别

重载与重写的区别这个是我第一篇文章,也是我记录学习的第一步,这个知识点是面试老师经常会问的一个店,所以在此记录一下呀!重写其实咱们从字面意思就可以看出来,重写就是把方法重新再写一遍,那就是在子类继承了父类时,但是并不想原封不动继承父类中的某一方法,那么就可以在子类中把父类的方法重新定义一下。那重写的好处就是在于子类可以根据需要定义特定于自己的行为。但是肯定是有规则的呀,要求就是:重写的方法的方法名,参数列表,返回类型必须完全与被重写方法相同,否则不能称其为重写,而是重载。重写方法的访问权限一

2020-11-08 20:51:10 83

空空如也

空空如也

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

TA关注的人

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