zoukankan      html  css  js  c++  java
  • 第一个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字节码文件解释成二进制文件

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

  • 相关阅读:
    ConcurrentHashMap总结
    HashMap在多线程环境下操作可能会导致程序死循环
    oracle数据库的 to char 和to date 区别(时间格式化)
    SQL中的cast()函数用法
    常见的垃圾收集器有3类-java面试一
    mybatis中sql引用
    mysql find_in_set 查询
    用Redis实现微博关注关系的分析
    C#与C++相比较之STL篇(续一)
    Vite2.0 入门
  • 原文地址:https://www.cnblogs.com/AAAmsl/p/12785771.html
Copyright © 2011-2022 走看看