欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java的package和import機(jī)制原理解析

 更新時間:2020年01月17日 14:39:14   作者:windpoplar  
這篇文章主要介紹了java的package和import機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了java的package和import機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在說package、import機(jī)制前我們先來了解下java的CLASSPATH。

CLASSPATH顧名思義就是class的路徑,當(dāng)我們在系統(tǒng)中運(yùn)行某個java程序時,它就會告訴系統(tǒng)在這些地方尋找這個class文件

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 這是我們java默認(rèn)環(huán)境變量設(shè)置。

“.”的意思是在當(dāng)前這個文件夾找;%JAVA_HOME%\lib是在java安裝路徑的lib文件夾找;%JAVA_HOME%\lib\tools.jar是在java安裝路徑的lib文件夾的tools壓縮包中找。

現(xiàn)在讓我們來測試下吧:

在C:\DOM中新建HelloWorld.java

//: HelloWorld.java
 public class HelloWorld{
  public static void main(String[] args){
    System.out.println(“Hello World!”);
  }
}

首先javac HelloWorld.java,系統(tǒng)會在這個目錄中找到HelloWorld.java文件,編譯出HelloWorld.class文件。Java HelloWorld,系統(tǒng)會先調(diào)用CLASSPATH路徑,我們設(shè)置了“.”這個目錄,所以會在當(dāng)前目錄中找到HelloWorld.class。運(yùn)行成功。

**換個地方運(yùn)行這個程序

我們在C盤運(yùn)行java HelloWorld**

系統(tǒng)會現(xiàn)在CLASSPATH路徑尋找HelloWorld.class。但是在”.”(現(xiàn)在是C盤)找不到這個文件。
我們現(xiàn)在把C:\DOM路徑加入到CLASSPATH

為了更新系統(tǒng)環(huán)境變量我們需要重新啟動dos窗口

系統(tǒng)會在CLASSPATH中找到C:\DOM這個路徑,再找到HelloWorld.class這個文件。運(yùn)行成功。
現(xiàn)在我們明白了CLASSPATH的作用了^^

關(guān)于PACKAGE

我們來改寫這個程序,加入package

//: HelloWorld.java
 package a.b;
public class HelloWorld{
  public static void main(String[] args){
    System.out.println(“Hello Wolrd!”);
  }
}

編譯成功,但是不能運(yùn)行。

系統(tǒng)在找到HelloWorld.class時就會讀取到package a.b;這個信息,這個告訴系統(tǒng)這個HelloWorld.class是要放在a文件夾的b文件夾中。但是現(xiàn)在我們的HelloWorld.class是在DOM這個文件夾。文件路徑和package不能對應(yīng),無法運(yùn)行。

現(xiàn)在我們來新建a/b這個兩個文件夾,然后把HelloWorld.class復(fù)制到b文件夾中。然后再運(yùn)行java HelloWorld

對不起!還是沒有運(yùn)行成功。系統(tǒng)在CLASSPATH中尋找HelloWorld.class文件,但是這個文件被隱藏在a文件夾中的b文件夾。
我們來試試java a.b.HelloWorld

運(yùn)行成功了,系統(tǒng)在CLASSPATH中的“.”文件夾找到a文件夾,然后b文件夾,找到HelloWorld.class文件。
現(xiàn)在明白package的作用了,它是一定要符合從CLASSPATH出發(fā)的目錄結(jié)構(gòu)的。

關(guān)于IMPORT

Import的作用是當(dāng)你調(diào)用另一個class的時候,告訴系統(tǒng),要找哪里才能找到這個class。

我們在C:\DOM的目錄下寫一個調(diào)用a\b\HelloWorld.class的程序。

//: TestHelloWorld.java
import a.b.HelloWorld;
public class TestHelloWorld{
  public static void main(String[] args){
    HelloWorld hw=new HelloWorld();
    hw.main(args);  //調(diào)用HelloWorld中的main()函數(shù),args是引數(shù),會打印出HelloWorld!
  }
}

編譯運(yùn)行成功!

編譯:系統(tǒng)在個這個文件夾中找到TestHelloWorld.java文件,檢查import a.b.HelloWorld; 找CLASSPATH中找到a\b\HelloWorld.class。編譯通過完成!

運(yùn)行:系統(tǒng)現(xiàn)在CLASSPATH中找到TestHelloWorld.class,然后讀取import a.b.HelloWorld; 導(dǎo)入HelloWorld.class,運(yùn)行成功!

到此為止,你應(yīng)該明白package 和 import的作用了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?Web開發(fā)環(huán)境配置詳解

    Java?Web開發(fā)環(huán)境配置詳解

    這篇文章主要介紹了Java?Web開發(fā)環(huán)境配置詳解,對初學(xué)者是個必備的過程,有需要的可以了解一下
    2016-11-11
  • JAVA使用geotools讀取shape格式文件的方法

    JAVA使用geotools讀取shape格式文件的方法

    這篇文章主要介紹了JAVA使用geotools讀取shape格式文件的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • java實現(xiàn)租車系統(tǒng)

    java實現(xiàn)租車系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)租車系統(tǒng),以及遇到的兩個問題解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • futuretask用法及使用場景介紹

    futuretask用法及使用場景介紹

    這篇文章主要介紹了futuretask用法及使用場景介紹,小編覺得挺不錯的,這里分享給大家,供大家參考。
    2017-10-10
  • java數(shù)組的初始化及操作詳解

    java數(shù)組的初始化及操作詳解

    在本文中小編給大家整理了關(guān)于java數(shù)組的初始化及操作的相關(guān)知識點(diǎn)內(nèi)容,需要的讀者們參考下。
    2019-07-07
  • SpringCloudGateway網(wǎng)關(guān)處攔截并修改請求的操作方法

    SpringCloudGateway網(wǎng)關(guān)處攔截并修改請求的操作方法

    這篇文章主要介紹了SpringCloudGateway網(wǎng)關(guān)處攔截并修改請求的操作方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • 詳解Java線程編程中的volatile關(guān)鍵字的作用

    詳解Java線程編程中的volatile關(guān)鍵字的作用

    這篇文章主要介紹了Java線程編程中的volatile關(guān)鍵字的作用,針對其禁止進(jìn)行指令重排序和讀寫內(nèi)存方面著重講解,需要的朋友可以參考下
    2015-12-12
  • 又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用

    又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用

    網(wǎng)絡(luò)數(shù)據(jù)的基本單位永遠(yuǎn)是byte,Java NIO提供ByteBuffer作為字節(jié)的容器,但該類過于復(fù)雜,有點(diǎn)難用.本篇文章就帶大家簡單了解一下 ,需要的朋友可以參考下
    2021-06-06
  • Java函數(shù)式接口Supplier接口實例詳解

    Java函數(shù)式接口Supplier接口實例詳解

    這篇文章主要介紹了Java函數(shù)式接口Supplier接口實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot用JdbcTemplates訪問Mysql實例代碼

    SpringBoot用JdbcTemplates訪問Mysql實例代碼

    本篇文章主要介紹了SpringBoot用JdbcTemplates訪問Mysql實例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-05-05

最新評論