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 ...
随机推荐
- C#获取本机内网外网IP
using System.Net; # region 获取内.外网Ip /// <summary> /// 获取本地ip地址,优先取内网ip /// </summary> pu ...
- Android实战技巧之三十七:图片的Base64编解码
通经常使用Base64这样的编解码方式将二进制数据转换成可见的字符串格式,就是我们常说的大串.10块钱一串的那种,^_^. Android的android.util包下直接提供了一个功能十分完备的Ba ...
- ACM:动态规划,01背包问题
题目: 有n件物品和一个容量为C的背包.(每种物品均仅仅有一件)第i件物品的体积是v[i],重量是w[i].选一些物品装到这个背包中,使得背包内物品在整体积不超过C的前提下重量尽量大. 解法:两种思路 ...
- 拥抱PBO(基于项目的组织)聚焦核心价值创造
近年来.PBO(Project-Based Organizations)作为一种新兴的整合各类专业智力资源和专业知识的组织结构,受到越来越多的关注,第五版PMBOK出现的新词汇.三种组织(职能型.矩阵 ...
- BootStrap--from 表单
1 垂直表单(默认) 2 内联表单 3 水平表单 使用 class .sr-only,您可以隐藏内联表单的标签. 垂直或基本表单 基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一 ...
- 使用物化视图解决GoldenGate不能使用中文表名问题
源端: conn sh/sh create table "学生" ("学号" number primary key,"姓名" varchar ...
- 使用HANDLECOLLISIONS的几个场景
使用HANDLECOLLISIONS的几个场景: 1.target丢失delete记录(missing delete),忽略该问题并不记录到discardfile 2.target丢失update记录 ...
- CentOS 7.4 安装 网易云音乐
CentOS 7.4 安装 网易云音乐 本文包含: 安装dnf 编译gcc 5.4.0 安装各种包 安装网易云音乐贯穿全局; 安装环境: CentOS 7.4, kernel3.10.0, gcc4. ...
- [BJWC2012]冻结 分层图最短路
昨晚飞行路线之后,这道题就应该能一眼切了 题目当然也不难,跑一遍分层图最短路即可 Code: #include<cstring> #include<algorithm> #in ...
- php八大设计模式之单例模式
单例模式的好处: 实例化后只得到一个对象,减少内存的开销. 实现单例模式: 提供一个私有的属性用来存储实例后的对象. 禁止外部实例化对象,提供公共的的方法,返回实例化后的对象. 避免继承此类,然后重写 ...