你们都知道,Java语言运行程序的入口方法叫作main,这个方法有一个参数,这就表示说,咱们要运行主方法,就必须给main方法传递一个参数。可是,你们彷佛对这个参数向来都是视而不见,历来都没给主方法传递过参数。main做为Java程序运行的第一个方法,咱们应该从哪里给这个方法传递参数呢?今天咱们就用一篇短文来聊聊这个话题。html
你们请看下面这段代码
这是一段谁都能看懂的代码。经过代码咱们能够看到,main方法的参数是一个字符串数组,既然是一个字符串数组,就会包含多个字符串。那么,咱们经过怎样的方法能把多个字符串数组传递给main方法呢?很简单,咱们在运行Java程序的时候,在java命令后面写上main方法所在的类名,在类名后面加空格,空格后面再写上多个字符串,每一个字符串之间也以空格隔开,就能把这些字符串传递给main方法。固然,这些字符串会被组织成一个字符串数组传递到main方法当中,见下图
咱们能够看到,在类名A的后面是一个空格,空格后面有两个字符串,分别是“Hello”和“World”
这两个字符串之间也用空格隔开,它们就是程序员传递给main方法的参数,这两个字符串会被虚拟机组织成一个字符串数组。main方法中打印参数数组中下标为0那个的元素,因此输出结果就是“Hello”java
咱们给main方法传递参数的时候,各个字符串之间是以空格隔开的,若是某个字符串中自己就包含空格,那么本来是一个总体的字符串就会被分割成两个,此事如何是好?在这种状况下,咱们为了让包含空格的字符串被虚拟机看成是一个总体,能够给字符串的两端加上引号,见下图
这一次咱们给main方法传递了两个字符串做为参数,其中第一个参数是“Hello World”,这个字符串中有一个空格,可是咱们在字符串两端加了引号,虚拟机就会把引号当中的空格看做是字符串中的一个普通字符,而不是把它看成分隔字符串的分隔符,因此运行结果就是“Hello World”。程序员
为了让包含空格的字符串被虚拟机看成总体看待,咱们把这个字符串的两端加上了空格,可是这又会引起一个问题,那就是:若是参数字符串中又包含引号该怎么办呢?此时咱们就须要用转义字符的形式书写参数字符串中的引号,见下图
把字符串中的引号以转义字符的形式书写,就能正确的把包含引号的字符串看成参数传递给main方法。编程
若是咱们没有给main方法传递参数,就直接打印参数数组args当中的元素,会怎么样?不少人认为此时程序运行会抛出空指针异常。其实否则,虚拟机会建立一个长度为0的字符串数组传递到main方法中,咱们访问这个长度为0的数组,抛出的是数组越界异常,而非空指针异常。不要忘记,Java语言的数组长度是容许为0的哦!
若是但愿系统学习Java编程,能够点击这里观看个人视频课程,有问题也能够加入个人QQ群291839907一块儿讨论数组