【Java學習筆記四】Java中的包

包的聲明和引入:在Java語言系統中,Java編譯器為每一個類生成一個字節碼文件(.class),為了對類文件進行分層和按用途分類管理,同時也為了解決相同類名的文件沖突的問題,Java提供了包機制來管理類名空間。一般情況下,應將相關的類組織到同一個包中。使用包提供了包的封裝和存取權限。

一個包可以包含若干個類,還可以包含若干個包

包被放在當前目錄或指定目錄下,該指定目錄要在操作系統環境變量表中的classpath參數的值包含著,以便系統能夠搜索到該指定目錄下的包和包中的類文件。

包名本身就是一個目錄,包和子包之間用.隔開,以表明包的層次目錄結構。(包名就是文件夾名,類名就是文件名)。

在編寫Java源程序時,對一個Java程序文件可以使用聲明報道語句指定其中每個類的字節碼文件所屬的包。

聲明包語句的關鍵字為package,后面跟著包名或者包的層次目錄名,該語句若存在則必須是Java程序文件中的第一條語句

改程序文件被編譯后就把每個類的字節碼文件保存到指定的包中。若一個Java程序文件不帶有聲明包的語句,則其中每個類的字節碼文件被保存到當前目錄中,即被編譯的Java程序文件所在的的目錄中

像程序中引入包的關鍵字為import,后面跟著包名和類名,包名和類名之間也必須用句點分開。

若需要引入包中的所有類,則需要用*代替類名,例如import java.io.*;,語句向所在的Java程序文件中引入了java.io包中的所有類。

引入包語句import必須出現在聲明包語句package之后和所有類定義模塊之前的位置。

當編譯帶有聲明包語句的程序文件時,在編譯命令中,必須使用-d參數項,后面跟著包所在的目錄路徑,若把包保存在當前目錄時,則使用句點代替。
例如程序a.java開頭為package myJava;,編譯指令為javac -d . a.java,編譯命令執行后將在當前目錄下建立一個包名為myjava的目錄,此目錄中包含文件a.class

在一個Java程序文件中,系統將自動引入java.lang包中的所有類 (自動加上import java.lang.*;),在java.lang包中含有常用的系統類,如字符串類String,基本數據類型的包裝類,數學函數類Math,系統基類Object,系統狀態類System.Java系統類庫中包含有各種用途的包,如進行文件操作的io包、進行網絡應用的net包、進行數據庫操作的sql包、進行可視化圖形用戶窗口界面操作的awt包、進行集合數據操作的util包等.

  • java.lang包:java.lang包是Java語言的核心類庫,包含了運行Java程序必不可少的系統類,如基本數據類型、基本數學函數、字符串處理、線程、異常處理類等。每個Java程序運行時,系統都會自動地引入java.lang包,所以這個包的加載是缺省的。
  • java.io包: java.io包是Java語言的標準輸入/輸出類庫,包含了實現Java程序與操作系統、用戶界面以及其他Java程序做數據交換所使用的類,如基本輸入/輸出流、文件輸入/輸出流、過濾輸入/輸出流、管道輸入/輸出流、隨機輸入/輸出流等。凡是需要完成與操作系統有關的較底層的輸入輸出操作的Java程序,都要用到java.io包。
  • java.util包:java.util包包括了Java語言中的一些低級的實用工具,如處理時間的Date類,處理變長數組的Vector類,實現棧和雜湊表的Stack類和HashTable類等,使用它們開發者可以更方便快捷地編程。
  • java.awt包:java.awt包是Java語言用來構建圖形用戶界面(GUI)的類庫,它包括了許多界面元素和資源,主要在三個方面提供界面設計支持:低級繪圖操作,如Graphics類等;圖形界面組件和布局管理,如Checkbox類、Container類、LayoutManager接口等;以及界面用戶交互控制和事件響應,如Event類。
  • java.applet包:java.applet包是用來實現運行于Internet瀏覽器中的Java Applet的工具類庫,它僅包含少量幾個接口和一個非常有用的類:java . applet . Applet。
  • java.net包: java.net包是Java語言用來實現網絡功能的類庫。由于Java語言還在不停地發展和擴充,它的功能,尤其是網絡功能,也在不斷地擴充。目前已經實現的Java網絡功能主要有:底層的網絡通信,如實現套接字通信的Socket類、ServerSocket類;編寫用戶自己的Telnet、FTP、郵件服務等實現網上通信的類;用于訪問Internet上資源和進行CGI網關調用的類,如URL等。
  • java.awt.event包: java.awt.event包是對JDK 1.0版本中原有的Event類的一個擴充,它使得程序可以用不同的方式來處理不同類型的事件,并使每個圖形界面的元素本身可以擁有處理它上面事件的能力。
  • java.sql包: java.sql包是實現JDBC(Java database connection)的類庫。利用這個包可以使Java程序具有訪問不同種類的數據庫的功能,如Oracle,Sybase,DB2,SQLServer等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383837.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統編程——線程池

