java日记(一)理解代码片段

最近跟着Berkeley的CS61B学java。跨专业小白一个学起来比较吃力,还好有大佬带着。决定开个贴子整理一下。
代码片段是:

/** DO NOT MODIFY ANYTHING ABOVE THIS LINE! */

/** This method is run first when IntList.java is run. */
    public static void main(String[] args) {
        System.out.println("Hello, " + args[0]);

        // Creates a sample IntList.
        IntList L1 = list(1, 2, 3, 4, 5);

        //TODO:  Print out L1 using IntelliJ's 'sout' command.
        System.out.println(L1);
    }

    /** Returns the sum of the integers contained in L.*/
    public static int sum(IntList L) {
        int sum = 0;
        IntList p = L;
        while (p != null) {
            sum = p.head;
            p = p.tail;
        }
        return sum;
    }

public

public是main的访问修饰符access modifier,必须是public不能是私人的,否则会报错无法访问。

static

static意思是静态的。java刚运行时,类的对象不存在,只有main方法是静态的才能让JVM将类装入内存并调用。如果不是静态的就无法调用,因为没有类的对象。是否说明类的对象必须是静态的呢?JVM又是什么呢?

void

所有方法都必须返回类型,但是main方法不返回任何值所以是void。如果返回会报错。
之前一个返回了值的代码片段长这样:

    /** Return true iff YEAR is a leap year.  */
    static boolean isLeapYear(int year) {
        return ((year%400 == 0) || ((year%4 ==0) && (year % 100 != 0)));
    }

main

是java主方法的名字是固定的,启动java程序时会自动寻找main。必须叫这个否则会报错。

string[] args

java的主方法接受一个字符串数组类型的参数,也成为java命令行参数。
比如:

public class Test {

public static void main(String[] args){

    for(String s : args){
	System.out.println(s);
    }
	
    }
}

结果是:

$ javac Test.java 
$ java Test 1 2 3
1
2
3
$ java Test "Hello World" "Pankaj Kumar"
Hello World
Pankaj Kumar
$ java Test
$ 

你可能感兴趣的:(java,开发语言,后端)