自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java多线程学习笔记】synchronized和volatile关键字

个人博客 翔仔年轻有力量:synchronized和volatile关键字引入通俗的解释synchronized关键字,即为在多线程开发环境下,当存在共享数据/公共资源类(临界区)可能会被多个线程共同操作时,为了实现在同一时刻有且仅有一个线程在操作临界区,其他线程必须等待该线程处理完数据后再进行的机制,称为互斥锁。在 Java 中,关键字 synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到syn

2020-08-13 09:30:40 284

原创 【JVM虚拟机学习笔记】Java内存区域(1)-运行时数据区域

个人博客 翔仔年轻有力量:【JVM】Java内存区域运行时数据区的划分划分规范:对于HotSpot虚拟机,在JDK8 以前HotSopt虚拟机在JDK 8 以后注:"方法区"这一概念定义在Java虚拟机规范中,其具体实现在不同虚拟机中各不相同。在HotSpot虚拟机中,JDK8以前,永久代作为方法区的具体实现,划分为堆的一部分,同用堆内存的GC回收机制在JDK8以后,元空间替代了永久代,其内存位于本地内存中,不易产生OOM异常内存各区域介绍程序计数器(Program

2020-08-12 12:23:52 175

原创 【JVM虚拟机学习笔记】类加载机制

文章来源:个人博客 翔仔年轻有力量:【JVM】类加载机制类加载过程加载Loading加载阶段(Loading),完成以下三个步骤:通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的的静态存储结构转化为方法区的运行时数据(方法区中的数据存储格式由虚拟机自行定义)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各个数据的访问入口,即程序访问方法区中的类型数据的外部接口。另外,加载阶段使用不同的类加载器完成,而类加载器可以由用户自定义。通过

2020-07-29 11:03:20 157

原创 【剑指java版】对称的二叉树

文章来源:个人博客 翔仔年轻有力量:对称的二叉树题目描述  请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。给定二叉树pRoot1定义函数判断pRoot1是否是对称的二叉树节点定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val)

2020-07-14 21:05:42 99

原创 【剑指java版】二叉树的镜像

文章来源:个人博客 翔仔年轻有力量:二叉树的镜像题目描述  操作给定的二叉树,将其变换为源二叉树的镜像。给定二叉树定义函数将二叉树转换为原来的镜像二叉树节点定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}牛客网O

2020-07-14 21:04:47 94

原创 【剑指java版】反转链表

文章来源:个人博客 翔仔年轻有力量:反转链表题目描述  输入一个链表,反转链表后,输出新链表的表头。给定一个链表将链表反转并输出链表节点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}牛客网OJ原题链接:反转链表思路方法使用头插法,步骤如图为了防止出现链表断裂等情况,链表

2020-07-14 21:03:27 148

原创 【剑指java版】链表中环的入口节点

文章来源:个人博客 翔仔年轻有力量:链表中环的入口节点题目描述  给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。给定一个链表,链表中存在环输出环的入口节点链表节点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}牛客网OJ原题链接:链表中环的入口节点思路方法

2020-07-14 21:02:14 93

原创 【剑指java版】合并两个排序的链表

文章来源:个人博客 翔仔年轻有力量:合并两个排序的链表题目描述  输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。给定两个递增单向链表输出保持递增规则的合并链表链表节点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路方法利用递归的方法,每

2020-07-14 21:00:33 79

原创 【剑指java版】树的子结构

文章来源:个人博客 翔仔年轻有力量:树的子结构题目描述  输入两棵二叉树A,B,判断B是不是A的子结构。(空树不是任意一个树的子结构)给定两个二叉树root1和root2定义函数判断root2是否root1的子结构,即root1中是否包含root2二叉树节点定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNod

2020-07-14 20:59:36 76

原创 【剑指java版】调整数组顺序使奇数位于偶数前面

文章来源:个人博客 翔仔年轻有力量:调整数组顺序使奇数位于偶数前面题目描述  输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。给定整型输出使用函数将数组中的奇数和偶数分开,所有奇数位于偶数前面牛客网OJ原题链接:调整数组顺序使奇数位于偶数前面思路方法在《剑指offer》原文中的原题所要求的并没有牛客网题目要求的“奇数和奇数,偶数和偶数之间的相对位置不变”,以下是原

2020-07-14 20:57:33 152

原创 【剑指java版】链表中倒数第k个数

文章来源:个人博客 翔仔年轻有力量:链表中倒数第k个数题目描述  输入一个链表,输出该链表中倒数第k个结点。给定:一个链表,整型数据int k输出链表中倒数第k个节点的数据;链表定义代码如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路方法使用两个指针,一个指针fNode先走k-1步,一

2020-07-14 20:56:32 92

原创 【剑指java版】删除链表中重复的结点

文章来源:个人博客 翔仔年轻有力量:删除链表中重复的结点题目描述  在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。给定链表为升序排序。存在待删除的重复节点。返回删除节点后的链表头指针链表节点的定义如下:public class ListNode { int val; ListNode next = n

2020-07-10 19:26:22 99

原创 【剑指java版】在O(1)时间内删除链表节点

文章来源:个人博客 翔仔年轻有力量:在O(1)时间内删除链表节点题目描述  给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。返回删除后的链表的头节点。给定的节点中包含该节点的值,以及下一个节点。链表节点的定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}LeetC

2020-07-10 19:25:22 123

原创 【剑指java版】打印从1到最大的n位数

文章来源:个人博客 翔仔年轻有力量:打印从1到最大的n位数题目描述  输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。int n;要求输出所有n位数思路方法数字n的范围不确定,若n较大,数值型的数据类型都无法完全输出。借助字符串表示数字,而字符串的长度则为n。如何使用字符串逐个输出?每一位数由’0’-'9’组成,则可以使用递归实现数字的全排列。递归的形式,则是借助for循环。例如当n=3时,从第一位