http://blog.csdn.net/tennysonsky/article/details/46490099# 線程池基本原理 在傳統服務器結構中,常是有一個總的監聽線程監聽有沒有新的用戶連接服務器,每當有一個新的用戶進入,服務器就開啟一個新的線程用戶處理這 個用戶的數據包。這個線…

【Java學習筆記五】Java異常處理

異常通常分為三類: 程序可控制的異常:一般是可預見的錯誤,不是致命的。例如:除數為0,數組下標越界。程序不可控制的的異常:這種異常往往是致命的,但是系統可以預見的。例如:系統棧溢…

【C++學習筆記一】C++類和對象詳解

類定義是以關鍵字class開頭,后面跟類的名稱。主體是包含在一對花括號中。類定義后必須跟著一個分號或一個聲明列表。 類的對象的公共數據成員可以使用直接成員訪問運算符.來訪問。需要注意的是,私有的成員和受保護的成員不能直接使用成員訪問運算符來訪…

C語言實現的簡單的線程池

http://www.linuxidc.com/Linux/2013-01/77619.htm 有時我們會需要大量線程來處理一些相互獨立的任務,為了避免頻繁的申請釋放線程所帶來的開銷,我們可以使用線程池。下面是一個C語言實現的簡單的線程池。 頭文件: 1: #ifndef THREAD_POOL_H_…

C++獲取當前時間

可以使用windowsAPI直接獲取。 例如&#xff1a; #include<windows.h> #include<cstdio>using namespace std;int main() {SYSTEMTIME now;GetLocalTime(&now);printf("現在是%02d時%02d分%02d秒\n",now.wHour,now.wMinute,now.wSecond);printf(&…

成員函數后面加上const的作用

const表示成員函數不會修改類中的數據成員。 規則&#xff1a; 在類中被const 聲明的函數只能訪問const 函數&#xff0c;而非const 函數可以訪問任意成員函數。在成員函數中不管數據是否具有const 屬性&#xff0c;編譯器檢查的的是是否有修改&#xff08;賦值&#xff0c;自…

簡單Linux C線程池

http://www.cnblogs.com/venow/archive/2012/11/22/2779667.html 大多數的網絡服務器&#xff0c;包括Web服務器都具有一個特點&#xff0c;就是單位時間內必須處理數目巨大的連接請求&#xff0c;但是處理時間卻是比較短的。在傳統的多線程服務器模型中是這樣實現的&#xff1…

C++創建對象:棧和堆的區別

首先我們應該了解棧和堆的差別&#xff1a; 詳細信息&#xff1a;傳送門 棧相當于函數自帶的存儲空間&#xff0c;在windows下一般為2M,在Linux下一般為8M&#xff0c;存取速度稍微快一點。堆是系統的空間&#xff0c;相對較大&#xff0c;一般為2G&#xff0c;效率稍微慢一點…

IO多路復用之poll總結

http://www.cnblogs.com/Anker/p/3261006.html 1、基本知識 poll的機制與select類似&#xff0c;與select在本質上沒有多大差別&#xff0c;管理多個描述符也是進行輪詢&#xff0c;根據描述符的狀態進行處理&#xff0c;但是poll沒有最大文件描述符數量的限制。poll和select同…

【C++學習筆記二】C++繼承

