Java main方法中的String[] args
—— Java 命令行参数
—— 关于其中的args以及public static / static public
Java 命令行参数
前面已经看到多个使用Java数组的示例,每一个Java应用程序都有一个带String arg[]参数的main方法,这个参数表明main方法将接收一个字符串数组,也就是命令行参数。
例如,看一看下面这个程序:
------------------------------------------------------------------------------------------------------------------------------------------------------------
public class Message{
public static void main(String[] args){
if(args[0].equals("-h"))
System.out.print("Hello,");
else if(args[0].equals("-g"))
System.out.print("Goodbye,");
//print the other command-line arguments
for(int i=1;i<args.length;i++)
System.out.print(" "+args[i]);
System.out.println("!");
}
}------------------------------------------------------------------------------------------------------------------------------------------------------------
如果使用下面这个形式运行这个程序:
java Message -g cruel world
args数组将包含下列内容:
args[0]: "-g"
args[1]: "cruel"
args[2]: "world"
这个程序将显示下列信息:
Goodbye, cruel world!
C++注释:在Java应用程序的main方法中,程序名并没有存储在args数组中。例如当使用下列命令运行程序时
java Message -h world
args[0]是"-h",而不是"Message"或"java"。
声明:以上部分系《Java核心技术》(中文版第八版)第三章第十节数组的"命令行参数"文中段落
===========================================================================================================================
关于其中的args以及public static / static public
args参数可以写成任意形式,而不影响.class文件大小(它只是个形式参数) 但不提倡这样做 以下方式同样是不提倡的 但我们需要了解这些基本的内容
我们也可以在主方法中这样写:static public void main
举个例子 我说一个小伙子很高很帅和说一个小伙子很帅很高是没有区别的(数学上来说 = =)。 static public 这些都是Java当中的修饰符,修饰符等价于汉语当中的形容词
我们来看看底层是如何实现的(src/java/lang/reflect/Modifier.java):
------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* The {@code int} value representing the {@code public}
* modifier.
*/
public static final int PUBLIC = 0x00000001;
/**
* The {@code int} value representing the {@code static}
* modifier.
*/
public static final int STATIC = 0x00000008;------------------------------------------------------------------------------------------------------------------------------------------------------------
Java当中的修饰符在底层实现的时候,采用的是一些整数值数值来实现,public采用的是整数1,static采用的是整数8,而主方法要求修饰符部分必须包含9,它不关心这个9是1+8得出来的,还是8+1得出来的
【一些提醒而已:在Java当中char类型数据采用16个位即两个字节存储(一个英文占一个字节,一个中文占两个字节?这样过于纯粹的定义显然是不恰当的。事实上这还有个编码的问题。我们可以尝试在windows系统中把一个空的txt文件以Unicode编码存储,查看属性可以看到它已经包含了两个字节)】
声明:以上部分参考自 http://u.youku.com/5_vvvvv
Java main方法中的String[] args的更多相关文章
- main方法中参数"String[ ] args"详解
1.在编写完一个有主方法的java文件时,需要在cmd窗口中先编译此java文件(javac xxx.java),然后再运行(java xxx) 其实在运行java xxx的时候如果后面跟着参数用空格 ...
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...
- java程序main方法的参数String[] args
public class ArgsTest { public static void main(String[] args) { System.out.println(args.length); fo ...
- Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()
1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...
- JAVA Main方法中调用非静态方法
在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class t ...
- 理解Java主函数中的"String[] args"
public class Understand_String_args { public static void main(String[] args) { System.out.printf(&qu ...
- Java连载67-深入一维数组、main方法中的args参数详解
一.复习了一维数组,还复习了强制类型转换的注意点. package com.bjpowernode.java_learning; public class D67_1_GoDeepIntoArrays ...
- Java:main方法前面一定要加static?在main方法中一定要调用static方法?
今天敲代码的时候发现,出现了这样一个情况: 我在我在main方法中调用了一个函数,并且这个函数没有用static修饰,就像这样: 这样报错了!!! 我虽然学Java 的时间也不多,但这个问题也帮助我更 ...
- 07 java main方法
1.问题:Java main方法为什么是 public static void main(String[] args)??? 序号 场景 编译 运行 解释 1 public修改为private pr ...
随机推荐
- mysql给某字段随机赋特定范围的整数值
[引] mysql中随机生成一些范围内的整数有时候是很有用的,用到了2个函数 1.floor(f) 返回一个不大于f的最大整数 2.rand(),rand(n) 返回一个随机浮点值 v ,范围在 0 ...
- github git.exe位置
C:\Users\yourname\AppData\Local\GitHub\PortableGit_69703d1db91577f4c666e767a6ca5ec50a48d243\bin\git. ...
- sage开发url替换字符串
/// <summary> /// Url字段值替换,无该字段则加入 /// </summary> /// <param ...
- iOS菜鸟成长笔记(2)——网易彩票练习
距离上一篇<第一个iOS应用>已经有一个多月了,今天来和大家一起学习和分享一下一个小练习<网易彩票> 首先我们向storyboard中拖入一个TabBarController和 ...
- iOS单例创建的一点疑惑
线程安全的单例常用写法, +(AccountManager *)sharedManager{ static AccountManager *defaultManager = nil; disptch_ ...
- ubuntu配置上网
一.通过修改配置文件配置: 编辑配置文件: #sudo vim /etc/network/interfaces auto ens33 #没有这句网卡不能启动 iface ens33 i ...
- nil gogo
https://blog.csdn.net/zhonggaorong/article/details/50233421 https://github.com/KevinHM/FunctionalRea ...
- 一篇文章助你理解Python2中字符串编码问题
前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...
- python读取word文档
周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...
- bzoj1615 麻烦的干草打包机 BFS
Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...