自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 7.3 并查集搜索

并查集算法并查集算法是一个利用结点关系,进行分类合组的算法简介并查集可以通过一个一维数组来实现我们把每一个点视作一个"独立的,只有一个结点"的树之后我们可以通过一些条件,逐渐将这些树合并成一棵大树合并的过程,其实就是找统一的父节点的过程,我们可以自定两条原则:1.相异的情况下,把右边的父节点改为左边的父节点。视作二者合并成了一组2.通过两者最高的父节点来进行比较另外,既然我们通过层层推进找到了某个点的父节点,那么我们在"统一"之后,也可以顺便的把路上的其它结点修改,这样会方便我们的二次寻找

2021-11-19 11:27:54 416

原创 7.2 二叉树与堆

二叉树与堆二叉树是一种特殊的、常见的树简介二叉树的特点在于每个结点最多只有两个儿子如果要使用更严格的递归定义,则是:二叉树要么为空,要么由根结点、左子树、右子树组成而左子树、右子树分别是一棵二叉树二叉树是使用范围极广的树,一棵多叉树也可以转换为二叉树二叉树类型满二叉树:如果二叉树中每个内部结点都有两个儿子,这样的二叉树叫做满二叉树完全二叉树:如果一棵二叉树除了最右边的位置上有一个或几个叶节点缺少外,其他都是丰满的,那么它就是完全二叉树我们可以把满二叉树理解为一种特殊的,极其完美的完

2021-11-19 11:24:39 389

原创 7.1 树的基本介绍

树的基本介绍介绍树其实就是不包含回路的连通无向图因为这个特点,我们为树赋予了这些特性:1.一棵树中的任意两个结点,有且仅有唯一的一条路径连通2.一棵树如果有n个结点,那么它一定恰好有n-1条边3.在一棵树中,加上一条边,那么就会得到一个回路树是指任意两个结点间有且仅有一条路径的无向图只要是没有回路的连通无向图,就是树结点节点我们把树中的每一个点叫做结点,当然也要叫节点的,无伤大雅根又叫做根节点,即最开始的节点。一棵树有且仅有一个根节点父亲结点简称父结点,儿子结点简称子结点如果一

2021-11-19 11:17:36 440

原创 6.4 最短路径:Bellman-Ford优化

Bellman-Ford优化我们知道,在最开始的算法中,我们每一次操作后就会进行一次松弛的判断实际上,这浪费了我们的时间:每次操作后有些顶点的最短路就不会变化了实际上我们可以这样做:每次仅仅对最短路的估计值发生了变化的顶点的所有出边执行松弛操作实操我们可以利用队列来维护这些点我们每次都选取队首的顶点u,对顶点u的所有出边进行松弛操作如果通过u->v这条边,可以使得源点到顶点v的最短路径变短,且顶点v不在当前队列中那么我们就把顶点v放入队尾在对顶点u的所有出边松弛完成之后,就将u出队

2021-11-19 11:14:58 179

原创 6.3 最短路径:Bellman-Ford算法

Bellman-Ford算法很强的一个算法,无论是思路、思想、代码实现都很优秀而且,它可以解决负权边的问题简介一句话概括这个算法就是:“对所有的边进行n-1次松弛操作”一样的,我们用uvw三者表示“从顶点u[i]到顶点v[i]的这条边,权值为w[i]”随后检查,新的距离会不会比原本的距离短1.用dis数组初始化估计值,并且把除了起始点之外的,都设置为正无穷大(解释见后)2.按边的图的数组中的顺序,遍历检查"这条路会不会距离变短"3.由于起始点到自身的距离是0,所以一定存在它到相邻区域的更小

2021-11-19 11:06:24 353

原创 6.2 最短路径:Dijkstra算法与单源最短路径

