粉丝7.8万获赞29.3万

假设你有一个仓库,里面有几样东西,一种是普通货物,穷了,过一段时间就会清理掉。第二种是挂在墙壁上的时钟,和仓库共存完,大家可以用它来看时间。 第三种是一个修饰室,和仓库共存完,但只有某些人可以使用好,这个仓库就相当于程序的内存。 普通货物就是所谓的什么局部变量啊,动态创建的变量啊等等,存一会就会被清理掉。而时钟就相当于全局数据, 休息室就相当于静态数据。注意啊,无论是全局数据还是静态数据,他们都被存放在全局区域或者静态区,反正就是一直存放着,一直占用内存, 程序共存啊。有人会好奇,既然都是一直存放着的,或直接用全局数据就可以了,为什么还需要静态数据呢?那是因为全局数据大家都可以访问,缺乏私密性, 静态数据你必须在他的作用域内才能访问,毕竟不是每个人都可以使用会议室的。理解了这个底层逻辑后,你就会发现, static 这个关键字的所有知识点基本都是围绕着在哪里声明这个静态数据, 从而获得你想要的作用欲。好,有了这个 overview, 你再去看看细节,相信你很快就会有更深的理解。

好,接下来呢,我们来正式学习时代这个关键字,那么他呢是静态的意思,那么需要先知道时代这个作用,以及呢他修饰前面量的一个用法。那么时代这个呢是静态的意思,他是可以修是前面变量的,然后表示该前面量呢只在内存中存住一份, 那也就说你乘以无论启动多少次,他是不是只会开辟一块空间呢?哪怕可以被共享访问和修改好,那什么意思呢?他有什么作用呢?我们给大家讲一个场景好,比如说这个是一个网站, 那么这个网站这个左边呢?他是不是有一个在线人数啊?那每一个人来的时候都能看到这个在线人数,每来一个人他会加一走一个人的他会减一。那像这种在线人数,对于所有的对象而言,或者对于我的诚意而言,他是不是只需要一份就可以了? 因为他是被所有人共享的。那么像这样的变量的话呢,我们就会把它定一层什么的,定一层用丝带这个修饰的, 那么到时候我们会把这个变量称为什么呢?是不是静态前面变量,那所有人都可以怎么样访问他,他只有一份啊?好,那么这就是我们时代这个在前面量上的一个使用场景,像这样在线人数,我们是要用时代给进行修饰的。 那么斯大利哥他修饰前备量的话呢?他到底有几种概念呢?以后来说呢,是有两种前备量的概念的, 那有十六个修的全漂亮呢,我们把它叫静态全漂亮,他是属于这个类的,就是属于你当前那个 clus 的,因为类只有一份,所以他也是会只会加载一份啊, 那他是在内存中只加的一次,像一些表示在线人数的信息啊,或者得需要被共享的信息可以被共享访问的情况下,咱们一般都会把这个全面上声明称有死在, 但是咱们之前也学过一种陈明亮是没有用,是吧?是不是没有用丝带修饰的? 好,那咱们之前定的全面亮啊,是这样子的,他呢是没有加这个,是不是丝带这个修饰的,对吧?对,好,那咱们就这样,咱们先把哪一种搞明白呢?就咱们先来看一看,那么有丝带的修饰的这个全面亮的话呢? 他是如何去访问的?那么有时在这个修饰的前面上的话呢,他是可以用内容点进到前面上去访问的,因为他是属于这个类,就一份,所以可以只用内容去点他,这是我们推荐的访问方式,那么他还有一种访问方式是用对象点进到前面上去访问,也就说他是不是也支持用对象访问的? 为什么呢?反正他只有一份,是不是可以被所有人共享啊?那对象当然也可以去访问他,只是我没有必要用对象访问,因为用内民访问是不是更方便? 那么我们之前还有一种全面料呢,他是没有加斯带修饰的,叫实力全面料。那么它是存在于什么 每个对象中的?比如说啊,像内蒙 a 级这些,他是不是应该是属于每个对象的?每个对象都有名称和年龄,而且每个对象的这些信息可能还是怎么样不一样的。那么像这样的前面呢,咱们能不能加四代,是不是就不能呢?那我们来看看例子,像内蒙 a 级, 我没有加速这个修饰,那内部业绩他是属于每个对象的,那么他能不能用内民去访问呢?他就不可以,他必须用什么 对象去访问好。那么到这呢,我们大概呢就说完了这两种前面量的一个基本的是吧形式和他的一个法文机制。那接下来呢,咱们到 id 二中呢去用代码的看一看是不是这样子。好,从这边呢打开我们的 ad, 在 id 这个位置呢,我们要 为今天的这个课程是不是建一个模块,那么就要把之前那个模块呢,从中间怎么样呢?都移除掉,这样界面干净一点好,怎么移除呢?我们把它选中,然后右键在这里找瑞木五,对吧?好,这里有一个瑞木模角,把它移除掉,然后呢在这边呢为我们今天的课程呢新建一个模块, 那我们点击 nice 的,那咱们今天讲的是泌阳对象编程的第一天,内容加强课第一天,那我们把它叫 op, 这个叫 oftensologram, 代表就是泌阳对象编程的意思,然后杠 ap 一,咱们有三天,那今天是不是第一天的意思啊?然后点击非例子。 好,接下来在这个地方呢,我们来见一个什么呢?见一个包啊,又见又一个,拍给几这包呢?把它叫 com, 点 id 黑马,然后再点好,赢了之后我们应该把它叫呆了一个, 然后呢安利。但是啊,我们这个剧一般的课程的特别多啊,我们一天可能要分十四五个包,就是我们家长课程的这个内容很多,我们一天可能要分十四五个包啊,那这一包全是英文的话,大家下去复习的时候难度很大,你不知道第一个看哪个,第二个看哪一个。 所以呢,我在这个家长课程里面命包的时候呢,我可能会这么干,我会把它叫第一,是不代表戴帽一的意思,那等会讲第二,你我会叫第二, 这样的话,大家下去看到这个包就是一条线下来,你学习的时候会会非常的轻松,但是我们这样命包呢,并不是非常规范的,我知道他不是很规范,但是为了大的学习,我们只能牺牲这种规范,以后我们切换的时候是很容易的,知道了吧? 好,那咱们就把它叫第一,然后呢叫代理一个,我们现在讲的是它来修是什么?是不是前面亮啊? 咱们在这边取名叫废的。好,这样一个包建好了,接下来我们在这边定一个类,那么这个类呢?比如说把它叫有点代表什么?是不是代表用户的意思?那假如说我现在要表示一个什么信息呢?我要表示一个在线人数信息,我是不是应该把它定成一个什么? 是不是静态前面亮啊?因为他只需要几份呢?只需要加载一份,而且静态前面呢,我们一般会趴不了一个,因为你是不是就是为了被别人共享访问呢?然后叫 stanic, 然后呢? in, 比如说把它叫 unli, nynb 啊, nlai 男宝代表占用人数的意思。 好,那我们其实还有一种全面亮,叫什么呢?是不是叫实力全面亮?那实力全面亮他的写法是什么样子的?他加不加斯代替卡, 他不加。哪些定义成实力前面了呢?比如说我们的内幕是不是属于每个对象都有的,而且每个对象的信息不一样,按照风装咱们还会私有,还有一些比如说硬的 a 级,咱们也会把它定义成实力前面呢。 那么这个前面呢,定完之后呢,咱们现在要教他们怎么去访问?好,那我就直接在这个类里面教大家去访问啊,可以教大家一些知识点。那这个类里面呢,我们定了一个问方法,然后呢,我们先带着朋友们来做什么事情呢?我们先用内敏 来访问什么呢?是不是静态前面亮?好,那么内于防静态前面亮,别人是支持的,比如说我现在代表了一个用户进来了,我把这个在线人数做一个更新,那是不是应该是游走?恩,来代表访这个静态前面亮?佳佳是不是代表加一, 代表上线一个人啊?好大,还要注意啊,我们有的时候呢,也可以直接来访问这个里面的值,比如说我这么来访问的,直接输出 olay 兰博前面不用类名是不是也可以啊?但是这个前提是他应该在什么,是不是在同一个类中是不是才可以使这类名啊?这大家注意的细节我们来记录一下啊。注意啊,那同一个类中 我们访问什么?静态成员电量,他的内名可以怎么样?内名可以省略不写,他默认会帮你加上的, 但是前提是一定是同一个内容,如果你在其他一中去访问这个镜头前面亮,你还是要带什么?是不是带这个类名来访问他的?好,这是关于镜头前面亮呢,咱们呢?其实就已经说完了他如何访问了, 那我们接下来讲第二种,第二种是实力全面亮。那么实力全面亮他的访问应该是什么?他是不是应该是用对象,然后再点这个实力全面亮啊? 好,那假如说我现在直接去访问内幕,好,他们看他是会报错了,为什么会报错呢?你直接访问内幕的话, 因为内幕他是属于对象的,那你现在这个内幕他是不是相当于还没有加载呀?而且你现在直接就访问内幕,那你是访问哪个对象里面的内幕吧?是,你看密样对象代码很有意思,他虽然放在内里面,但是你不一定能访问吧?因为人家虽然放在内里面,但是人家是属于什么?是不是属于每个对象的? 好,能理解这意思不?所以你这里是不能去访问的,这样访问他会怎么样?搞错了。好,那咱们一定要访问实力型变量,咱们应该怎么办? 是不是应该是创业对象啊?来,比如说我把他叫优一,等于六一个有子,然后呢,我们再用优一点内幕就没问题了,没问题,因为他就是属于对象的前面呢?然后我们可以为他复职,比如说把他叫猪八戒, 好,这样我们的优异对象就已经能够去访问他的内幕了。那 a 姐是一样,你也要用对象去访问,有,他年龄是三十六岁。 好,这样我们就得到一个对象,并且能够成功去访问这些实力全面量。那我们如果要去看他的纸的话,是不是有一点内幕,再点 sout 这边是优一点什么的 a 级好,这样是不是就可以了?好实力。全面浪其实就已经可以访问。那咱们之前还说过了,近代全面浪其实他也可以用什么访问其中呢?男模是不是也可以用对象访问呢?就他完全 支持什么呢?对象点静态成员变量,为什么他支持呢?因为静态前面呢,是不是只有一份啊?他是可以被所有人共享的,所以你拿对象也可以访问他,你说拿优衣点翁那里,但是后面有没有发现一个细节啊? 你看我拿这个埃利尔去写的代码说,尤其我写到这里的时候,他是并不提醒这个东大音 number 啊,他不提醒出来啊。其实他并不希望你这样去访问,你知道了吧?但是你我我坚持怎么样? 我坚持要写,他还不提醒,我再来,还不提醒,还不提醒,然后我把他怎么样全部写完,是不是快出来了他才出来?他一直告诉你说不要这样干,不要这样干,但我是不坚持这么干的,所以他也没有办法啊。 那就说这个潜台词就是什么呢?就是他其实不推荐这样访问,为啥呢?因为你用内民 访问会更加的怎么样?是不是更加的方便呢?没有必要拿对象去访问啊。好,那这样呢?用对象访问其实也可以,就代表什么,语法上也可以,代表是没有一个人上线的。好,咱们再来做一个对象, 是不是也可以进访问?这个进到前面了呢?肯定是可以的,我们把它叫一二,一二一二,然后一二一二,然后这里也是一二,那这一方我把它改成叫孙悟空。 好,这个零呢?我们给他改成三十八岁,大概一万对象,是不是也可以去访问这个进到前面当了。好,那么这就是关于我们的什么呢?这些 变量的一个是不是访问机制,咱们基本上就已经怎么样?是不是已经说完了?那最终呢?我们再把这个什么呢镜的前面呢打出来看一看,直接输出翁纳伊朗本同个内容是不是可以省略?这个内容不写啊?那这个 东耐狼版最终会变成多少啊?是不是应该从这边加一,这边加二,这边加三,他是不是应该是三呢?那假如说我一开始这个值就是多少呢?就是幺六幺的话,代表目前是不是有一百六十一个人在线呢?那这边一加变成多少? 一百六十二,所以这边一百六十二,再加是一百六十三,这周是不是一百六十四个人呢?我们来执行一下,反过来都是同一个。 好,大家看是一百六十四个人,前面到这里是一百六十二吗?是吧?然后这边是猪八戒和三十六岁,然后呢?这边一家变的一百,是不是六十三了,是吧? 然后这边是孙悟空三十八,这边一家变成一百六十四,最终我们去访问他就是一百六十四啊,所以他完全可以用于做什么,是不是在线人数的统计啊?好,这就是近代体验面量和实力体验面量个子的场景和 他的一个区分啊。那回到我们的 ppt, 关于呢这些全面量呢?咱们呢就已经分完了,并且已经讲清楚了。呃,并且已经讲完了,那接下来咱们来总结一下我们的全面量的分类和访问分别是什么样子的? 他分了几类呢?是不是分了两类啊?一类是有死在这个修饰的近在前面呢,他是属于什么 类?他的类分钟只会加大几次,加大一次他可以被共享访问,他通常用于是在线人数这样的信息。 他的访问格是这个样子的,他是可以用类名进到前面上去访问的,这是咱们推荐的,他也可以用对象点进到前面的,这是咱们不推荐的。但是余瓦上是不是也支持啊? 毕竟他这个共享变量可以被所有人访问吧。但是建议大家开发中还是用内米去访问。以后你面试遇到别人拿对象去访问,进到前面量,你可以完全把那个对象直接改成什么 内名再去理解,你的思维会很清晰,因为他会拿各种对象去访问,很容易把你是不是看蒙啊?所以你不如把他改成内名去访问,效果是完全一样的,而且你改完之后,人家会觉得你 更专业,没有问题的面子,你可以这么干,把它全部改成内民来访问就可以解决了。好,我们接下来看实力分配上的是无死内个修饰的,他是属于什么?属于每个对象的,他既然属于对象,所以他的访问格式是必须通过什么对象来完成的。 好,那我们接下来看下一个问题,两种前面量,个子在什么情况下定义?近代前面量是表示在线人数等需要分共享的信息啊。那实力前面量呢? 他是属于每个对象的,而且是每个对象不同的信息的时候,我们就定义成实力全面了,像内幕啊, a 级这样我们都会定义成实力全面的。好,关于全面上的分类和访问呢,我们就说完了,那我们这节课的意 在于什么呢?屯没以后看到别人定义的任何前面呢?你是不是都能够很清晰啊?其实你已经学的很好了。好,那关于这两个内容呢,我们就说到这就好了,咱们在上节课程中呢,已经学习了 stadi 这个修饰前面那样的分类,以及呢它的一些使用场景。 那接下来我们就需要知道所在,这个就是全面上的一个内存原理,那知道这个内存原理呢,可以让朋友们呢把他的这些全面上的访问机制呢理解的更加清楚啊。 好,咱们呢来看一看这个类似原理,这类似原理呢是基于是不是我们刚刚写这个代码来讲解的,这代码我直接贴过来了,他是一样的,那我们要讲解内存的一个原理,我们是不是需要那么几块区域啊? 这个我们在记住入门课程的时候是不是已经接触过?好,那这个代码在急的时候,他第一步会怎么办?他第一 是不是应该是把这个优的的卡子文件提取到我们的方法区里面去,是不是加载这个类啊?大家一定要注意啊,加载类的时候他会同时去加载他的什么 静态前面亮,因为静态前面亮他是属于是不是泪的,他会与泪一起加载一次的, 而且可以被共享访问。而大家有没有注意到这个静态前面呢?他是放在哪里的?放在堆内层的,你们可能在网上看有的静态前面呢,他是放在什么方法区里面?那是以前的老版本,咱们现在用的版本很新,他是放在堆内层里面的,能理解不?这个要注意一下,而且这块区域只有几分了, 只有一份啊。好,那加载完内,加载完进他前面亮,那他会不会去加载这个实力前面亮四十二?他不会的,因为这个实力前面亮,他虽然写在内里面,但是他是属于谁的?他是 属于每个对象的,你没有对象的话,他加不加载啊?加,加,他不加载啊。好,那咱们呢?就开始是不是加载闷方法到这边来跑了?对,闷方法是提到站里面跑,再指引闷方法第一行代码 第二代吗?他做什么事情呢?他是根据内,你是不是去找这个近的前面亮啊?他可不可以找到他?可以,他会直接到堆里面去找。是不是这个游的类的这个近的前面亮啊?他已经在这里,所以他可以访问这个值啊, 然后他也可以不带内名。不带内名的话呢,人家知道哦,你没有带内名是吧?那说明你是不是想在同一个内容去访问呢?他会自己带优的,然后去找这个静态区也能找到。 好,这是他的原理啊。那接下来呢,我们再通过这个类名去访问什么?这个近代前面那里面的是不是这个值啊?那么他会把它改成多少?是不是改成幺六二?改好了吧,那继续往下走, 他直接去访问这个内幕是不是就会报错呀?为什么?因为现在有没有加载内幕?没有,他是属于每个对象的吗?所以看这个面对象代码非常有意思,他虽然写的类里面,但是不定水类。哦,这是他的核心思想啊,他是属于对象的,你不能直接去访问的。 好,继续往下走,那是不是要开始?呃,开始创建对象了,那经过这个代码他会做什么事情?他会直接在内存中是不是开辟一块对象空间,然后把你们内幕加载, 然后这边是不是应该是一个 a 级啊?好,我当时比如没改这地方应该是个 a 级,然后他会把内幕的值改成什么?孙悟空 ag 的值改成什么?三四五。 那接下来他会把这个对象地址是不是交给这个优衣变量来进行存储?所以这个优衣变量里面的地址会找到这个对象,而这个对象也会跟静态区里面的静态 进行观点,因为这个变量是共享的,所有对象是不是都可以访问的?嗯,好,这样我们的对象就有了。那对象有的话,你用优衣对象去访问他里面的内幕和 a 级,是不是肯定可以的?对,因为人家本来就是。怎么样,是不是属于这个优衣对象了?是,好,这样没问题。那我们接下来拿优衣对象去访问什么 是访问?这个镜在前面了,有没有毛病?没有毛病,他要根据优衣里面地址去找到优衣对应的这个对象,再给你这个对象去找什么? 是不是静态区里面的这个静态沉默量啊?那从这里我们就知道,其实我们是不推荐这样去访问的,为什么可以知道呢?你看他要先找什么? 是不是先找对象啊?是不是再找近点前面亮啊?对,没有必要我们直接拿什么类名去访问是不是更方便啊?对,是吧,不然你还去创立个对象去访问,没有必要的啊,当然这样也可以, 那这个代码一经过,他把这个值改成一百六十几啊,是不是一百六十三代表又有人来共享访问了一遍吗?好,继续往下走,是不是又来一个对象啊? 那么这个对象呢?他会怎么样?是不是再次指向一个新的区域啊?就这块区域,然后他用一二变量里面成的地址来指向这个对象区域的里面呢?也有内蒙和 a 级,然后他固然就可以去,怎么样?是不是去访问他里面的内蒙和 a 级这些实力权力量啊?他本来就是属于对象的。 好,那接下来呢,他也可以用 u 二里面的地址去找这个对象,再去找这个镜头前面亮反问的是不是还是同一个镜头前面呢?再一经过这个值会变成多少? 一百六十四,再往下走的时候呢?他又是通过什么呢?内明是不是直接去找这个地方啊?这是有点累吗?然后找到里面的,进到前面了,最后看到纸是不是应该是一百 六十四?好,从这个类型图里面呢,我们应该能够得到一个结论,也是应证我们之前的结论。静态前面量确实只会加大几次啊,加大一次可以被内明和所有对象是不是更想访问?而实力前面呢?它是属于什么? 他是属于每个对象的,他在我们那种不可不是说就只有一份了,他可能一个是不是都没有加载啊?但是他也可能会属于什么?每个对象,假如我对象有一百个的话,那么实力全面上是不是都会加载一百份啊?因为他每个对象里面都有啊,其实这就是面相,对象的 精髓,大一下就抓住了,看到没有?所以他很简单的,不要把面相这样想的很难,你只要脑袋里面有这种对象化的思维,然后呢实力全面的分在每个对象里面,记在前面的是一份其实你就已经精通的面相这项思想,因为以后他开发时候就是这样一个模型,懂了不懂了?好,我们就说到这,最后只。

