美文网首页Java技术文章JavaWebJava学习笔记
Java-003-第一个程序及class与java

Java-003-第一个程序及class与java

作者: 53b3f4658edc | 来源:发表于2017-11-16 23:40 被阅读206次

    步骤

    • 编写:将 Java 代码编写到扩展名为 .java 的文件中。
    • 变异:通过 javac 命令对该 java 文件进行编译。
    • 运行:通过 java 命令对生成的 class 文件进行运行。
    微信公众号:JavaWeb架构师

    编写

    选择最简单的编辑器:记事本。
    敲入代码

    class Test{  }
    

    将文件保存成Test.java,这个文件是存放java代码的文件,称为源文件。


    编译

    有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。
    在该源文件目录下,通过javac编译工具对Test.java文件进行编译。

    #去到源文件的保存位置
    Macs-MacBook-Pro:~ mac$ cd /Users/mac/Desktop/
    #使用javac进行源文件的编译
    Macs-MacBook-Pro:Desktop mac$ javac Test.java 
    

    如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class文件,该文件称为字节码文件,也是可以执行的java的程序。


    微信公众号:JavaWeb架构师

    运行

    有了可执行的java程序(Test.class字节码文件)
    通过运行工具java.exe对字节码文件进行执行。
    出现提示:缺少一个名称为main的方法。

    #使用java命令执行字节码
    Macs-MacBook-Pro:Desktop mac$ java Test
    #报错
    错误: 在类 Test 中找不到 main 方法, 请将 main 方法定义为:
       public static void main(String[] args)
    否则 JavaFX 应用程序类必须扩展javafx.application.Application
    Macs-MacBook-Pro:Desktop mac$ 
    

    因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入public static void main(String[] args){ }

    public class Test {
        public static void main(String[] args) {
            
        }
    }
    

    对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。
    发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。

    # 编译
    Macs-MacBook-Pro:Desktop mac$ javac Test.java 
    #执行
    Macs-MacBook-Pro:Desktop mac$ java Test
    Macs-MacBook-Pro:Desktop mac$ 
    

    想要和JVM来个互动,只要在main方法中加入一句
    System.out.println("Hello World");因为程序进行改动,所以再重新编译,运行即可。

    public class Test {
        public static void main(String[] args) {
            System.out.println("Hello World");
        }
    }
    

    结果:

    Macs-MacBook-Pro:Desktop mac$ javac Test.java 
    Macs-MacBook-Pro:Desktop mac$ java Test
    Hello World
    Macs-MacBook-Pro:Desktop mac$ 
    

    class文件与java文件的关系

    一个源文件中可以有多个类。

    public class Test {
        public static void main(String[] args) {
            System.out.println("Hello World");
        }
    }
    
    
    //人类
    class Person{ }
    
    //动物类
    class Animal{}
    

    编译之后每个类出现一个.class文件(按类名)。


    微信公众号:JavaWeb架构师

    解释并执行的时候要区分.class文件

    Macs-MacBook-Pro:Desktop mac$ java Test
    Hello World
    Macs-MacBook-Pro:Desktop mac$ java Person
    错误: 在类 Person 中找不到 main 方法, 请将 main 方法定义为:
       public static void main(String[] args)
    否则 JavaFX 应用程序类必须扩展javafx.application.Application
    Macs-MacBook-Pro:Desktop mac$ 
    

    源文件出现public类的时候,源文件的名字必须和这个类的名一致

    #我们先把Test.java 改成 Test2.java,然后编译
    
    Macs-MacBook-Pro:Desktop mac$ javac Test2.java 
    Test2.java:1: 错误: 类Test是公共的, 应在名为 Test.java 的文件中声明
    public class Test {
           ^
    1 个错误
    Macs-MacBook-Pro:Desktop mac$ 
    

    一个源文件中最多一个用public修饰的类:public Test,或者没有(原因由上一条可以解释)。

    说明

    主方法:
    一个java程序必须有且只能有一个main方法,这是Java程序的入口
    public static void main(String[] args) {}


    主类:
    主类--->带有main方法的类
    当主类是public的时候,主类名必须和源文件名(TEST.java)一致。不是public的话,可以不一致


    其它


    • 源码下载
    关注下方公众号,回复:java_course.code
    
    完整教程PDF版本下载

    相关文章

      网友评论

      • 琼珶和予:强哥,合影😊
        程序o07:Java初高级一起学习分享,共同学习才是最明智的选择,喜欢的话可以我的学习群64弍46衣3凌9,或加资料群69似64陆0吧3(进群备注简书)
        53b3f4658edc:@琼珶和予 庞学长,调皮
      • 逍遥键客:JAVA高级开发群:647355916 大量学习资料和项目实战视频尽情领取

      本文标题:Java-003-第一个程序及class与java

      本文链接:https://www.haomeiwen.com/subject/tvxdvxtx.html