
Java
文章平均质量分 70
颜妮儿
学不完,根本学不完
展开
-
Java基础之反射机制
加载完类之后,再堆内的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。的关键,反射机制允许程序再运行起家借助Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。(由于多态导致的),这可能会导致对象的编译时类型和运行时类型不一致。通过反射,可以调用类中的私有结构,是否与面向对象的封装性是否有冲突?反射(Reflection)是被是为。Class是反射的源头。原创 2023-10-10 16:07:46 · 148 阅读 · 0 评论 -
机器学习——ALEC
ALEC是老师和师兄师姐发布的一篇关于主动学习的源代码,论文地址。主动学习:是介于监督学习和非监督学习之间的一种特殊情况。由于标记样本需要耗费大量的人力和时间,所以提出了主动学习,获取部分样本的标签,期望能得到不弱于监督学习的效果。与半监督学习的联系与区别:联系:主动学习和半监督学习都是从未标记的样本实例中挑选部分价值量高的样例标注后补充到已标记样例集中来提高分类器精准度,降低标注样本的工作量。区别:主动学习需要人工进行精准标注,不会引入错误类标;半监督学习是通过具有一定分类精度的基准分类器实现对未原创 2022-06-22 20:47:59 · 633 阅读 · 3 评论 -
机器学习——AdaBoosting
AdaBoosting算法是一种集成算法。集成算法是通过构建并结合多个学习器来完成学习任务,就是“三个臭皮匠赛过诸葛亮”的思想。原创 2022-06-08 15:38:50 · 1237 阅读 · 2 评论 -
机器学习——朴素贝叶斯算法
概率论相关知识点条件概率:A,B为两个事件,且P(A)>0P(A)\gt 0P(A)>0,称P(B∣A)=P(AB)P(A)P(B|A)=\frac{P(AB)}{P(A)}P(B∣A)=P(A)P(AB)为在事件A发生的条件下事件B发生的条件概率。事件的独立性:若A,B两个事件相互独立,则P(AB)=P(A)P(B)P(AB)=P(A)P(B)P(AB)=P(A)P(B),。贝叶斯公式:设B1,B2,⋯ ,BnB_1,B_2,\cdots,B_nB1,B2,⋯,Bn为样本空间中概原创 2022-05-13 21:33:06 · 1454 阅读 · 1 评论 -
机器学习——kMeans聚类
相关概念无监督学习无监督学习是从无标注的数据中学习数据的统计规律或者说内在结构的机器学习,主要包括聚类、降维、概率估计。无监督学习可以用于数据分析或者监督学习的前处理。聚类聚类(clustering)是针对给定的样本,一句他们特征的相似或距离,将其归并到若干个簇的数据分析问题。直观上,相似的样本聚集在相同的簇,不相似的样本分散在不同的簇。因此,样本之间的相似度或距离起着重要作用。相似度和距离的衡量:样本矩阵XXX的表示:X=[xij]m×n=[x11x12⋯x1nx21x22⋯x2n⋮⋮⋮xm原创 2022-05-11 23:42:25 · 456 阅读 · 1 评论 -
机器学习——决策树(ID3)的实现
相关定义的补充:熵在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设XXX是一个取有限个值的离散随机变量,其概率分布为:P(X=xi)=pi,i=1,2,⋯ ,nP(X=x_i)=p_i,i=1,2,\cdots ,nP(X=xi)=pi,i=1,2,⋯,n,则随机变量XXX的熵定义为:H(X)=−∑i=1npi log pi,(其中,对数以2为底或e为底)H(X)=-\sum\limits_{i=1}^np_i\ log\ p_i,(其中,对数以2为原创 2022-05-09 19:24:37 · 1657 阅读 · 0 评论 -
机器学习——基于M-distance的推荐
算法出处:导师和师姐发表的一篇论文场景:让我们根据当前的评分表预测?\color{Red}??的值。数据描述:U={u0,u1,u2,u3,u4}U=\{u_0,u_1,u_2,u_3,u_4\}U={u0,u1,u2,u3,u4}表示参与评分的用户数据集;M={m0,m1,m2,m3,m4,m5}M=\{m_0,m_1,m_2,m_3,m_4,m_5\}M={m0,m1,m2,m3,m4,m5}表示被评阅的电影数据集;矩阵RRR表示评分矩阵:R=(ri,j)n×m,0≤原创 2022-05-06 23:14:07 · 825 阅读 · 1 评论 -
机器学习——k-NN思想及实现(基于Java)
k近邻法(k-nearest neighbors,k-NN)是一种基本分类与回归方法。输入:实例的特征向量,对应于特征空间的点;输出:实例的类别。在分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。在回归时,对新的实例,根据其k个最近邻的训练实例的平均值决定。两者的代码大同小异,当前实现的分类问题中的k近邻算法。数据准备:下载地址类的构造函数及实现数据的读入public KnnClassification(String paraFilename) { tr原创 2022-05-05 22:22:53 · 937 阅读 · 1 评论 -
Day32——归并排序
归并排序的基本思想:将待排序列表的各个元素看作是长度为1的子列表,然后两两归并(归并:将两个或两个以上的子列表组合成一个新的有序表),得到⌈n2⌉\lceil \frac{n}{2}\rceil⌈2n⌉个长度为2或1的有序表;继续两两归并……,重复操作,直到合并成一个长度为n的有序表。代码:/** * ********************* * @Title: mergeSort * @Description: TODO(Merge sort the data.) *****原创 2022-05-03 16:19:52 · 403 阅读 · 1 评论 -
Day31——选择排序和堆排序
选择排序选择排序可以说是最简单的排序类型了,对含有 n 个元素的序列实现排序的思路是:每次从待排序序列中找出最大值或最小值,查找过程重复 n-1 次。对于每次找到的最大值或最小值,通过交换元素位置的方式将它们放置到适当的位置,最终使整个序列变成有序序列。重复n-1次选择,每次选择时间复杂度为O(n)O(n)O(n),因此选择排序的时间复杂度为O(n2)O(n^2)O(n2)。代码:/** * ********************* * @Title: selectionSort原创 2022-05-02 11:41:41 · 429 阅读 · 1 评论 -
Day30——快速排序
快速排序的基本思想:在待排序表中任何一个元素作为枢轴,一趟排序结束后,通过枢轴元素的最终位置,将待排序序列分成两个子序列,然后对这两个子序列进行上述过程,直到确定所有元素的位置。不难发现在快速排序过程中,是在不断缩小问题规模的,所以说快速排序基于分治思想。标准算法思想实现第一趟排序过程:标准算法思想整个排序过程:标准算法思想过程代码实现:/** ********************* * Quick sort recursively. * * @param paraStar原创 2022-04-29 14:47:57 · 1138 阅读 · 2 评论 -
Day29——冒泡排序
冒泡排序的基本思想:朝着一个方向比较两两相邻元素的值,若是逆序,则交换两个元素,否则继续比较,若一趟结束后,并没有交换元素,则说明序列已经有序,可以终止比较。代码/** * ********************* * @Title: bubbleSort * @Description: TODO(Bubble sort.) * ********************* * */ public void bubbleSort() { boolean tem原创 2022-04-28 22:30:12 · 370 阅读 · 2 评论 -
Day28——插入排序和希尔排序
插入排序插入排序基本思想:每次将一个待排序的记录按照关键字大小插入前面已经排好序的子序列,直到全部记录插入完成。设待排序表L[0⋯n−1]L[0\cdots n-1]L[0⋯n−1]在某时刻的状态如下:现在需要将元素L[i]L[i]L[i]插入到已有序子序列L[0⋯i−1]L[0\cdots i-1]L[0⋯i−1]中,插入操作:1:找出元素L[i]L[i]L[i]应该在有序子序列中的插入未知pos;2:将L[pos⋯i−1]L[pos \cdots i-1]L[pos⋯i−1]中的所有元素依次原创 2022-04-27 21:36:34 · 361 阅读 · 1 评论 -
Day27——哈希表
由昨天的顺序表和折半查找知道,查找的效率取决于关键字比较的次数。哈希表是根据关键字而进行直接访问的数据结构,建立了关键字和存储地址之间的一种直接映射关系。但哈希表都避免不了地址冲突,处理冲突的方法:1、开放定址法:存放新表项的空闲地址既向它的同义词表项开放,又向它的非同义词表项开放,公式为:Hi=(H(key)+di)%m(m表示哈希表表长,di为增量序列)H_i=(H(key)+d_i) \%m(m表示哈希表表长,d_i为增量序列)Hi=(H(key)+di)%m(m表示哈希表表长,di为增量序原创 2022-04-26 21:24:14 · 734 阅读 · 1 评论 -
Day26——顺序查找和折半查找
顺序查找就是遍历一遍数据集,设置第一个元素为目标元素,起一个“哨兵”的作用,不用进行越界判断,当返回的目标索引为0,则表示没有找到目标元素。折半查找是针对有序顺序表,它对数据的要求很高,它的查找过程就像是一棵二叉树,平均时间复杂度为O(log2n)O(log_2^n)O(log2n),以下是对两个数据进行折半查找模拟:测试用例的折半查找树:代码:package day26;public class DataArray { /** * An inner class for data原创 2022-04-25 22:32:57 · 350 阅读 · 1 评论 -
Day25——小结
1、回溯算法:包括探索和回溯两步,选择满足条件的条件前进,当不满足条件时,则回退到上一步,特征还是很明显的。适用于解决的问题:优化问题(找最佳方案)、决策问题(找可行方法)、枚举问题(找所有满足条件的方案)2、贪心算法:最近的Dijkstra算法和Prim算法都是基于贪心策略,其特点是将问题分解成若干个小问题,从局部找到最优解到得到整体最优解,是自顶向下的过程。正是因为贪心算法不从整体上考虑,每次选取局部最优解后,就不再进行回溯处理,所以并不是所有问题都能通过贪心算法得到最优解。但相比进行枚举或回溯找最优原创 2022-04-24 22:24:21 · 364 阅读 · 2 评论 -
Day24——关键路径
有向无环图:若一个有向图中不存在环,则称为有向无环图,简称DAG。AOV网:若用DAG图表示一个工程,其顶点表示活动,用有向边表示活动必须先于活动进行的关系,将这样的有向无环图称为顶点代表活动的网络,记为AOV网。在AOV网中,活动是活动的直接前驱,活动是活动的直接后继,这种前驱和后继关系具有传递性,且任何活动不能以它自己作为自己的前驱和后继。拓扑排序:在图论中,有一个有向无环图的顶点组成的序列,当且仅当满足:每个顶点出现且只出现一次。若顶点在序列中排在顶点的前面,则在图中不存原创 2022-04-23 23:04:45 · 481 阅读 · 1 评论 -
Day23——Dijkstra 算法与 Prim 算法
Dijkstra 算法可用于求带权图的单源最短路径,其思路很简单——找到源点到其余各点的最短距离dis及其结点vvv,然后将vvv作为中间结点,更新源点到其它结点的最短距离,重复此过程,直到遍历完所有结点。例如:代码中的tempParentArray数组用来记录中间结点的,可以通过该数组找到其索引对应的结点到源结点的最短路径。对应代码:/** * ********************* * @Title: dijkstra * @Description: TODO(The原创 2022-04-22 22:14:02 · 732 阅读 · 1 评论 -
Day22——十字链表
十字链表相对比邻接表难一点,相较而言,十字链表的结点比邻接表多了一个指针域用来链接指向该“头”结点的其它结点。如何实现十字链表,我们可以从实现邻接表找突破口,因为实现邻接表就确定了各个结点的nextOut值,接下来我们只需要确定各个结点的nextIn。1:确定各个顶点的nextOut:按行遍历邻接矩阵,创建以当前行结点为起点的边结点对象并确定nextOut值:对应代码:for (int i = 0; i < numNodes; i++) { headers[i] = new Ortho原创 2022-04-21 21:05:34 · 537 阅读 · 1 评论 -
Day21——邻接表
邻接表是图的另一种存储形式,这种方式比较适合稀疏图。对于稍复杂的问题我喜欢画图来模拟数据的流向,这能够帮我们整理思维,今晚画深度优先遍历的时候,就找出了一个前两天的代码中的一个bug。package day21;import datastruct.CircleObjectQueue;import datastruct.Graph;import datastruct.ObjectStack;public class AdjacencyList { /** * An inner c原创 2022-04-20 21:50:27 · 408 阅读 · 3 评论 -
Day20——图的m着色问题
再来讲讲函数之间的调用:现在有三个函数——main()、func1()、func2()。其中,main()函数中调用了func1(),并且func1()中调用了func2()。三个函数的执行过程:main()先执行,执行到一半时调用func1(),会转向执行func1()中的代码,与main()一样,func1()执行一半时会转向执行func2()中的代码;当func2()中的代码执行结束的时候,会返回到func1()中继续执行之前还没执行的代码,直到func1()的代码执行结束后,又会继续执行mai原创 2022-04-19 21:45:03 · 499 阅读 · 2 评论 -
各点之间的最短距离——Java实现
写这篇博客的原因——昨天写判断图的连通性代码的时候碰壁了,其实不是写不出满足需求的代码,是对用矩阵的方式求解花了比较长的时间来理解,原因主要是没有把矩阵的运算与图很好的联系起来,后面虽然明白了,但心里一直没放下,今天晚上就在想——如果两点之间的值表示的是两者的距离,那么矩阵乘法后的值就表示两点经过中间结点后能抵达的距离和,那如果把求和改成求最小值呢?如果矩阵的乘不再是乘呢?于是我想到了Floyd算法,我想我现在是真正理解了Floyd算法了。话不多说开始吧😄我们用邻接矩阵M来存储图,mijm_{ij}mij原创 2022-04-18 23:32:29 · 1827 阅读 · 0 评论 -
Day18——图的连通性检测
谈“图”色变……今天看到公式的时候呆了半天,一直不明白为什么能这样做,后来慢慢的才理出点头目来,看来很有必要来复习一下离散数学了。今天判断图的连通性主要用的公式:Ma=M0+M1+M2+⋯+Mn−1其中,M为图的邻接矩阵,n为定点数\begin{aligned}&M_a=M^0+M^1+M^2+\cdots+M^{n-1}\\&其中,M为图的邻接矩阵,n为定点数\end{aligned}Ma=M0+M1+M2+⋯+Mn−1其中,M为图的邻接矩阵,n为定点数图的连通性:原创 2022-04-17 22:41:10 · 2340 阅读 · 2 评论 -
Day17——整数矩阵及其运算
本篇博客主要涉及了整数举证的加法和乘法运算,说到底是二维数组的遍历,逻辑很简单,且之前也已经提过,这里就不再赘述了。学到的更多是Java语法层面的知识,包括异常机制、this()的用法、类方法与实例方法。代码package day17;import java.util.Arrays;public class IntMatrix { /** * The data. */ int[][] data; /** * ********************* * The原创 2022-04-16 21:48:11 · 285 阅读 · 1 评论 -
Day16——Huffman编码
Huffman编码可以理解为从根结点到各个叶子结点的路径上边的标记序列,可以标记“0”为转向左孩子,“1”为转向右孩子。如:代码实现也很简单,就是遍历一遍Huffman树的过程,每个结点的路径序列号可以通过其父结点确定,所以需要在遍历的时候携带路径序列,通过递归实现:/** * ********************* * @Title: generateCodes * @Description: TODO(Generate codes for each character in原创 2022-04-15 19:53:03 · 608 阅读 · 1 评论 -
Day15——Huffman编码之构建Huffman树
计算机A想要给计算机B发送一串字符信息,需要将字符转成二进制编码才能发送,我们要知道在数据传输过程中,二进制数据越长不仅影响传输效率,而且出错率更高,所以我们需要用更短的二进制字符串来表示相同的字符信息。由于每个字符出现的频率是不一定相同的,所以我们应该要让字符出现频率越高的字符的编码越短,这样才能保证我们在发送的二进制数据最短,这就用到了我们今天要学的Huffman编码。要实现Huffman编码,我们首先得构建哈夫曼树,先了解几个相关概念:路径:在一棵树中,一个结点到另一个结点之间所经过的结点序列;原创 2022-04-14 19:44:42 · 1256 阅读 · 1 评论 -
Day14——Hanoi塔问题
梵天命令一个叫婆罗门的门徒将所有的圆盘移动到另一个柱子上(一共有三根柱子),移动过程中必须遵守以下规则:每次只能移动柱子最顶端的一个圆盘;每个柱子上,小圆盘永远要位于大圆盘之上;问,将n个圆盘移动到另一个柱子上一共需要移动多少次?先考虑简单情况:①只有一个盘:直接从原始柱移动到目标柱子上,只需要一步,因此hanoi(1)=1;②有两个盘:将盘2从原始柱A移动到辅助柱B上;将盘1从原始柱A移动到目标柱C上;将盘2从辅助柱B移动到目标柱C上;因此hanoi(2)=3;③有三个盘:原创 2022-04-13 18:28:03 · 1129 阅读 · 2 评论 -
Day13——二叉树深度遍历的栈实现
如果明白了之前递归深度遍历二叉树,那也能容易想到用栈实现二叉树深度遍历。本篇博客以这棵树为例:中序遍历中序遍历顺序:左子树,当前结点,右子树。从根结点A开始,先将它压栈,发现它有左孩子,则处理左孩子:接着是A的左孩子结点B,先将它压栈,它没有左孩子,弹出一个栈顶元素(刚刚压入的B),访问该结点,发现该结点有右孩子,则继续处理右孩子:接着将B的右孩子结点D压栈,D没有左孩子,则弹出一个栈顶元素(刚刚压入的D),访问该结点,发现D没有右孩子,表明此时A的左子树访问结束,弹出A:接着是处原创 2022-04-12 19:01:04 · 2234 阅读 · 1 评论 -
Day12——二叉树的建立
建立一棵二叉树:除了创建每个结点外,我们还需要指定结点的父子关系。我们可以按照二叉树存储的逻辑,用层次序号数组来反映结点的父子关系,设现在有结点i和结点j:如果i*2+1==j,则说明j是i的左孩子;如果i*2+2==j,则说明j是i的右孩子;在实现代码之前,我手动模拟了一遍链接各个结点的过程,同时思考如何通过代码实现,这能很好的帮我们整理思路:通过上面的流程我们不难发现,这就是遍历层次序号数组的过程,遍历过程我们要找到各个结点的孩子结点,孩子结点的序号一定大于当前结点,所以需要再嵌入一层循环原创 2022-04-11 15:25:02 · 1585 阅读 · 1 评论 -
Day11——通用队列
前几天有遇到int类型的队列、char类型的队列还有以对象作为元素的队列,它们之间除了数据类型不同,其它都相同,之前我们都是一个类型对应一个类,今天就写一个通用队列。老师的思路:Java中万物皆对象,我们只用写一个类型为Object的队列,使用时可以通过强制类型转换,得到我们想要的类型,所以我们可以直接用CircleObjectQueue来创建我们所需要的所有队列。package day11;import java.util.Arrays;public class BinaryCharTree原创 2022-04-10 16:20:13 · 633 阅读 · 1 评论 -
Java——类与对象
类概述类的语法格式:修饰符class类名{属性声明;方法声明;}\large\begin{aligned}&\color{Green}修饰符\quad\color{Red}class\quad\color{Purple}类名\quad \color{Black}\{\\& \qquad属性声明;\\& \qquad方法声明;\\&\}\end{aligned}修饰符class类名{属性声明;方法声明;}创建自定义类:定义类(考虑修饰符、类名)原创 2022-04-09 20:26:32 · 421 阅读 · 0 评论 -
Day10——二叉树存储
为什么引用 (指针) 是无法存储到文件里面呢?因为文件都是存储在磁盘上的,也就是外存,但我们在执行程序的时候,是需要将程序对应的进程加载到内存中,并且进程在内存中的地址不是固定的,这表明我们不能保证保存在文件中的指针在下次运行时所指向的内容还是我们之前所指向的内容。所以我们该怎么保存二叉树呢?保存结点之间的逻辑关系,就像数组一样,虽然每次运行时内存地址不一样,但它们的逻辑关系是确定的,我们就可以根据元素之间的逻辑关系和运行时的数组首地址来保存和访问各个元素。介绍两种特殊的二叉树:满二叉树:树中的每原创 2022-04-09 16:26:23 · 2119 阅读 · 1 评论 -
Day09——二叉树的深度遍历的递归实现
二叉树树:除根结点外,所有结点都有唯一的父结点,是一对多的关系。二叉树的递归定义:如果没有根结点,则是一颗空树;如果有根结点,则二叉树由根结点、左子树、右子树组成,并且左子树和右子树都是二叉树。注意:在二叉树是严格区分左右子树的,如果交互左右子树,就变成了另一棵二叉树。二叉树的深度遍历:深度遍历二叉树的递归实现:如果当前结点为null,则返回;当前结点不为null,深度遍历左子树,然后深度遍历右子树。二叉树的三种遍历方式:先序遍历:访问根结点,再遍历左子树,最后遍历右子树。原创 2022-04-08 17:13:34 · 909 阅读 · 2 评论 -
Day08——字符串匹配、小结
字符串匹配通过字符数组模拟了字符串基础操作,字符串匹配用的是暴力匹配,当模式串和主串不匹配时,i++,再重新开始匹配,比较简单。相对老师的代码,我在MyString的第二个构造函数多加了一个判断(因为在测试的时候,我多输入了一个字符,导致字符串的长度大于了预设的最大长度,报错了),程序健壮性好了些。package day08;public class MyString { /** * The maximal length. */ public static final int MAX_原创 2022-04-07 16:17:04 · 922 阅读 · 0 评论 -
Day07——队列、循环队列
队列队列:允许在一端进行插入,在另一端进行删除。允许插入的一端称为队尾,允许删除的一端称为队头。顾名思义,队列需要两个变量来记录队尾和队首的位置,方便进行入队和出队操作。队列的特点:先进先出链队列需要注意的是:出队前需要确定队列里面是否有元素,并且出队后要检查是否队列为空,如果为空,还需要重新赋值tailNode为headerNode,避免tailNode指向null,再次添加队列元素时报错。package day07;public class LinkedQueue { class No原创 2022-04-06 13:25:50 · 483 阅读 · 1 评论 -
Day06-链表、栈(括号匹配、递归)
链表这里提到链表,也不得不再说说受顺序表了。两者在内存中的存储形式:顺序表和链表在逻辑上都是顺序结构,但在内存中,顺序表是顺序存储的,而链表是离散存储的,链表通过保存下一个元素的地址来实现逻辑上的顺序,两种表的存储结构也决定了其操作特点:顺序表支持顺序访问和随机访问,但不便于对表进行随机添加和删除操作,因为可能需要大量移动元素。顺序表的表长一开始就确定了,且确定后不能修改;链表只能进行顺序访问,在对元素进行随机添加和删除时不必移动其他元素。链表的表长虽然可以改变,但由于每个元素都要保存下一个元原创 2022-04-05 21:40:28 · 1221 阅读 · 2 评论 -
Day05——综合任务1、顺序表
综合任务1需求:学生的成绩存放于一个矩阵,其中行表示学生,列表示科目。如:第 0 行表示第 0 个学生的数学、语文、英语成绩。要求:进行学生成绩的随机生成, 区间为 [50, 100].找出成绩最好、最差的同学。但有挂科的同学不参加评比.分析:① 一个成绩矩阵——一个二维数组(行号代表学生编号,列好代表各个科目);② 成绩随机生成,需要一个产生随机数的函数;③ 需要计算所有没有挂科同学的成绩;④ 从没有挂科的同学中选出成绩最好的、最差的同学。Java知识补充变量的作用:保存内存中的数原创 2022-04-04 23:02:19 · 530 阅读 · 1 评论 -
Day04——循环结构
循环结构循环结构:根据循环条件,重复执行某段代码。常见的循环结构:for循环、while循环、do-while循环、foreach语句常见循环结构的语法格式:for循环for (①初始化部分; ②循环条件部分; ④迭代部分){ ③循环体部分;}说明:②循环条件部分为boolean类型表达式,当值为false时,退出循环①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔④可以有多个变量更新,用逗号分隔while循环①初始化部分while(②循环条件部分){原创 2022-04-03 16:00:28 · 1277 阅读 · 1 评论 -
Day03-分支结构——基本if语句+应用、基本switch语句
基本if语句if语句用于设置条件,选择性的执行某段代码。其中还用到了函数(方法),提高了代码的复用性。函数(方法)的头部规范注释,用于说明该函数的作用、参数的意义等,为生成JavaDoc做准备。package day03;public class IfStatement { /** * The entrance of the program. * * @param args Not used now. */ public static void main(Stri原创 2022-04-02 12:32:25 · 1094 阅读 · 1 评论 -
Day02-基本算术操作
熟悉加、减、乘、除算术运算和println的中阶用法package basic;public class BasicOperations { public static void main(String args[]) { int tempFirstInt, tempSecondInt, tempResultInt; double tempFirstDouble, tempSecondDouble, tempResultDouble; tempFirstInt = 15; t原创 2022-04-01 17:54:06 · 234 阅读 · 0 评论