今天我们来讲一下 c 语言中一个非常重要的关键字叫 static。 在 讲 static 之前呢,我们可能要先提一个概念,叫局部变量。什么叫局部变量呢?就是呃,默认定义在这个函数里面的这个变量,我们就叫做局部变量。 局部变量的话,它实际上的生命周期,它是跟随这个函数的这个生命周期的,只要函数执行完毕,它这个局部变量呢,就会被销毁。所以呢, static 呢,它设计的初衷的话,就是为了去延长这个啊局部变量的这个生命周期,使得它修饰的局部变量呢,在这个函数结束之后呢,它依旧是存在的, ok, 但随着 c 语言的发展呢, static 在 c 语言中又拓展了另外的一个功能,就是去限定变量或者是函数的一个作用范围啊,或者叫作用域, ok, 所以 总结来看的话, c 语言的 static 关键字有两个作用,一个就是规定变量的一个内存分配的区域, ok, 比如说这里面啊,它规定的这个啊 static 的 这个变量,它需要从这个静态全区数据区去分配,对吧?虽然现在我们还没有讲到啊内存分配,但是我们现在可以先提一下, 就是静态全区数据区呢,它是可读也可以写,而且它的生命周期呢,是在整个程序的生命周期之内都是有效的, ok, 那比如说我们在 mail 里面去调用这个 function 函数, ok, 只要这个函数函数运行完,那里面的一些局部变量它就销毁了。但是用 static 修饰了之后呢,你 function 结束了,那它不会被销毁,是吧?比如说这个啊, static int b, ok, 那 它是会啊,伴随着整个程序的生命周期内啊,都是有效的。 ok, 那 像我们的一些单面筋,比如说你写了一个 web 一, 对吧?那整个程序它就一直在的 啊,然后第二个就是限定函数和变量的一个作用域,对吧?比如说我们 static 修饰的一个 int 变量,对吧?那这个 a 呢?这个标识呢,就相当于只会在这个 c 文件里面去生效, ok, 如果其他 c 文件要去引用这个变量呢?它其实是会啊,引用不到的。 ok, 我 们来看一个例子, 比如说我这里有一个方程这个函数,然后这个函数里面呢,定义了一个局部变量 b, 是 吧?然后这个 b 等于一个十,然后呢,我把这个 b 加一之后呢?然后再返回去, ok, 那 我们来看一下这个 man 里面去调用的两个代码,第一个就是调用一下这个方程,然后打印出来这个 b 的 值,同样的第二句也是一样的,我们先看一下这个效果是怎么样的啊?编一下 c c 杠 o b 一 点 c, ok, 我 们来看一下,然后运行,可以发现,这两次啊,调用应该打印 b 的 值都是十一,对吧?啊?这说明什么呢?说明,比如说你第一次去调用方程的时候啊, b 已经执行了一个啊加一了,那这时候它是十一,然后呢,它运行完了,那相当于 b 也就没了, 那第二次调方程的时候呢? b 又从十开始,对吧?然后重新加一,然后变成十一返回, ok, 那 这时候假设我在啊这个 b 的 前面去加了一个什么 static, 我 们看看是个什么样的效果。 ok, 我 们来变异一下 运行,可以发现就是第一次调完这个方程之后呢,它确实也是十一,但是第二次调的时候呢,它就变成十二了,对吧? 这个说明什么呢?说明就是我第一次跳这个函数的时候, b, 它并不是重新去粗制化变成十的,对吧?它是基于上一次已经运算了一次的结果之上再去加一的, ok, 我 们上次运算是十一嘛,对不对?那这一次的话是在十一的基础上呢?然后再加一,然后再返回, ok, 可以 发现这个 static 修饰的变量,它并不会因为这个方程结束了它就被销毁了,而是它还是保留的,然后下次进来的情况下呢,它不会重新去抽象,对吧?而是基于上次的那个值,然后重新去做计算。 ok, 这个就是 static 的 第一种作用,规定变量的内存要从啊静态全区的那个数据区去分配,从而延长它整个啊局部变量的一个生命周期。 ok, 然后呢,它其实还可以修饰一个全变量,对吧?比如说我在这里定义一个 static int a, 然后等于二十, ok, 然后我又在另外一个点 c 的 文件里面想去引用这个啊全曲变量 a, ok, 我 们看一下,比如我现在又写了一个啊二点 c 这个啊 c 文件, 然后呢,我在这个 c 文件里面呢,就去啊引用它。那引用怎么引用在 c 语言中呢?可以通过这个啊 extend 这个关键字去引用 x ten, 对 吧? int a, ok, 虽然我们现在没有讲 extend 这个关键字啊,但是我们大概也就知道它这个就是啊引用外面的或者引用外部的一个变量的一个意思, ok, 后面的话我们会详细去讲这个 extend 的 一个用法,然后呢我再定义一个函数叫方程, ok, 在 这个函数方程里面呢啊,我去对这个变量进行,比如说我就直接让它加加, ok, 然后呢我们把这个一点 c 跟二点 c 都一起翻译一下,看一下它会不会有问题, ok, 啊,加上二点 c, ok, 它这里报了两个错误啊,它第一个提示就是这个方程啊,重定义了,原因是我们在那个一点四里面也有一个一模一样的方程,那个函数,对吧? ok, 这个我们待会再来讲,我们先看一下这个变量的这个 a 的 这个引用的问题 啊,它这里明显就提示说这个啊变量 a 没有定义,对吧?啊,虽然你是引用了一个外部的,但是你引用不到啊,那边已经用 static 去修饰了,对吧?比如说我们再把这个一点 c 给打开看一下, 对吧?本来的话你是想去引用这个变量 a 的, 对吧?但是你现在引用不到啊,它提示没有定义,对吧?在二 c 这个文件里面,所以呢,如果你想让它能够啊引用到的话,你就可以把这个 static 去掉 啊,这时候呢,这个 a 呢,它的作用域就不仅仅在这个一点 c 这个文件,在二点 c 这个文件,它也是可以通过这个什么 extend 去引用的,我们再来看一下效果, ok, 变异, ok, 这时候已经发现它没有提示这个 a 没有定义了,对吧?但是呢,这里我们看到它还提示了一个叫啊重复定义的一个问题,对吧?那这个其实也是啊, static 去修饰函数的另外一种用法 啊,比如说我现在啊,确实是想在一点 c 跟二点 c 里面都定义一模一样的这个函数,对吧?或者是一模一样的这个函数的名字, ok, 那 我可以怎么做呢?比如说我在这个二点 c 里面,我就可以通过这个 static, 对 吧?去修饰一下这个函数,把这个函数它的这个作用域啊,就圈定在这个二点 c 的 这个啊文件里面。然后呢,我们再来编辑看一下它会不会报错, ok, 已经不会报错了, ok, 最后再总结一下这个 static 关键词的两个作用,第一个就是修饰局部变量,然后规定这个变量它的那个内存要从静态全区数据区去分配,从而能够延期它的这个变量的一个生命周期, ok, 然后第二个的话是,呃,可以限定变量跟函数的一个作用域,比如说你加上 static 的 这个修饰,那这个函数或者这个变量呢,它只会在这个点 c 里面生效, ok, 那其他的啊,点 c 想要去引用的话是引用不到的。当然你也可以定义一个一模一样的变量 a, 然后加上 static 修饰也是没有问题的。我们一般要养成一些啊好的编程习惯,就是有一些函数啊,我们啊,如果明确它是指在我们自己的这个模块里面去使用的话,我们尽量的要加上这个 static 啊,没有加 static 的 这个函数的,我们默认都会认为它能够被外部引用,从设计的角度来看,就是没有 static 修饰的,我们默认都会把它包含到我们的那个什么模块的点 h 里面,然后其他模块呢? include, 我 们的点 h 就 能调用到我们的这个方法, ok。

