導航:首頁 > 編程語言 > javaidlj

javaidlj

發布時間:2023-05-03 06:19:17

java中rmi和corba的區別

java中rmi和corba的區別:
1、定義介面:
rmi自己定義介面(interface)
corba生成idl代碼,然後使用idlj -fall name.idl生成介面和幾個類文件
2、啟動服務:
rmi啟動的是rmiregistry (port)默認1099
corba啟動的是tnameserv
3、實現的繼承類:
rmi extends UnicastRemoteObject
corba extends 運行idlj時 生成的_NameImplBase
4、實現類的rebind
rmi可以直接rebind 如:Naming.rebind("rmi://localhost/meeting",meetingserver);
corba需要先調用init()如:
ORB orb=ORB.init(avgs,null);
MOTDImpl impl=new MOTDImpl(motdFile);
orb.connect(impl);
org.omg.CORBA.Object objRef=
orb.resolve_initial_references("NameService");
NamingContext ncRef=NamingContextHelper.narrow(objRef);
NameComponent nc=new NameComponent(motdService,"");
NameComponent[] path=new NameComponent[]{nc};
ncRef.rebind(path,impl);
這里corba就要麻煩很多了
5、客戶端調用corba的調用跟實現類的綁定差不多如:
ORB orb=ORB.init(avgs,null);
org.omg.CORBA.Object objRef=
orb.resolve_initial_references("NameService");
NamingContext ncRef=NamingContextHelper.narrow(objRef);
NameComponent nc=new NameComponent("MessageOfTheDay","");
NameComponent path[]=new NameComponent[]{nc} ;
org.omg.CORBA.Object motdObj=ncRef.resolve(path);
MOTD motdRef=MOTDHelper.narrow(motdObj);
System.out.println(motdRef.getMOTD());
rmi只要lookup就可以了
總的來說其實rmi和corba都差不多,都是樁和框架,兩者相互競爭,但是在java中都可以相互調用。這歸功於rmi_iiop.

⑵ JAVA7 32位如何下載

1、打抄開網路搜索Java7,選擇第一襲項進入下載的頁面:

⑶ JAVA與.net的區別和各自優勢

1.Java 是 簡 單 的

Java 與 C++ 極 為 相 似, 但 卻 簡 單 得 多。 高 級 編 程 語 言 的 所 有 特 性 中,
不 是 絕 對 需 要 的 都 已 刪 去 了。 例 如, Java 沒 有 算 符 過 載、 標 題 文 件、
預 處 理、 指 針 運 算、 結 構、 聯 合、 多 維 數 組、 模 板 及 隱 式 類 型 變 換。 如
果 你 知 道 一 點 C、 C++ 或 Pascal, 你 很 快 就 會 駕 馭 Java。 這 里 是 一 個 簡 單 的 Java Hello World 程 序:

public class HelloInternet {

public static void main(String argv[]) {

System.out.println(「Hello In-ternet!」)

}

}
2.Java 是 面 向 對 象 的

Java 是 一 種 面 向 對 象 的 編 程 語 言。 除 了 簡 單 的 類 型, 如 數 字 和 布 爾 算
子 之 外, Java 中 的 大 部 分 都 是 對 象。

正 如 任 何 面 向 對 象 的 語 言 一 樣, Java 代 碼 也 按 類 組 織。 每 個 類 定 義 一
組 規 定 對 象 行 為 的 方 法。 一 個 類 可 以 繼 承 另 一 個 類 的 行 為。 在 類 的
根 層 次 上, 通 常 是 類 對 象。

Java 支 持 單 繼 承 類 層 次 結 構。 這 就 是 說, 每 個 類 一 次 只 能 繼 承 一 個 別
的 類。 有 些 語 言 允 許 多 繼 承 性, 但 這 可 能 造 成 混 亂, 使 語 言 不 必 要 地
復 雜 化。 例 如, 難 以 想 像, 一 個 對 象 會 繼 承 兩 個 完 全 不 同 的 類 的 行
為。

Java 還 支 持 摘 要 類 的 接 口。 這 允 許 編 程 人 員 先 定 義 接 口 的 方 法, 而 不
必 急 於 馬 上 確 定 方 法 的 實 現。 一 個 類 可 以 施 行 多 個 接 口, 從 而 具 有
真 正 多 繼 承 性 的 許 多 優 點。 一 個 對 象 也 可 實 施 任 意 數 量 的 接 口。 Java
接 口 與 IDL 接 口 極 其 相 似。 很 容 易 建 立 IDLJ 編 譯 器。 這 就 是 說, Java 可
用 於 CORBA 對 象 系 統 來 建 立 分 布 式 對 象 系 統。 鑒 於 在 許 多 計 算 機 系 統
中 都 采 用 IDL 接 口 和 CORBA 對 象 系 統, 這 種 兼 容 性 是 重 要 的。

3.Java 是 靜 態 類 型 的

在 一 個 Java 程 序 中, 必 須 定 義 所 用 對 象 (數 字、 字 符、 數 組 等) 的 類 型。
這 有 助 於 編 程 人 員 很 快 發 現 問 題, 因 為 當 程 序 編 譯 時 可 以 檢 測 類 型
錯 誤。

不 過, Java 系 統 中 的 對 象 也 有 動 態 類 型。 要 求 一 個 對 象 為 動 態 類 型 往
往 是 可 能 的, 所 以 編 程 人 員 寫 的 程 序 可 以 對 不 同 類 型 的 對 象 做 不 同
的 事。

4.Java 是 編 譯 型 的

當 運 行 Java 程 序 時, 它 首 先 被 編 譯 成 字 節 代 碼。 字 節 代 碼 非 常 類 似 於
機 器 指 令, 所 以 Java 程 序 非 常 高 效。 然 而, 字 節 代 碼 並 不 專 對 一 種 特
定 的 機 器, 所 以 Java 程 序 無 需 重 新 編 譯 便 可 在 眾 多 不 同 的 計 算 機 上
執 行。

Java 源 程 序 被 編 譯 成 類 文 件, 它 相 當 於 程 序 的 字 節 代 碼 表 現。 在 一 個
Java 類 文 件 中, 所 有 對 方 法 及 實 例 變 量 的 參 照 均 按 名 進 行, 並 在 第 一
次 執 行 代 碼 時 加 以 分 辨。 這 使 得 代 碼 更 通 用, 更 不 易 受 修 改 的 影 響,
而 仍 具 高 效。

5.Java 是 體 系 結 構 中 立 的

Java 語 言 對 每 種 計 算 機 都 一 樣。 比 如, 簡 單 的 類 型 都 是 不 變 的: 整 數
總 是 32 位, 長 整 數 總 是 64 位。 令 人 奇 怪 的 是, 諸 如 C 及 C++ 等 時 髦 的
編 程 語 言 卻 不 是 這 樣。 由 於 這 些 語 言 定 義 如 此 自 由, 每 種 編 譯 器 及
開 發 環 境 便 各 有 不 同 了, 這 使 程 序 的 移 植 成 為 討 厭 的 問 題。 Java 程 序
的 移 植 卻 很 容 易, 而 且 不 需 要 進 行 重 新 編 譯。