Dijkstra算法——单源最短路径Dijkstra算法是用来处理"指定一个点,计算该点到其余各个顶点的最短路径"这件事简介和上文有点像,因为当我们讨论一点到各个点的距离的时候,我们就不得不计算各种中转站我们这里得到了一个新定义,松弛,我们认为它是:如果两点距离通过中转点缩短了距离,我们就把这个过程叫松弛Dijkstra算法实际就是 “选点,松弛,更新,选点” 的不断循环,直到得到结果核心我们这里使用两个数组二维数组e来存储两点之间的路径关系一维数组dis来存储一个点到其余各个点的初

2021-11-19 11:01:27 153

原创 6.1 最短路径:Floyd-Warshall算法

Floyd-Warshall算法只有五行核心的算法简介假设我们有四个点。每个点之间都有一定的距离,或者甚至没有路现在我们想要知道如何获得两点之间的最短路径使用之前说的深度优先或者宽度优先当然是可以的,不过有没有更好的办法?于是我们使用了Floyd-Warshall,先进了一些的算法算法核心首先我们要知道,有的时候,通过n个点而从A->B,是有可能比直达得到更短的路径基于这个思路,我们逐步推进1.首先是直达,这个就不用说了2.然后我们假设“如果允许在点1中转”,得到新的结果比较,更

2021-11-19 10:52:41 550

原创 5.0 图与遍历搜索图

图的简介与二维数组图就是由顶点和连接顶点的边组成的表示图我们利用二维数组表示图二维数组的两个参数行列,均表示顶点,二者相交得到的即是距离我们用正无穷(一般可以用999999代替)表示二者之间没有边,0是某点到自身的距离比如e[a][b] = 3 ;就代表a到b的距离是3图还分为有向图和无向图顾名思义,有向图是有方向属性的,无向图则没有换言之,对于无向图,我们有:e[a][b] = e[b][a]图的遍历我们上一章学习了深度优先算法和广度优先算法现在我们就利用它们来完成图的遍历

2021-11-19 10:46:33 51

原创 4.3 深度广度搜索

实战:海岛面积例子我们有一个海岛,海岛有一个主岛和附属岛屿,总地图大小为10*10我们使用0代表海洋,1-9代表路段,我们由一个点(比如(6,8)开始)算出所在岛的面积我们想计算所在岛屿的面积解决我们直接利用广度搜索来进行这这件事,我们直接上了 #include <stdio.h> struct node{ int x ; // 横坐标 int y ; // 纵坐标 }; int main(){ /

2021-11-19 10:32:34 48

原创 4.2 bfs 广度优先搜索

广度优先算法 Breadth First Search BFS深度优先算法的兄弟,包含另外一种搜索思维也叫宽度优先算法概述与深度优先算法不同,广度优先算法注重于"对所有情况的分析搜索"如果是深度优先算法是刨根问底地分析每种情况,广度优先就是在在层层扩展中找到题解例还是之前的问题,我们想在n*m的迷宫中找到起点到终点的最短路径分析我们的核心思想是分析扩展时每发现一个点,就将这个点加入到队列中,直到到达终点另外,为防止一个点被多次走到,我们还要一个数组来记录一个点是否被走到队列与搜索路径

2021-11-18 20:40:17 173

原创 4.1dfs 深度优先搜索

深度优先搜索 Depth First Search DFS深度优先是比较基础的一种方法,还有一种是它的兄弟广度优先深度优先顾名思义:先深入搜索到一种情况的"底部"(原谅我用了这么抽象的词),然后再返回搜索其它情况例题我们依旧举例说明,比如我们现在想要在A,B,C三个箱子中放入1,2,3三张牌,想知道一个有多少种情况循环举穷首先我们一步步尝试每一次,每一个箱子中的放牌情况我们约定,对于每个箱子,我们都优先放入1,然后是2,最后是3当然,如果手上一张牌都没有,也就说明某种情况被列举完了我们用一

2021-11-18 20:38:39 333

原创 3.0暴力枚举