下面我们讲一下本节课的拓招知识点, c 语言关键字 static, 这是我们本节课的一个重要内容,因为我们在学习定时期之后会用到大量的 static 修饰符。 我们看一段代码,我们说在这一段代码执行完之后,那么变量 global a 和 global b 分 别的值是多少?大家看一下。 好,我说一下,那么经过此段代码之后, global a 等于一, global b 等于十,这里面唯一的差别就是这个变量 该和接一个没有 static 一, 一个有 static, 那 么就造成的结果会是截然不同的。那为什么呢? static 修饰符第一个作用,在局部变量定义时加入 static, 那 么第一个如果没有抽象,该变量会被抽象为零, 那么该变量不会被再次出式化,它的值在每次执行完该函数后会保留,那么作用域为本函数体内。但注,一定要注意红字这个部分啊。 我们看这样一段函数,那么首先我们看一下第一次调用,调用该函数时,那么 i i 自加第一次调用后,它等于一,但是呢,它因为这有个清零,它不会被再次清零,它的 i i 等于一的值会保留下来,所以说该函数第二次被调用之后, i i 会等于二,第三次调用之后, i i 会等于三 啊,所以说我们用另一种理解方式,被 static 修饰的局部变量只会被出示化执行一次,这是一个非常非常重要的 点,大家以后再编辑代码,尤尤其在那些需要累加预算的时候,那么这个 static 修饰符非常的重要。 那么第二个作用,使用 static 修饰局部变量。我们说如果用 static 修饰一个局部变量 c c c, 那 么有 static 和没有 static 有 什么区别呢? 嗯,我们说啊,现在我们在编写工程时呢,很少是有一个人独立完成的,有很多任务都是有很多人分散,你负责这一块,我负责这一块,共同完成的。那么就存在着一个问题, 如果两个人同时在给工程写代码的时候,那么很难避免的这两个人会起同样的局变量名, 那么我们我们编辑器如果说两个 c 文件同时定义了一个相同名字的全变量,它肯定会报错,对吧?为了解决这个问题,我们说用 static 修饰的全变量, 其作用域只限于定义它的 c 文件中。我们说分工之后,每个人负责一个 c 文件,那么用 static 修饰的全变量只限于定义它的 c 文件中,在其他地方不能使用。 这样呢,也就解决了同一个工程中不同的人起同样的大局变量名的问题啊。那么可以,其他的变量你可以通过 external 被其他文件引用,而被 stata 修饰的大局变量是不可以被引用的。 那么第二个大家明白了,第三个大家也就明白了,是吧?除了大局变量能除名,还有什么能除名呢? 就是函数啊,函数也可能重名,那么用 static 修饰的函数也是 其作用域仅仅在当前的 c 文件中,而不能被其他的 c 文件调用,这样也解决了工程中同样的函数名的问题。

