一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 611|回复: 7
收起左侧

[编程题] JAVA的语法小问题

[复制链接] |试试Instant~ |关注本帖
TonyJang 发表于 2014-8-15 15:44:39 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
本帖最后由 TonyJang 于 2014-8-15 15:48 编辑

show code

Q1:29行的,public static void main(String[] args) 这里的String为什么要作为数组?明明是string s,不是string[] s;啊

Q2,public static void main(String[] args)  args是啥意思?

  1. public class reverse {
  2.         
  3.         public static String reversestr (char[] str){
  4.                
  5.         int i=0;
  6.         int j=str.length-1;
  7.         while(i<j){
  8.                
  9.                 swap(str,i,j);
  10.                 i++;
  11.                 j--;
  12.                
  13.         }
  14.                 return String.valueOf(str);
  15.                
  16.         }

  17.         
  18.         public static void swap(char[] str,int i,int j){
  19.                 char tmp;
  20.                 tmp=str[i];
  21.                 str[i]=str[j];
  22.                 str[j]=tmp;
  23.                 }



  24. public static void main(String[] args)
  25.         
  26.         String s="abcdef";
  27.         System.out.println(reversestr(s.toCharArray()));
  28.         
  29.         
  30. }
  31. }

复制代码
sqzhang17 发表于 2014-8-16 01:40:52 | 显示全部楼层
如果要说这个问题的话~要说的可是挺多的。
1): 为什么要有main程序, main函数是你在compile之后~如果想运行这个程序的必要条件~因为你在terminal中输入java xxx的时候JVM调用的是你的code中的main函数。如果你的程序当中没有main函数的话~是可以compile的~但是肯定不能运行。换句话说:如果想运行你写的程序,就必须要有main函数
2): main函数的存在是有一定要求的~首先必须public~这样的话在你写的class(以你的code:reverse是该class)外部,也能调用main函数;
3): main函数的第二个要求,必须要static,static会保证,在不创建该class(以你的code:reverse是该class)实例的前提下~就可以调用main 函数。这个跟好多java内建的class是一样的,比如说Arrays.sort()
4): main 函数第三个要求~就是input类型要是string数组~这个好像没有什么原因吧~我也不太确定。。。如果有原因的话~希望有人能告诉我一下。。。嘿嘿。。。。 如果你想在你的程序中用到该数组的话~你必须在运行的.class的时候给这个string数组初始值。
e.g.
public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}
以上是一个类, 很简单,假如这个时候我在compile之后,需要运行这个类的话,如果我在terminal中输入如下的code~就相当于给这个string数组一个初始值了, 这样的话,就会有输出:(我这里用了comment,只是注释以下。。。)
java Echo Drink Hot Java //运行该类
//以下是结果
Drink
Hot
Java


回答你的另一个问题,main函数的参数args,只是一个数组的名称,你想叫什么都行。
这就解释了,在main函数中的的s跟args是两个东西的原因~

不知道解释的清楚吗~
回复 支持 1 反对 0

使用道具 举报

billyli8866 发表于 2014-8-15 15:55:48 | 显示全部楼层
args是个String Array 类型的参数,用来从命令行获得参数,这个程序没有用到
args是arguments的缩写
回复 支持 反对

使用道具 举报

frozenben 发表于 2014-8-15 16:15:39 | 显示全部楼层
String[] args 一般用作输入的arguments 有多个,比如运行你的程序时候会在comandline输入“ aa -l -s -xyz 回车”(aa为你编译后的程序名字)
这里就有3个args 每个argument都是string 所以用一个数组装起来
刚学的java 不知道对不对
回复 支持 反对

使用道具 举报

myxgenius 发表于 2014-8-15 21:39:42 | 显示全部楼层
args 只是一个parameter的 veriable name,你也可以换成别的字母比如arguments,inputs等等 是string 的array type
回复 支持 反对

使用道具 举报

ohmystill 发表于 2014-8-15 22:50:13 | 显示全部楼层
C的遗留问题罢了
回复 支持 反对

使用道具 举报

南方的狼 发表于 2014-8-15 23:03:38 | 显示全部楼层
args是输入的命令行参数,以String类型读入
因为可以不止一个参数,所以需要用到String[]

例如 java reverse abc 123 (后面两个就是参数了)
回复 支持 反对

使用道具 举报

withdark 发表于 2014-8-16 03:51:52 | 显示全部楼层
命令行参数。有命令行运行时可以附带几个参数
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-4 21:32

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表