查看: 1786| 回复: 7
跳转到指定楼层
上一主题 下一主题
收起左侧

JAVA的语法小问题

全局:

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

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. }

复制代码

上一篇:CC150 1.2 翻转字符串
下一篇:空间时间复杂度一定要越小越好么
推荐
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是两个东西的原因~

不知道解释的清楚吗~
回复

使用道具 举报

全局:
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 | 只看该作者
全局:
命令行参数。有命令行运行时可以附带几个参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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