00:01
好好好好好,那行啊,那咱们接着再往下看啊,再往下看就是这块咱们有写法,你要注意啊,没有这种写法,主要是说这个不能这么干,在加法中没有这种语法,你得这样做。这样做才行,静态的话你得这样传啊。行往下一个,下一个例子。继续看啊T05。Ctrl shift f12。那么我们来看看闷方法上的这个一位数组有什么用啊。闷方法上面的。这个叫做string,中括号args有什么用?啊。谁去调门方法分析了吗?你分析一下啊,分析一下谁调谁负责调用main方法。那答案当然是JVM对吧?哎,JVM调用main方法的时候,会自动传一个数组过来吧,传一个string数组吧过来是不是?
01:12
大家思考一下,是这样吗?嗯。就你你这边不是有一个死string数组吗?哎,你自己写了一个方法,这个方法参数是一个死顿数组的话,你调这个方法的时候,需不需要给这个方法传参传一个传一个数组过来。同学们没蒙吧,这个方法是不是我们负责写,但是别人负责调吧,对不对啊?这个方法程序员负责写出来啊,是不是GVM负责调用吧,GVM调用的时候一定会传一个什么过来呀,传一个数组过来。传一个顿顿数组啊,会传过来呀,就像说你定义了一个方法,这个方法叫做do sum,参数是一个什么类型,是一个int类型,我问大家你在调这个方法的时候,你需不需要给他传一个十啊,20啊,30啊这样的数字过来啊。
02:15
需要吧,哎,那肯定百分百需要啊,那对,那我们这个闷方法这一块呢,我们的这个死顿参数字符串,呃,字符串数组这一块它。是什么呀?哎,我们输出一下。手动船,一会再说啊,一会儿再说,总是快我一步啊。GVM给传递过来的死论数组参数。它这个数组的长度是多少?As,点什么Les?
03:02
Gbm默认传递过来的这个数组对象的什么长度是几走?好消息。默认零,各位看好了啊,默认零。这说明ARGS不是一个nu对吧?是吧,各位。啊。对吧。他不是个浪吧?通过测试得出啊,As不是none啊。对吧,他不是空引用,哎,不是引用类,不是不是它是ars,肯定是引用类型。
04:01
哎哟,我的天呐,你想没想过,如果这个东西是那的话,这个时候是不会出现空指针异常。他现在在这出现空指针异常了吗。没有出现空指令异常,这说明ARGS是不是不是空?但它长度是零啊。哎哟,我的天呀,同学们是长度是零,里边里边。怎么给大家解释这个东西啊。就是这个数组啊,里边没东西,但是数组对象是有的。明白吗?你就这么理解?嗯。Public static void print。Print Les。
05:07
Ags system as.Les。然后print Les string,数组sts new。零。Sts能看懂吗?分析一下能不能看懂。创建一个长度为零的子数组。传进去。调这个方法输出它的长度是几啊零。
06:00
对吧,不是里边存的零啊。当然咱们同学们分析的很很有道理,大括号直接给一个,里边啥也没有。零。零吧。相当于JVM是不是给我们传过来这么一个东西。传过来一个数组,数组里边啥也没有对吧。但数组对象是有的嘛。数组对象已经创建出来,只不过数组里边是不是没存东西啊?以下这一行代码表示的含义。数组对象创建了,但是数组中没有任何数据。啊,没有数据,就是就是大括号。明白吧,大括号叫静态初始化。
07:02
数组里面没东西啊,JVM实际上给我们传过来这么一个东西,各位啊,我就讲到这儿,别的我不说了啊,别的不说了。再运行走。GPM传过来string数组参数,它这个数组的长度是什是什么?是零?是零啊。来。那么这个数组什么时候里边会会有值呢?这个数组。什么时候?啊,里面会。有值呢,哎,其实这个数组是留给谁的,是留给用户的用户。可以在什么控制台上输入,哎参数。
08:01
这个参数自动会被转换为string数组。啊,有同学没听懂什么意思,例如。这样运行程序加了二位TEST05ABC空格DFXYZ,那么这个时候JVM会自动将注意啊,会自动将ABCDEFXYZ。通过空格的方式进行分离。分离完成之后,自动放到string数组当中。
09:01
所以这个string数组主要是用来接收用户参数的,用户输入参数的啊,所以main方法上面的string args数组主要是用来接收用户输入的啊,用户输入参数的。明白吧,它它它它会自动将这个啊,ABCDEFXYZ通过这个空格的方式进行分离,分离完之后它自动就转转换成一个字符串数组。啊,转换成字符串数组就长成长什么样啊,把这个转换成字符串数组了,他把这个把这个转换成字符串数组就长这个德行了。ABC逗号DF逗号XYZ。明白吧,哎,是这样的,咱们测试一下吧,测一下我们把这个类拷到外边吧,Ctrl a全选CTRLC复制行吧,接下来咱们看看啊,哎,这样。
10:10
这样啊,我们在这遍历一下行吧,遍历数组啊。怎么变利啊,然后I小于什么。是不是这个数组。对吧,点什么注意听啊,等你听完之后,你才知道我在讲什么,你不要老听到一半,老听到一半你问我这个东西我还没讲啊。对这个东西你你仔细听,坚持听一下,听到最后你知道哦,杜老师讲的这个意思。来我们输出啊,这个ARGS这个数组下标为I的这个元素,输出一下,上面这个零呢,我就不再输出了啊注释了,哎,输出也行,看数组长度这次是多少。行吧,啊来,那么接下来我们把这个程序ctrl a ctrl c复制。那咱们在外边写一写,各位啊,写哪呢?写到D盘下吧,点右键啊,新建一个程序叫。
11:02
test05.java然后贴过来。贴过来之后呢,把上面那个包去了啊好,大家注意看啊,注意看。这边呢,我们cmd Java c的星Java编译,编译之后呢,我们Java去运行test。零五,好,我们直接运行,大家看是不是零啊,但如果ABC,大家看这是不是就是一个元素数组,数组里边是不是就有一个元素了?好,大家看数组长度是几啊,是不是一的里边是不是有个ABC啊?如果空格再加个DEF呢?好,大家看是不是ABC和DEF这两个分离出来,是不是放在数组里边了?对吧,哎,再来个XYZ,你看速度长度是不是变成三了。对吧,它会自动把你后边这个运行后面的这堆参数给你,自动通过空格的方式进行分离,分离完之后它自动会把这个东西放到一个字符串数组里边。啊,这块数组当中啊,KKK。
12:01
啊,呵呵,对吧,哈哈。啊,这你看又要又要问有什么用,我现在还没写案例呢,没写案例呢啊,一会就有用了,好不好不好啊,啊,咱们同学们总是心急啊,我发现。从心级等我把这个知识点讲完了是不是,哎,你觉得哎老师有什么问题咱们再问啊,也是可以来,要不然咱们这样效率太低啊,效率太低来各位有同学老师咱们用那个DOSDOS命令行用ID了怎么办?呃,那么运行这块啊,有一个有一个edit configurations。就是这块啊。R05嘛,对吧,Run这块有个有一个编辑配置是不是哎,Configurations。啊,我们点一下。呃,点了之后这个TEST05,这是不是一个主类啊,Com BG power node是不是,然后加y away,然后TEST05,然后这是这这个地方是Java虚拟机的参数,你不用管啊,这个地方有个program arguments表示程序的一个参数啊,是不是程序参数啊,来ABC空格DFKKKXYZ,好吧,来直接应用啊OK。
13:17
啊,OK,然后呢,我们。运行一下。好,大家看。是吧,这这是用工具啊,这是用工具各位啊,用工具就用idea的话,就是这样的,如果要是用这个DOS命令的话,就是跟我刚才是一样的,怎么配在run这块啊,有一个叫做呃I configurations application这块啊,找到你最后的这个a test05,然后把这块呢,咱们先暂时先删掉,删掉之后呢,表示你这个应用程序啊,没有参数是不是好,那再运行的话,那就是什么呀?哎。应该是零了吧。对吧,哎,零了啊。
我来说两句