枚举枚举,暴力的一种算法,典型利用"计算机算力大大高于人力"这件事的做法枚举,顾名思义:有序的尝试每一种可能在书里,枚举被单独列为一章,不过每一节都是各种花式实战因此只用了一个MD笔记来记录它鬼畜奥数题我们现在有一道奥数题,要求使用1-9九个数字填入下方的等式:[][][]+[][][]=[][][]注意:每个数字只能用一次请问一共有多少种组合 #include <stdio.h> int main(){ int a,b,c,d,e,f,g,

2021-11-18 20:36:31 79

原创 2.3.2 使用数组模拟链表

链表(数组模拟)链表也可以使用数组来实现,操作和基础知识比指针简单但是个人觉得就思路和操作的清晰,以及对链表的理解而言,还是用指针好模拟链表介绍我们可以利用两个数组,分别记录链表要的两个东西:数据和地址我们使用一个数组data,来存储每个结点的数据使用另外一个数组right,来存储序列中每一个数右边的数的位置比如现在二者如下:位置 1 2 3 4 5 06 07 08 09data: 2 3 5 8 9 10 18 26 32ri

2021-11-18 20:33:16 358

原创 2.3.1 使用指针实现的链表

链表(指针)在存储一大波数的时候,如果使用数组,有时会感到数组显得不太灵活我们可以在C语言中使用指针和动态分配函数malloc来实现链表关于指针,这里就不赘述了,默认已经了解相关知识指针实现mallocmalloc 函数的作用就是从内存中申请分配指定字节大小的内存空间malloc(4); //这样就申请了四个字节大小的内存空间如果不知道字节大小,那么使用sizeof()查看就好了malloc 函数的返回值是void*,也就是未确定类型的指针,它可以被强制转换为任何其它类型的指针

2021-11-18 20:31:06 954

原创 2.2 栈

栈栈是一种后进先出的数据结构,它就是栈栈限定了它只能在一端进行插入和删除的操作,这决定了它“后进先出”的性质栈的实现也比较简单:利用一个一维数组和一个指向栈顶部的变量(称它为top)即可,我们前面所讲的“插入”和“删除”的操作,就是通过这个"top"来实现的入栈入栈的操作很简易top++ ; s[top] = x ; //s是定义出来储存的数组/char组简化一下,就可以化成一行s[++top] = a[i]; 代码实战比如我们想要利用程序来检测一个字符串是否是回文//首先我们需

2021-11-18 20:24:37 212 1

原创 2.1 队列

队列队列是一种特殊的线性结构,它只允许在队列的首部head进行删除,以及在尾部tail进行插入这两种操作分别被称为“出队”和“入队”。而当队列中没有元素即head=tail时,称其为“空队列”我们现在可以将队列的三个基本元素(一个数组,两个变量)封装为一个结构体类型struct queue{ int data[100] ; //存储内容的主体 int head ; //队首 int tail ; //队尾};//——————————————————————————

2021-11-18 09:52:23 41

原创 1.3 快速排序

#快速排序快速排序的核心是基准数,基准数理论上是可以随机的一个数,这里我们每次都选择第一个/最左边的数作为基准数我们可以认为,快速排序的过程,就是不断选择基准数排序的过程。我们大致可以这么描述它的步骤:【比如我们排序 6 1 2 7 9 3 4 5 10 8 】1.选择一个数作为基准数,我们这里就是62.派出两个变量去“搜索”比6大的数,和比6小的数。这里我们设置变量为i与j3.i和j从两头开始搜索,i从最左边(第0位),而j从最右边(最后一位)4.i从左向右搜索,j从右向左进行搜索。当二者都

2021-11-18 09:46:25 64

原创 1.2 冒泡排序

冒泡排序核心思想在于“每次比较两个相邻的元素,如果它们顺序错误就把它们交换过来”,那什么是所谓顺序错误呢?比如,我们想要进行从大到小的排序,则把小的数字往后靠比如有五个数字12 35 99 18 76 ,我们试图将它们从大到小排序1.我们首先比较第一12和第二35,显然35大。依据核心思想,替换二者。那么现在五个数的顺序就是: 35 12 99 18 762.接着我们去比较现在的第二位12和第三位99,显然12又是更小的那个数,现在顺序变为35 99 12 18 763.重复上面的步骤直到比较

2021-11-18 09:45:43 73

原创 1.1 桶排序(简陋版)

#桶排序(简版)这是一种对于n个数据排序的方式这个算法是假设了有n个桶,编号便是0-*(n-1),共n个桶来装数据每当出现了一个数,我们就在对应编号的桶中放置一个标志查看数据时只要看每个桶中有多少数据即可//比如我们对0-10的数进行排序 int a[11] ; int i,j,t ; for(i = 10 ; i >= 0 ; i++){ a[i] = 0 ; //讲每个桶的原始值设为0 } for(i =1 ; i <=

2021-11-18 09:00:20 48

原创 LeetCode0015-三数之和

双指针利用双指针的搜索,实质上双指针那部分很简单记录本题主要是为了记录思想题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]题