这节课来看第二十二题,题目要求编写一个程序,模拟简单的登录系统,预设用户名和密码,用户有三次尝试机会,那么在这里面我们就先让它输入用户名和密码,同时我们对这个用户名和密码来设置一个敞亮, 接着来对他们进行判断,判断我们输的用户名还有密码与我们这里的预设的是否相同,如果说相同的话,那么我们就直接让他通过,如果说不相同的话,那么我们这个次数就减一,如果说三次都不通过,那么我们就直接不让他再次的进行这个尝试了。 好,那么现在我们就到代码里面来完成这样的方法。 首先的话我们先来设置三个敞亮,分别是他们的用户名,用户名的话我们在这里面直接输入 atm, 接着是密码,密码的话我们在这里输入个简单的一二三四五六,然后是它的这个尝试次数, 尝试次数我们在这里面写一个三次,写完他们的这个预设的这个用户名和密码之后,我们现在来让他输入用户名和密码, 以及我们当前的尝试次数。当前尝试次数的话,因为还没有开始,所以我们先给他设成零,同时我们在这里面用一个簿址来判断他是否已经登录成功。 那么完成这三样操作之后,我们现在来进行一个 vivo 循环, 首先第一个循环要求就是我们当前的它的这个登录次数,它是要小于我们的最大的请求限制,同时要保证当前是处于没有登录状态, 那么在这个情况下我们就可以让它输入用户名, 那么用户名的话我们直接使用 next in next line 来进行接收, 然后我们让它输入密码, 那么这个密码的话是 input password, 那 么接着我们就对它当前输的用户名还有输的密码来进行一个判断, 我们要保证输入的用户名它是要等于预设的用户名,同时我们要保证输入的密码它也是要等于它等,它也要等于预设的密码。 如果说他们两个都是成功的话,那么我们就可以来给它输入登录成功,登录成功之后,我们就可以让当前的这个登录状态设置为处,那么否则的话 我们当前这个请求次数就要加一,在加一的情况下,我们还要给他输出一个用户名和密码错误, 然后告诉他剩余尝试次数, 我们的最多的这个次数减去他当前已经使用过的次数, 如果说我们三次他都不成功的话,那么我们就直接来给他说明 登录失败,账户已锁定, 我们把它放在 vivo 循环外面, 那么最后我们再来关闭一下当前的输入。 好,那然后我们现在的话来运行一下我们当前的方法 运行,然后在这里面我们输入用户名,我们在这里输入一个正确的情况,下面还有一二三四五六,然后回车这里面就直接显示登录成功了,然后我们再来看一下登录不成功的情况下,我在这里面随便输入一些数字, 第一次就是用户名或密码错误,然后剩余两次尝试哦,然后我们再来输入错误的,这里面又是错误的,最后我们再来输入错误的。好,当我们输入完三次之后,用户名或密码错误,然后剩余尝试次数为零,此时的话我们就显示登录失败,账户已经锁定 好,那么这样的话,我们的模拟简单登录系统就说到这里。

