JVM上篇内存与垃圾回收-垃圾回收概述及相关算法 大厂面试题蚂蚁金服 你知道哪几种垃圾回收器,各自的优缺点,重点讲一下cms和G1? CMS 和 G1 都是针对老年代的垃圾回收器,它们的主要区别有以下几点123: CMS 使用 标记-清除 算法,G1 使用 标记-整理 算法,后者可以减少内存碎片。 CMS 是基于 分代 模型的,G1 是基于 分区 模型的,后者可以灵活地调整新生代和老年代的大小和位置。 CMS 不能很好地控制停顿时间,G1 2022-11-15 JVM上篇内存与垃圾回收 #八股文
JVM上篇内存与垃圾回收-StringTable String的基本特性 String:字符串,使用一对””引起来表示 String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的。 String实现了Comparable接口:表示string可以比较大小 String在jdk8及以前内部定义了final char[] value用于存储字符串数据。JDK9时改为byte[] char数组一 2022-11-14 JVM上篇内存与垃圾回收 #八股文
JVM上篇内存与垃圾回收-执行引擎 执行引擎执行引擎属于JVM的下层,里面包括解释器、及时编译器、垃圾回收器 执行引擎是Java虚拟机核心的组成部分之一 虚拟机的执行引擎由软件自行实现,物理机的执行引擎是操作系统层面上 能够执行不被硬件直接支持的指令格式 JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节码指令 2022-11-13 JVM上篇内存与垃圾回收 #八股文
JVM上篇内存与垃圾回收-对象实例化和直接内存 对象实例化面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? 对象头包含了两部分,第一部分是运行时元数据,包括哈希码、GC分代年龄、锁标识状态、线程持有的锁、偏向线程ID等。第二部分是类型指针,指向对象的类元数据类型。12 蚂蚁金服: Java对象头有什么? 创建对象的步骤1. 判断对象对应的类是否加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个 2022-11-12 JVM上篇内存与垃圾回收 #八股文
基础算法—二叉树实战篇 基础算法—二叉树实战篇二叉树的遍历144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历102. 二叉树的层序遍历107. 二叉树的层序遍历 II429. N 叉树的层序遍历199. 二叉树的右视图637. 二叉树的层平均值515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. 填充每个节点的下一个右侧节点指针 II114. 二叉树展开为链表543. 2022-11-11 基础算法 #算法
基础算法—二叉树理论篇 基础算法—二叉树理论篇二叉树的种类二叉树有两种主要的形式:满二叉树和完全二叉树 满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 如图所示: 这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树什么是完全二叉树? 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到 2022-11-11 基础算法 #算法
JVM上篇内存与垃圾回收-方法区 方法区从线程共享与否的角度来看 栈、堆、方法区交互关系 方法区的理解 Java虚拟机规范中明确说明:尽管所有的方法区在逻辑上是属于堆的一部分,但是一些简单的实现,可能不会选择去进行垃圾收集或者进行压缩。对于HotSpot而言,方法区还有一个别名叫Non-Heap(非堆),目的就是要和堆分开 所以方法区看作是一块独立于Java堆的内存空间 方法区和Java堆一样,是各个线程共享的内存区域 方法区在J 2022-11-10 JVM上篇内存与垃圾回收 #八股文
基础算法—栈与队列篇 基础算法—栈与队列篇 Queue queue=new LinkedList(); 优先队列:PriorityQueue queue =new PriorityQueue<>(); Stack stack=new Stack<>(); 双端队列:ArrayDeque deque = new ArrayDeque<>(); 2022-11-09 基础算法 #算法
JVM上篇内存与垃圾回收-本地方法接口和本地方法栈和堆 本地方法接口什么是本地方法?简单地讲,一个Native Method是一个Java调用非Java代码的接囗。该方法的实现由非Java语言实现,比如C。 为什么使用native method 与Java环境的交互 与操作系统的交互 本地方法栈 Java虚拟机栈管理Java方法的调用,而本地方法栈用于管理本地方法的调用 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。 内存 2022-11-08 JVM上篇内存与垃圾回收 #八股文
基础算法—字符串篇 基础算法—字符串篇344. 反转字符串思路双指针 541. 反转字符串 II思路反转字符串 剑指 Offer 05. 替换空格思路替换空格 151. 反转字符串中的单词思路翻转字符串里的单词 680. 验证回文串 II剑指 Offer 58 - II. 左旋转字符串思路s.substring KMPKMP主要应用在字符串匹配上。 KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配 2022-11-07 基础算法 #算法