6.Java 是 健 全 的

Java 程 序 不 可 能 造 成 計 算 機 崩 潰。 Java 系 統 仔 細 檢 測 對 內 存 的 每 次
訪 問, 確 認 它 是 合 法 的, 而 且 不 致 引 起 任 何 問 題。
不 過, 即 使 Java 程 序 也 可 能 有 錯 誤。 如 果 出 現 某 種 出 乎 意 料 之 事, 程
序 不 會 崩 潰, 而 把 該 例 外 拋 棄。 程 序 會 發 現 這 類 例 外, 並 加 以 處 理。
傳 統 的 程 序 可 以 訪 問 計 算 機 的 全 部 內 存。 程 序 可 能 (無 意 識 地) 修 改
內 存 中 的 任 何 值, 這 就 會 造 成 問 題。 Java 程 序 只 能 訪 問 內 存 中 允 許 它
們 訪 問 的 那 些 部 分, 所 以 Java 程 序 不 可 能 修 改 不 擬 修 改 的 值。

7.Java 是 小 巧 的

由 於 Java 的 設 計 是 要 在 小 的 計 算 機 上 運 行, 作 為 一 種 編 程 語 言 來 說
其 系 統 是 相 對 較 小 的。 它 能 有 效 地 在 4MB 以 上 RAM 的 PC 機 上 運 行。 Java
翻 譯 器 只 占 用 幾 百 KB。 這 種 翻 譯 器 對 Java 的 平 台 無 關 性 和 可 移 植 性
是 可 靠 的。

由 於 Java 很 小, 它 對 內 存 很 小 的 計 算 機, 如 基 於 Java 的 PC 機, 以 及 電
視 機、 烤 箱、 電 話 機 及 家 用 計 算 機 等, 是 很 理 想 的。

8.Java 是 多 線 程 的

Java 程 序 可 以 執 行 一 個 以 上 的 線 程。 比 如, 它 可 以 在 一 個 線 程 中 完 成
某 一 耗 時 的 計 算, 而 其 它 線 程 與 用 戶 進 行 交 互 對 話。 所 以 用 戶 不 必
停 止 工 作, 等 待 Java 程 序 完 成 耗 時 的 計 算。

在 多 線 程 環 境 中 的 編 程 通 常 是 困 難 的, 因 為 許 多 東 西 可 能 同 時 出
現。 但 是, Java 提 供 了 易 於 使 用 的 同 步 特 性, 使 編 程 更 為 方 便。

Java 線 程 通 常 被 映 射 為 實 際 的 操 作 系 統 線 程, 只 要 底 層 操 作 系 統 支
持 這 種 映 射。 因 此, 用 Java 寫 的 應 用 程 序 可 說 是 「MP 熱」。 這 就 是 說,
如 果 它 們 在 多 處 理 器 機 器 上 運 行, 它 們 更 將 表 現 不 凡。

9.Java 是 可 收 集 無 用 的 存 儲 單 元 的

用 C 及 C++ 寫 軟 件 的 編 程 人 員 必 須 仔 細 跟 蹤 所 用 的 內 存 塊。 當 一 個 塊
不 再 使 用 時, 他 們 務 必 讓 程 序 釋 放 它, 從 而 方 可 再 用。 在 大 的 項 目
中, 這 可 能 很 困 難, 並 往 往 成 為 出 錯 和 內 存 不 足 的 根 源。

在 Java 的 情 況 下, 編 程 人 員 不 必 為 內 存 管 理 操 心。 Java 系 統 有 一 個 叫
做 「無 用 單 元 收 集 器」 的 內 置 程 序, 它 掃 描 內 存, 並 自 動 釋 放 那 些 不
再 使 用 的 內 存 塊。

10.Java 是 快 速 的

Java 比 典 型 的 腳 本 語 言 大 為 有 效, 但 它 比 C 慢 20 倍。 這 對 大 多 數 應 用
是 可 接 受 的。

不 久 的 將 來, 代 碼 生 成 器 就 可 供 利 用 了, 這 將 使 Java 程 序 幾 近 於 用 C
或 C++ 編 寫 的 程 序 那 么 快。

11.Java 是 安 全 的

Java 程 序 沒 有 指 針, 而 且 象 這 樣 的 字 節 代 碼 程 序 強 在 類 型 上, 所 以 在
執 行 之 前 它 可 能 驗 證 Java 程 序。 被 驗 證 的 Java 程 序 得 以 保 證 不 突 破
Java 語 言 的 任 何 限 制, 而 且 可 以 安 全 地 執 行。 Java 字 節 代 碼 驗 證 被
Web 瀏 覽 器 用 來 確 保 小 程 序 不 含 病 毒。

12.Java 是 可 擴 展 的

Java 程 序 可 與 用 其 它 語 言 編 寫 的 現 存 程 序 庫 連 接。 由 於 Java 數 據 結
構 與 C 的 數 據 結 構 的 類 型 極 為 相 似, 這 是 相 當 方 便 的。 最 大 的 問 題 在
於, 現 有 多 線 程 程 序 庫 為 數 不 多。

Java 程 序 可 以 聲 明 某 些 方 法 是 內 部 的, 然 後, 把 這 些 內 部 方 法 映 射 成
軟 件 庫 所 定 義 的 功 能, 從 而 動 態 地 鏈 接 到 虛 擬 機

--------------------------------------------------------------------
1.標准集成:XML、SOAP及其它
過去,微軟的體系結構建立在COM/DCOM基礎上,COM/DCOM是進程間通信的二進制標准。雖然這個標准本身沒有什麼失誤,但是它與微軟以外的領域格格不入。也就是說,這個標准成了實現與其它軟體平台互操作的瓶頸。

除此之外,數據也是一個問題。雖然ADO簡化了數據訪問,但是把數據從一個地方傳送到另外一個地方就成了問題。ADO Recordset(記錄集)對象是一個存儲了數據的二進制結構,而這種二進制格式對於非微軟的平台沒有任何意義。

.Net彌補了這些缺陷,因為它完全基於標准。比如,數據用XML的格式通過進程邊界,而這個數據有一個到XSD的連接,所以任何客戶端都可以正確地轉化數據。

SOAP基於XML,用於與Web服務的通信。集成SOAP以後,不管客戶端運行的是不是微軟的操作系統,都可以實現簡單的可編程訪問。

2.簡化應用
COM所面臨的一個頭痛的問題就是應用。COM利用Windows注冊表來定位機器上的組件。這個想法是不錯的:每個注冊的組件只有一個實例,所有的應用程序都使用相同的版本。COM具有向後兼容性,也就是說新版本兼容老版本,但是開發人員可能會破壞這種兼容性。