好的,那么在前面的个人中呢,咱们呢已经学习了 style 这个修饰方法和修饰前面量以及呢,他是不是可以做一些工具了呀?那关于时代这个的使用呢,还有一些注意事项, 这注意事项呢是面试中或者回门写代码时候呢需要关注的,否则的话呢,你可能没有办法去解答这个面试题,也有可能呢,会掉到四川这个开发的坑里去啊。那咱们来看一看这个注意事项。 好,第一点是这么说的,静态方法只能访问静态成员,不可以直接访问实力成员,什么意思呢?就是说静态方法他可以访问什么?静态前面亮是不是也可以访问静态方法呀? 但是他不可以直接访问实力成员,因为实力学员是属于对象的,你是不可以直接访问的,但是你可以创业,对象是不是去访问的?对,好的,第二条啊,实力方法可以访问静态成员,为什么?因为静态的前面 和近代的成员方法是不是都是被共享的,所以人家在任何地方是不是都可以去直接访问他呀?那么实力方法是不是也可以直接访问实力成员?为什么实力方法和实力成员是不是都属于对象呢?在实力方法中是可以去直接去访问实力权面量,也可以直接去访问实力成员方法的。 明白不好,我们接下来看到第三点注意事,第三点是静态方法中呢,是不可以出现这些关键字的,那咱们呢就要想一想了, 这是关键字代表什么?是不代表当前对象啊?而静态方法他是用对象掉的吗?他说有可能是用泪掉的。 那这个进来方法中此时有没有所谓的对象啊?有,他没有。那你怎么用这次去代表他的那个对象呢?他都不是用对象掉的,只有对象掉他才能代表对象。当然一个同事说他进来方法可以用对象掉啊,问题是 他万一不用对象,那家伙是很严谨的嘛,对不对?他万一用内名来叫经常方法,这次就不能代表对象,所以他首先不能出现这次关键字。 那么这么讲同学们听起来还是有点出像,那接下来咱们还是到什么 id 二中用代码跟同学们讲一讲这个访问机制,他是面试的热点,也是同学们写代码需要注意的。 在这边我们来新建一个包,这个包呢叫第三啊,第四,然后呢?杠 steadig, 杠 a d t en, 天文啊, tension 是不代表注意啊,然后这边呢,我们来新建一个类叫 test, 好,这边呢,写上一个闷方法。 那我们接下来为大家讲的是什么呢?是不是就是这几种方法的一个机制啊?那咱们呢,先来定一个什么呢?静态方法叫 police steady 的。好,咱们现在是不是讲的是一些所谓的 一些语法机制啊?那咱们可以随便取些名字,问题不大了,比如说我们就把它叫 gat max, 这是不是代表一个静态方法了?好,他刚刚说过静态方法是可以直接发,为什么是不是静态成员呢?那加上我这个里面有个静态成员是帕布里克斯带这个,然后呢硬的,然后叫 ongly n u m b r, 这是不是一个近代成员呢?他属于近代成员,什么就前边亮。那现在近代方法中能不能直接去访问这个近代成员?有没有报错?没有,他没有报错,他为什么可以呢?因为这个属于类,这个属于类,这个是不是也只有一份啊?他可以被共享,那即使我不能直接访问,我拿什么? 我拿内名是不是也可以去访问啊?再说同一个内容内名可以怎么样写?内部写,所以他能不能访问计算成员可以。好,在这边为大家记录一下。我们第一点 叫静态方法,可以直接怎么样是访问静态成员呢?好,这个语法点要注意啊,都是属于语法,那么他能够反问静态前面呢?他能不能继续访问其他的静态前方法呢? 是不是肯定也可以啊?比如我们写个方法叫英格利,第二好,代表在哪个位置?这都是语法知识啊,并没有实际含义,大家搞清楚调文观音就可以了。比如说我们在黑马程序员 是不是一个通用的方法呀?那我这个方法他是个近代方法,那他能不能被这个近代方法访问?可不可以?可以,我们说过近代方法可以直接访问近代成员,那你的这个近代成员方法别人是不是也可以访问呢? 好,这是近代前方法。以后我们把他们怎么样统称近代成员,明白不?他都是可以访问的,因为他们 反正都是怎么样属于类的,互相之间是不是都是共享的?完全没有毛病啊,可以访问啊,不报错了。那么还讲了一个是什么实力方法访问的问题啊?比如 pop 那个 voy 的 ro, 是不是这代表了一个实力方法呀?那实力方法中他能不能直接访问静态成员呢? 能不能访问近代体验可不可以?可以,为什么可以啊?近代体验是不是被共享访问的只有一份?而且我跟大家一个,而且我给了大家一个观点啊,即使他不能直接访问,咱们拿内容怎么样? 是不是也可以去访问的?而同一个内容内民又可以怎么样?此类不写,所以他是可以访问什么?是不是近代成员的?是,好,这是第二个语法练,也是面试经常出现的, 我们把它称为什么呢?实力方法可以直接访问技能成员,这就是实力方法。那么实力方法他能不能反问 实力成员呢?比如说我这边有个实力成员叫 private, 是真的,这是不是这个实力成员呢?他的实力成员是变量啊,实力全变量。他本人是属于什么?是不是属于每个对象的?那我现在非要在实力方法中去访问这个类目,有没有问题呢? 没问题,我们之前写这样的方法,是不是可以去访问这个实力前面的?那我又要问他们,他为什么可以访问实力情缘呢?嗯,就实力方法为什么又可以访问实力情缘呢? 因为他们是不是都属于对象啊?那比如说啊,这个愿望你是不是要拿个对象来钓?那这个内幕就会访问什么 是当前对象里面的这个内蒙,所以他可不可以访问内蒙?他可以的。好,我听懂了没有?咱们的面对象就是讲的有点深度的, 所以这东西你要动脑想的,我们是扫盲,让朋友们在面对上这一块的语法上基本上没有盲区,知道吧?以后遇到任何的代码格式都能看得明白啊。那这个地方有没有问题了啊?没有问题是吧?因为你到是不是肯定是用他的一个对象来调乱的,内部会访问你内个对象里面内部 好,那么实力方法他是不是也可以去访问实力方法呢?比如说我有一个方法叫抛了一个肾,是不是代表这个对象在唱歌啊?好,这个要加个鸡。好,那我先问同学们,我在乱发里面我可不可以去访问这个肾?方法 可不可以?肯定可以,你是拿对象掉乱方法吧,他是不是再继续掉这个对象的剩方法呀?他没有毛病的。那么实力方法能不能去访问什么呢?你看各种情况我都介绍一下。实力方法能不能去访 我们的近代方法,比如说能不能访问我们的 get max, 可不可以访问?可以,原因是近代方法是被怎么样共享的,即使不能直接访问,咱们也可以,怎么办? 加个类名是不是来访问他?同类种类名又可以怎么样?可能不写好,那么到这呢,其实我们就基本上介绍完了,这些访问机制比较多,比较杂,但是还是有一个统一标准的,就这两条。 那么还有一个注意事项是什么?就是静态方法中能不能出现这次关键字啊?静态方法中他怎么样?他不能出现,是不是这次关键字啊? 是不是不能出现呢?咱们写一写,输出一个,这次是报错了,你把鼠标移上去。好,他会告诉你,他说你这个里面呢?是不能够去什么是访问这次的,他说你是一个静态上下文, 属于一个静态方法,那么静态方法中为什么不能反问这次关键字呢?啊?原因是这样的,我们之前说过,这次在方法中谁掉了呢?这次是不是代表谁啊?而且这次是不是只能代表对象?那你这个方法有可能是用什么调的? 你用内调的,你用内调的,难道这次代表累吗?但是这次能不能代表累啊?不能代表了,他只能代表对象,所以他这里面是不能出现这次的,他一定是要代表当前对象的。 而实力方法中他可不可以圈这次啊?他肯定可以,因为实力方法必须拿什么调对象?拿对象调,此时这次是不代表你当前那个主调对象啊,是 明白不?明白?明白,当然也有很多人会说,哎,那你这个肾方法他不是拿对象调的,那为什么这里也能出现这次呢?其实肾方法也是拿对象调的,因为你是先拿对象调 号,里面是不是继续用你当前对象去掉剩的,明白,不?只是你看不到而已啊,所以他其实也是用对象出发到这边来的,所以他也可以访问这一次。好,回到我们的 ppt, 关于这些出样的语法呢,咱们呢就已经说完了,总结来看就三条,第一条是近代号码只能返回近代学员, 不能直接访问实体学员。但是大剧啊,他只是不能直接访问。我可不可以在近代方法里面穿对象再去访问,可不可以?他是可以的,举个例子,在这里,我在近代方法中,比如说我是不能去访问什么呢? 我是不能去访问,是不是这个内幕实力全面了的,因为他是属于对象的,但是我可不可以先创建一个对象? 先创一个对象,你这个对象代表的就是一个学生的话,我们现在把叫测试的名字,然后再踢点内幕,可不可以?是不是?肯定可以的?我说的是不能怎么样直接, 但是并没有说不能见解,明白吧?好,回到我们的 pbd, 他不能直接访问实力学院。第二点是实力方法可以访问近代学院,也可以访问什么实力学院。第三点是近代方法中不能出现什么,这是关键字。好,咱们呢就说到这。 好,其实我们这些语法呢,还是比较抽象的,那我讲这个抽象的语法的目的呢?就是为了让大家以后见到任何代码 都是能够知道原因的,你可以到我们的 id 里面去看一看,现在我们写所有代码我是都知道他到底能不能访问,以及为什么可以这样去访问啊?基本上任何代码风格我们都能看明白。好,咱们呢就说到这。

二零二六年热电人必会的交换机调戏命令一、基础系统网络命令二、 dhcp 常用命令 三、微软常用命令四,接口命令。记得点赞收藏哟,下次可以用到的。

