自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java垃圾回收主要算法

1.标记清除 先标记出垃圾,然后再清除垃圾。 标记时利用可达性分析,可达的对象刨除,不可达的对象标记为垃圾,然后将其清除,即释放该对象所占的内存空间。 优点:简单,容易实现 缺点:可能会产生大量的内存碎片 例如,假设有五个对象占用五份内存,此时2,4为垃圾,则将其所占空间释放,空闲的空间就会和正在使用的空间穿插开了,变成一块块空间碎片。 但在代码中我们经常会申请一个连续的内存空间,如果碎片太多,总的剩余空间有50M,但是是由50个1M的空间碎片组成,如果我们想要申请一个3M的连续空间,则无法满足。 2.复

2021-09-27 22:47:37 368

原创 单例模式知识点

定义 Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。” 单例模式的实现主要依托static关键字。 单例模式的两种类型 1.饿汉模式:实例的创建出现在类加载阶段; 2.懒汉模式:实例的创建在第一次使用对象时。 饿汉模式代码 static class Singleton{ //期望singleton是一个单例类,只有一个实例 //先创建一个成员,保存唯一的一个Singleton实例 private static Singleto

2021-09-27 13:53:06 244

原创 线程不安全的原因

1.线程的抢占式执行过程 线程的执行顺序不是固定的。哪个线程先抢到CPU就执行,哪怕是其中一个线程正在执行时,其他线程若是抢到了CPU,就会打断前一个的过程,先执行自己的。 2.多个线程修改同一个变量 比如两个线程都想对变量m=0进行加一操作,正常的话,m在两次加一之后应该变成2,但是由于线程的抢占式执行过程,线程二有可能在线程一刚刚读取m之后就开始执行,也从内存中读取m,此时线程一和线程二手中的m的值都为0,两个线程执行完毕之后m都为1,将m又存入内存,此时内存中的m=1,所以就出现了线程安全问题。 3.

2021-09-26 16:15:13 699

原创 公共子串计算(牛客)

题目 给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。 注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。 思路 可以用动态规划来写 状态 F[i,j]:字符串s1的前i+1个字符与字符串s2的前j+1个字符中以s1[i]和s2[j]为结尾的最长公共子串的长度。即所求得的公共子串必须是以s1[i]和s2[j]为结尾的。 例如:s1:wtabcwedht;s2:zabcyedff 那么F[3,2]则代表的是s1的前4(因为字符串下标以0开始)个字符组成的字符串

2021-07-06 22:28:35 1892

原创 二叉搜索树转换成排序双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 思路 二叉树的中序遍历是有序的,所以排序不用担心;难点在调整指针指向。 双向链表有三个域值域,前驱域和后继域。 二叉树的每一个节点也有三个域值域,left,right; 将left变为前驱,right变为后继,就能将二叉搜索树变为双向链表。 以节点1,3,4为例 第一步先写一个中序遍历出来 public void convertChild(TreeNode root){

2021-05-20 18:10:45 1108

原创 二叉树的最近公共祖先(LCA问题)

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出:3 解释:节点 5 和节点 1 的最近公共祖先是节点 3 。 示例 2: 输入:root = [3,5,1,6,2,0,8,null,n

2021-05-19 22:45:27 437

原创 平衡二叉树(力扣)

给定一个二叉树,判断它是否是高度平衡的二叉树。(力扣) 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3,null,null,4,4] 输出:false 示例 3: 输入:root = [] 输出:true 思路 ...

2021-05-16 22:40:46 196

原创 对称二叉树(力扣)

对称二叉树(力扣) 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 思路: 判断是否对称需判断这棵树的左子树与右子树是否对称, 即判断左子树的根节点与右子树的根节点的值是否相等,左子树的左节点与右子树的右节点是否相等及左子树的右节点与右子树的左节点是否相等即可。 共有六种情况: 1.此树为空,直接返回true,空树也是对称树; 2.左子树与右子树的根节点的值不同,返回fals

2021-05-16 21:37:07 356

空空如也

空空如也

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

TA关注的人

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