.Net則採用了不同的方法:它根本就沒有使用注冊表。相反,微軟的建議是每個應用程序使用自己局部的組件(在.Net稱為「assembly」)。利用這種方法,用於應用程序Foo的Assembly X如果發生變化,Assembly X的Application Bar不會受到任何影響。這種方法聽起來好象以前一台機器上同一個DLL的多個拷貝,的確是這樣。不過你不會遇到應用程序查找Windows\System32目錄的問題。

由於.Net不使用注冊表,很多應用都可以用簡單的拷貝命令來完成,通常沒有必要開發安裝程序。此外,應用程序不會瑣定assembly,所以升級DLL的時候不必關閉應用程序。

3.Web服務支持
在流行的Web服務方面,微軟發揮著重要的作用,而.Net為開發Web服務帶來了前所未有的便利。用Notepad就可以建立簡單的Web服務,甚至不必利用編譯器,只要對它們進行簡單的調用即可,因為.Net會對它們進行編譯,甚至提供一個測試頁供用戶檢驗其功能。.Net 擁有所有必需的渠道,可以生成用戶所需的所有文件,比如WSDL文件。

.Net也是一個聰明的Web服務使用者:只要設置了指向某個Web服務的索引,你就可以把它當作本地的assembly。你可以獲得完整的Intel許可和功能實現幫助。

Web服務對於發送數據是非常重要的,感謝ADO.Net,Web服務可以利用簡單或者復雜的數據,並以XML格式把它們發送到任何客戶端,最後設置一個鏈接,指回到一個描述數據模式的XSD。

4.用於所有.Net語言的標准工具
最終,你會擁有一個適用於所有語言的集成工具集。你會擁有一個統一的IDE、調試工具以及其它類似的工具。因此,其它公司可以把他們的語言嵌入IDE環境,並獲得.Net工具所有的支持。比如富士通開發了netCOBOL .Net,它已經直接集成到IDE中,因此可以用 COBOL編寫Web服務和Windows應用並獲得微軟提供的調試和profiling(監管)工具。

.Net是個開放的架構,所以其它廠商也可以提供自己的工具。比如Borland,該公司已經宣布其下一版Delphi將具有建立.Net應用的功能,同時它也保證,Delphi會擁有自己的IDE,不會嵌入Visual Studio .Net。

5.對移動設備的支持
Visual Studio .Net發布不久,微軟就推出了移動Internet工具包(Microsoft Mobile Internet Toolkit ,MMIT),以便用.Net構建移動應用。該工具包提供了可視化功能,你可以直觀地拖動和下拉麵向移動設備的窗體和控制項。該工具包有利於正確書寫標記語言(比如WML、WAP等等)。

.Net簡化架構(.Net Compact Framework)不久就會面市,它是.Net架構的縮略版,設計用於Pocket PC設備。有了這個架構,開發人員就可以開發出豐富的Pocket PC計算機應用。你可以編寫一個運行於小型設備上的應用,比如用於Pocket PC設備或者具有Web功能的手機。事實上,MMIT包含了很多模擬程序,它們使用了真正為這類設備編寫的ROM代碼,所以在你的應用程序投入使用之前,可以首先測試其用於此類設備時的性能。

6.代碼管理
.Net管理用戶的代碼,從很多方面看,這一點都是很重要的,比如減少bug以及構建更多可擴展的應用。.Net可以處理以下操作:內存分配和回收,進程及線程的創建和終止,以及運行代碼的訪問許可。

VB開發人員先前面臨的問題——比如內存管理、線程和進程創建——現在都可以由.Net來處理。而C++程序員可以轉向C#,.Net代替他們處理這些操作後,內存泄露和其它bug出現的可能性將大大減少。擁有了被管理的代碼,你可以訪問.Net所有跨語言的能力。

7.平台獨立
雖然.Net是為微軟的操作系統創建的,但是微軟的確為ECMA標准委員會發布了一部分框架和C#。比如,Mono project實現了Linux的.Net,包括架構和C#編譯器。這意味著很多應用(特別是基於Web的應用)一次編寫完成後就可以運行於多種平台上。

8.充足的學習資源
.Net的學習曲線非常重要,可能.Net的方面的書要比其它所有編程技術的書都多。此外,微軟和第三方團體開設了很多課程,可以讓開發人員很快就上手。最後,很多網站為開發人員員學習.Net提供了技術和指導。

9.現代化語言
VB.Net和C#都是現代化的語言。它們完全是面向對象的,設計的時候消除了很多VB 和C++的矛盾。這兩種語言使用了多層式架構 (n-tier),這是一種基於組件的方法。

比如,C#取消了指針和其它一些結構,它們曾經給C++程序員(特別是新手)帶來很多嚴重的問題。代碼由.Net架構管理後,VB.Net 和C#都從中受益。這個架構還包括一些基礎的對象,它們是開發多線程、支持XML等應用所必須的。

10.跨語言標准基本類型
VB開發人員曾經面臨一個致命的問題:VB中的字元串與C++中的字元串不同,所以調用Windows API函數的時候會出現一些問題。.Net確定了所有類型的標準定義,所以VB中的字元串和C#中的字元串相同,也和netCOBOL .Net中的字元串相同。這意味著你再也不必擔心語言A中的整型數據是32位而語言B中只有16位。你可以確信不同語言的數據類型都相同,可以更好地進行跨語言集成。

優點多於缺點
.Net具有很多明顯的優點,可以提高開發人員的效率,減少bug,加快應用開發並簡化使用。IT人員對.Net保持了應有的警惕,因為它畢竟還是個新事物,需要有一個比較艱難的學習曲線。但是對於大多數組織而言,其優點遠遠多於缺點。有了.Net,你可以在未來的開發項目中贏得更高的生產力。

⑷ centos7安裝 java 顯示java -version成功 但javac命令找不到

  1. java你是通過什麼方式安裝的
  2. rpm包?tar包解壓?
  3. 確定你是否安裝的jdk
  4. 先找到javac的命令所在位置
  5. 配置環境變數後需要重啟或者source
  6. 希望可以幫助你,請採納

⑸ Java與.net的優勢缺點

c#的一些特徵:
完全支持類和面向對象編程,包括介面和繼承、虛函數和運算符重載的處理。
定義完整、一致的基本類型集。
對自動生成XML文檔說明的內置支持。
自動清理動態分配的內存。
可以用用戶定義的特性來標記類或方法。這可以用於文檔說明,對編譯有一定的影響(例如,把方法標記為只在調試時編譯)。
對.NET基類庫的完全訪問權,並易於訪問Windows API。
可以使用指針和直接內存訪問,但C#語言可以在沒有它們的條件下訪問內存。
以VB的風格支持屬性和事件。
改變編譯器選項,可以把程序編譯為可執行文件或.NET組件庫,該組件庫可以用與ActiveX控制項(COM組件)相同的方式由其他代碼調用。
C#可以用於編寫ASP.NET動態Web頁面和XML Web服務。
對於上述大多數特性,VB.NET和Managed C++也具備。但C#從一開始就使用.NET,對.NET特性的支持不僅是完整的,而且提供了比其他語言更合適的語法。