好,在上节课程中呢,咱们呢已经学习了 static 修饰全面量的一些用法,那么在开发中呢,还有一些方法的形式呢,它会用到 static, 那么 static 修饰方法呢?到底是什么样的一个作用呢? 好,咱们呢先来引入一下我们之前呢定的这个方法呢,它有的是有 steak 修饰的,有的是怎么样?没有的有什么不同呢? 大家应该对这块内容很好奇,因为我们之前在这边是不是一直流着盲区啊?那么今天我们可以真正搞明白,有的方法为什么要加 style, 这个有的怎么样,为什么不加?他们各自有什么区别和什么场景 好,场景相来说难理解点啊,我们尽量理解他的一个访问区别。好,咱们呢来看一下,那全方法呢,按照由思的这个呢,他也是分了两类的,第一类呢叫静待全方法,他是 有时这个就是属于类的,我们建议同学们用类名访问,那当然也可以用对象访问。哎,这个是不是跟前面量有点像啊?其实他差不多就是很像的思想啊。 好,那我们来看一看实力全方法呢,他呢是什么呢?无私的这个修饰的他是属于什么对象?对象的,所以他只能用什么访问呢?用对象触发访问好,那么这两种方法我们什么时候去定义呢? 这个其实暂时同学们是很难去马上搞清楚的,我们尽量了解他这个区别就可以了,但是呢,尽量了解他的这个修饰区别和访问区别就可以了。但是呢,我还是会告诉一下大家,他的一个基本使用场景 一般是这样的,如果我们要表示对象自己的行为,比如说学生对象的学习啊,唱歌啊、跳舞啊,是不是都属于对象 自己的行为啊?而且方法中呢,是需要访问实力成变量的,比如说你这个学医中是要访问那个内部成变量的,那我们一般会把它定义成什么? 是不是实力方法呀?因为知道这个实力方法他等会应该是属于什么,是不是属于对象的,而且那个实力变量内幕是不是也属于对象?所以你把像这样对象自己的行为定成实力方法,他的好处就是说他相对是表示对象自己的行为,而且他可以去访问那个对象的内幕和 a 级,因为是不是都属于对象啊? 好,这是我们要注意的。那么哪一方法我们定义成静态全方法呢?如果该方法是执行一个通用的功能为目的。什么叫执行一个通用的功能为目的呢?比如说我这个方法就是去打印搜索内容, 那是跟对象没有关系啊,或者我这个方法呢,就是为了去怎么样去做一个登录,或者我这个方法呢,就是为了去比较两个数据的大小,就是为了去做 功能为目的的话,或者需要方便访问,因为近代前方法是不是直接可以用内民访问的,那咱们就可以把它定义成什么是不近代方法。好,这只是一个基本区分,如果朋友们分的还不是特别清楚呢?没有关系,因为后面我们在做项目的时候, 在做一些技术的时候,慢慢慢慢的是不是自然而然的,是不是看多了就习惯了,就知道什么时候用静态方法,什么时候用什么此类方法了。好,那这个基本区分我们说完之后呢,咱们呢还是到 ido 中呢?为同学们呢演示一下。好,从这边呢打开我们的 ido, 在这个这个位置呢,我们来新建一个什么呢?是包讲我们的是不是静态方法的这些操作啊?我们把它叫 com 点 id 黑马,那接下来是我们的第二个案例,我们把它叫第二杠 static method, 是不是代表静态方法的意思,然后把这个类关掉,在这边我们再 再来定一个类,那这个类呢?把它叫 student, 代表学生类。好,学生类里面呢,有很多属性,比如说学生有自己的什么名字,好,学生是不是还有自己的一个年龄呢?好, a 级。好,咱们现在都在一个类中去操作,所以呢,我们就不给他提供 get 方法, 直接就可以,是不是在同类类中去访问他们的?好,那现在我们再做一个什么事情呢?在操作之前呢,我们来定一个什么呢?方法,那咱们先把之前的方法定一下,之前的方法是什么?是不是实力方法?好,那他呢?是什么?无 static 修饰,他是属于什么对象的?他通常表示什么?表示对象是自己的行为啊,比如说寻对象的行为,像什么学习,是不是都属于他自己的?而且他这种还有什么好处呢? 他可以访问什么呢?是不是对象的全面量啊?好,哪些东西定义成实力方法?像学习 他那个 word study, 这是属于每个学生对象的行为啊,而你想想,每个学生对象的学业行为可能也是怎么样不一样的,所以像这种我们可以定制实力方法。 然后呢?关键在于什么?他可以去访问这个对象里面前面了?比如说访问内幕代表是不是这个学生呐?然后再什么好好学习,天天向上 好。为什么他是可以去访问这一个实力前面量内幕的?因为他是不是属于对象的呀?而这个内幕也属于什么对象的?他们在同一个对象中,所以他们互相可不可以访问呢?可以可以的,当然可以拿学习方法去访问这个实力前面量的,代表这个学生在好好学习,天天向上好,这就是我 我们的实力方法什么时候去定义的问题啊?那么还有一些方法我们会去定义叫什么呢?叫静态前方法,有的时候我们直接把它叫静态方法,那么他的特点是有什么? static 修饰,然后他是属于什么类?他可以被类和对象怎么样?是不共享访问的, 相当于他在相当于他怎么样,他只有一份这样一个概念啊,可以这么来理解啊。然后呢,他是可以贝类和对象共享的。那哪些东西定义成静态方法呢?我们是为了做一个通用功能的情况下,我们就会把它定义成一个静态方法。哪些东西是通用功能呢?比如说我是为了去比较两个数据的大小, 那这两个数据比较大小的话,他跟我的对象本人是没有任何的关联的,没有任何关系,那我就把定成进来方法,这样是方便去调用,然后就完成这个功能就可以了。 那比如说我要去,是吧?获取两个数据大小应的 a, 然后再来一个叫什么呢?应的 b, 那这样的方法是以功能操作为目的,我们就定制进来方法啊,然后我们可以在里面做个什么事情呢?比如说这个输出 a 大于 b 吗?那是不是就输出 a 啊?其实就输出 b。 好,这就是我们的什么呢? 静态方法的一个格式啊,他要加 steak 修饰好,接下来呢,我们带头们呢去访问一下,那咱们先访问什么呢?静态方法,那静态方法咱们说过用什么访问? 是不是用类名直接去点他呀?所以我们这个获取这个两个数的最大值,咱们可以直接用什么 student 加个类名,再点什么 get max, 比如说传一个十,传入一个一百,好,这样是不是就掉完了?进来方法, 还有一种钓法是这样的,比如说这边写个两百,然后再写个二十,他是可以不带内名的,但是前提是他必须在什么注意啊?同一个类中,我们访问什么静态成员, 包括进来前面的和进来前的方法,他都可以怎么样?是不是可以省略内名是不写好图片,有没有发现啊?咱们之前访问进来方法时候,是不是直接就是用这个方法名去调的?其他的原因就是因为他是一个什么 静态方法,他本来是不是拿类名去访问的,但是因为在同一类中,所以他类名审阅了,这样咱们之间的知识是不是就已经打通了?这是我们之前为什么可以直接用方法名去访问他的原因啊?好,明白了,不明白了,好,明白了,是吧?那我们接下来要访问第二方法。第二方法是什么? 实力方法?实力方法?咱们一般是用什么访问的对象?然后再点实力方法。好,那假如说我现在直接去访问斯达里, 你会发现他会怎么样?他会报错的。是不是跟咱们理论一样的?你把鼠标移上去,你看 他说了,他说你这个是非静态。 nose 那个是非静态方法呀?人家说的很清楚,你这个非静态方法其实就是一个所谓的什么 是不是实力方法?他是属于什么对象的?既然属于对象,那么你直接去访问的话,人家是不知道你要访问哪个对象的方法呀?所以他就会报错了, 他一定需要你先怎么样?对,说的很对,一定需要我们先创建一个对象,那这对象,比如我们把它叫 student s, 然后等于六一个 student, 然后我们再做什么事情,然后我们是不是再 拿一个对象来访问他?是没毛病的,比如 s 点 study 是不是不报错了?对,但是我们可以为这个对象负一些什么?负一些值,比如说 name, 好,我们给他写一个叫做 好全带。好,这这个学生的名字,对吧?就已经注入给这个内幕了。然后他这边再去调 study 的时候, 他这个内幕是不是肯定是访问谁的?是访问当前 s 对象的里面的内幕,他相当于前面带了什么,但是这次这次是不是代表当前对象的名字啊?对,他访问的就是这个 s 点内幕。就是全带吗?那就说全带,再好好学习,天天向上,这个地方不冲突。所以这次可以怎么样? 可以省略布写,可以访问当前对象内幕的。好,这是实力前方的访问呢,咱们呢就说完了,那我们呢在开通关于静态方法,其实还有一种访问机制是拿什么访问?我是不是也可以拿对象来点这个静态方法呀? 但是我说的这种方式我们是不怎么样,不推荐,虽然语法支持。那来看一下是不是这样,我拿 s 点 get, 大家注意看,我在调着 get 的时候,这个 id 工具是不提醒我呀,其实你看,以他的尿性, 你通常写了一半他就赶紧提,你说选我选我,现在人家是不让你选他呀,为什么?他想的是这种方式不好吗? 但是我非要去写完,他说还不提醒我呀,你看他多么执着,我得把科二写完,他是发现骗不了我了, 还是让我访问对不对?按三百二十他就可以输出三百。好,那这就是说明呢,这种方式确实不被推荐的,因为埃利尔人家其实并不像你这么去写啊, 就它里面隐含了这样的一些意思在里面。贾瓦也贾瓦是为了语法的完美啊,就是因为这个东西毕竟是共享的,所以他类和对象都有访问,实际上他也推荐你用类名访问啊。好,我们来看一看。 那这个结果,这个打出的最大值是一百,这个是两百,这个是说的是全蛋,是不是在好好学习,天天向上啊?因为这个实力方法属于每个对象的,他可以去访问对象里面的全面量,这种可以拿对象去访问进来。方法 好,关于方法的分类呢,和他的访问机制我们的就说完了。那以后同学们再去看各种各样的方法,大脑里面是不是很清晰了,代码应该怎么调?很好了,那这就是我们学习这个东西的意义啊。好,回到我们的 ppt, 咱们呢来做一个总结, 前方法的分类和访问分别是什么样子的?分了几类?两类,第一类叫近代前方法,有十个形式,属于类和什么对象共享访问格式,可以拿类名来访问近代前方法,也可以拿对象来访问近代前方法,但是咱们不推荐。好,我 再给大家说一个观点,你在面试的时候呢,别人可能会拿各种各样的对象去访问这个里面的进来方法,有的时候很容易把你是不是弄蒙了,你可以把对象直接改成什么内名来访问,进到前方法一点毛病都没有,而且这样你思路思维会很清楚,对方看到了也不会说你,因为人家知道你是懂的,对吧?他也会懂的。 好,这是关于这个进的钱方法的访问,那实力钱方法是无 steak, 就是属于对象的,那么他的访问格式怎么办?是不是只能拿对象来触发访问啊? 那么这每种方法使用场景是什么样子的?咱们刚刚是不是已经简单的介绍了一下,大家尽量去理解他的场景,如果是为了表示对象自己的行为,比如说唱歌啊,跳舞啊,而且这个方法中还要访问什么呢? 实力深渊就是访问内蒙 a 级,我们这个方法一定要深密成什么实力方法?那如果说我的方法只是为了 一个通用功能为目的,比如说我是为了去做一个功能,是要去打一个数字内容,或者去找个最大值,最小值,或者为了去做一个什么数据教练,而且为了方便访问,我们就把它声明成什么静态方法好,关于方法的分类和访问呢,咱们呢就说到这,好,咱们呢在上节课程中呢已经学习了,那这个就是方法的一些基本用法, 但是这些方法呢,他在我们的内存中怎么去工作了?咱们呢是不是还不清楚啊?让我们学习这些方法的内存原理呢,可以让我们呢把这些方法的调用过程呢理解的更加的清楚啊。好,咱们呢来看一看, 那我们这边呢依然是一个学生类,然后呢有一个类目前面量 study 实力方法 get max, 是不是静态方法,就是咱们刚刚写的代码,是差不多的形式,那咱们来理解一下这个方法在内存中他是怎么去被这些什么类或者对象去调用的?然后为什么 只能被这些类或者是对象去调用啊?好,他是这样的,他首先呢会把这个学生内的卡子文件是不是提到我们的方法区,同学们一定要注意啊,他把这个卡子文件提到方法区的时候呢,那么近他的这些方法,他的访问入口会首先提供出来, 为什么呢?因为静态方法他是属于谁的?你看我这样写的是不是属于类的水类和对象共享,所以当你加载类的时候,其实静态方法他的访问入口会同步提供出来,就在这边会暴露出来给你去用, 这一点大也没问题。好,没问题啊,好,那我们呢就开始怎么办?是不是开始执行问方法了,这也就是为什么问方法可以提到站里面来跑,因为问方法的访问入口是不是已经暴露出来了,他就可以提到站里面来跑,提到站里面来跑,再指引第二代码,第二代码会怎么办?他是会去找 这个旋律里面的这个 get max, 这是一个近代方法,这个是不是入口已经暴露出来了?所以他是可以直接去找到这个 get max 的,然后呢,是不是就会输出我们的这个十啊? 接下来他继续怎么样去访问这个 get max? 他没有带内米,那没有带内米的话呢?他会自动去找什么?是不是这个内里面进的方法此时是不是也在?所以他是也是可以访问的啊?那接下来访问是哪里?可不可以访问? 为什么不能反问 study 啊?因为 study 是属于什么对象的?你现在没有对象的话,那么这个方法他会不会暴露出来给你访问?不会,他不会,相当于现在根本就没有 study 方法。你看,虽然 study 写在这个类里面,但是你还不能反问哦, 他一定是属于对象的,你现在去访问报错啊。那紧接着我们是不是应该创建对象了?好,这个对象一旦创 创建的话呢,他会在我们的这个站里面开辟这个对象的变量空间,里面是个地址指向他的什么?是不是 delete 中的对象?然后这个对象里面呢?会存他的一个什么呢?是会存他的一个实力前面的内幕的值啊,是猪八戒,这里面会根据一个方法引用去找什么? 是不是找我们的这个方法区里面的静态方法?他是不是也可以被对象共享的?然后这样此时因为对象出来了,所以实力方法怎么样是不是也会暴露出来了? 然后你可以拿什么 s, 他是不是一个地址啊?去找到这个对象,再通过对象来访问实力方法,此事有没有毛病的?没有就没有毛病的,那么这个死达的方法他会怎么办? 他们是不是再提到这个站里面来跑啊?他其实放到站里面来跑的,因为空间有限,我没有划过来啊,他提到这个站里面来跑的话呢,由于你是 用什么来钓他的?是用 s 来钓的这个斯达利啊,所以这个斯达利他肯定会去访问什么 s 里面的是不是这个内马?对,他肯定是输出的是什么?是不是猪八戒在好好学习啊?好,继续往下走。 然后呢,他再去拿什么 s 变量,这里面是不是对象啊?去找到这个什么是不是对象了?这里面是地址啊,去找这个对象,再根据对象去找到什么静态方法,其实可不可以?也可以,但是你想啊,你通过一个对象变量去找到对象,再去找这个静态方法, 是不是还没有这个只用内名去访问的速度快啊?所以我们在实际开发时候,我们并不建议他们用对象去访问这个进来方法,你还不如直接拿什么内名是不是去访问更方便呢?好,所以这种方式我们并不推荐。那这个方法的一个访问机制和他的原理大家搞清楚了没有? 好,就搞清楚吧,如果有疑问可以再提出来啊。好,那关于呢这些方法的分类和访问机制呢?咱们呢就说到这。