繼承 繼承允許我們一句另一個類來定義一個類&#xff0c;這使得繼承和維護一個程序變得更加容易&#xff0c;也達到了重用代碼功能和提高執行效率的效果。 一般格式為&#xff1a; class 派生類名 :訪問修飾符 基類名{};其中訪問修飾符是public protected private中的一個&a…

處理大并發之二 對epoll的理解,epoll客戶端服務端代碼

http://blog.csdn.net/wzjking0929/article/details/51838370 序言&#xff1a; 該博客是一系列的博客&#xff0c;首先從最基礎的epoll說起&#xff0c;然后研究libevent源碼及使用方法&#xff0c;最后研究nginx和node.js&#xff0c;關于select,poll這里不做說明&#xff0c…

C++基類指針指向派生類(指針)

我們常用基類指針指向派生類對象來實現多態性。 私有繼承不允許基類指針指向派生類 基類指針只能訪問到基類中含有的公有成員。 當用基類指針指向派生類對象在動態分配堆上內存的時候&#xff0c;析構函數必須是虛函數! 成員如果是數據成員的話訪問的是基類的版本&#xff…

C++虛繼承中構造函數和析構函數順序問題以及原理

多重繼承的問題&#xff1a;多個類B,C,…繼承同一個類A導致如果X繼承了B,C,…那么在X中將還有多個A中成員的拷貝&#xff0c;如果想要訪問A中的成員如果不加名字空間將會導致二義性&#xff0c;這種拷貝大多是沒有實際意義的&#xff0c;為了避免這種空間浪費&#xff0c;C有虛…

一個簡單的linux線程池

http://blog.csdn.net/wzjking0929/article/details/20312675 線程池&#xff1a;簡單地說&#xff0c;線程池 就是預先創建好一批線程&#xff0c;方便、快速地處理收到的業務。比起傳統的到來一個任務&#xff0c;即時創建一個線程來處理&#xff0c;節省了線程的創建和回收的…

【C++學習筆記三】C++多態、抽象(接口)

當類之間存在多種層次結構&#xff0c;并且類之間通過繼承關聯時就會用到多態。 虛函數在子類中的覆蓋版本和該函數在基類中的原始版本必須有相同的函數簽名、函數名、形參名、常屬性。如果返回值為非類類型&#xff0c;則必須相同&#xff0c;如果是類類型A的指針或者引用&am…

C++重載和重寫的條件以及重寫后對基類函數的覆蓋

重載&#xff1a;同一個類中名字相同&#xff0c;參數列表不同的方法構成重載函數&#xff0c;和返回值沒有關系。這就意味著就算返回值不同&#xff0c;只要名字相同參數列表相同編譯器還是會報錯&#xff0c;覺得一函數被定義了兩次。 重寫&#xff1a;派生類中只要函數名字…

C++靜態成員和靜態方法

在類中&#xff0c;靜態成員可以實現多個對象之間共享數據&#xff0c;同時保證了安全性。靜態數據對該類的所有對象是公有的&#xff0c;存儲一處供所有對象使用。 注意&#xff1a; 靜態成員定義時需要在前面加上關鍵字static靜態成員必須初始化且必須在類外進行&#xff0…

基于epoll的簡單的http服務器

http://blog.csdn.net/fangjian1204/article/details/34415651 http服務器已經可以處理并發連接&#xff0c;支持多個客戶端并發訪問&#xff0c;每個連接可以持續讀寫數據&#xff0c;當然&#xff0c;這只是一個簡單的學習例子&#xff0c;還有很多bug&#xff0c;發表出來只…

C++單例模式簡單實現

有時候我們需要某個類只能被實例化一次&#xff0c;并且其他類都可以訪問到這個類&#xff0c;就需要這種設計模式。 例如我們想要做個資源管理器&#xff0c;顯然這個管理器只能有一個。 這種模式有很多實現方式&#xff0c;這里介紹最簡單的一種&#xff0c;想要了解更多可…

Linux C++ 實現線程池

http://blog.csdn.net/qq_25425023/article/details/53914609 線程池中的線程&#xff0c;在任務隊列為空的時候&#xff0c;等待任務的到來&#xff0c;任務隊列中有任務時&#xff0c;則依次獲取任務來執行&#xff0c;任務隊列需要同步。 Linux線程同步有多種方法&#xff…