JAVA是解釋型語言,運行速度效率極低,不支持底層操作! (致命)
Java一般不用於建立大型項目。
JAVA取消了指針操作,不夠C語言那樣靈活。(既是優點,又是缺點)
區別:c#吸收了JAVA和c++的一些特點,如果有時間的話應該了解C++的基礎知識,這樣對於學JAVA和c#都有幫助,至於JAVA和C#哪個更好,是開發習慣問題了,JAVA入門比較難,但是基礎知識只要牢固了提高更快,C#入門很容易,但是要提高很難.

⑹ Java有沒有這樣的命令行參數工具

Java 命令行工具總結
1、命令
C/Documents and Settings/Zianed>ls 『%JAVA_HOME%』/bin
HtmlConverter.exe javap.exe jstatd.exe rmid.exe
appletviewer.exe javaw.exe jvisualvm.exe rmiregistry.exe
apt.exe javaws.exe keytool.exe schemagen.exe
beanreg.dll jconsole.exe kinit.exe serialver.exe
extcheck.exe jdb.exe klist.exe servertool.exe
idlj.exe jhat.exe ktab.exe tnameserv.exe
jar.exe jinfo.exe msvcr71.dll unpack200.exe
jarsigner.exe jli.dll native2ascii.exe wsgen.exe
java-rmi.exe jmap.exe orbd.exe wsimport.exe
java.exe jps.exe pack200.exe xjc.exe
javac.exe jrunscript.exe packager.exe
javadoc.exe jstack.exe policytool.exe
javah.exe jstat.exe rmic.exe
需要獲得其中的幫助使用XX -help即可
Basic Tools
These tools are the foundation of the JDK. They are the tools you use to create and build applications.
Tool Name Brief Description Links to Reference Pages
javac The compiler for the Java programming language. [Solaris and Linux ] [Windows ]
java The launcher for Java applications. In this release, a single launcher is used both for development and deployment.
The old deployment launcher, jre , is no longer provided. [Solaris and Linux ] [Windows ]
javadoc API documentation generator.
See Javadoc Tool page for doclet and taglet APIs. [Solaris and Linux ] [Windows ]
apt Annotation processing tool.
See Annotation Processing Tool for program annotation processing. [Solaris, Linux, and Windows ]
appletviewer Run and debug applets without a web browser. [Solaris and Linux ] [Windows ]
jar Create and manage Java Archive (JAR) files.
See Java Archive Files page for the JAR specification. [Solaris and Linux ] [Windows ]
jdb The Java Debugger.
See JPDA for the debugger architecture specifications. [Solaris and Linux ] [Windows ]
javah C header and stub generator. Used to write native methods. [Solaris and Linux ] [Windows ]
javap Class file disassembler [Solaris and Linux ] [Windows ]
extcheck Utility to detect Jar conflicts. [Solaris and Linux ] [Windows ]
--------------------------------------------------------------------------------
Monitoring and Management Tools
You can use the following tools to monitor JVM performance and resource consumption. The tools described in this section are unsupported and experimental , and should be used with that in mind. They may not be available in future JDK versions.

Platform support:

•jconsole: all platforms.
•jps, jstat, and jstatd: all platforms except Windows 98 and Windows ME.
For more information, see Monitoring and Management for the Java Platform .

Tool Name Brief Description
jconsole Experimental : Java Monitoring and Management Console – JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs.
jps Experimental : JVM Process Status Tool – Lists instrumented HotSpot Java virtual machines on a target system.
jstat Experimental : JVM Statistics Monitoring Tool – Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options.
jstatd Experimental : JVM jstat Daemon – Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides a interface to allow remote monitoring tools to attach to Java virtual machines running on the local system.

--------------------------------------------------------------------------------

Troubleshooting Tools
The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.

These tools are not currently available on Windows platforms .

Tool Name Brief Description
jinfo Experimental – Configuration Info for Java – Prints configuration information for for a given process or core file or a remote debug server.
jmap Experimental – Memory Map for Java – Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server.
jsadebugd Experimental – Serviceability Agent Debug Daemon for Java – Attaches to a process or core file and acts as a debug server.
jstack Experimental – Stack Trace for Java – Prints a stack trace of threads for a given process or core file or remote debug server.

2 、命令簡單介紹

2.1 HtmlConverter

2.2 appletviewer

查看Applet程序的運行結果。

2.3 apt

2.4 extcheck

2.5 idlj

2.6 jar

將一個文件打成jar包,以提供給給程序,方便使用。

bash-3.2$ jar -help

非法選項:h

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files …

選項包括:

-c 創建新的歸檔文件

-t 列出歸檔目錄

-x 解壓縮已歸檔的指定(或所有)文件

-u 更新現有的歸檔文件

-v 在標准輸出中生成詳細輸出

-f 指定歸檔文件名

-m 包含指定清單文件中的清單信息

-e 為捆綁到可執行 jar 文件的獨立應用程序

指定應用程序入口點

-0 僅存儲;不使用任何 ZIP 壓縮

-M 不創建條目的清單文件

-i 為指定的 jar 文件生成索引信息

-C 更改為指定的目錄並包含其中的文件

如果有任何目錄文件,則對其進行遞歸處理。

清單文件名、歸檔文件名和入口點名的指定順序

與 「m」、」f」 和 「e」 標志的指定順序相同。

示例 1:將兩個類文件歸檔到一個名為 classes.jar 的歸檔文件中:

jar cvf classes.jar Foo.class Bar.class

示例 2:使用現有的清單文件 「mymanifest」 並

將 foo/ 目錄中的所有文件歸檔到 「classes.jar」 中:

jar cvfm classes.jar mymanifest -C foo/ .

bash-3.2$ jar -cvf zianed.jar *.class

標明清單(manifest)

增加:A.class(讀入= 112) (寫出= 105)(壓縮了 6%)

增加:B.class(讀入= 246) (寫出= 184)(壓縮了 25%)

bash-3.2$

2.7 jarsigner

2.8 java-rmi

2.9 java

執行java語言,期中包括了一部分的java執行可以使用和引入的參數;也包括了部分執行時的信息收集信息。

bash-3.2$ java -version

java version 「1.6.0_10″

Java(TM) SE Runtime Environment (build 1.6.0_10-b33)

Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode)

2.10 javac

java編譯器,將java源文件編譯成可以供jvm執行的二進制class文件。

bash-3.2$ javac -version

javac 1.6.0_10

2.11 javadoc

根據源文件生成java的doc文檔API。

2.12 javah

bash-3.2$ cd zianed

bash-3.2$ ls B.*

B.class B.java

bash-3.2$ cd ..

bash-3.2$ javah zianed.B

bash-3.2$ ls

zianed zianed_B.h

bash-3.2$

2.13 javap

將java位元組碼文件進行反編譯的工具。

bash-3.2$ javap zianed.B

Compiled from 「B.java」