2021-10-31 22:12:52 61

原创 LeetCode0088-合并两个有序数组

双指针利用有序数组的特性进行合并题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:

2021-10-31 22:12:02 51

原创 LeetCode0026-双指针删除重复项

双指针——快慢指针可以比较好诠释"快慢指针"用法的一道题题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:

2021-10-31 22:11:06 78

原创 LeetCode0011-盛最多水的容器

双指针“双指针是用来优化解的,不是拿来暴力的”如果双指针被用于遍历,那就没有意义了,我还不如整个for利用条件判断以及范围减小判断,利用双指针的优势,得到优解题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:4

2021-10-31 22:09:57 61

原创 LeetCode0136-利用异或来查找“只出现一次的数字“

位运算非常巧妙地利用了位运算中异或的性质题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题解利用异或的性质1.任何数和自己异或,结果是02.异或满足交换律和结合律3.任何数和0异或,都会得到本身根据题意和1,2的性质,我们能知道:本题中出现两次的元素,最终是会和自己消去的因为交换、结合律,我们最后会把那些出现两次的元素变为0消掉

2021-10-31 22:08:10 72

原创 LeetCode0231-用位运算判断一个数是否是2的幂

位运算经典之一个数是不是二的幂题目给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false题解两个原理:1.如果一个数是2的幂,那么它的二进制表达有且仅有一个1(这个1就是它的最高位)2

2021-10-31 22:07:04 212

原创 LeetCode0191-利用位运算计算1的个数

位运算同意利用了位运算的特殊性质n&(n-1)的用法题目编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符

2021-10-31 22:05:48 86

原创 LeetCode0021-用递归合并链表

递归题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列题解简单粗

2021-10-31 22:03:48 103

原创 LeetCode0695-海岛岛屿最大面积

深度搜索经典之海岛岛屿题目给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。题解注意,要我们计算的是最大的海岛岛屿面积,而不是这篇区域的面积和我们先一步步来,首先对于每一点,我们要怎么进行上下左右

2021-10-30 10:59:18 132

原创 LeetCode0733-染色问题

深度搜索和海岛问题一样的,最基础最经典的两道搜索问题这里使用深度搜索解答题目有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,

2021-10-30 10:58:19 324

原创 LeetCode0567-字符串的排列,判断 s2 是否包含 s1 的排列

滑动窗口中间一些步骤很好的诠释了“滑动窗口”的思想题目给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输入:s1 = “ab” s2 = “eidbaooo”输出:true解释:s2 包含 s1 的排列之一 (“ba”).示例 2:输入:s1= “ab” s2 = “eidboaoo”输出:false提示:1 <= s1.length

2021-10-30 10:57:56 730

原创 LeetCode0003-字符串重复

