- 博客(34)
- 资源 (45)
- 收藏
- 关注
原创 class类文件结构——字段表结构
文章目录class类文件结构——字段表结构什么是字段表从哪些方面可以进行描述字段表结构字段计数器访问标志access_flag字段的数据类型,字段名,属性长度class类文件结构——字段表结构什么是字段表描述类或者接口中声明的变量(不包括方法内部声明的变量,也就是说字段表中的字段信息只包含成员变量和静态变量,不包含局部变量)**** ps
2019-01-31 21:03:27 1057
原创 二叉搜索树的后序遍历序列
文章目录二叉搜索树的后序遍历序列题目描述题目分析什么是二叉搜索树(BST)题解思路代码总结二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public boolean VerifySquenceOfBST(int ...
2019-01-31 18:03:58 165
原创 volatile变量
文章目录Java内存模型介绍volatile变量怎么用Java内存模型介绍在了解volatile到底是什么东西之前,我们先来了解一下Java的内存模型参考博客https://segmentfault.com/a/1190000014903099简单来说,Java的内存模型就是每个线程都有一个自己独占的工作内存所有线程工作的时候都需要和主内存进行交互,这个交互的过程就是load和st...
2019-01-31 13:00:01 351 3
原创 二叉树的遍历方式
文章目录什么是树的遍历遍历的种类深度优先广度优先代码实现深度优先前序遍历中序遍历后序遍历广度优先什么是树的遍历 树的遍历是图的遍历的一种,指的是按照某种规则,** 不重复地访问 **某种树的所有节点的过程。遍历的种类 由于从给定的某个节点出发,有多个可以前往的下一个节点(树不是线性数据结构),所以在顺序计算(即非并行计算)的情况下, 只能推迟对某些节点的访问 ——即以某种方式保存起来以...
2019-01-30 21:02:22 558
原创 从上往下打印二叉树
文章目录题目描述分析思路错误思路正确思路题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。import java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode...
2019-01-30 21:00:04 94
原创 Class文件结构——类索引、父类索引、接口索引集合
什么是类索引、父类索引、接口索引集合:类索引:this_class(u2类型)2个字节 16位父类索引:super_class(u2类型)2个字节 16位接口索引集合:interfaces(这里为什么是集合呢,因为我们知道Java中继承接口的时候是可以多继承的)(注意在接口索引集合的入口处还有两个字节的实现接口的数量)那么我们写一个Java文件分析一下import java....
2019-01-29 20:52:30 507
原创 Class类文件结构——访问标志
访问标志的位置:在常量池结束之后的两个字节(16位)表示访问标志access_flags。访问标志的作用:用于标识类或者接口层次的访问信息;比如该Class是类还是接口,是否为public类型、是否为abstract类型、是否是final类型等等。访问标志的类型:参考博客《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合 那么我们...
2019-01-29 20:16:56 588
原创 栈的压入弹出序列
question:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)import java.util.ArrayList;public c...
2019-01-29 18:11:39 301
转载 Java中length,length()以及size()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjkC050818/article/details/53399855 </div> <div id="content_views" class="markdown_views prism-atom-on...
2019-01-29 16:19:02 244
原创 extends和implements的区别
首先需要记住的是extends表示继承关系、implements表示实现关系那么extends用于哪些情形、implements又用于哪些情形呢? extends:子类(class) extends 父类(class)===>继承类只能是单继承,也就是如果父亲属于类(class),那么父亲只能有一个类(class)/ 接口(interface) extends ...
2019-01-27 14:54:34 5236
原创 顺时针打印矩阵
question:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:根据最后一圈打印的情况分情况讨论 resolution: import com.sun...
2019-01-26 22:35:28 89
原创 二叉树的镜像
question:操作给定的二叉树,将其变换为源二叉树的镜像。 首先要了解什么是镜像,这里的镜像二叉树是指所有的左右子树都互相交换,这里同样需要用到递归,不仅需要左右孩子交换,同时还需要左右孩子的孩子进行交换 public void Mirror(TreeNode root) { TreeNode tempNode = null ; if(root...
2019-01-26 17:08:09 125
原创 Class类文件结构解读——常量池
首先写一个Java文件public class HelloWorld{ private int m; public int intc(){ return m + 1; }}使用javac编译为class文件C:\Users\xiaoqiu\Desktop>javac HelloWorld.java使用十六进制编辑器winHex打开...
2019-01-26 12:33:50 274
原创 进制、字(word)、字节(byte)、位(bit)的关系
位(bit):1位表示一个二进制数。 位是计算机中存储数据的最小单位,其值为“0”或“1”。一个二进制数就是一位(1bit) 字节(byte):1字节表示8个二进制数。字节是计算机存储容量的基本单位。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母,两个字节可以表示一个汉字。1B=8bit 2B = 16bit 字(word):计算机进行数据处理时,一次存...
2019-01-26 11:01:53 7804
原创 树的子结构
question:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)resolution: /** * 包含两次递归:递归寻找根节点,递归比较左右子树是否相等 * @param root1 * @param root2 * @return */ public boolean HasSu...
2019-01-25 18:26:43 124
原创 合并两个排序的链表
question:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(单调不减的意思是要么递增要么不变,但是肯定不会减小)resolution: public ListNode Merge(ListNode list1,ListNode list2) { //定义一个新的链表头部 ListNode head =...
2019-01-24 21:34:09 66
原创 链表的反转
question:输入一个链表,反转链表后,输出新链表的表头。resolution: public ListNode ReverseList(ListNode head) { ListNode pre = null;//上一跳 ListNode sub = null;//下一跳 while (head != null){ ...
2019-01-24 16:16:17 121
原创 链表倒数第k个节点
question:输入一个链表,输出该链表中倒数第k个结点。resolution:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } publi...
2019-01-18 17:25:00 141
原创 调整数组顺序使奇数位于偶数前面
question:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。resolution: public void reOrderArray(int [] array) { for(int i =1; i < array.length;i++){...
2019-01-18 16:20:05 179
原创 数值的整数次方
question:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。resolution1:该方法是一个比较投机取巧的方法,直接利用了Java的库函数,当然面试中还是不建议采取这种方法的 public double Power(double base, int exponent) { double resul...
2019-01-17 16:16:54 100
原创 二进制中1的个数
question:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。本题需要知道的一点是:一个整数也就是int类型,4个字节,一个字节有8位,所以一共就有32位resolution1:该方法的思路是一种比较容易想到的思路。要统计一个32位的二进制数中1的个数,那么就可以依次遍历这32位数,判断为1 还是 0那么如何遍历呢?这里就要借助Java的toBinaryStri...
2019-01-15 21:29:49 235
原创 矩形覆盖
question:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法resolution: public int RectCover(int target) { if(target == 1) return 1; if(target == 2) return 2; ...
2019-01-14 18:09:14 86 1
原创 变态跳台阶
question:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 设f(n) 为n级台阶的跳法 且f(0) = 1,然后分别针对n的取值进行讨论,由第一步的跳法不同进行分情况讨论,从而构造出递归关系等式。本题的关键就是要构造出递归关系式 resolution1:自底向上 public int JumpFloorII...
2019-01-13 21:08:52 92
原创 跳台阶
question:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。分情况讨论:当n=1 ,n=2 ,n>=2当n>=2时又从第一次开始讨论,第一次可以跳两步或者一步,剩下的就是f(n-1)或者f(n-2)步,这是两种不同的方案进行相加,就可以看出规律为斐波拉契数列。但是要注意的是初值为1而不是0,以及台阶和i...
2019-01-13 17:44:03 90
原创 斐波那契数列
question:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39resolution: public int Fibonacci(int n) { //0 1 1 2 3 5 8 13 21 34 .。。。。 // 0 1 2 3 4 5 6 7 8 9 .。。。。 ...
2019-01-13 14:36:58 222
原创 旋转数组的最小数字
quesiton:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。resolution: public int minNumberInRotateArray(...
2019-01-13 12:05:15 85
原创 两个栈来实现一个队列
question:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 resolution:import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Intege...
2019-01-13 11:22:11 202
原创 重建二叉树
question:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 resolution1: public class TreeNode { int val; ...
2019-01-12 22:41:13 193
原创 重写和重载
重写:一般发生在子类继承父类的时候会进行重写重写需要注意的几点:父类public,protected修饰的方法可以进行重载,但是private修饰的方式不能被重载,final修饰的任何方法都不能被重载 子类重写父类的方法时,子类方法的修饰符的访问权限要大于等于父类 子类的参数类型、参数个数、返回类型必须和父类一致public class Test1 { public cla...
2019-01-12 21:38:49 347 1
原创 链表的反转打印
question:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。resolution1:先用一个链表依次保存每个node的值,然后再用一个链表保存反转后的值 /** * 运行时间:22ms * 占用内存:9200k * @param listNode * @return */ ...
2019-01-11 22:11:34 410
原创 替换空格
question:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。resolution1:定义一个新的字符串,遇到了空格就添加“%20”,否则就copy原来的字符,这里需要注意的是判断是否等于空格的时候是字符的比较而不是字符串的比较,所以这里的空格应该用单引号而不是双引号。 ...
2019-01-11 15:37:47 113
原创 二维数组中的查找
question:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。resolution 1: resolution1 是一个比较容易想到的方法,依次从每行每列遍历整个数组直到找到和target相同的数为止//运行时间:198ms//占用...
2019-01-11 10:58:22 132
原创 Java的技术体系
Java的技术体系包括几个组成部分:Java code java api java 第三方类库 Class文件格式 JVM
2019-01-10 19:55:26 224 1
加密解密 数组排序
2017-07-10
javascript循环
2017-07-10
数据算法 Hadoop Spark大数据处理技巧
2018-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人