2020-07-10 19:23:37 206

原创 【剑指java版】数值的整数次方

文章来源:个人博客 翔仔年轻有力量:数值的整数次方题目描述  给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。double base;int exponent要求输出 base^exponent思路方法题意即指自己实现一个pow函数,通过递归即可实现.题目考察的重点为,对于输入情况的全面考虑,需要考虑到指数和底数分别为正数,负数,零的多种情况。其中,a的n次方有以下公式:1.首先对于指数进行分类处理,当指数expone

2020-07-10 19:21:52 117

原创 【剑指java版】二进制中1的个数

文章来源:个人博客 翔仔年轻有力量:二进制中1的个数题目描述  输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。思路方法对于二进制数来说,先减1,再对结果进行与’&‘操作之后,二进制数最右边的’1’变为’0’根据以上特性,可以通过对原数判定能进行多少次以上操作,来输出1的位数参考代码public class Solution { public int NumberOf1(int n) { //计数器 int count = 0;

2020-07-10 19:16:46 93

原创 【剑指java版】剪绳子

文章来源:个人博客 翔仔年轻有力量:剪绳子题目描述  给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。给定绳子的总长:int数据target返回绳子各段乘积的最大数思路方法使用动态规划算法归纳来说,对于长度为n的绳子,最大乘积则为f(n) =

2020-07-08 10:11:42 143

原创 【剑指java版】机器人的运动范围

文章来源:个人博客 翔仔年轻有力量:机器人的运动范围题目描述  地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?给定不可超过的数位和threshold,以及行数 rows 列数 cols返回能够达到的格子

2020-07-08 10:10:02 91

原创 【剑指java版】矩阵中的路径

文章来源:个人博客 翔仔年轻有力量:矩阵中的路径题目描述  请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。原字符串为char[] matrix 数组,传入rows和cols来规定行数和列数需要目标字符串与原字符数组进行匹配,从原串的任意位置起始。如果经过了一次,不能再使用,所以需要一个标志二维数组flag [][

2020-07-08 10:08:12 119

原创 【剑指java版】旋转数组的最小数字

文章来源:个人博客 翔仔年轻有力量:旋转数组的最小数字题目描述  把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。给定一个数组,数组是一个递增数组旋转后的序列。数组的顺序分为两部分,原递增部分(如:{3,4,5,1,2}的{3,4,5})和旋转部分 (如:{3,4,5,

2020-07-08 10:05:49 93

原创 【剑指java版】二叉树的下一个节点

文章来源:个人博客 翔仔年轻有力量:二叉树的下一个节点题目描述  给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。给定一个二叉树和一个节点找到并返回该节点在中序遍历中的下一个节点节点类初始化如下:public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null;

2020-07-05 16:11:26 101

原创 【剑指java版】重建二叉树

文章来源:个人博客 翔仔年轻有力量:重建二叉树题目描述  输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。两个数组,pre []为二叉树前序遍历序列,in []为二叉树中序遍历序列。各遍历序列中不含重复数字要求输出重建的二叉树。节点类初始化如下:public class TreeNode {

2020-07-05 16:09:50 490

原创 【剑指java版】从尾到头打印链表

文章来源:个人博客 翔仔年轻有力量:从尾到头打印链表题目描述  输入一个链表,按链表从尾到头的顺序返回一个ArrayList。输入一个链表,链表内元素为int类型输出含逆序链表元素的ArrayList节点类初始化如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }

2020-07-05 16:07:27 67

原创 【剑指java版】替换空格

文章来源:个人博客 翔仔年轻有力量题目描述  请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。已知一个字符串,字符串中包含一个或多个空格将空格替换为“%20”输出替换后的字符串思路方法在书中对于C的解法,需要两个指针,从原字符串的末尾往前扫描,具体如下:先遍历一次,确认包含的空格数→确认新字符串的长度N=n原长+(空格数*2)从原字符串末尾开始扫描,遇到非空格直接复制到

2020-07-01 15:50:58 83

原创 【java常见面试题】String、StringBuffer和StringBuilder的区别

文章来源:个人博客 翔仔年轻有力量:https://passionzz.cnString类的基本特征被声明为final类,内部变量char value[]亦被final修饰指向的char value[]不可变,因而每次操作时都会生成新的String对象,而将旧的String对象丢弃,造成浪费典型的Immutable(不可变)类字符串常量池缓存注:String对象并非完全不可变,可以通过对String类的value字段进行修改,改变value属性的访问权限,以达成修改String对象的目的

2020-06-30 22:57:50 240

原创 【剑指java版】二维数组中的查找

文章来源:个人博客 翔仔年轻有力量:https://passionzz.cn题目描述  在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。给定行数和列数的二维数组数字各行从左到右递增,各列从上到下递增判断数字中是否含有目标数,是则输出true,否则输出false思路方法从数组的右上角选定数字进行比较,开始向数组的左下方向排除当目标数大于角数,

2020-06-26 12:37:14 83

原创 【剑指java版】数组中重复的数字

文章来源:个人博客 翔仔年轻有力量:https://passionzz.cn题目一 找出数组中重复的数字题目描述  在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。数...

2020-04-15 23:59:25 110

原创 基于hexo博客,运用markdown编写博客

文章来源:个人博客 翔仔年轻有力量:https://passionzz.cnMarkdown介绍Markdown是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档。来自维基百科通俗的来说,它就是一个利用各种常用符号来帮助作者更方便更快捷的来进行博客的写作,让博客更具可观性。而常用的...

2020-03-30 16:37:48 796

空空如也

空空如也

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

TA关注的人

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