滑动窗口+哈希使用滑动窗口的思路进行查找与计算题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。题解什么是滑动窗口?在这里,它其实就是一个队列,比如例题中的 abcabcbb进入这个队列(窗口)为 abc 满足题目要求,当再

2021-10-30 10:55:29 182

原创 LeetCode0876-链表中间结点

双指针经典的快慢指针,所以收录了题目给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.

2021-10-30 10:54:36 51

原创 LeetCode0283-移动零

双指针比较具有利用指针特性的一题题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]题解因为想用双指针所以用了双指针,但是个人感觉对双指针的理解还是比较有利的 主要是利用两个指针checker和book,前者用来遍历,后者用来处理 核心在于:当checker检测到0的时候,book不会行动 而当其检测到非零数的时候,book会更新且移动 当ch

2021-10-30 10:52:11 40

原创 LeetCode0852-山脉函数

二分查找旨在说明二分法则的比较条件可以看情况设置更合适的题目符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1]给你由整数组成的山脉数组 arr ,返回任何满足 arr[

2021-10-30 10:51:06 120

原创 LeetCode0189-旋转数组

其它骚操作的解法还有两种,这里只记录了我能理解的,最简单粗暴的那个https://leetcode-cn.com/problems/rotate-array/solution/xuan-zhuan-shu-zu-by-leetcode-solution-nipk/题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5

2021-10-30 10:50:12 55

原创 LeetCode0069-平方根排序

二分查找一句话:干就完了题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。题解直接干,不管牛顿什么什么的,我们做这题就是练二分也不要用什么数学上的定理,老老实实做二分class Solution { public int mySqrt(int x) { int result = -1 ;

2021-10-30 10:47:59 69

原创 LeetCode0035-搜索插入

二分查找二分查找,这题的重点主要在于范围和条件的判断题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。题解Aclass Solution { public int searchInsert(int[] nums, int target) { int left = 0 ; int right = nums.length - 1 ;

2021-10-30 10:45:07 49

原创 【新手Java】14.递归Recursion

系列的最后一篇了,最最最基础的Java到此为止 不过,目前所讲的只是Java的冰山一角,到此也只是能简单地用用Java罢了不过,学习总是永无止境的,对吧【介绍】Java的一个方法可以调用它自己,Java和所有编程语言都可以支持这种情况,我们把它叫做递归Recursion递归方法是一种调用自身的方法那么使用递归方法是是怎么样的呢,让我们看看下面这段代码(由于复制粘贴代码还要考虑排版,这里就上图了)结果是程序会一直在调用这个方法,直到内存不足而停止(无限套娃)【概念】方法反复调用自身的概

2021-09-20 19:06:19 259

原创 【新手Java】13.类与对象 Class and Object(2)

修饰符前文见:【新手Java】12.类与对象 Class and Object(1)【对于Class的静态关键词】在学习方法的时候,我们已经了解了关键词static如果我们将static与方法(或变量)一起使用,则该方法仅属于类定义,并且永远不会传递到该类的实例(即对象)上在所有程序编译运行的过程中,变量都是由系统自动分配内存进行存储的。在这个存储过程中,static所修饰的变量(也就是静态变量),它所被分配的空间是一直伴随程序运行的,空间将会保持到程序的结束关闭,才会被释放。

2021-09-17 20:50:22 89

原创 【新手Java】12.类与对象 Class and Object(1)

好长,有空我会用主副标题优化一下结构类的概述【概述】在之前的课程中,我们看到了不同的内置类。这些类包括Scanner类和String类,以及一些原始数据类型的类,例如Integerand Double,Integer.parseInt(,Double.parseDouble()【原始类型 Primitive types】Java中有八大原始数据,为int,byte,short,float,double,Boolean,char和long当我们声明这些原始类型的变量时,将分配固定大小的内存来保存要

2021-09-17 20:48:03 218

空空如也

空空如也

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

TA关注的人

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