栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java学习记录第二部分】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java学习记录第二部分】

二、JRE及输入输出
    • 1. Java程序的运行原理
    • 2. 程序入口与输入输出
      • 2.1 Java程序的入口——main()方法
      • 2.2 输入输出

注:以下操作和命令仅基于Windows系统

1. Java程序的运行原理
  • 一个Java程序是怎样运行的呢?
    首先,Java程序执行需要经过编译、运行两个步骤,分别对应javac和java两个命令。javac命令就是将Java源文件(也就是.java文件)进行编译,生成对应的字节码文件(也就是.class文件),而java命令就是运行.class文件。在此过程中,需要注意的是:
    (1) 编译生成的.class文件默认放在当前文件夹下,当然也可以指定存放的位置。以HelloWorld.java为例:

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

    在终端窗口中输入以下编译命令:

    javac -d . HelloWorld.java	//或者为:javac HelloWorld.java
    

    其中,-d destdir(此例中.代表当前文件夹),编译命令的常用格式为:

    javac -d destdir srcFile
    

    其中,destdir为想要指定的.class文件的存储位置,只要是磁盘上的有效路径即可;srcFile为Java源文件所在的位置,可以是绝对路径,也可以是相对路径,默认在当前路径下。需要注意的是,两者的路径均需要放在英文双引号之内。
    (2) 编译生成的.class文件有默认的文件名,即总是以源文件所定义的类名作为主文件名。当一个源文件内定义了多个类时,将编译生成多个.class文件,比如在类A里定义了一个类B,那么将生成两个.class文件:A.class和A$B.class。
    (3) Java源文件经编译后,便可以等待被调用或者作为主程序运行。若作为主程序运行(也就是包含 main() 方法),则可以在命令行窗口进入主程序所在的路径,然后输入运行命令:

    java HelloWorld
    
    • 值得注意的是,java命令后直接跟上主类名即可。
    • 若主程序需要调用其他的类或者引用第三方jar包,一种妥善的做法是,指定jar包所在的位置(也就是临时指定CLASSPATH的搜索路径),并将需要调用的其他类与主程序放在同一文件夹下,以运行Flips为例,其需要调用其他类,并且需要引用第三方jar包和指定输入参数,具体命令如下:
    java -classpath ".;E:zpstudyalgs4.jar" Flips 1000000 
    

    以上,-classpath是运行命令的参数选项,可以简写为-cp,搜索路径之间用 ; 隔开,并放在英文双引号之内,Flips为包含 main() 方法的类,1000000为Flips类中 main() 方法需要输入的参数。

2. 程序入口与输入输出 2.1 Java程序的入口——main()方法

main() 方法的一般定义为:

public static void main(String args[]){...}
  • 为了可以让JVM自由调用,将 main() 方法的访问权限定为public(公共访问权限)。
  • static表明 main() 方法属于主类,JVM调用 main() 时可以直接通过该类来调用而不用再另外创建一个对象。
  • 因为 main() 方法的返回值将返回到JVM,这没有任何意义,因此void表明 main() 方法没有返回值。
  • main() 方法的形参args为String数组,args由JVM来进行传值,其来源可以是命令行输入(也可以是标准输入流),如上述运行Flips类时,其后跟的参数1000000。当然,实际传入的参数也可以来源于重定向和管道,如:
  • 重定向:
java -classpath ".;E:zpstudyalgs4.jar" Flips < data.txt  

这条命令会从文件data.txt 中读取Flips中 main() 方法所需要的实际参数。

  • 管道:
java Data | java -classpath ".;E:zpstudyalgs4.jar" Flips

其中,运行java Data会产生Flips中 main() 方法所需要的实际参数。

2.2 输入输出

下图为Java程序整体结构:
(1) 相对于终端窗口,其输入可以来源于标准输入流、文件、命令行参数;输出可以为标准输出流、文件、标准绘图等。管道及重定向已在之前讲过,在此不再赘述。
(2) Java提供了强大的输入输出库,可自行查看相应的API。

————to be continued

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号