首页 > 编程语言 >Java千问:Java语言如何给主方法传递参数?看完秒懂!

Java千问:Java语言如何给主方法传递参数?看完秒懂!

时间:2022-12-27 16:03:35浏览次数:60  
标签:Java 千问 空格 参数 数组 字符串 main 方法

​大家都知道,Java语言运行程序的入口方法叫做main,这个方法有一个参数,这就表示说,我们要运行主方法,就必须给main方法传递一个参数。但是,大家似乎对这个参数向来都是视而不见,从来都没给主方法传递过参数。main作为Java程序运行的第一个方法,我们应该从哪里给这个方法传递参数呢?今天我们就用一篇短文来聊聊这个话题。

一、如何给main方法传递参数

大家请看下面这段代码

Java千问:Java语言如何给主方法传递参数?看完秒懂!_参数

这是一段谁都能看懂的代码。通过代码我们可以看到,main方法的参数是一个字符串数组,既然是一个字符串数组,就会包含多个字符串。那么,我们通过怎样的方法能把多个字符串数组传递给main方法呢?很简单,我们在运行Java程序的时候,在java命令后面写上main方法所在的类名,在类名后面加空格,空格后面再写上多个字符串,每个字符串之间也以空格隔开,就能把这些字符串传递给main方法。当然,这些字符串会被组织成一个字符串数组传递到main方法当中,见下图

Java千问:Java语言如何给主方法传递参数?看完秒懂!_main方法_02

我们可以看到,在类名A的后面是一个空格,空格后面有两个字符串,分别是“Hello”和“World”

这两个字符串之间也用空格隔开,它们就是程序员传递给main方法的参数,这两个字符串会被虚拟机组织成一个字符串数组。main方法中打印参数数组中下标为0那个的元素,所以输出结果就是“Hello”

二、参数字符串中包含空格如何处理

我们给main方法传递参数的时候,各个字符串之间是以空格隔开的,如果某个字符串中本身就包含空格,那么原本是一个整体的字符串就会被分割成两个,此事如何是好?在这种情况下,我们为了让包含空格的字符串被虚拟机当作是一个整体,可以给字符串的两端加上引号,见下图

Java千问:Java语言如何给主方法传递参数?看完秒懂!_参数_03

这一次我们给main方法传递了两个字符串作为参数,其中第一个参数是“Hello World”,这个字符串中有一个空格,但是我们在字符串两端加了引号,虚拟机就会把引号当中的空格看作是字符串中的一个普通字符,而不是把它当作分隔字符串的分隔符,所以运行结果就是“Hello World”。

三、参数字符串中包含引号如何处理

为了让包含空格的字符串被虚拟机当作整体看待,我们把这个字符串的两端加上了空格,但是这又会引发一个问题,那就是:如果参数字符串中又包含引号该怎么办呢?此时我们就需要用转义字符的形式书写参数字符串中的引号,见下图

Java千问:Java语言如何给主方法传递参数?看完秒懂!_字符串_04

把字符串中的引号以转义字符的形式书写,就能正确的把包含引号的字符串当作参数传递给main方法。

四、未传递参数的情况下打印参数数组元素情况如何

如果我们没有给main方法传递参数,就直接打印参数数组args当中的元素,会怎么样?很多人认为此时程序运行会抛出空指针异常。其实不然,虚拟机会创建一个长度为0的字符串数组传递到main方法中,我们访问这个长度为0的数组,抛出的是数组越界异常,而非空指针异常。不要忘记,Java语言的数组长度是允许为0的哦!

Java千问:Java语言如何给主方法传递参数?看完秒懂!_字符串数组_05

如果想系统学习Java编程可以点击这里观看我在本站的视频课程。

标签:Java,千问,空格,参数,数组,字符串,main,方法
From: https://blog.51cto.com/mugexuetang/5972895

相关文章

  • Java千问:Java语言各种数据的“非常规”写法你都会吗?
    ​Java程序中总是会出现一些数字。我们通常都是用常规的方式来表示这些数字,如以下代码所示inta=1;doubleb=1.5;但是数字也可以有非常规写法,在这里我们用一篇短文简单......
  • Java基本数据类型
    目录1基本类型2基本类型的包装类2.1基本类型与包装类型区别与关联2.2装箱与拆箱2.3缓冲池3隐式类型转换4switch1基本类型Java里面只有八种原始类型,其列表如下:......
  • SpiderMonkey-让你的C++程序支持JavaScript脚本
    译序有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在​​这里​​​。这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScri......
  • Java千问:开发Java程序为什么要配置环境变量?
    我们在学习搭建Java开发环境的时候,老师总是让我们先安装JDK,紧接着又让我们去配置环境变量,之后才能动手编写Java程序。很多同学按照老师的步骤去做,成功的搭建好了Java开发环......
  • JavaScript-C/C++ (SpiderMonkey) 引擎嵌入开发指南(中文向导)
    JavaScript-C/C++引擎概览本文档提供了一个JavaScript(JS)引擎的C语言实现的概述,他介绍了你如何在你的应用程序中嵌入脚本引擎来让它们可以使用JS。有两大理由让你在应用程......
  • Java--递归
    递归A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个......
  • js获取url参数
    <head></head><body></body><scriptsrc="http://code.jquery.com/jquery-1.11.1.min.js"></script><Scriptlanguage="javascript">$(window).load(function(){......
  • 详解JAVA线程问题诊断工具Thread Dump
    摘要:ThreadDump是非常有用的诊断Java应用问题的工具。本文分享自华为云社区《调试排错-Java线程分析之线程Dump分析》,作者:龙哥手记。ThreadDump是非常有用的诊断Jav......
  • Java同步器之Condition源码分析
    一、概述条件锁就是指在获取锁之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种锁。比如,在阻塞队列中,当队列中没有元素的时候是无......
  • Java线程中的wait、notify和notifyAll解析
    等待唤醒案例:线程间的通信顾客去包子铺买包子,告知老板自身需求后,进入等待(调用wait()方法)老板处理的过程,此时顾客的状态为WAITING,老板做好包子后,告知(调用notify()方法)顾......