名稱 Java語言編碼規范(Java Code Conventions)
簡介 本文檔講述了Java語言的編碼規范,較之陳世忠先生《c++編碼規范》的浩繁詳盡,此文當屬短小精悍了。而其中所列之各項條款,從編碼風格,到注意事項,不單只Java,對於其他語言,也都很有借鑒意義。因為簡短,所以易記,大家不妨將此作為handbook,常備案頭,逐一對驗。
1 介紹
1.1 為什麼要有編碼規范
1.2 版權聲明
2 文件名
2.1 文件後綴
2.2 常用文件名
3 文件組織
3.1 Java源文件
3.1.1 開頭注釋
3.1.2 包和引入語句
3.1.3 類和介面聲明
4 縮進排版
4.1 行長度
4.2 換行
5 注釋
5.1 實現注釋的格式
5.1.1 塊注釋
5.1.2 單行注釋
5.1.3 尾端注釋
5.1.4 行末注釋
5.2 文擋注釋
6 聲明
6.1 每行聲明變數的數量
6.2 初始化
6.3 布局
6.4 類和介面的聲明
7 語句
7.1 簡單語句
7.2 復合語句
7.3 返回語句
7.4 if,if-else,if else-if else語句
7.5 for語句
7.6 while語句
7.7 do-while語句
7.8 switch語句
7.9 try-catch語句
8 空白
8.1 空行
8.2 空格
9 命名規范
10 編程慣例
10.1 提供對實例以及類變數的訪問控制
10.2 引用類變數和類方法
10.3 常量
10.4 變數賦值
10.5 其它慣例
10.5.1 圓括弧
10.5.2 返回值
10.5.3 條件運算符"?"前的表達式"?"前的表達式
10.5.4 特殊注釋
11 代碼範例
11.1 Java源文件範例
1 介紹(Introction)
1.1 為什麼要有編碼規范(Why Have Code Conventions)
編碼規范對於程序員而言尤為重要,有以下幾個原因:
- 一個軟體的生命周期中,80%的花費在於維護
- 幾乎沒有任何一個軟體,在其整個生命周期中,均由最初的開發人員來維護
- 編碼規范可以改善軟體的可讀性,可以讓程序員盡快而徹底地理解新的代碼
- 如果你將源碼作為產品發布,就需要確任它是否被很好的打包並且清晰無誤,一如你已構建的其它任何產品
為了執行規范,每個軟體開發人員必須一致遵守編碼規范。每個人。
1.2 版權聲明(Acknowledgments)
本文檔反映的是Sun MicroSystems公司,Java語言規范中的編碼標准部分。主要貢獻者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。
本文檔現由Scott Hommel維護,有關評論意見請發至[email protected]
2 文件名(File Names)
這部分列出了常用的文件名及其後綴。
2.1 文件後綴(File Suffixes)
Java程序使用下列文件後綴:
文件類別 文件後綴
Java源文件 .java
Java位元組碼文件 .class
2.2 常用文件名(Common File Names)
常用的文件名包括:
文件名 用途
GNUmakefile makefiles的首選文件名。我們採用gnumake來創建(build)軟體。
README 概述特定目錄下所含內容的文件的首選文件名
3 文件組織(File Organization)
一個文件由被空行分割而成的段落以及標識每個段落的可選注釋共同組成。超過2000行的程序難以閱讀,應該盡量避免。"Java源文件範例"提供了一個布局合理的Java程序範例。
3.1 Java源文件(Java Source Files)
每個Java源文件都包含一個單一的公共類或介面。若私有類和介面與一個公共類相關聯,可以將它們和公共類放入同一個源文件。公共類必須是這個文件中的第一個類或介面。
Java源文件還遵循以下規則:
- 開頭注釋(參見"開頭注釋")
- 包和引入語句(參見"包和引入語句")
- 類和介面聲明(參見"類和介面聲明")
3.1.1 開頭注釋(Beginning Comments)
所有的源文件都應該在開頭有一個C語言風格的注釋,其中列出類名、版本信息、日期和版權聲明:
/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/
3.1.2 包和引入語句(Package and Import Statements)
在多數Java源文件中,第一個非注釋行是包語句。在它之後可以跟引入語句。例如:
package java.awt;
import java.awt.peer.CanvasPeer;
3.1.3 類和介面聲明(Class and Interface Declarations)
下表描述了類和介面聲明的各個部分以及它們出現的先後次序。參見"Java源文件範例"中一個包含注釋的例子。
類/介面聲明的各部分 註解
1 類/介面文檔注釋(/**……*/) 該注釋中所需包含的信息,參見"文檔注釋"
2 類或介面的聲明
3 類/介面實現的注釋(/*……*/)如果有必要的話 該注釋應包含任何有關整個類或介面的信息,而這些信息又不適合作為類/介面文檔注釋。
4 類的(靜態)變數 首先是類的公共變數,隨後是保護變數,再後是包一級別的變數(沒有訪問修飾符,access modifier),最後是私有變數。
5 實例變數 首先是公共級別的,隨後是保護級別的,再後是包一級別的(沒有訪問修飾符),最後是私有級別的。
6 構造器
7 方法 這些方法應該按功能,而非作用域或訪問許可權,分組。例如,一個私有的類方法可以置於兩個公有的實例方法之間。其目的是為了更便於閱讀和理解代碼。
4 縮進排版(Indentation)
4個空格常被作為縮進排版的一個單位。縮進的確切解釋並未詳細指定(空格 vs. 製表符)。一個製表符等於8個空格(而非4個)。
4.1 行長度(Line Length)
盡量避免一行的長度超過80個字元,因為很多終端和工具不能很好處理之。
注意:用於文檔中的例子應該使用更短的行長,長度一般不超過70個字元。
4.2 換行(Wrapping Lines)
當一個表達式無法容納在一行內時,可以依據如下一般規則斷開之:
- 在一個逗號後面斷開
- 在一個操作符前面斷開
- 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開
- 新的一行應該與上一行同一級別表達式的開頭處對齊
- 如果以上規則導致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進8個空格。
以下是斷開方法調用的一些例子:
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
以下是兩個斷開算術表達式的例子。前者更好,因為斷開處位於括弧表達式的外邊,這是個較高級別的斷開。
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID
以下是兩個縮進方法聲明的例子。前者是常規情形。後者若使用常規的縮進方式將會使第二行和第三行移得很靠右,所以代之以縮進8個空格
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
if語句的換行通常使用8個空格的規則,因為常規縮進(4個空格)會使語句體看起來比較費勁。比如:
//DON』T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
這里有三種可行的方法用於處理三元運算表達式:
alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
: gamma;
alpha = (aLongBooleanExpression)
? beta
: gamma;
5 注釋(Comments)
Java程序有兩類注釋:實現注釋(implementation comments)和文檔注釋(document comments)。實現注釋是那些在C++中見過的,使用/*...*/和//界定的注釋。文檔注釋(被稱為"doc comments")是Java獨有的,並由/**...*/界定。文檔注釋可以通過javadoc工具轉換成HTML文件。
實現注釋用以注釋代碼或者實現細節。文檔注釋從實現自由(implementation-free)的角度描述代碼的規范。它可以被那些手頭沒有源碼的開發人員讀懂。
注釋應被用來給出代碼的總括,並提供代碼自身沒有提供的附加信息。注釋應該僅包含與閱讀和理解程序有關的信息。例如,相應的包如何被建立或位於哪個目錄下之類的信息不應包括在注釋中。
在注釋里,對設計決策中重要的或者不是顯而易見的地方進行說明是可以的,但應避免提供代碼中己清晰表達出來的重復信息。多餘的的注釋很容易過時。通常應避免那些代碼更新就可能過時的注釋。
注意:頻繁的注釋有時反映出代碼的低質量。當你覺得被迫要加註釋的時候,考慮一下重寫代碼使其更清晰。
注釋不應寫在用星號或其他字元畫出來的大框里。注釋不應包括諸如製表符和回退符之類的特殊字元。
5.1 實現注釋的格式(Implementation Comment Formats)
程序可以有4種實現注釋的風格:塊(block)、單行(single-line)、尾端(trailing)和行末(end-of-line)。
5.1.1 塊注釋(Block Comments)
塊注釋通常用於提供對文件,方法,數據結構和演算法的描述。塊注釋被置於每個文件的開始處以及每個方法之前。它們也可以被用於其他地方,比如方法內部。在功能和方法內部的塊注釋應該和它們所描述的代碼具有一樣的縮進格式。
塊注釋之首應該有一個空行,用於把塊注釋和代碼分割開來,比如:
/*
* Here is a block comment.
*/
塊注釋可以以/*-開頭,這樣indent(1)就可以將之識別為一個代碼塊的開始,而不會重排它。
/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/
注意:如果你不使用indent(1),就不必在代碼中使用/*-,或為他人可能對你的代碼運行indent(1)作讓步。
參見"文檔注釋"
5.1.2 單行注釋(Single-Line Comments)
短注釋可以顯示在一行內,並與其後的代碼具有一樣的縮進層級。如果一個注釋不能在一行內寫完,就該採用塊注釋(參見"塊注釋")。單行注釋之前應該有一個空行。以下是一個Java代碼中單行注釋的例子:
if (condition) {
/* Handle the condition. */
...
}
5.1.3 尾端注釋(Trailing Comments)
極短的注釋可以與它們所要描述的代碼位於同一行,但是應該有足夠的空白來分開代碼和注釋。若有多個短注釋出現於大段代碼中,它們應該具有相同的縮進。
以下是一個Java代碼中尾端注釋的例子:
if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}
5.1.4 行末注釋(End-Of-Line Comments)
注釋界定符"//",可以注釋掉整行或者一行中的一部分。它一般不用於連續多行的注釋文本;然而,它可以用來注釋掉連續多行的代碼段。以下是所有三種風格的例子:
if (foo > 1) {
// Do a double-flip.
...
}
else {
return false; // Explain why here.
}
//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}
5.2 文檔注釋(Documentation Comments)
注意:此處描述的注釋格式之範例,參見"Java源文件範例"
若想了解更多,參見"How to Write Doc Comments for Javadoc",其中包含了有關文檔注釋標記的信息(@return, @param, @see):
http://java.sun.com/javadoc/writingdoccomments/index.html
若想了解更多有關文檔注釋和javadoc的詳細資料,參見javadoc的主頁:
http://java.sun.com/javadoc/index.html
文檔注釋描述Java的類、介面、構造器,方法,以及欄位(field)。每個文檔注釋都會被置於注釋定界符/**...*/之中,一個注釋對應一個類、介面或成員。該注釋應位於聲明之前:
/**
* The Example class provides ...
*/
public class Example { ...
注意頂層(top-level)的類和介面是不縮進的,而其成員是縮進的。描述類和介面的文檔注釋的第一行(/**)不需縮進;隨後的文檔注釋每行都縮進1格(使星號縱向對齊)。成員,包括構造函數在內,其文檔注釋的第一行縮進4格,隨後每行都縮進5格。
若你想給出有關類、介面、變數或方法的信息,而這些信息又不適合寫在文檔中,則可使用實現塊注釋(見5.1.1)或緊跟在聲明後面的單行注釋(見5.1.2)。例如,有關一個類實現的細節,應放入緊跟在類聲明後面的實現塊注釋中,而不是放在文檔注釋中。
文檔注釋不能放在一個方法或構造器的定義塊中,因為Java會將位於文檔注釋之後的第一個聲明與其相關聯。
6 聲明(Declarations)
6.1 每行聲明變數的數量(Number Per Line)
推薦一行一個聲明,因為這樣以利於寫注釋。亦即,
int level; // indentation level
int size; // size of table
要優於,
int level, size;
不要將不同類型變數的聲明放在同一行,例如:
int foo, fooarray[]; //WRONG!
注意:上面的例子中,在類型和標識符之間放了一個空格,另一種被允許的替代方式是使用製表符:
int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry
6.2 初始化(Initialization)
盡量在聲明局部變數的同時初始化。唯一不這么做的理由是變數的初始值依賴於某些先前發生的計算。
6.3 布局(Placement)
只在代碼塊的開始處聲明變數。(一個塊是指任何被包含在大括弧"{"和"}"中間的代碼。)不要在首次用到該變數時才聲明之。這會把注意力不集中的程序員搞糊塗,同時會妨礙代碼在該作用域內的可移植性。
void myMethod() {
int int1 = 0; // beginning of method block
if (condition) {
int int2 = 0; // beginning of "if" block
...
}
}
該規則的一個例外是for循環的索引變數
for (int i = 0; i < maxLoops; i++) { ... }
避免聲明的局部變數覆蓋上一級聲明的變數。例如,不要在內部代碼塊中聲明相同的變數名:
int count;
...
myMethod() {
if (condition) {
int count = 0; // AVOID!
...
}
...
}
6.4 類和介面的聲明(Class and Interface Declarations)
當編寫類和介面是,應該遵守以下格式規則:
- 在方法名與其參數列表之前的左括弧"("間不要有空格
- 左大括弧"{"位於聲明語句同行的末尾
- 右大括弧"}"另起一行,與相應的聲明語句對齊,除非是一個空語句,"}"應緊跟在"{"之後
class Sample extends Object {
int ivar1;
int ivar2;
Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}
int emptyMethod() {}
...
}
- 方法與方法之間以空行分隔
7 語句(Statements)
7.1 簡單語句(Simple Statements)
每行至多包含一條語句,例如:
argv++; // Correct
argc--; // Correct
argv++; argc--; // AVOID!
7.2 復合語句(Compound Statements)
復合語句是包含在大括弧中的語句序列,形如"{ 語句 }"。例如下面各段。
- 被括其中的語句應該較之復合語句縮進一個層次
- 左大括弧"{"應位於復合語句起始行的行尾;右大括弧"}"應另起一行並與復合語句首行對齊。
- 大括弧可以被用於所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結構的一部分。這樣便於添加語句而無需擔心由於忘了加括弧而引入bug。
7.3 返回語句(return Statements)
一個帶返回值的return語句不使用小括弧"()",除非它們以某種方式使返回值更為顯見。例如:
return;
return myDisk.size();
return (size ? size : defaultSize);
7.4 if,if-else,if else-if else語句(if, if-else, if else-if else Statements)
if-else語句應該具有如下格式:
if (condition) {
statements;
}
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}
注意:if語句總是用"{"和"}"括起來,避免使用如下容易引起錯誤的格式:
if (condition) //AVOID! THIS OMITS THE BRACES {}!
statement;
7.5 for語句(for Statements)
一個for語句應該具有如下格式:
for (initialization; condition; update) {
statements;
}
一個空的for語句(所有工作都在初始化,條件判斷,更新子句中完成)應該具有如下格式:
for (initialization; condition; update);
當在for語句的初始化或更新子句中使用逗號時,避免因使用三個以上變數,而導致復雜度提高。若需要,可以在for循環之前(為初始化子句)或for循環末尾(為更新子句)使用單獨的語句。
7.6 while語句(while Statements)
一個while語句應該具有如下格式
while (condition) {
statements;
}
一個空的while語句應該具有如下格式:
while (condition);
7.7 do-while語句(do-while Statements)
一個do-while語句應該具有如下格式:
do {
statements;
} while (condition);
7.8 switch語句(switch Statements)
一個switch語句應該具有如下格式:
switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;
case XYZ:
statements;
break;
default:
statements;
break;
}
每當一個case順著往下執行時(因為沒有break語句),通常應在break語句的位置添加註釋。上面的示例代碼中就包含注釋/* falls through */。
7.9 try-catch語句(try-catch Statements)
一個try-catch語句應該具有如下格式:
try {
statements;
} catch (ExceptionClass e) {
statements;
}
一個try-catch語句後面也可能跟著一個finally語句,不論try代碼塊是否順利執行完,它都會被執行。
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}
8 空白(White Space)
8.1 空行(Blank Lines)
空行將邏輯相關的代碼段分隔開,以提高可讀性。
下列情況應該總是使用兩個空行:
- 一個源文件的兩個片段(section)之間
- 類聲明和介面聲明之間
下列情況應該總是使用一個空行:
- 兩個方法之間
- 方法內的局部變數和方法的第一條語句之間
- 塊注釋(參見"5.1.1")或單行注釋(參見"5.1.2")之前
- 一個方法內的兩個邏輯段之間,用以提高可讀性
8.2 空格(Blank Spaces)
下列情況應該使用空格:
- 一個緊跟著括弧的關鍵字應該被空格分開,例如:
while (true) {
...
}
注意:空格不應該置於方法名與其左括弧之間。這將有助於區分關鍵字和方法調用。
- 空白應該位於參數列表中逗號的後面
- 所有的二元運算符,除了".",應該使用空格將之與操作數分開。一元操作符和操作數之間不因該加空格,比如:負號("-")、自增("++")和自減("--")。例如:
a += c + d;
a = (a + b) / (c * d);
while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");
- for語句中的表達式應該被空格分開,例如:
for (expr1; expr2; expr3)
- 強制轉型後應該跟一個空格,例如:
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);
9 命名規范(Naming Conventions)
命名規范使程序更易讀,從而更易於理解。它們也可以提供一些有關標識符功能的信息,以助於理解代碼,例如,不論它是一個常量,包,還是類。
標識符類型 命名規則 例子
包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母並且是一個頂級域名,通常是com,e,gov,mil,net,org,或1981年ISO 3166標准所指定的標識國家的英文雙字元代碼。包名的後續部分根據不同機構各自內部的命名規范而不盡相同。這類命名規范可能以特定目錄名的組成來區分部門(department),項目(project),機器(machine),或注冊名(login names)。 com.sun.eng
com.apple.quicktime.v2
e.cmu.cs.bovik.cheese
類(Classes) 命名規則:類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) class Raster;
class ImageSprite;
介面(Interfaces) 命名規則:大小寫規則與類名相似 interface RasterDelegate;
interface Storing;
方法(Methods) 方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。 run();
runFast();
getBackground();
變數(Variables) 除了變數名外,所有實例,包括類,類常量,均採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變數名不應以下劃線或美元符號開頭,盡管這在語法上是允許的。
變數名應簡短且富於描述。變數名的選用應該易於記憶,即,能夠指出其用途。盡量避免單個字元的變數名,除非是一次性的臨時變數。臨時變數通常被取名為i,j,k,m和n,它們一般用於整型;c,d,e,它們一般用於字元型。 char c;
int i;
float myWidth;
實例變數(Instance Variables) 大小寫規則和變數名相似,除了前面需要一個下劃線 int _employeeId;
String _name;
Customer _customer;
常量(Constants) 類常量和ANSI常量的聲明,應該全部大寫,單詞間用下劃線隔開。(盡量避免ANSI常量,容易引起錯誤) static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
10 編程慣例(Programming Practices)
10.1 提供對實例以及類變數的訪問控制(Providing Access to Instance and Class Variables)
若沒有足夠理由,不要把實例或類變數聲明為公有。通常,實例變數無需顯式的設置(set)和獲取(gotten),通常這作為方法調用的邊緣效應 (side effect)而產生。
一個具有公有實例變數的恰當例子,是類僅作為數據結構,沒有行為。亦即,若你要使用一個結構(struct)而非一個類(如果java支持結構的話),那麼把類的實例變數聲明為公有是合適的。
B. sun公司那個java編程考試一般情況大神們幫幫忙
Sun針對先進的科技,推出Java及Solaris技術認證方案。根據這些認證,在企業方面可以藉此作為招聘人才的評判標准,或是作為衡量員工技術水準的依據;在技術方面,通過這些認證也可以證明個人的技術能力。 Sun在 UNIX領域一直是技術上和市場佔有率的領先者;近年來推出的Java技術,更成為業界的標准。Sun公司所舉辦的認證考試,也將成為Java和UNIX在全球信息界公認的標准。 Sun推出的專業認證包括下列三種: Java認證考試 對於Java程序設計員,Sun推出兩項認證:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD)。SCJP測驗Java程序設計概念及能力,內容偏重於Java語法及JDK的內容;SCJD則進一步測試用Java開發應用程序的能力,考試者必須先完成一個程序的設計方案,再回答與此方案相關的一些問題。 Solaris系統管理認證考試 對Solaris/Sun OS系統管理員,Sun推出Certified Solaris Administrator(CSA)。CSA分別為兩個等級(Part I 和 Part II ),測試對Solaris 系統管理的了解程度。 Solaris網路管理認證考試 為了測試使用者對於Solaris網路的管理能力,Sun還特別推出Certified Network Administrator(CNA). 內容包括基本網路概念、 Routing and Subnet、Security、Performance、DNS、NIS+等 通過SUN任何一門專業認證後,將全收到Sun Microsystems 總公司寄發的資格證書及徽章,並有權將通過Sun認證的標記印在個人名片上,作為個人技術能力的肯定。 考試科目 考試號 考試形式 及格分數 時間 考費 課程 SCJP(Sun Certified Java2 Programmer) 310-025 59道選擇題 答對71%以上 120分鍾 1250 SL-275/276 SCJD(Sun Certified Java2 Developer) 到SUN培訓中心報名 程序設計題 通過程序設計 不限 2100 SL-285 310-027 5-10道簡答題 答對70%以上 90分鍾 1250 CSA26 Part I(Certified Solaris 2.6 Administrator) 310-007 72道選擇題 答對75%以上 90分鍾 1250 SA-235 CSA26 Part II(Certified Solaris 2.6 Administrator) 310-008 72道選擇題 答對70%以上 90分鍾 1250 SA-286 CNA26(Certified Network 2.6 Administrator) 310-041 77道選擇題 答對70%以上 90分鍾 1250 SA-380 CSA7 Part I(Certified Solaris 7 Administrator) 310-009 81道選擇題 答對75%以上 120分鍾 1250 SA-237 CSA7 Part II(Certified Solaris 7 Administrator) 310-010 94道選擇題 答對70%以上 120分鍾 1250 SA-287 CNA7(Certified Network 7 Administrator) 310-042 80道選擇題 答對70%以上 120分鍾 1250 SA-387 SUN認證JAVA程序員 眾所周知,Java以其獨有的開放性,跨平台性和面向網路的交互性席捲全球,以其安全性、易用性和開發周期短的特點,迅速從最初的編程語言發展成為全球第二大軟體開發平台。這些優點已引起國內外計算機界的極大關注;Java公用規范(PAS)已被國際標准化組織(ISO)認定,Java技術已列為當今世界信息技術三大要點之一。 根據權威部門的預測:到2000年,我國對Java技術人員的需求量將高達20萬餘人。然而,到目前為止,在我國參加認證培訓的學員只有近萬人,而參加認證考試並獲得認證資格的人員不足2000人。這個數字和20萬人的需求量相差甚遠。因此,早日掌握Java技術,對每個有志於在IT行業發展的人來說是尤為重要的。我們深信Java技術的應用和普及,必將成為勢不可擋的潮流迅速在世界各地發展。 Sun Java認證是業界唯一經Sun授權的Java認證。考試內容涉及所有Java相關知識、編程概念及applet開發技巧。Sun 認證Java程序員考試旨在觀察您通過應用軟體分配進行復雜編程的能力。之後還要測試您完成編程所需的知識。每次考試都包括65道以上的選擇題,時間大約為90分鍾。 課程:SL-275 JAVA語言編程 本課程是使學員掌握如何使用標准Java Development Kit,V1.1 (JDK) 開發應用程序和applets。在本課程中您將學會Java語言的語法。如何使用Java 來創建圖形用戶介面GUI,事件處理機制, 例外處理,通過設計與開發各種Java 程序來獲得實際的編程經驗.您也將學到文件輸入/輸出(I/O)、 多線程和網路的知識.。本課程適用於熟悉C或C++的編程人員,也適用於想參加Sun Java 認證考試的學員。 預備知識: 學習本課程之前必須具備以下能力 能夠編譯C 或C++ 程序或者已經參加過SL-110課程;能夠創建和編譯簡單的程序;使用WWW(World wide web) 瀏覽器,如: Netscape;能夠使用vi或者OpenWindows的文件編輯器;使用基本UNIX的命令。 本課程學習完成後,將具備以下能力: 使用Java 編程語言創建Java 應用程序和applets 定義和描述垃圾搜集, 安全性和Java 虛擬機(JVM) 描述和使用 Java 語言面向對象的特點 開發圖形用戶介面 (GUI),利用Java支持的多種布局管理 描述和使用 Java 1.1 的事件處理模式 使用Java 語言的滑鼠輸入, 文本, 窗口和菜單窗 使用Java的例外處理來控製程序執行和定義用戶自己的例外事件 使用Java 語言的先進的面向對象特點, 包括方法重載, 方法覆蓋,抽象類,介面等實現文件的輸入/輸出(I/O) 使用Java 語言內在的線程模式來控制多線程 使用Java的Sockets 機制進行網路通信
C. JAVA語言介紹
Java語言:
Java 是由Sun Microsystems 公司於1995年5月推出的高級程序設計語言。
Java可運行於多個平台,如Windows, Mac OS,及其他多種UNIX版本的系統。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Sun公司於1995年5月發布了Java的第一個版本JDK1.0,經過三年多的更新與升級,與1998年推出了JDK1.2,Java語言的開發規范也從1.0升級到2.0.在1999年,Java語言根據應用的領域被分為三個版本:
J2SE: Java 2 Platform Standard Edition,java平台標准版,包含構成Java語言核心的類庫。
J2EE: Java 2 Platform Enterprise Edition,java平台企業版,包含j2se中所有的類,並還包含用於開發企業級應用的類,如EJB,Servlet,JSP,XML和事務控制,也是閑Platform Standard Edition著java應用的主要方向。
J2ME: Java 2 Platform Micro Edition,java平台移動版,是Java運行環境的一個子集,它包含了Java的核心部,主要用於消費類電子產品的軟體開發,如移動通話,可視電話,數字機頂盒,汽車導向系統和衛星定位系統等。
於2005年Java十周年大會之後分別將J2SE、J2EE、J2ME 更名為 JAVA SE、JAVA EE、JAVA ME。
當然Java目前市場佔有量,還是數一數二的;
目前java的應用市場十分廣泛,它的應用領域幾乎涵蓋了目前市面上所有的軟硬體。
目前JAVA市場行情主要有以下幾個方向:
1.web開發:
能做大型的互聯網網站如,京東,淘寶,人人網、去哪兒網、美團等。
java在開發高訪問、高並發、集群化的大型網站方面有很大的優勢。
2.移動端開發:
目前手機上所有的APP後台代碼及部分移動端頁面java是都能夠做到的。
3.客戶端開發:
主要面向政府、事業單位和大型企業,如醫療、學校、OA、郵箱、投票、金融、考試、物流、礦山等信息方面的系統。這些應用在我們生活中其實隨處可見,比如醫院的掛號系統、公司的打卡系統、物流系統等。
學習難度:
學習難度中度偏高,Java開始學習的時候是比較復雜的。對於沒有計算機基礎的人來說,開始入手就學習Java有點困難的。
但是Java語言比較特殊,它是開始難到後面卻是比較的簡單,因為各種框架封裝的已經棒的不要不要的;其他的語言時開始比較的簡單,也往後越覺得難度越大;當然Java 學到精通也不是簡單的!!
Java是目前比較容易就業的,招聘的最多;但是競爭壓力也比較的大,想所以說學習Java要多提升自己。
有想學習Java的同學,我這邊整理了一篇關於Java系統學習的全套資料:
網頁鏈接
希望會給你帶來幫助!
D. sun公司對java編程語言的解釋是什麼
Sun
公司對
Java
編程語言的解釋是:Java
編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和靜態的語言。
E. JAVA是什麼
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。
它最初被命名為Oak,目標設定在家用電器等小型系統的編程語言,來解決諸如電視機、電話、鬧鍾、烤麵包機等家用電器的控制和通訊問題。由於這些智能化家電的市場需求沒有預期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯網的發展,Sun看到了Oak在計算機網路上的廣闊應用前景,於是改造了Oak,以「Java」的名稱正式發布。 JAVA
Java 編程語言的風格十分接近C、C++語言。Java是一個純的面向對象的程序設計語言,它繼承了 C++ 語言面向對象技術的核心,Java舍棄了C ++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以介面取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所佔據的內存空間,使得程序員不用再為內存管理而擔憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。 Java 不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進制位元組碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行位元組碼,從而實現了「一次編譯、到處執行」的跨平台特性。不過,每次的編譯執行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 1.4.2 發布後,Java 的執行速度有了大幅提升。 與傳統程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術。全球數以萬計的 Java 開發公司被要求所設計的 Java 軟體必須相互兼容。「Java 語言靠群體的力量而非公司的力量」是 Sun 公司的口號之一,並獲得了廣大軟體開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。 Sun 公司對 Java 編程語言的解釋是:Java 編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。 Java 平台是基於 Java 語言的平台。這樣的平台目前非常流行,因此微軟公司推出了與之競爭的.NET平台以及模仿 Java 的 C#語言。
F. JAVA這門語言編程時有哪些限制或局限
在一般情況下,永遠不要繼承一個已經實現的類
G. 何為java
Java語言是一種適用於網路編程的語言,它的基本結構與C++極為相似,但卻簡單得多。它集成了其它一些語言的特點和優勢,又避開了它們的不足之處。有人預言:Java將成為網路上的「世界語」,今後,用其他語言編寫的軟體統統都要用Java語言來改寫.
Java發展至今日,已不僅僅是一種編程語言,實際上已形成了一門技術.其內容包括:
1)Java軟體包
Java語言及其編程技術、JavaOS、Java開發環境與工具、Java語言的各種軟體包、資料庫介面JDBC等。
2)Java虛擬機及其規范
3) Java嵌入技術(Java晶元)
已推出的有Java戒指、Java卡等。1999年8月2日,Sun公司宣布名為MAJC的專門為Java語言設計的的晶元優化研製成功,欲與Intel試比高低。該晶元在設計時採用了模塊式高性能計算引擎,實質為一種晶元級並行處理機,能以更有效的方式分解計算任務,特別適合處理多媒體數據。Sun公司希望通過MAJC晶元的發布催生出一個基於Java語言的微處理器家族,與Intel公司競爭。設想中的Java處理器將應用在從低價消費電子產品到高端網際網路伺服器領域。
4)Java計算
基於Java技術的企業Internet/Intranet信息系統以及其他應用系統。
5)Jini技術
1999年初正式發布後,立刻得到業界的廣泛支持。Jini的出現為Java網路連接提供了公共標准,使得任何Java設備都可以連入網路中被自動識別,並可充分利用網路上已有的各種資源。它把網路上的各類設備(包括消費類電子設備如行動電話、PDA、DTV、HPC、NC、游戲機、電冰箱、智能卡等等)和各種軟體組合成一個單一、動態的分布式系統,使網路更易於操縱、易於管理,具有更高的可配置性。Jini將使網路具有自發性,它的出現大大擴展了「計算」和「計算機」的含義,極大地簡化了網路操作,對家庭用戶來說,使用網上設備即插即用,就像使用電話一樣方便。Java和Jini 不僅可以不依賴於Windows為代表的操作系統,而且引導著信息產業的潮流,使Sun公司能在未來的、非PC類電子產品的數字化市場中強占制高點。
6)Jiro平台
異質網路環境中安裝的存儲系統的多樣性和分布性,給存儲管理帶來了巨大的挑戰。用戶和開發人員都希望能有一種技術,能更好地促進企業存儲管理方案的開發。而Jiro平台正是解決此問題的革命性方案。Jiro平台實現了Java和Jini 技術,它是一個便於用戶管理異質網路上由各種伺服器、存儲和設備組成的混合環境的開放式存儲管理平台。它對操作系統是中立的。Jiro為跨異質存儲區域網(SAN)的管理服務和設備提供了一個開放平台,允許伺服器、存儲和聯網設備在異質網路環境中無縫地協同工作。Jiro平台為開發者帶來的好處有:
允許開發者利用各種實現管理存儲網路的目標功能創建應用;
提供了一個可以在各種應用、服務和設備之間交互操作的組件模型;
允許設備易被增加、刪除;
允許應用或服務被自動更新。
1999年7月,Sun發布了正式的Jiro規范草案,供公眾討論、修改。目前,Jiro平台的團體成員已超過25家,支持Jiro平台的廠商超過300家。有眼光的廠商紛紛加入到這些組行列,從而加快了Jiro的發展。
出處:http://lunwen.zhupao.com/Article/2005-4-11/16828.shtml
H. java 大括弧寫法
第一種sun公司就是這么寫的,符合java的習慣,
第二種,c++ .net喜歡這么寫
其實無所謂,你喜歡哪一種都可以的,就用哪一種