二零二六年弱电人必会的交换机调试命令都在这里了。一、基础系统网络命令。二、 d h c p 常用命令。三、密拦常用命令。四、接口命令。

hello, 这里是 indysstudy is, 欢迎来到我的频道。关于轻脚伤筋呢,我觉得存在有很多说法,有人说会对车架的安全性造成一定的威胁,那我觉得很有必要去出一期此类的视频来进行探讨,因为 chopper 始终离不开大轻脚,那应该怎样去选择一个合理的范围去追求它的轻脚跟安全性的一个平衡呢?那首先我们以聚氧为例,聚氧我做了一个简易的测量,它的倾斜角度大概是三十五度, 豹风暴太子也是,那需要怎样去增加他的一个大倾角?目前我所知道的是有三种做法,第一种呢,是切割头管的倾斜来实现角度。 那么第二种呢,是通过腕组的一个 cmc 加工做高低阶,然后使得他的一个方向柱在头管的直径以内去进行一个调整。那么第三种就直接定制 一套带琴角的一个上下三星,他的重心就会全部压在那个呃,前叉上面,那我们以风暴太子前叉为例了,他的直径是三十七,然后壁厚是两毫米, 长度是八十五公分,那么如果我们要把它折弯到九十度的话,那他的折弯力度是七十八千牛, 约等于七点九六吨的力,也就相当于八吨的力,那根据撞击撞击力的一个重力加速度的一个公式去计算的话,那他是要达到一一百四十公里每小时才能有这个折弯力度 去撞击,嗯,那显然,嗯,至于这台车的话,目前常规的话是只能跑到一百二一百二十五,这样显然是打不到的。那如果说一个静止的一个力的一个下压力的话,那么他七点九六吨的力 对这个前叉的影响几乎是微乎其微了,因为整台均匀的车的话可能也就三百多斤吧,官方数据三百多斤,那你加上整倍的话算到顶的话也就四百斤,那四百斤的话你对这个的影响几乎也是很小。 当然日常用的话冲击力可能也就会对,呃,防尘密封盖的一个影响啊。但是安全性来讲的话,呃,虽然我现在计算的都是纸面上的一个理论, 但后续的话我会,嗯对这个轻脚三星做一个嗯,实际的一个路试,然后路试完了之后没问题我再会上市。那路试的内容包括有,嗯,高速 百公里的一个高速,一个加速,然后还有一个就是一些爬坡啊,一些越野路段的一个测试,后续我会把视频放出来,所以请大家敬请期待。

比他妈工程里全区变量到处乱飞,每个点 c 文件都摊一堆全区变量,别的文件要用直接埃克斯特声明一把梭哈,问你为什么不封装起来,你居然说加了斯塔提克,别的文件就访问不到了,这不他妈恰恰就是封装的意义吗?你 一个模块的内部变量凭什么让别的文件随便碰?你连埃克斯特和斯塔提克怎么配合控制变量的作用域和链接属性都搞不灵清。问你斯塔提克修饰全变量和修饰函数分别起什么作用?你说都是只能在当前文件用。问你为什么要再点 a 喜声明埃克斯特,而不是直接再点 c 里定义你治治无误,说好像都可以艾特你那全变量随便扔,从不管作用域的朋 朋友。这就是为什么你的代码改一个八格能引入三个新八格,把作用域刻进 gna。 一, 每个模块内部变量全部加斯塔提克限制作用范围,只暴露必要的接口函数。二、点 h 文件用埃克斯同声明对外提供的全区变亮点 c 文件定义一次,别的点 c 包含点 h 就 能用。三函数也用斯塔提克限制内部,辅助函数不要暴露给外部。还他妈在乱写代码,啥都不懂的同学来三个六,我甩你一套侵入式学习全套路线和资料包,别他妈一个全变量坑死自己散会。

static 和 stagnant 这两个单词你们认识吗?好,如果认识的话,划走,不认识来跟我走。首先呢,我们来看一下 static 这个单词呢,由两个部分组成,一个 stat 和 ig, 看过我们前面节目的人都应该知道, ig 呢,表示形容词词尾。那我们看一下 stat 是 什么意思?拉丁语,它的意思是 stand 站着不动,不动就是什么禁止的,停止不前的, 明白了吗?来看个例子,比如说 the population has been static for years。 好, 在评论区告诉我,你还知道哪些由 stat 组成的单词,它也表示 有静止不前啊,这个不动的,这个意思,在评论区把它打出来。好了,我们一起学习。那这个学完呢,我们去看下一个 stagnant。 这边现在呢,我们来看下 stagnant, 这个 stagnant 呢,后面的 a, n, t, 它同样是一个形容词词尾。那前面的 stagnant 这个部分 它是什么意思呢?它是来自于 latin, 表示水塘的意思,净水,净水就是静止的水哈,它是,哎,不流动的, 停滞的。所以呢,它这个意思就表示停滞不前的,不发展的。还有呢,不景气的,比如说我们夏天来了,这种 stagnant, water, breeds, mosquitoes, 学会了吗? stagnant 停滞的啊,不发展的,不景气的。那我们的前面的 static 呢?它的意思是,哎,静止的,不动的。所以它的区别你们分清楚了吗? 好了,我是峰哥,记住,跟着峰哥导入突破词汇一万多。 i'll see you next time。 拜拜。

