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 ...
随机推荐
- asm下重定向数据文件小例(使用toad工具)
原创作品,出自 "深蓝的blog" 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46863991 场景 ...
- Samurai's Stroke
题目链接 题意: 一个长度为L的木棍,有n个支点支撑,每一个点是一个int数.表示距离木棍左端点的距离.求在那些位置将木棍劈开能够使得至少有一个木棍掉下去,输出这些位置的长度 3 ≤ l ≤ 109; ...
- Android设置头像,手机拍照或从本地相冊选取图片作为头像
[Android设置头像,手机拍照或从本地相冊选取图片作为头像] 像微信.QQ.微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1,让用户通过选择本地相冊之类的图片库中已 ...
- linux系统调用表(system call table)
系统调用号 函数名 入口点 源码 0 read sys_read fs/read_write.c 1 write sys_write fs/read_write.c 2 open sys_open f ...
- 整合大量开源库项目(五)跳动的TextView JumpingBeans,良好体验的滚动条ConvenientBanner
转载请注明出处:王亟亟的大牛之路 时间过得非常快,这一系列已经写了第五篇了(感觉还要写好久).今天又引入了2个非常好用的库JumpingBeans,ConvenientBanner.首先.先看一下效果 ...
- 7.配置文件mocha.opts
转自:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html Mocha允许在test目录下面,放置配置文件m ...
- AngularJs轻松入门(八)Cookies读写
虽然使用JavaScript创建和获取Cookie很简单,AngularJs还是把它作为一个单独的模块进行了封装,模块名为ngCookies,和前面的教程中做法一样,先引入angular-cookie ...
- koda java
https://kodejava.org/category/spring/spring-jdbc/
- js动态创建 select选择框
document.body.onclick = function(){ if(document.getElementById('vselect') === null){ document.body.i ...
- Ubuntu下Matlab代码中中文注释乱码解决方案
环境:Ubuntu18.04,Matlab R2017b. 把matlab文件从windows拷贝到Ubuntu中,打开发现原先的中文注释全部乱码.真正原因是因为windows中.m文件采用的是gbk ...