第一个Java程序

代码

  • /**
     * 一个简单的Java应用程序
     */
    public class FirstSample {
        public static void main(String[] args){
            System.out.println("Hello World!");
        }
    }
    

解释

  • public

    • 访问修饰符,控制程序的其他部分对这段代码的访问级别
  • class

    • 关键字,表示类
  • FirstSample

    • 类名
    • Java中类名的命名规定
      • 以字母开头,后面可以跟字母和数字的任意组合,长度基本上没有限制
      • 类名不能是Java保留字
  • main方法

    • Java 1.4之后强制main方法必须是public
    • main方法必须是static
    • 返回值类型为void,main方法没有为操作系统返回“退出码”(程序退出时的状态码),如果main方法正常退出,那么Java应用程序的退出码为0。如果希望在终止程序时返回其它的“退出码”,需要调用System.exit方法
      • 退出码其实是约定俗成的。一般约定[0,99]内整数代表正常退出,[100-199]代表警告退出,大于等于200代表异常退出,但是不同的操作系统却不同。
      • Java中,默认的正常退出码为0,非零值表示不正常退出(目前测试非正常退出的退出码为1)
      • System.exit(int status)可以指定退出码
        • 程序运行到该方法所在的那一行代码会直接退出程序,并返回指定的退出码,后面的代码不再执行
        • 底层调用方法是Runtime.getRuntime().exit(status);
    • JVM总是从指定类中的main方法的代码开始执行
  • System.out

    • System为类,out是System类中的静态成员变量,是一个PrintStream对象的引用
    • println是PrintStream类中的实例方法,将传递给它的字符串参数显示在控制台上
    • println方法和print方法的区别
      • println方法的实现是先调用print方法向控制台输出,然后调用newLine方法输出换行
      • print方法的实现是将接收到的参数转为String类型然后调用write方法向控制台输出
        • 调用指定对象的toString方法
      • write方法和newLine方法的实现与IO流相关
  • 运行

    • 编译阶段

      • javac FirstSample.java
        
      • 编译阶段检查语法错误

      • 如果没有语法错误,则根据java源文件生成字节码文件FirstSample.class

      • 如果一个源文件中有多个类,则会生成多个字节码文件

    • 运行阶段

      • java FirstSample
        
      • 注意,执行java字节码文件是通过类名,不用加后缀.class

      • java.exe命令启动JVM,JVM启动类加载器ClassLoader

      • ClassLoader找到相应的.class文件,并将该文件加载到JVM中

        • 默认情况下,ClassLoader在当前路径下寻找指定类名对应的.class文件
        • 可以通过Java环境变量classpath指定路径
        • 如果不指定路径,则需要切换路径到.class文件所在的目录下,再通过java命令运行程序
      • JVM将.class字节码文件解释成二进制文件

      • 操作系统执行二进制文件,并与硬件平台交互

原文地址:https://www.cnblogs.com/AAAmsl/p/12785771.html