网络出问题了,你脑子里第一反应是啥命令?不知道敲啥,敲了看不懂输出,找了半天没定位到点。这十条信低命令是网工牌照巡检验证配置的基本盘,不熟的赶紧补上。 当你接手一台机器或现场牌照,连这台机器的 ip 网关 dns 麦是啥都不清楚,不知道从哪入手。可以用这个命令, ip protocol configuration o, 把这台机器的全量网卡信息一次性打出来。 ip 子网掩码,网关、 dns mac 地址全在着,啥都不用翻, 直接敲 ip protocol configuration o, 你 会看到每块网卡的详细字段。重点看 ipv 四 address 确认当前 ip, 看 default 给尾确认网关,看 dns servers, 确认 dns 指向是否正确,看 physical address 确认。 mac 如果遇到 dhcp 分 配异常或 ip 冲突,先敲 ip protocol configuration release, 释放当前 ip, 再敲 ip protocol configuration renew, 重新申请顺序不能反。注意, ip protocol configuration renew 只对 dhcp 方式获取 ip 的 网卡有效,静态配置的网卡敲了也没用。 当你怀疑网络断了或者卡顿,想确认链路适通的,还是有丢包延迟高,不知道怎么量化问题可以用这个命令 ping 用来测端到端连通信。延迟和丢包是判断网络基本状态最快的手段。 直接敲聘目标 ip 或域名,你会看到每次回包的 time 值,重点看这个延迟数值是否稳定,突然飙高说明链路在抖,想持续监测稳定性,敲聘踢目标 ip, 盯着看有没有 request timeout 出现,丢包立刻有数。 排查链路质量或 npu 问题,用拼要一千四百七十二,目标 ip 发大包,看能不能正常回包。另外,拼域名通,但拼对应 ip 不 通,大概率是 dns 解析出问题,别在链路上浪费时间。 注意,拼网关稳定不代表外网链路稳定,测稳定性,建议拼一个公网业务地址,比拼网关更有参考价值。 当你聘某个地址不通或者延迟高,但不知道问题出在哪端,链路是本地运营商还是对端?可以用这个命令 chris 逐跳,追踪数据包经过的每个路由节点,帮你定位丢包或延迟突增发生在哪一跳。 直接敲 chris 低目标 ip, 你 会看到每一跳的 ip 和三次往返延迟。重点看哪一跳开始出现星号星号星号或者延迟突然大幅跳升,那就是问题节点 d 参数必须带上,不加的话每跳都要反向解析域名,速度慢到让人抓狂。注意,某一跳显示星号,星号星号不一定是那跳故障,有些路由器会过滤 icmp 报文,后续跳,如果恢复正常则不是真正断点,要结合后面几跳一起判断。 当你服务起不来,报端口已被占用,或者怀疑机器上有异常的外部连接,不知道是哪个进程再战。可以用这个命令 nestetano 把机器上所有网络连接、监听端口以及对应的进程 pid 一 次性列出来,是排查端口冲突和异常连接的标准姿势。 直接敲 nestetano, 你 会看到每一条连接的本地地址端口、远端地址、连接状态和 pid。 重点看 local address, 猎找你关心的端口,确认是哪个 pid 在 占用,再拿这个 pid 去 task list 里对进程名或者直接 task kill 干掉它。 想只看特定端口,用 nesset auto findster 八千零八十过滤,不用翻整张表。注意 n 参数必须带,不带的话会反向解析。域名输出极慢,实际排障时间不等人。 当你发现某个网段的流量走错了出口,或者访问特定内网地址,需要指定路由,但机器上路由表一团乱,不知道从哪改。可以用这个命令,路由命令用来查看和手动管理本机路由表。增删静态路由条目,解决转发路径异常的问题。 先敲 route print, 看当前路由表,重点看 network destination 和 get 位列,确认流量走向是否符合预期,需要新增静态路由,敲 route id, 目标网段 must 子网掩码网关 ip 流量就会按你指定的路径走,需要删除错误条目。敲 route, delete 目标网段 must 子网掩码。 注意, route id 添加的路由默认重启后失效,如果要持久化,需要加 p 参数,临时调试,不加永久生效,必须加。别搞混了。 当你局域网内有机器频繁断网,或者怀疑内网有二欺骗导致流量被劫持,不知道从哪排查,可以用这个命令 二呸。查看本机二缓存表和对 ip 和 mac 的 对应关系是否被篡改,是排查局域网二攻击的第一步。 直接敲二呸,你会看到本机已知的 ip 和 mac 映设表,重点看有没有同一个 ip 对 应了多条不同 mac 的 情况,或者网关 ip 对 应的 mac 和你在交换机上查到的不一致,这基本就是而欺骗的证据。 如果是单纯的 op 缓存异常导致断网,敲二 d 清空缓存,让系统重新学习,很多情况下能直接恢复。 注意二地清的是动态缓存,如果网内仍有攻击源在发伪造二报文,清完还会被写回去。根本解决,要在交换机侧做二绑定或开启带。 当你拼目标主机是通的,但服务就是访问不了,不知道是服务没起,端口被防火墙拦了还是配置错了,可以用这个命令。 telnet 用来测试目标主机的指定端口是否可达,比 pin 更直接,能区分主机通和端口通这两个层面的问题。 直接敲 telnet 目标 ip 端口号连接成功会进入空白光标界面,说明端口开放,服务在监听连接失败或立刻返回。错误说明这个端口不通,可能是服务没启动或防火墙拦截。 长测的端口。八零四四三测温二十二测 s s h 三千三百八十九测远程桌面,根据场景换端口号就行。 注意, windows 默认没有开启 telnet 客户端功能。敲命令报不是内部命令,需要先去控制面板程序启动。 windows 功能里把 telnet 客户端勾上,否则用不了。 当你访问某个域名打不开,但不确定是 dns 解析出了问题还是电路问题,不知道从哪入手排查。可以用这个命令 nsucap 查询域名的 dns 解析结果,以及当前用的是哪台 dns 服务器。在解析是排查域名访问异常的第一步。直接敲 nucap 域名,你会看到当前 dns 服务器地址和解析出来的 ip, 重点看 addresses 返回的 ip 是 否和你预期的一致。解析错了,说明 dns 有 问题。 如果想排查是本地 d n s 污染还是 d n s 服务器的问题,敲 n s o k 域名八点八点八点八,换一台公共 d n s 服务器查两边结果不一样,基本就能定位是本地 d n s 配置的问题, 注意 n s o k 返回结果正常不代表访问一定通。解析到了正确 ip 之后还要过炼炉和防火墙,别查完就以为万事大吉。 当你用 nesset 发现某个端口被占了,找到了 pid, 但不知道这个 pid 对 应什么进程,该不该杀怎么杀,可以用这两个命令配合解决。 组合讲解 tasklist, 查当前所有进程及其 pid, taskkill 根据 pid 强制结束指定进程,两者配合 nesset 组成端口占用问题的完整处理链路。 标准操作顺序,先敲 nesd auto finister 端口号定位占用端口的 pid, 再敲 tasklist finister pid, 确认这个 pid 是 什么进程,确认可以干掉。之后敲 taskkill pid 进程 pidf 强制结束,你会看到 success 提示端口随即释放 f 参数必须加,遇到进城卡死不响应的情况,不加 f 关不掉,注意干掉。进城前先确认进城名,别看到 pid 就 直接 q 杀错了,系统进城或者数据库进城会出大事,确认动作不能省。 当你需要管理远程的服务器或者同事的机器,不想跑现场,想直接远程上去操作,可以用这个命令。 mstsc 调起 windows 自带的远程桌面客户端,输入目标 ip 和账号密码就能远程控制,是日常运维减少跑现场最常用的工具之一。 最快的方式是按 win 加二输入 ms t s c 回车,弹出对话框后直接填目标机器的 ip, 输账号密码登进去,如果在 c m d 里用敲 ms t c v 目标 ip 可以 直接代参数调起,省掉手动填 ip 那 一步。 重点确认目标机器的三千三百八十九端口,要是开放的不确定的话,先用 kelly 目标 ip 三千三百八十九测一下通不通,不然连接界面转圈到超时。 注意公司内网的机器一般没问题。跨公网远程桌面务必确认防火墙策略和 vpn 通道。三千三百八十九端口直接暴露在公网式高危操作,别图省事,不做防护。

今天和同学们聊聊在庆荣市研发岗位面试的过程当中,经常被问到的一个问题,就是 static 的 用法啊。那咱们可以从三个方面来分析, static 可以 修饰局部变量,那被 static 修饰的局部变量,它的生命周期会和整个程序的周期一样长,只要程序在运行,那这个局部变量就始终存在。 那另外被 static 修饰的局部变量,它只能被出水化一次啊,那它的特点呢?就是延长生命周期,默认出水化为零,它的作用率是不被改变的。那如果 static 修饰的是全句变量的话, 那这个全矩阵量它的访问范围就会发生改变,那原本全矩阵量整个程序都能被访问,那被 static 修饰了之后,它的访问范围只局限于当前的文件啊,然后其他的属性是和全矩阵量是一样的,那如果被 static 修饰过的函数呢? 那修饰过的函数,它的访问的范围也是当前的这个文件。那同学们就会有这个问题说 static 修饰的全矩阵量和函数 这种用法有什么优势吗?同学们可以这样想啊,当你的工程足够庞大,你的这个变量和其他文件当中的变量就有可能发生冲突,甚至你的函数名也有可能和其他文件的函数名发生冲突。那么用 static 修饰了之后,那就实现了变量或者是函数的私有化,可以有效的解决命名冲突的这个问题啊。 其实咱们对于初学者 static 用法可能体会不到它的这个精妙之处,那如果你后面你要做这个接口的设计或者是架构的设计,那 static 的 这个作用显得尤为的重要啊。 以上就是今天老师给大家分享的 static 的 用法,关注周公,分享更多的面试技巧和技术干货,咱们下期见!

兄弟们,前端部署还要配置半天,全站项目上线太麻烦!这个三点四, k 新神器, pin 你 一条命令全搞定!零配置全站部署 c i 支持 cloud code skills, 一 条命令,创建并部署完整前端,加 worker 加数据库。亮点一,一条命令 pin me create, 加 pin me save, 自动创建并部署完整全站项目。亮点二,原声支持 cloud code skills, ai agent 也能一键部署。 亮点三,模块化更新,单独修改 worker 数据库或前端无需整体重部署。亮点四,全程零配置支持静态文件直传,自定义域名与 ipfs 工具 上手超简单,再也不用为部署配置头疼了!想一键部署全站前端的开发者免费获取上手 记得点赞关注哦!

朋友们,今天教你两步,开启安全启动。第一步,重启电脑,狂按 f 二或 dell 键冲进 bios 后台,不同电脑按键不同,认准开机画面提示。第二步,在 security 或 boot 菜单里找到 secure boot 选项,把 disabled 改成 enabled, 最后按 f 十保存重启。看,就这么简单!开启后系统会自动验证启动程序,就像给电脑大门加了道指纹锁,以后再也不用担心恶意软件偷偷篡改开机程序了。你的安全启动开了吗?戳评论区告诉我型号,教你精准操作!