- 博客(21)
- 收藏
- 关注
原创 Soot初使用
运行“sootclasses-trunk-jar-with-dependencies.jar”时,输入文件Test.class文件的位置与sootclasses-trunk-jar-with-dependencies.jar在同一目录下。sootclasses-trunk-jar-with-dependencies.jar这个包含了soot使用所需要的全部依赖。soot默认输入是class文件,输出也是class文件,如果需要输出jimple文件,可以使用参数-f J。
2023-08-07 21:12:09
528
1
原创 Java学习day27-排序与查找
27一.查找概述二.代码展示三.总结一.查找概述二.代码实现三.总结 一.查找概述 二.代码展示 三.总结 一.查找概述 在计算机中,存在着大量信息,对于如何查找特定的元素是一个很重要的问题,查找的效率也是一个很重要的因素,因此产生了不同的查找算法。常见的有顺序查找,二分查找,插值,哈希等等。 平均查找长度(Average Search Length,ASL):需和指定key进行比较的关键字的个数的期望值,称为查找算法在查找成功时的平均查找长度。 对于含有n个数据元素的查找表,查找成功的平均查找长度
2022-05-13 20:14:17
519
原创 Java学习day25--图的广度遍历
25一.广度遍历二.代码实现三.总结一.广度遍历二.代码展示 一.广度遍历 二.代码实现 三.总结 一.广度遍历 基本思路 广度优先搜索类似于树的层次遍历过程。它需要借助一个队列来实现。 具体过程如下: 1.准备工作:创建一个 tempVisitedArray数组,用来记录已被访问过的顶点;创建一个队列,用来存放每一层的顶点;初始化图G。 2.从图中的任意某一点开始访问,将的它对应的tempVisitedArray数组的值设置为true,同时将该顶点入队。 3.只要队列不空,则重复如下操作: (1)队头顶点
2022-05-10 18:40:53
246
原创 Java学习day24-图的连通性检测
24一.使用矩阵表示连通性二.代码展示三.总结使用矩阵表示连通性 一.使用矩阵表示连通性 二.代码展示 三.总结 使用矩阵表示连通性 首先我们说一下图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成, 通常表示为: G(V,E), 其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 因此我们可以看出图是一种较线性表和树更加复杂的数据结构。在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关,那么就无法以数据元素在内存中的物理位置来表示元素之间的关系,也就是说,图不可
2022-04-20 20:52:50
2154
原创 Java学习day22-汉诺塔问题
22一.汉诺塔问题二.代码展示总结汉诺塔问题代码展示总结 一.汉诺塔问题 二.代码展示 总结 汉诺塔问题 汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 先来看两个盘子如何移动。我们首先先将较小的放在B柱上(A->B),在将较大的放在C柱上(A->
2022-04-16 19:52:49
595
1
原创 Java学习day21-利用顺序表创建二叉树和二叉树的迭代遍历
22一.二叉树迭代遍历二.代码展示三.总结二叉树迭代遍历中序遍历前序遍历后序遍历二.代码展示总结 一.二叉树迭代遍历 二.代码展示 三.总结 二叉树迭代遍历 中序遍历 递归实现时,是函数自己调用自己,一层层的嵌套下去,操作系统/虚拟机自动帮我们用 栈 来保存了每个调用的函数,现在我们需要自己模拟这样的调用过程。 递归的调用过程是这样的: dfs(root.left) dfs(root.left) dfs(root.left) 为null返回 打印节点 dfs(root.right)
2022-04-15 20:30:09
1322
1
原创 Java学习day20-从通用队列中认识面向对象
20一级目录二级目录三级目录一.前言二.代码展示三.总结 一级目录 二级目录 三级目录 一.前言 对于二叉树存储的代码,我们使用了两个队列,一个存储而二叉树结点,一个存储整数。但是如果二叉树结点的类型产生变化,我们是否会需要重新写一个队列?这样没有体现Jvava面向对象的特点也没有充分利用代码的复用性。实际上,我们只需要一个存储对象的队列就行。 对比代码 昨天 今天 在这里我们只使用了CilcleObjectQueue来生成两个队列,分别来存储二叉树结点和整数,但是这里使用的是基本数据类型int的包装类
2022-04-14 20:12:24
713
原创 Java学习day19--二叉树
19一.二叉树二.代码展示三.总结一.二叉树二.代码展示三.总结 一.二叉树 二.代码展示 三.总结 一.二叉树 概念 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的特点: 每个结点最多有两棵子树,即二叉树不存在度大于2的结点。 二叉树的子树有左右之分,其子树的次序不能颠倒。 存储方式 二叉树一般可以使用两种存储结构,一种顺序结构,一种链式结构。 顺序结构即采用数组方式,采用压缩存储方式,即将节点的位置和值均存储起来,表示为两个向量
2022-04-13 21:34:20
137
原创 Java学习day18-第三周
18一.生成Javadoc二.问题回复三.总结一.生成Javadoc二.问题回复 一.生成Javadoc 二.问题回复 三.总结 一.生成Javadoc Javadoc用于描述类或者方法的作用。Javadoc可以写在类上面和方法上面。 这是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。 link 二.问题回复 ...
2022-04-12 19:36:38
447
原创 Java学习day17-自定义类String
17一.String类二.代码展示三.总结一.String类截取字符串二.代码展示三.总结 一.String类 二.代码展示 三.总结 一.String类 1、String表示字符串类型,属于 引用数据类型,不属于基本数据类型。 2、在java中随便使用 双引号括起来 的都是String对象。 例如:“abc”,“def”,“hello world!”,这是3个String对象。 3、java中规定,双引号括起来的字符串,是 不可变 的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不
2022-04-11 21:38:48
1542
原创 Java学习day16-队列
16队列代码展示总结一.队列链式存储循环队列二.代码展示三.总结 队列 代码展示 总结 一.队列 队列也是一种线性表,是一种先进先出的线性结构。队列只允许在表的一端进行插入(入队)、删除(出队)操作。允许插入的一端称为队尾,允许删除的一端称为队头。(类似于排队) 队列有两种存储形式:顺序存储和链式存储。顺序存储采用数组存储队列中的元素,使用两个指针尾指针(rear)和头指针(front)分别指向队列的队头和队尾。队列的链式存储结构表示为链队列,它实际上是一个同时带有队头指针和队尾指针的单链表,链表中的数据
2022-04-11 20:27:53
521
原创 Java学习day15
15一.括号匹配问题二.代码展示三.总结一.括号匹配问题二.代码展示三.总结 一.括号匹配问题 二.代码展示 三.总结 一.括号匹配问题 所谓括号匹配可以认为是任意的一个字符串中,都能发现一对完整的左括号与右括号按照正常的顺序实现完整匹配的过程。 不匹配的三种情况: 1.到来的右括弧非是所“期待” 的,即出现的右括号与栈中最后一个左括号不匹配。 2.到来的是“不速之客”,即再出现右括号时栈已经为空。 3.直到结束,也没有到来所“期待” 的,所有字符扫描结束后栈中仍有元素。 解决方法 遇到左括号:直接push
2022-04-05 20:41:04
470
原创 Java学习day14
day14一.栈二.代码展示三.总结一.栈栈的操作二.代码展示三.总结 一.栈 二.代码展示 三.总结 一.栈 栈是一种特殊的线性表,,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop)。若栈中没有任何元素,则称为空栈。 如何所示,对元素的处理只能在栈顶进行处理,因此栈能实现后进先出(Last In First Out,简称LIFO)或先进后出(First
2022-04-05 20:22:12
276
原创 Java重开第13天-链表(第二周)
13一.链表二.代码展示三.总结一.链表链表中数据插入链表数据删除链表按值查询二.代码展示三.总结 一.链表 二.代码展示 三.总结 一.链表 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 创建链表前须知: 首节点:存放第一个有效数据的节点 头节点:在单链表的第一个结点之前附设一个结点,它没有直接前驱,称之为头结点,头结点的数据域可以不存储任何信息,指针域指向第一个节点(首节点)的地址。头结点的作用是使所有链表(包括空表)的头指针非空 头指针:指向头
2022-04-03 15:15:10
1164
2
原创 Java重开第11-12天-顺序表
10一.数据结构之顺序表二.代码展示三.总结一.数据结构之顺序表构造方法二.代码展示三.总结 一.数据结构之顺序表 二.代码展示 三.总结 一.数据结构之顺序表 1.线性表 提到顺序表,首先要想到线性表。线性表是n个具有相同特性的数据元素的有限序列,是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 2.顺序表 顺序表是用一段物理地址连续的
2022-04-02 21:12:19
644
原创 Java重开第十天-Task1
10一.需求分析二.代码展示三.总结一.需求分析二.代码展示三.总结 一.需求分析 二.代码展示 三.总结 一.需求分析 学生的成绩存放于一个矩阵,其中行表示学生,列表示科目。 如:第 0 行表示第 0 个学生的数学、语文、英语成绩。 要求: 进行学生成绩的随机生成, 区间为 [50, 100]. 找出成绩最好、最差的同学。但有挂科的同学不参加评比。 1.随机数需要使用Java中util的Random类生成对应的对象,来实现随机数生成 注意: 对于种子相同的Random对象,生成的随机数序列是一样的。
2022-04-01 20:09:15
286
原创 Java重开第九天-while
09while循环代码展示总结while循环代码展示总结 while循环 代码展示 总结 while循环 while(判断条件){undefined 循环体 } Java提供了三种类型的循环语句:while循环,do-while循环和for循环。 while循环在每次循环开始前,先会判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳到while循环的末尾,继续往下执行。 举个例子 public class Main { public stat
2022-03-31 19:55:36
479
原创 Java重开第八天-矩阵乘法
08矩阵乘法代码展示总结矩阵乘法代码实现整体代码总结 矩阵乘法 代码展示 总结 矩阵乘法代码实现 int m = paramFirstMatrix.length;//第一个矩阵的行数 int n = paramFirstMatrix[0].length;//第一个矩阵的列数 int p = paramSecondMatrix[0].length;//第二个矩阵的列数 for (int i = 0; i < m; i++) {//取第一个矩阵的每一
2022-03-31 19:26:11
325
原创 Java重开第七天
Java重开第七天:矩阵元素相加 07Java重开第七天:矩阵元素相加Arrays类矩阵赋值总结一.Arrays类二.矩阵赋值三.总结 Arrays类 矩阵赋值 总结 一.Arrays类 Arrays位于java.util包里,内有专用来操作数组元素的方法。 public static String deepToString(Object[] a) 返回值: 返回指定数组“深层内容”的字符串表示形式。 System.out.println("The matrix is:\r\n" + Arrays.d
2022-03-28 20:12:21
2074
原创 日撸Java三百行
Java重开第一周(01-06) 基本语法**Java重开第一周(01-06)**day01:环境搭建和Hello Worldday02:基本算术操作day03:基本if语句和函数调用day04:if应用-闰年判断day05:Switch操作day06:For循环操作day01:环境搭建和Hello Worldday02:基本算术操作day03:基本if语句和函数调用day04:if应用-闰年判断day05:Switch操作day06:For循环操作 day01:环境搭建和Hello World day02
2022-03-26 21:13:52
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