解决java main函数中的args数组传值问题
这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值。
而且这个数组的长度是动态的,根据传值的个数确定数组的长度。
1.从命令提示符中传值
我在桌面新建了一个文本文档重命名为TestMain.java,代码如下
public class TestMain { public static void main(String[] args) { System.out.println("hello "+args[0]); System.out.println("welcome "+args[1]); } }
按住shift在桌面单击鼠标右键,在此处运行命令提示符
输入命令javac TestMain.java编译成功后,在运行java TestMain aa bb cc dd
截图如下
此时如果输出args.length长度应该为4
2.直接在java代码中赋值,eclipse中代码如下
//测试java中main函数args数组的使用 public class TestMainArgs { /** * @param args */ public static void main(String[] args) { args = new String[]{"abc","def","ghi"}; System.out.println(args.length); System.out.println(args[0]); } }
输出结果是
3 abc
补充:Java中String [] args中的args是什么意思
String args[] 与 String[] args 没有区别,都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。
Java 中args一般存在main主类方法内,String args[ ]或者String[ ] args表示给主方法传一个字符串数组. 而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写.
如下:
1. 可以从run config里面设置参数
如下图:
2. 拿到这个args设置的刚才的参数“20 30”,打印出来:
3. 如果不设置参数直接输出args[0]会报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at args参数问题.ArgsTest.main(ArgsTest.java:8)
如图:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Spring Boot集成ShedLock分布式定时任务的实现示例
ShedLock确保您计划的任务最多同时执行一次。如果一个任务正在一个节点上执行,则它会获得一个锁,该锁将阻止从另一个节点(或线程)执行同一任务。2021-05-05java多线程返回值使用示例(callable与futuretask)
这篇文章主要介绍了多线程返回值使用示例(callable与futuretask),需要的朋友可以参考下2014-04-04AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析
AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧2022-03-03
最新评论