public class zianed.B extends java.lang.Object implements zianed.A{

public zianed.B();

public void print();

public native java.lang.String getInfo();

}

bash-3.2$

2.14 javaw

The javaw command is identical to java , except that with javaw there is no associated console window. Use javaw when you don』t want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails for some reason.

2.15 javaws:

2.16 jconsole

Java Monitoring and Management Console

啟動java進程監控和管理控制台。監控和分析jvm的運行情況。

用法: jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ...]

-interval 將更新間隔時間設置為 n 秒(默認值為 4 秒)

-notile 最初不平鋪顯示窗口(對於兩個或更多連接)

-pluginpath 指定 jconsole 用於查找插件的路徑

-version 輸出程序版本

connection = pid || host:port || JMX URL (service:jmx:<protocol>://…)

pid 目標進程的進程 ID

host 遠程主機名或 IP 地址

port 用於遠程連接的埠號

-J 對正在運行 jconsole 的 Java 虛擬機指定輸入參數

Options are mutually exclusive. Option, if used, should follow immediately after the command name.

jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server.

bash-3.2$ jstack -help

The jstatd tool is an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines (JVMs) and provides a interface to allow remote monitoring tools to attach to JVMs running on the local host.

bash-3.2$ jstatd –help

Virtual Machine jstat Daemon

usage: jstatd [-nr] [-p port] [-n rminame]

2.26 jvisualvm

啟動VisualVM查看VM狀態。

bash-3.2$ jvisualvm &

[1] 3660

bash-3.2$

2.27 keytool

2.28 kinit

2.29 klist

2.30 ktab

2.31 native2ascii

對文件轉換編碼。

用法:native2ascii [-reverse] [-encoding 編碼] [輸入文件 [輸出文件]]

2.32 orbd

2.33 pack200

2.34 packager

2.35 polocytool

2.36 rmic

2.37 rmid

2.38 rmiregisty

2.39 schemagen

2.40 serialver

2.41 servertool

2.42 tnameserv

2.43 unpack200

2.44 wsgen

2.45 wsimport

2.46 xjc
3、jvm的部分參數
也就是在啟動Java虛擬機、或者執行JAVA時應該添加的程序。
Windows平台下在以下路徑下存在參數說明。
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs rece use of OS signals by Java/VM (see documentation)
-Xcheckjni perform additional checks for JNI functions
-Xshareoff do not attempt to use shared class data
-Xshareauto use shared class data if possible (default)
-Xshareon require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.
5 、最常用的工具
javac Java源代碼編譯工具

⑺ jdk怎麼用啊

D:Javajdk1.5.0in 目錄下都是jdk的工具,使用java編程主要用到的是javac.exe、java.exe這兩個命令行工具。具體使用步驟如下:

1、配置java系統環境變數:新建文本文件,復制下面代碼,然後另存為jdk.bat文件。 @echo setx /M JAVA_HOME "D:Javajdk1.5.0" setx /M CLASSPATH ".;%%JAVA_HOME%%lib;%%JAVA_HOME%%lib ools.jar;" setx /M PATH "%PATH%;%%JAVA_HOME%%in;%%JAVA_HOME%%jrein;" pause

⑻ javaSDK1.5.0裡面的BIN文件夾下面的程序具體是干什麼的

都要說嗎?汗死~~
還是自己看doc吧,google一下也多得是啊!

⑼ JAVA與.net的優點,及缺點,他們的比較

1.Java 是 簡 單 的

Java 與 C++ 極 為 相 似, 但 卻 簡 單 得 多。 高 級 編 程 語 言 的 所 有 特 性 中,
不 是 絕 對 需 要 的 都 已 刪 去 了。 例 如, Java 沒 有 算 符 過 載、 標 題 文 件、
預 處 理、 指 針 運 算、 結 構、 聯 合、 多 維 數 組、 模 板 及 隱 式 類 型 變 換。 如
果 你 知 道 一 點 C、 C++ 或 Pascal, 你 很 快 就 會 駕 馭 Java。 這 里 是 一 個 簡 單 的 Java Hello World 程 序:

public class HelloInternet {

public static void main(String argv[]) {

System.out.println(「Hello In-ternet!」)

}

}
2.Java 是 面 向 對 象 的

Java 是 一 種 面 向 對 象 的 編 程 語 言。 除 了 簡 單 的 類 型, 如 數 字 和 布 爾 算
子 之 外, Java 中 的 大 部 分 都 是 對 象。

正 如 任 何 面 向 對 象 的 語 言 一 樣, Java 代 碼 也 按 類 組 織。 每 個 類 定 義 一
組 規 定 對 象 行 為 的 方 法。 一 個 類 可 以 繼 承 另 一 個 類 的 行 為。 在 類 的
根 層 次 上, 通 常 是 類 對 象。

Java 支 持 單 繼 承 類 層 次 結 構。 這 就 是 說, 每 個 類 一 次 只 能 繼 承 一 個 別
的 類。 有 些 語 言 允 許 多 繼 承 性, 但 這 可 能 造 成 混 亂, 使 語 言 不 必 要 地
復 雜 化。 例 如, 難 以 想 像, 一 個 對 象 會 繼 承 兩 個 完 全 不 同 的 類 的 行
為。

Java 還 支 持 摘 要 類 的 接 口。 這 允 許 編 程 人 員 先 定 義 接 口 的 方 法, 而 不
必 急 於 馬 上 確 定 方 法 的 實 現。 一 個 類 可 以 施 行 多 個 接 口, 從 而 具 有
真 正 多 繼 承 性 的 許 多 優 點。 一 個 對 象 也 可 實 施 任 意 數 量 的 接 口。 Java
接 口 與 IDL 接 口 極 其 相 似。 很 容 易 建 立 IDLJ 編 譯 器。 這 就 是 說, Java 可
用 於 CORBA 對 象 系 統 來 建 立 分 布 式 對 象 系 統。 鑒 於 在 許 多 計 算 機 系 統
中 都 采 用 IDL 接 口 和 CORBA 對 象 系 統, 這 種 兼 容 性 是 重 要 的。

3.Java 是 靜 態 類 型 的

在 一 個 Java 程 序 中, 必 須 定 義 所 用 對 象 (數 字、 字 符、 數 組 等) 的 類 型。
這 有 助 於 編 程 人 員 很 快 發 現 問 題, 因 為 當 程 序 編 譯 時 可 以 檢 測 類 型
錯 誤。

不 過, Java 系 統 中 的 對 象 也 有 動 態 類 型。 要 求 一 個 對 象 為 動 態 類 型 往
往 是 可 能 的, 所 以 編 程 人 員 寫 的 程 序 可 以 對 不 同 類 型 的 對 象 做 不 同
的 事。

4.Java 是 編 譯 型 的

當 運 行 Java 程 序 時, 它 首 先 被 編 譯 成 字 節 代 碼。 字 節 代 碼 非 常 類 似 於
機 器 指 令, 所 以 Java 程 序 非 常 高 效。 然 而, 字 節 代 碼 並 不 專 對 一 種 特
定 的 機 器, 所 以 Java 程 序 無 需 重 新 編 譯 便 可 在 眾 多 不 同 的 計 算 機 上
執 行。

Java 源 程 序 被 編 譯 成 類 文 件, 它 相 當 於 程 序 的 字 節 代 碼 表 現。 在 一 個
Java 類 文 件 中, 所 有 對 方 法 及 實 例 變 量 的 參 照 均 按 名 進 行, 並 在 第 一
次 執 行 代 碼 時 加 以 分 辨。 這 使 得 代 碼 更 通 用, 更 不 易 受 修 改 的 影 響,
而 仍 具 高 效。

5.Java 是 體 系 結 構 中 立 的

Java 語 言 對 每 種 計 算 機 都 一 樣。 比 如, 簡 單 的 類 型 都 是 不 變 的: 整 數
總 是 32 位, 長 整 數 總 是 64 位。 令 人 奇 怪 的 是, 諸 如 C 及 C++ 等 時 髦 的
編 程 語 言 卻 不 是 這 樣。 由 於 這 些 語 言 定 義 如 此 自 由, 每 種 編 譯 器 及
開 發 環 境 便 各 有 不 同 了, 這 使 程 序 的 移 植 成 為 討 厭 的 問 題。 Java 程 序
的 移 植 卻 很 容 易, 而 且 不 需 要 進 行 重 新 編 譯。

6.Java 是 健 全 的

Java 程 序 不 可 能 造 成 計 算 機 崩 潰。 Java 系 統 仔 細 檢 測 對 內 存 的 每 次
訪 問, 確 認 它 是 合 法 的, 而 且 不 致 引 起 任 何 問 題。
不 過, 即 使 Java 程 序 也 可 能 有 錯 誤。 如 果 出 現 某 種 出 乎 意 料 之 事, 程
序 不 會 崩 潰, 而 把 該 例 外 拋 棄。 程 序 會 發 現 這 類 例 外, 並 加 以 處 理。
傳 統 的 程 序 可 以 訪 問 計 算 機 的 全 部 內 存。 程 序 可 能 (無 意 識 地) 修 改
內 存 中 的 任 何 值, 這 就 會 造 成 問 題。 Java 程 序 只 能 訪 問 內 存 中 允 許 它
們 訪 問 的 那 些 部 分, 所 以 Java 程 序 不 可 能 修 改 不 擬 修 改 的 值。

7.Java 是 小 巧 的

由 於 Java 的 設 計 是 要 在 小 的 計 算 機 上 運 行, 作 為 一 種 編 程 語 言 來 說
其 系 統 是 相 對 較 小 的。 它 能 有 效 地 在 4MB 以 上 RAM 的 PC 機 上 運 行。 Java
翻 譯 器 只 占 用 幾 百 KB。 這 種 翻 譯 器 對 Java 的 平 台 無 關 性 和 可 移 植 性
是 可 靠 的。

由 於 Java 很 小, 它 對 內 存 很 小 的 計 算 機, 如 基 於 Java 的 PC 機, 以 及 電
視 機、 烤 箱、 電 話 機 及 家 用 計 算 機 等, 是 很 理 想 的。

8.Java 是 多 線 程 的

Java 程 序 可 以 執 行 一 個 以 上 的 線 程。 比 如, 它 可 以 在 一 個 線 程 中 完 成
某 一 耗 時 的 計 算, 而 其 它 線 程 與 用 戶 進 行 交 互 對 話。 所 以 用 戶 不 必
停 止 工 作, 等 待 Java 程 序 完 成 耗 時 的 計 算。

在 多 線 程 環 境 中 的 編 程 通 常 是 困 難 的, 因 為 許 多 東 西 可 能 同 時 出
現。 但 是, Java 提 供 了 易 於 使 用 的 同 步 特 性, 使 編 程 更 為 方 便。

Java 線 程 通 常 被 映 射 為 實 際 的 操 作 系 統 線 程, 只 要 底 層 操 作 系 統 支
持 這 種 映 射。 因 此, 用 Java 寫 的 應 用 程 序 可 說 是 「MP 熱」。 這 就 是 說,
如 果 它 們 在 多 處 理 器 機 器 上 運 行, 它 們 更 將 表 現 不 凡。

9.Java 是 可 收 集 無 用 的 存 儲 單 元 的

用 C 及 C++ 寫 軟 件 的 編 程 人 員 必 須 仔 細 跟 蹤 所 用 的 內 存 塊。 當 一 個 塊
不 再 使 用 時, 他 們 務 必 讓 程 序 釋 放 它, 從 而 方 可 再 用。 在 大 的 項 目
中, 這 可 能 很 困 難, 並 往 往 成 為 出 錯 和 內 存 不 足 的 根 源。

在 Java 的 情 況 下, 編 程 人 員 不 必 為 內 存 管 理 操 心。 Java 系 統 有 一 個 叫
做 「無 用 單 元 收 集 器」 的 內 置 程 序, 它 掃 描 內 存, 並 自 動 釋 放 那 些 不
再 使 用 的 內 存 塊。

10.Java 是 快 速 的

Java 比 典 型 的 腳 本 語 言 大 為 有 效, 但 它 比 C 慢 20 倍。 這 對 大 多 數 應 用
是 可 接 受 的。

不 久 的 將 來, 代 碼 生 成 器 就 可 供 利 用 了, 這 將 使 Java 程 序 幾 近 於 用 C
或 C++ 編 寫 的 程 序 那 么 快。

11.Java 是 安 全 的

Java 程 序 沒 有 指 針, 而 且 象 這 樣 的 字 節 代 碼 程 序 強 在 類 型 上, 所 以 在
執 行 之 前 它 可 能 驗 證 Java 程 序。 被 驗 證 的 Java 程 序 得 以 保 證 不 突 破
Java 語 言 的 任 何 限 制, 而 且 可 以 安 全 地 執 行。 Java 字 節 代 碼 驗 證 被
Web 瀏 覽 器 用 來 確 保 小 程 序 不 含 病 毒。

12.Java 是 可 擴 展 的

Java 程 序 可 與 用 其 它 語 言 編 寫 的 現 存 程 序 庫 連 接。 由 於 Java 數 據 結
構 與 C 的 數 據 結 構 的 類 型 極 為 相 似, 這 是 相 當 方 便 的。 最 大 的 問 題 在
於, 現 有 多 線 程 程 序 庫 為 數 不 多。

Java 程 序 可 以 聲 明 某 些 方 法 是 內 部 的, 然 後, 把 這 些 內 部 方 法 映 射 成
軟 件 庫 所 定 義 的 功 能, 從 而 動 態 地 鏈 接 到 虛 擬 機

--------------------------------------------------------------------
1.標准集成:XML、SOAP及其它
過去,微軟的體系結構建立在COM/DCOM基礎上,COM/DCOM是進程間通信的二進制標准。雖然這個標准本身沒有什麼失誤,但是它與微軟以外的領域格格不入。也就是說,這個標准成了實現與其它軟體平台互操作的瓶頸。

除此之外,數據也是一個問題。雖然ADO簡化了數據訪問,但是把數據從一個地方傳送到另外一個地方就成了問題。ADO Recordset(記錄集)對象是一個存儲了數據的二進制結構,而這種二進制格式對於非微軟的平台沒有任何意義。

.Net彌補了這些缺陷,因為它完全基於標准。比如,數據用XML的格式通過進程邊界,而這個數據有一個到XSD的連接,所以任何客戶端都可以正確地轉化數據。

SOAP基於XML,用於與Web服務的通信。集成SOAP以後,不管客戶端運行的是不是微軟的操作系統,都可以實現簡單的可編程訪問。

2.簡化應用
COM所面臨的一個頭痛的問題就是應用。COM利用Windows注冊表來定位機器上的組件。這個想法是不錯的:每個注冊的組件只有一個實例,所有的應用程序都使用相同的版本。COM具有向後兼容性,也就是說新版本兼容老版本,但是開發人員可能會破壞這種兼容性。

.Net則採用了不同的方法:它根本就沒有使用注冊表。相反,微軟的建議是每個應用程序使用自己局部的組件(在.Net稱為「assembly」)。利用這種方法,用於應用程序Foo的Assembly X如果發生變化,Assembly X的Application Bar不會受到任何影響。這種方法聽起來好象以前一台機器上同一個DLL的多個拷貝,的確是這樣。不過你不會遇到應用程序查找Windows\System32目錄的問題。

由於.Net不使用注冊表,很多應用都可以用簡單的拷貝命令來完成,通常沒有必要開發安裝程序。此外,應用程序不會瑣定assembly,所以升級DLL的時候不必關閉應用程序。

3.Web服務支持
在流行的Web服務方面,微軟發揮著重要的作用,而.Net為開發Web服務帶來了前所未有的便利。用Notepad就可以建立簡單的Web服務,甚至不必利用編譯器,只要對它們進行簡單的調用即可,因為.Net會對它們進行編譯,甚至提供一個測試頁供用戶檢驗其功能。.Net 擁有所有必需的渠道,可以生成用戶所需的所有文件,比如WSDL文件。

.Net也是一個聰明的Web服務使用者:只要設置了指向某個Web服務的索引,你就可以把它當作本地的assembly。你可以獲得完整的Intel許可和功能實現幫助。

Web服務對於發送數據是非常重要的,感謝ADO.Net,Web服務可以利用簡單或者復雜的數據,並以XML格式把它們發送到任何客戶端,最後設置一個鏈接,指回到一個描述數據模式的XSD。

4.用於所有.Net語言的標准工具集
最終,你會擁有一個適用於所有語言的集成工具集。你會擁有一個統一的IDE、調試工具以及其它類似的工具。因此,其它公司可以把他們的語言嵌入IDE環境,並獲得.Net工具所有的支持。比如富士通開發了netCOBOL .Net,它已經直接集成到IDE中,因此可以用 COBOL編寫Web服務和Windows應用並獲得微軟提供的調試和profiling(監管)工具。

.Net是個開放的架構,所以其它廠商也可以提供自己的工具。比如Borland,該公司已經宣布其下一版Delphi將具有建立.Net應用的功能,同時它也保證,Delphi會擁有自己的IDE,不會嵌入Visual Studio .Net。

5.對移動設備的支持
Visual Studio .Net發布不久,微軟就推出了移動Internet工具包(Microsoft Mobile Internet Toolkit ,MMIT),以便用.Net構建移動應用。該工具包提供了可視化功能,你可以直觀地拖動和下拉麵向移動設備的窗體和控制項。該工具包有利於正確書寫標記語言(比如WML、WAP等等)。

.Net簡化架構(.Net Compact Framework)不久就會面市,它是.Net架構的縮略版,設計用於Pocket PC設備。有了這個架構,開發人員就可以開發出豐富的Pocket PC計算機應用。你可以編寫一個運行於小型設備上的應用,比如用於Pocket PC設備或者具有Web功能的手機。事實上,MMIT包含了很多模擬程序,它們使用了真正為這類設備編寫的ROM代碼,所以在你的應用程序投入使用之前,可以首先測試其用於此類設備時的性能。

6.代碼管理
.Net管理用戶的代碼,從很多方面看,這一點都是很重要的,比如減少bug以及構建更多可擴展的應用。.Net可以處理以下操作:內存分配和回收,進程及線程的創建和終止,以及運行代碼的訪問許可。

VB開發人員先前面臨的問題——比如內存管理、線程和進程創建——現在都可以由.Net來處理。而C++程序員可以轉向C#,.Net代替他們處理這些操作後,內存泄露和其它bug出現的可能性將大大減少。擁有了被管理的代碼,你可以訪問.Net所有跨語言的能力。

7.平台獨立
雖然.Net是為微軟的操作系統創建的,但是微軟的確為ECMA標准委員會發布了一部分框架和C#。比如,Mono project實現了Linux的.Net,包括架構和C#編譯器。這意味著很多應用(特別是基於Web的應用)一次編寫完成後就可以運行於多種平台上。

8.充足的學習資源
.Net的學習曲線非常重要,可能.Net的方面的書要比其它所有編程技術的書都多。此外,微軟和第三方團體開設了很多課程,可以讓開發人員很快就上手。最後,很多網站為開發人員員學習.Net提供了技術和指導。

9.現代化語言
VB.Net和C#都是現代化的語言。它們完全是面向對象的,設計的時候消除了很多VB 和C++的矛盾。這兩種語言使用了多層式架構 (n-tier),這是一種基於組件的方法。

比如,C#取消了指針和其它一些結構,它們曾經給C++程序員(特別是新手)帶來很多嚴重的問題。代碼由.Net架構管理後,VB.Net 和C#都從中受益。這個架構還包括一些基礎的對象,它們是開發多線程、支持XML等應用所必須的。

10.跨語言標准基本類型
VB開發人員曾經面臨一個致命的問題:VB中的字元串與C++中的字元串不同,所以調用Windows API函數的時候會出現一些問題。.Net確定了所有類型的標準定義,所以VB中的字元串和C#中的字元串相同,也和netCOBOL .Net中的字元串相同。這意味著你再也不必擔心語言A中的整型數據是32位而語言B中只有16位。你可以確信不同語言的數據類型都相同,可以更好地進行跨語言集成。

優點多於缺點
.Net具有很多明顯的優點,可以提高開發人員的效率,減少bug,加快應用開發並簡化使用。IT人員對.Net保持了應有的警惕,因為它畢竟還是個新事物,需要有一個比較艱難的學習曲線。但是對於大多數組織而言,其優點遠遠多於缺點。有了.Net,你可以在未來的開發項目中贏得更高的生產力。

⑽ Java語言的12大特色

1.Java是簡單的

Java與C++極為相似,但卻簡單得多。高級編程語言的所有特性中,不是絕對需要的都已刪去了。例如,Java沒有算符過載、標題文件、預處理、指針運算、結構、聯合、多維數組、模板及隱式類型變換。如果你知道一點C、C++或Pascal,你很快就會駕馭Java.這里是一個簡單的 JavaHelloWorld程序:

publicclassHelloInternet{publicstaticvoidmain(Stringargv[]){System.out.println(「HelloIn-ternet!」)}}

2.Java是面向對象的

Java是一種面向對象的編程語言。除了簡單的類型,如雹緩數字和布爾運算元之外,Java中的大部分都是對象。

正如任何面向對象的語言一樣,Java代碼也按類組織。每個類定義一組規定對象行為的方法。一個類可以繼承另一個類的行為。在類的根層次上,通常是類對象。

Java支持單繼承類層次結構。這就是說,每個類一次只能繼承一個別的類。有些語言允許擾升多繼承性,但這可能造成混亂,使語言不必要地復雜化。例如,難以想像,一個對象會繼承兩個完全不同的類的行為。

Java還支持摘要類的介面。這允許編程人員先定義介面的方法,而不必急於馬上確定方法的實現。一個類可以施行多個介面,從而具有真正多繼承性的許多優點。一個對象也可實施任意數量的介面。Java介面與IDL介面極其相似。很容易建立IDLJ編譯器。這就是說,Java可用於CORBA對象系統來建立分布式對象系統。鑒於在許多計算機系統中都採用IDL介面和CORBA對象系統,這種兼容性是重要的。

3.Java是靜態類型的

在一個Java程序中,必須定義所用對象(數字、字元、數組等)的類型。這有助於編程人員很快發現問題,因為當程序編譯時可以檢測類型錯誤。

不過,Java系統中的對象也有動態類型。要求一個對象為動態類型往往是可能的,所以編程人員寫的程序可以對不同類型的對象做不同的事。

4.Java是編譯型的

當運行Java程序時,它首先被編譯成位元組代碼。位元組代碼非常類似於機器指令,所以Java程序非常高效。然而,位元組代碼並不專對一種特定的機器,所以Java程序無需重新編譯便可在眾多不同的計算機上執行。

Java源程序被編譯成類文件,它相當於程序的位元組代碼表現。在一個Java類文件中,所有對方法及實例變數的參照均按名進行,並在第一次執行代碼時加以分辨。這使得代碼更通用,更不易受修改的影響,而仍具高效。

5.Java是體系結構中立的

Java語言對每種計算機都一樣。比如,簡單的類型都是不變的:整數總是32位,長整數總是64位。令人奇怪的是,諸如C及C++等時髦的編程語言卻不是這樣。由於這些語言定義如此自由,每種編譯器及開發環境便各有不同了,這使程序的移植成為討厭的問題。Java程序的移植卻很容易,而且不源李模需要進行重新編譯。

6.Java是健全的

Java程序不可能造成計算機崩潰。Java系統仔細檢測對內存的每次訪問,確認它是合法的,而且不致引起任何問題。

不過,即使Java程序也可能有錯誤。如果出現某種出乎意料之事,程序不會崩潰,而把該例外拋棄。程序會發現這類例外,並加以處理。

傳統的程序可以訪問計算機的全部內存。程序可能(無意識地)修改內存中的任何值,這就會造成問題。Java程序只能訪問內存中允許它們訪問的那些部分,所以Java程序不可能修改不擬修改的值。

7.Java是小巧的

由於Java的設計是要在小的計算機上運行,作為一種編程語言來說其系統是相對較小的。它能有效地在4MB以上RAM的PC機上運行。Java翻譯器只佔用幾百KB.這種翻譯器對Java的平台無關性和可移植性是可靠的。

由於Java很小,它對內存很小的計算機,如基於Java的PC機,以及電視機、烤箱、電話機及家用計算機等,是很理想的。

8.Java是多線程的

Java程序可以執行一個以上的線程。比如,它可以在一個線程中完成某一耗時的計算,而其它線程與用戶進行交互對話。所以用戶不必停止工作,等待Java程序完成耗時的計算。

在多線程環境中的編程通常是困難的,因為許多東西可能同時出現。但是,Java提供了易於使用的同步特性,使編程更為方便。

Java線程通常被映射為實際的操作系統線程,只要底層操作系統支持這種映射。因此,用Java寫的應用程序可說是「MP熱」。這就是說,如果它們在多處理器機器上運行,它們更將表現不凡。

9.Java是可收集無用的存儲單元的

用C及C++寫軟體的編程人員必須仔細跟蹤所用的內存塊。當一個塊不再使用時,他們務必讓程序釋放它,從而方可再用。在大的項目中,這可能很困難,並往往成為出錯和內存不足的根源。

在Java的情況下,編程人員不必為內存管理操心。Java系統有一個叫做「無用單元收集器」的內置程序,它掃描內存,並自動釋放那些不再使用的內存塊。

10.Java是快速的

Java比典型的腳本語言大為有效,但它比C慢20倍。這對大多數應用是可接受的。

不久的將來,代碼生成器就可供利用了,這將使Java程序幾近於用C或C++編寫的程序那麼快。

11.Java是安全的

Java程序沒有指針,而且象這樣的位元組代碼程序強在類型上,所以在執行之前它可能驗證Java程序。被驗證的Java程序得以保證不突破Java語言的任何限制,而且可以安全地執行。Java位元組代碼驗證被Web瀏覽器用來確保小程序不含病毒。

12.Java是可擴展的

Java程序可與用其它語言編寫的現存程序庫連接。由於Java數據結構與C的數據結構的類型極為相似,這是相當方便的。的問題在於,現有多線程程序庫為數不多。

Java程序可以聲明某些方法是內部的,然後,把這些內部方法映射成軟體庫所定義的功能,從而動態地鏈接到虛擬機。

閱讀全文

與javaidlj相關的資料

熱點內容
桌面雲配置文件分離 瀏覽:505
iphone5如何升級4g網路 瀏覽:5
團購是在哪個app 瀏覽:897
打開多個word文檔圖片就不能顯示 瀏覽:855
騰訊新聞怎麼切換版本 瀏覽:269
app安裝失敗用不了 瀏覽:326
桌面文件滑鼠點開會變大變小 瀏覽:536
手機誤刪系統文件開不了機 瀏覽:883
微信兔子甩耳朵 瀏覽:998
android藍牙傳文件在哪裡 瀏覽:354
蘋果6s軟解是真的嗎 瀏覽:310
c語言代碼量大 瀏覽:874
最新網路衛星導航如何使用 瀏覽:425
以下哪些文件屬於圖像文件 瀏覽:774
zycommentjs 瀏覽:414
確認全血細胞減少看哪些數據 瀏覽:265
文件有哪些要求 瀏覽:484
cad打開時會出現兩個文件 瀏覽:65
什麼是轉基因網站 瀏覽:48
手柄設備有問題代碼43 瀏覽:921

友情鏈接