當前位置:首頁 » 編程語言 » java程序員考試

java程序員考試

發布時間: 2022-09-28 03:45:13

java程序員考試都需要什麼證書沒有

有。目前Java是甲骨文公司(Oracle)的編程語言產品,公司為此設置了4個官方的證書,從初級到高級依次是:

1、Oracle Certified Associate:需要掌握後續證書都要用到的基礎Java編程知識。

2、 Oracle Certified Professional:分為「移動應用開發」和「商業組件開發」兩大內容。

3、Oracle Certified Expert:分為「企業級JavaBean開發」,「Java持久化開發」,「Web服務開發」,「Web組件開發」四大內容。

4、Oracle Certified Master:需要掌握Java企業級架構和企業級開發。

這四個證書是官方出的,所以具有絕對的權威性,當然價格也不便宜。

但是,如果想找到好工作,建議還是磨練自己的技術和經驗,就算你有了證書,在面試的時候還是要考察你的基本功和知識面,所以個人覺得認證證書最大的用處是讓簡歷好看一些。

(1)java程序員考試擴展閱讀

Java認證考試的特點分述:

1、SCJP(Sun Certified Java Programmer):測試 Java程序設計的觀念和能力,內容偏重於 Java 語法和 JDK 內容。共 59 題復選及填充,時間 2 小時,答對 61% 是及格標准。

2、SCWD(Sun Certified Web Component Developer for J2EE Platform):內容涵蓋 Servlet 與 JSP。考題為 60 題復選及填充,時間 2 小時,答對 70% 是及格標准。

3、SCJD(Sun Certified Java Developer):測試 Java 軟體開發的進階技能,考試分成兩階段,第一階段是程序設計題,時間無限制,答對 80% 以上就可以進入第二階段應試。第二階段是 5-10 題簡答題,時間 90 分鍾,答對 70% 以上即可得到 SCJD 認證。

4、SCAJ(Sun Certified Enterprise Architect for J2EE):測試對於 J2EE 架構的熟悉程度以及系統整合的能力。本考試分成三個階段,第一個階段是 48 題復選題,時間 75 分鍾,答對 68% 以上方可進入下階段。第二階段是系統設計專題,無時間限制,答對 70% 以上方可進入下一階段。第三階段是四題申論題,應試時間 90 分鍾。

Ⅱ 問編程的人士JAVA的考試證書叫什麼啊有幾級啊

對於當今有志從事計算機行業的人而言,最重要的一件事情就是:學習Java!那麼對於應試Java程序員和Java開發員,應如何學習,如何參加考試,考試時應注意哪些事宜呢? 在IT業迅猛發展的今天,獲得權威認證為個人發展提供了越來越多的良好契機。Sun公司的Java認證共有以下三種:Java程序員,Java開發員和Java2企業級設計師。目前國內開展的Java認證考試僅為前兩種。其中,Java程序員的認證考試以Sun公司指定的JavaSL-275為教材,考試號為310-025;Java開發員的認證考試以Sun指定的JavaSL-285為教材,機考部分的考試號為310-027。 ■Java程序員認證 一、怎樣可以獲得Sun公司的Java認證? 如果你希望取得Sun公司Java認證,那麼必須通過Java程序員(SCJP)的考試。授權培訓中心所開設的Java程序員課程可以幫助你在短期內掌握Java編程的知識和技巧,並准確地把握考點。 二、Java認證培訓針對什麼樣的群體? 經常有人咨詢:自己對Java語言比較陌生,對程序設計也沒有什麼基礎,怎樣做才可以取得Java程序員的認證?還有些專門從事程序開發甚至Java開發的人,也常常在猶豫,是不是可以不接受培訓直接參加考試?其實,從原則上講,培訓和考試是完全獨立的,可以直接報名參加認證考試。但是,由於Java認證考試的考點和別的學科並沒有任何相似性,而且也完全不同於我們日常的Java編程,所以僅僅自學或依靠自己的編程"底子"都是比較盲目的。而在Java程序員的培訓課程中,講師將針對考試中可能遇到的各種題型,有的放矢,更好地幫助學員迅速准確地抓住考試要點。如果學員在短期內不能很好地掌握所學內容,可以免費重聽。 三、Java認證培訓能提供什麼樣的服務? 為了滿足廣大學員的培訓需求,讓大家更快更及時地掌握知識並獲得認證,講師將使用Sun公司指定教材,系統、完整、全面地講述課程的內容,並根據各知識點所需要掌握的深度,有層次、有重點、有目的地指導學員的學習。同時,對各種題型的分析和講解更能幫助學員直觀、准確地了解認證考試。 四、如何參加Java程序員的認證考試? 在有了充分的准備後,就可以著手參加考試了。首先需要提前2天到考試中心注冊考生ID,並和考試中心的工作人員預約考試時間。考生必須按時參加考試,並攜帶本人身份證。考試結束即可看到考試結果。Sun公司頒發的證書將在考試之後的2個月內以信件方式發到考生注冊的地址處。 五、Java程序員認證的考點有哪些? Java程序員的認證考試以Sun公司的SL-275英文原版教材為標准,需要掌握並作為考試內容的知識點有:聲明和許可權控制,流控制和異常處理,垃圾回收機制,基本語法,操作數和符號,重載、覆蓋、運行類型和面向對象,線程等;此外,還有Java。awt、Java。lang、Java。util、Java。io包中的常用類等。 六、Java認證考試有哪些注意事項? JavaSL-275的考試共有試題59道,通過分數為61分(答對36道題即可)。時間為120分鍾,在提交試卷前的任何時候,都可以看到任意一道試題。題型分為單選和多選題(可根據單選框或多選框來判斷),多選題在題目中將指明該題有幾個正確答案。 七、有哪些資料可以幫助學員學習? 市面上有很多Java教程的相關書籍,有些可以輔助學員更好地學習和掌握Java程序員所應掌握的知識點,如《Java寶典》、《精通Java》、《Java語言程序設計大全》等。但有時這些書籍上的某些內容會跟Sun公司指定的教材有些出入,這時,我們應當以教材的提法為准。當然,無論是教材還是自己購買的書籍都只是對Java語言的系統性的講述,要抓住考試的要點和難點,還應當以培訓課程講師講述的內容為准。 ■Java開發員認證 在獲得程序員的認證後,可以繼續學習取得Java開發員(SCJD)的認證。相對於Java程序員的認證來說,開發員的知識掌握和證書取得要更難些。也正因為如此,開發員的證書對個人能力的標識和個人擇業更具價值。下面將對Java開發員認證考試的相關事宜做一些必要的介紹。 一、Java開發員認證課程 講授Java開發員認證課程的講師均是具有開發經驗、博學廣識的。在5天的培

Ⅲ Java有哪些可考的證書

Java高級工程師,Java可靠的證書有SCJP。 sun certificated java programmer對於是Java程序員認證,一種Java認證考試。


知識擴展:

Java自1995年問世以來,因其卓越的通用性、高效性、平台移植性 和安全性等特性,成為全球范圍內應用范圍最廣的開發語言,而且即使歷經二十餘年發展仍然在行業內保持著「常青樹」的地位。Java軟體工程師是指運用Java這種開發語言去完成軟體產品的軟體程序設計、開發、測試、維護升級等工作的人員。

sun certificated java programmer (SCJP)對於是Java程序員認證,一種Java認證考試。Java程序設計員,Sun推出兩項認證:SunCertificatedJavaProgrammer(SCJP)和SunCertificatedJavaDeveloper(SCJD)。

相對於SCJD來說,SCJP更側重於測驗您的Java程序設計概念及能力,內容偏重於Java語法及JDK的內容。其對應的最主要的學習課程是SL-275。SCJP 的學習/考試過程是相對相對比較明確的,首先學員參加SL-275的培訓課程(標准費用大致在2600人民幣,包括考試券、教材費),也可以單獨購買考試券(Certification Voucher,費用現在是1250元),然後在Prometric考試中心參加考試。通過後獲得Sun頒發的SCJP認證證書。

Ⅳ java程序員的認證考試怎麼考

有。目前Java是甲骨文公司(Oracle)的編程語言產品,公司為此設置了4個官方的證書,從初級到高級依次是:
1. Oracle Certified Associate:需要掌握後續證書都要用到的基礎Java編程知識
2. Oracle Certified Professional:分為「移動應用開發」和「商業組件開發」兩大內容
3. Oracle Certified Expert:分為「企業級JavaBean開發」,「Java持久化開發」,「Web服務開發」,「Web組件開發」四大內容
4. Oracle Certified Master:需要掌握Java企業級架構和企業級開發

Ⅳ 關於java程序員應聘機試

我是剛找到了一個java程序員的工作,現在我告訴你一些具體的問題;
他們首先回讓你自我介紹1-3分鍾,這其中,可能你就要談到,你對java的了解吧。然後問你曾經做過那些關於java的項目(或者自己編寫),他們會問你對bean是否了解,然後會問,你對j2ee了解多少,問這個的目的,對數是想問你,對ejb有多少了解,然後會問你對應用伺服器,比如weblogic和websphere了解多少。因為你面試的是java程序員,還可能讓你做一份java人證的考試題(1-20道),最後可能會問你關於資料庫的知識在最後,可能就是問你的薪資方面的要求了。
就這些了,這是我面試所經歷的一切。

Ⅵ java有哪些證書考啊

sun公司推出的java認證包括scjp,scjd,scwcd,scea等等很多認證
其中scjp(java程序員)是最基礎的認證,考其他級別的java認證都需要先考過scjp認證。
scwcd(web組件開發員)和scjd(java開發員)屬於高於scjp一個等級的認證。
scea(企業級架構師)是java認證的最高等級也就是第三級認證。

Ⅶ 做java開發的,想考試軟體水平考試,考哪一種工程師,好呢

考J2EE比較好,學習這個框架內,很快就能學會折疊出什麼樣的框架,這是一種知識產權的成熟和完善的軟體工程師,想要學習java開發,當屬千鋒教育最值得推薦。

java開發工程師考試分高、中、初3個級別。
(一)高級資格:信息系統項目管理師、系統分析師、系統規劃與管理師、系統構架設計師、網路規劃設計師;
(二)中級資格:軟體設計師、網路工程師、信息系統監理師、系統集成項目管理工程師、嵌入式系統設計師、電子商務設計師、資料庫系統工程師、軟體評測師、信息系統管理工程師、信息安全工程師、多媒體應用設計師;
(三)初級資格:程序員、信息系統運行管理員、網路管理員、信息處理技術員(上機考試)。

想要了解更多java開發的相關信息,推薦咨詢千鋒教育。千鋒勵精圖治,不改教育初心。十一年來,千鋒以政策為引導,不斷完善國內特色現代職業教育體系建設,充分發揮教研師資隊伍使命,構建品質教育,加大創新型人才培養力度,為經濟發展提供智力人才和智力支撐,成為新時期職業教育發展的新方向,在同行業中有很高的美譽度。

Ⅷ Java開發程序員考取哪些證書有用

包括下列三種: Java認證考試 關於Java方面,Sun推出七項認證:
Sun Certified Java Programmer for the Java 2 Platform、
Sun Certified Developer for the Java 2 Platform
Sun Certified Web Component Developer for the Java 2 Platform, Enterprise Edition 1.4
Sun Certified Business Component Developer for the Java 2 Platform, Enterprise Edition
Sun Certified Web Services Developer for the Java 2 Platform, Enterprise Edition
Sun Certified Enterprise Architect for the Java 2 Platform, Enterprise Edition
Sun Certified Mobile Application Developer for the Java 2 Platform, Micro Edition
Solaris系統管理認證考試
Sun 公司為用戶提供支持 Solaris 10 操作系統的高品質培訓和認證服務,可幫助企業最大限度地快速實現該創新操作系統的重要價值。

Ⅸ 關於Java軟體工程師應該考取什麼認證

關於Java軟體工程師應該考取JAVA軟體工程師。

完成軟體的設計、開發、測試、修改bug等工作,包括業務需求的溝通,功能模塊詳細設計,業務功能實現與單元測試,系統維護;參與產品構思和架構設計;撰寫相關的技術文檔;支持售前技術服務;支持項目對產品的應用服務。

SunJava認證分為兩個級別:Sun 認證Java程序員和Sun 認證Java開發員。Sun 認證Java程序員考試內容涉及Java所有相關知識、編程概念及applet開發技巧。

Sun認證Java開發考試旨在考察您通過應用軟體分配進行復雜編程的能力。之後還要測試您完成編程所需的知識。每次考試都包括65道以上的多項選擇題,時間大約為90分鍾。考試合格後由Sun公司頒發的國際通用的Java程序員證書。

以上內容參考:網路-Java認證考試

Ⅹ JAVA初級程序員要考哪些內容

JAVA初級程序員
現在有 SCJP 這個比較權威點(SUN 公司的)~~~在這個考試費用是 1250元 如果你是在大學
還可能享受優惠 只要 450 元
考點:
Section 1 Declarations and Access Control
目標1, 創建數組
採用不同的格式來編寫任一基本數據類型數組的聲明,構造及初始化的代碼。

數組是一連串對象或基本數據,它們必須同型,並以一個標識符封裝在一起。數組好象一個對象,通過new關鍵字來創建。
聲明數組
數組的聲明並不能為數組分配內存。聲明時數組不能有大小信息,也就是說編譯器並不允許你告訴它究竟數組有多大,它只是一個reference(引用),並沒有對應的空間。聲明數組的方式有: int[] a1; int a1[]兩種,int num[5]是錯誤的數組聲明方式。

聲明並創建數組
聲明一個數組並同時為它分配內存。
Int num[] =new int[5];

聲明並初始化數組
聲明一個數組並同時進行初始化。
Int num[]=new int[]{0,1,2,3,4};
Int num[]=new int[5]{0,1,2,3,4}; //!錯誤

數組知道自己的大小
與c++不同,數組知道自己的大小,當數組越界時,會拋出異常。數組具有length屬性(不是length()方法),它能告訴你數組的大小。

多維數據
int m[][] ; int [] m[]; int[][] m;

數組的預設值
與其它的變數不同,不論數組在向處創建,它總是使用可以使用預設值。

目標2 聲明類與變數
聲明類,內部類,方法,實例變數,靜態變數,自動變數(局部變數),正確使用各種修飾符(public , private , static ,final, abstract)。

在JAVA中萬事萬物皆對象,即使JAVA程序本身也是對象。
類的定義和對象的生成
public class MyClass{ //類定義
int i;
float f; //類數據成員
void amethod(){ //方法
int i; // 局部變數
}
}

MyClass aClass =new MyClass(); //創建類的一個實例(對象)

修飾符說明
private
被了變數所在的類,其它任何類都不可以訪問這個成員。

無訪問修飾符
所謂的包訪問許可權,同一個包內的其它類可以訪問這個成員。

Protected
與無訪問修飾符具有許可權外,還允許子類訪問這個成員。

Public
具有全局可視性,任何其它類都可以訪問這個成員。

Static
Static變數稱為類變數,類的所有對象共享這個變數。
Static方法稱為類方法,它只能訪問static變數。靜態方法不能被子類overriding為非靜態方法,但靜態方法可以被子類靜態方法所Hided.

Native
只用於方法,指明方法體是由其它編程語言編寫的。它以;結尾不是以{}結尾。
Public native void fastcalc();

Abstract
Abstract修飾符可用於類與方法前,在用於方法前時表明方法不具備方法體。只支類中包括了抽象方法則它必須聲明為抽象類。如果一個類實現一個介面時,它沒有為介面中所有的方法提供實現時,也必須聲明為抽象類。

Final
Final修飾符可用於類,方法和變數,fianl類不能被繼承,所有final類中的方法都是教學final方法。Final變數的值必須在創建時設定並具不能被修改。

Synchronized
防止多個線程同時訪問相同的代碼段。

Transient
表明類序列化時,變數不必序列化。

Volatile
表明變數由於線程可能非同步修改。

目標3 預設構造器
結定一個類,確定是否有預設構造器

構造器是與類名相同的方法,並具沒有返回值。預設構造器是一個不具有任何參數的構造器。在你沒有提供構造器的條件下,編譯器為自動化為你提供一個預設的構造器,但一旦你定義了任何一個構造器,編譯器就不會為你提供預設構造器。在這種條件下,如果你使用不具有參數的構造器將有錯誤。
構造器可以有訪問修飾符,但不能有native,abstract,static,synchronized和final修飾符。

目標4 重載與覆寫
為所有在自己或父類中的相關方法聲明有效的返回值,
相同類中的方法
當在同一個類中有多個方法具有相同的名稱時,這個方法就被重載了。只有參數的次序和類型是區分重載方法的依據,而返回值和參數的名稱對區分重載方法沒有貢獻,所以,不能以返回值的不同來重載方法。

子類中的方法
可以在子類中重載父類的方法,只要新的重載方法具有不同的參數次序或類型。當你在子類中的方法具有於父類中的方法相同的signature,則稱子類覆寫了父類的方法。注意:子類覆寫父類方法,它的訪問修飾符可以不同,但子類要具有比父類更加嚴格的訪問許可權。
靜態方法不能被覆寫只能被HIDED。

基本類型為參數的重載
基本類型可以自動進行窄化轉型(narrowing conversion),在沒有相應數據類型的重載方法,它的數據類型向上晉升。

Section 2 Flow control and exception Handling

目標1 if 和switch語句
使用if和switch編寫代碼並能區分有效的參數類型

if的條件語句中只能是boolean型的數據。
Int k=1;
If(k ) System.out.println(k); // 錯誤
If(k==1) System.out.println(k); // 正確

Switch的條件語句中只能是int數據類型,或int的窄化數據類型也就是byte, char, short
Long i;
Switch(i){ //錯誤
Case 1: .. break;
Case 2: … break;
Default: ..
}
case語句的break的使用,在switch塊中只有遇到break語句時,塊才跳出。
Default語句不必總安排在switch語句的最後,但default語句不在最後時,要使用break.

三元操作符 ?:

目標2 循環,break和continue
編寫各種(不)具有label的break和continue的循環語句。明確循環開始與結束時,循環記數器的值。

For 循環
語法:
for(initialization; conditional expression;increment)

逗號運算符
它只能用於for的控製表達式中。
for(int i=1,j=i+10;i<5;i++,j=i*2)
do-while與while的區別在開do-while中的語句至少執行一次。

Goto與break,continue
雖然goto是java的保留字,但java而不使用它。Java中的跳躍功能由break與continue提供。在java中,惟一一個放置lable而能夠產生效益的地點就是恰恰放在迭代語句前。一般而論,break與continue只會中斷當前的循環,而與label搭配,可以中斷多層循環。
Label1:
Outeriteration{
Inneriteration{

break; //1

continue; //2
….
Continue label1;//3
….
Break label1; //4
}
}
1中斷內層迭代,回到外層迭代
2將執行點移至內層迭代的起始處
3同時中斷內層迭代,再從外層迭代開始
4同時中斷內外層迭代,不再進行任何迭代
務必記下。在java中使用label的惟一理由是跳過一個以上的嵌套層次。
目標3 try/catch語句與方法覆寫
正確使用異常與異常處理語句(try,catch,finally)來編寫代碼,正確處理覆寫方法的異常。

異常一詞,意指「我對這件事有異議:我對這件事感到意外」。在問題發生點,你可能自己處理異常,有時,你可能不知道如向處理,就是說在當前的context並不具備中以修改問題的信息,你可將問題交付給高層的context的處理。

覆寫有異常拋出的方法
覆寫具的異常拋出的方法時,子類的方法只能拋出父類方法所拋出的異常或它的子異常。但是,子類方法可以拋出少於父類的異常或乾脆就不拋異常。
方法聲明的Throws子句
拋出子句意指當錯誤發生時,方法拋出這個異常而這個方法的調用者必須處理(catch)這個異常異常。
目標4 如時異常發生
認識代碼段中異常發生的地方以它的影響。注意:異常可能是運行時異常,檢測異常或錯誤。

錯誤無需捕捉
異常的出處:
Java標准庫類拋出的異常
自己的類拋出的異常
執行期發生的任何意外
檢測異常與非檢測異常
檢測異常你必須捕捉,而非檢測異常你不必捕捉。
非檢測異常發生後,預設條件下會在控制台上列印一條消息。對某些非檢測異常可用編碼來避免。
public class GetArg{
public static void main(String argv[]){
if(argv.length ==0){
System.out.println("Usage: GetArg param");
}else{
System.out.println(argv[0]);
}
}
}
檢測異常必須被捕捉,方法在調用某個拋出檢測異常的的方法時,它或者捕捉它或拋出它。
public FileInputStream openFile(String filename)
throws FileNotFoundException{//拋出異常,自己不處理
FileInputStream fis = new FileInputStream(filename);
return fis;
}

public FileInputStream openFile(String filename) {
FileInputStream fis;
try{
fs= new FileInputStream(filename);
}catch(FileNotFoundException ex){
ex.printStackTrace();
}
return fis;
}

finally子句
finally子句總是會執行,即使try/catch中已有了return語句finally中的語句也會執行。但如果try/catch中有System.exit(0),finally語句不會執行。

Catch子句
Catch子句的捕捉異常的次序要與異常的層次結構相一致。也就是說子異常要先捕捉,父異常後捕捉。反之,編譯器會拋出子異常已捕捉的信息。其它要注意是:異常被拋出後,異常處理根據捕捉的排列次序,尋找最近的處理程序。
目標5 使用斷言
正確編寫斷言代碼
assertion功能提供了一種在代碼中進行正確性檢查的機制,這種檢查通常用於開發和調試階段,到了軟體完成部署後就可以關閉。這使得程序員可以在代碼中加入調試檢查語句,同時又可以在軟體部署後關閉該功能而避免對軟體速度和內存消耗的影響。基本上,assertion功能就是JAVA中的一種新的錯誤檢查機制,只不過這項功能可以根據需要關閉。

斷言的語法
assert somebooleatest

assert somebooleantest : someinformatinvemethod

斷言的使用
斷言的使用就好比注釋的使用,注釋向其它人表明其閱讀的代碼是正確的,而斷言用於保證在程序執行過程中booleanTest的值一定是真。斷言用於確保某些東西總是為真的。預設條件下,斷言功能是關閉的。
編譯開啟斷言功能。
javac -source1.4 Myprog.java
運行開啟斷言功能
enableassertions的參數:
no arguments
Enables or disables assertions in all classes except system classes.
packageName...
Enables or disables assertions in the named package and any subpackages.
...
Enables or disables assertions in the unnamed package in the current working directory.
className
Enables or disables assertions in the named class
例如:
java –enableassertions:my.package… MyProg
java –ea Myprog

What should you assert to be true?
斷言用於你認為某此東西必須是真的地方。例如:人的年齡必然大於0,又如你認為在一套if/else判定後,必然有判定成功的分支,就可在if/else後,插入斷言。例如:
switch(lang){
case Language.java:
System.out.println("java");
break;
case Language.pascal:
System.out.println("pascal");
break;
case Language.csharp:
System.out.println("csharp");
break;
default:
assert false : lang;
}

斷言使用的地方

應該使用的情形 不應該使用的情形
用於保證內部數據結構的正確 不用於保證命令行參數的正確
用於保證私有(private)方法參數的正確 不用於保證公共(public)方法參數的正確
用於檢查任何方法結束時狀態的正確 不用於檢查外界對公共方法的使用是否正確
用於檢查決不應該出現的狀態 不用於保證應該由用戶提供的信息的正確性
用於檢查決不應該出現的狀態,即使你肯定它不會發生 不要用於代替if語句
用於在任何方法的開始檢查相關的初始狀態 不要用做外部控制條件
用於檢查一個長循環執行過程中的的某些狀態 不要用於檢查編譯器、操作系統、硬體的正確性,除非在調試過程中你有充分的理由相信它們有錯誤
在不開啟斷言功能時的輸出:
在開啟斷言功能時的輸出:

Section 3 Garbage Collection
Objective 1,2 & 3
State the behaviour that is guaranteed by the garbage collection systemWrite code that explicitly makes objects eligible for garbage collection. Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.

為什麼要進行垃圾收集
當內存中的對象不再被利用時,系統就要回收內存。Java中不用擔心垃圾收集,系統的垃圾收集器會自動回收沒有引用的對象所佔用的內存。注意:你能建議或鼓勵 JVM進行垃圾收集但你不能強迫它。

確保的行為:finalization
Java確保在對象被收集調用finalize方法。垃圾回收器用於釋放「對象內存」,由於java中所有的東西都是對象,所以finalize不用來回收釋放內存。Finalize方法的使用時機是代碼採用了native方法,它調用了非java的內存分配方式,所以你得在finalize方法中以native的方式釋放內存。

對象被回收的時機
當垃圾收集機制認為對象上沒有引用時,它調用垃圾收集器來回收對象。當垃圾收集是非確定性的,你不能預測它發生的時間,你也不能預測finalize方法准確的運行時間。

Note: Once a variable is no longer referenced by anything it is available for garbage collection.
You can suggest garbage collection with System.gc(), but this does not guarantee when it will happen

非可達
當對象非可達時,就是可能進行回收。非可達的原因為:對象明確被設置為null或指向它的引用數為0。

Section 4 Language Fundamentals
Objective 1, Packages, import, inner classes, interfaces
Identify correctly constructed package declarations, import statements, class declarations (of all forms including inner classes) interface declarations, method declarations (including the main method that is used to start execution of a class), variable declarations, and identifiers.

目標1 包,導入,內類與介面
正確的識別包聲明,導入聲明,類聲明(包括內類),介面聲明,方法聲明(包括main方法),變數聲明和修飾器。

包語句
包用於解決名字沖突,一般開發者以自己的internet域名的反序作為包名的第一部分。這樣你就可以生成獨一無二的包,這樣包中的類就不會有名稱上的沖突。例如:package cn.e.xjtu.scjp 這樣就可以產生獨一無二的類名:cn.e.xjtu.scjp.Question
注意: 包聲明語句必須位於其它語句之前,除了注釋語句

導入語句
導入語句位於包語句之後,其它語句之前。導入語句是為了方便代碼編寫,導入相應的包後,包中的類可以僅以局部名使用,而不以全限定名來使用。
Import cn.e.xjtu.scjp.*;
Question q=new Question();

cn.e.xjtu.scjp.Question q=new cn.e.xjtu.scjp.Question();
導入語句對性能的沒有影響,它就好比DOS環境中設置路徑。
注意:If a source file has a package statement, it must come before any other statement apart from comments

類與內類的聲明
類聲明
一個文件只能包含一個public類,但可以包含多個非public類。這些類在編譯後將生成各自獨立的.class文件。
內類,即定義在其它類之中的類。

介面定義
介面是純粹的abstract class.它所定義的方法不包含方法主體。介面也可定義數據成員,但這些數據成員自然而然的成為了static和final. 介面中的方法即使沒有聲明為public,它們也會是public,所以實現介面時,必須將實現的方法定義為public。
例子:
interface Instrument{
int i=5;// static & final
void play(); // automatically public

}
class Wind implments Instrument{
public void play(){} //必須定義為public

}

main方法
main方法是程序運行的起點,方法的signature
public static void main(String argv[])
public:方法全局可見性 static:類方法 void: 無返回值 String[]:參數為字元串數組
main不是java的關鍵字,可以用它來定義變數。Main方法的參數是由命令行來提供的。
State the correspondence between index values in the argument array passed to a main method and command line arguments.
Java Aclass arg0 arg1 …

變數聲明
變數的名稱:它必須是一個合法的標識符。標識符以字母開頭的Unicode字元串;不是關鍵字,布爾直接值(true,false)或保留字(null);它在作用范圍內必須是唯一的。
合法的變數: _avariable, avariable$, (註:_,$可用於變數名)
數據類型:boolean-8/1 byte-8 -128~127
short-16 -32768~32767 int-32 long-64
float-32 double-65 char-16 0~65536

數據類型轉型(casting operators)
在java中只有進行窄化轉換(narrowing conversion)時才有風險,寬化轉化(widening conversion )時就無需明確指示。
數據運算中的晉升(promotion)
在比int小的基本數據類型上進行任何數學運算或位運算時,運算之前會先晉升為int,其結果也會是int類型。如果你要將結果指給較小的類型時,要進行轉型。

目標2 使用介面,
明確實現介面類,介面是Runnable或其它的用戶自定義的介面

Interfaces -Programming by contract
介面是在類之間建立了一個協議(protocol),或者說合同編程。 意味一個開發者開發了介面其它開發者要守它的條件。介面的別一個用處是實現多重繼承。Java中類只能繼承一個非介面類,其餘繼承的來源得是介面。正確的寫法是:
DeriveClass extends BaseClass implements interface1,interface2{}
介面合並時的名稱沖突

Objective 3, Passing values from the command line
State the correspondence between index values in the argument array passed to a main method and command line arguments
運行一個例子就明白:
public class MyParm{
public static void main(String argv[]){
String s1 = argv[1];
System.out.println(s1);
}
}
java MyParm hello there
程序將輸出there不是MyParm也不是hello
Objective 4, identify keywords

abstract boolean break byte case catch
char class const * continue default do
double else extends final finally float
for goto * if implements import instanceof
int interface long native new package
private protected public return short static
strictfp super switch synchronized this throw
throws transient try void volatile while

Objective 5, Unassigned variables
State the effect of using a variable or array element of any kind when no explicit assignment has been made to it.
Java保證變數絕對會在被使用前初始化。每個基本類型的數據成員都保證有初值(O)。而引用數據類型的數據成員的初值為null.
The default values for numeric types is zero, a boolean is false and an object reference is the only type that defaults to a null.
局部變數(在方法中定義的變數)不能預設值,故使用前必須明確賦予初值。
數組總是可以設置預設值的。Before initialization arrays are always set to contain default values wherever they are created.
Objective 6, The range and format of data types

Section 5 Operators and Assignments
Objective 1, Applying operators
Determine the result of applying any operator including assignment operators and instanceof to operands of any type class scope or accessibility or any combination of these.

目標1 使用運算符
操作符的分類
算術操作符 (+ , - , * , / , %,++,--)
一元操作符 (++, --, - , +)
關系和條件操作符 關系操作符(>,>=,<,<=,==,!=) 條件操作符(&&,||,!,&,|,^)
移位操作符(<<,>>,>>>) 位操作符(&,|,^,~)
賦值操作符(=)
其它操作符(?:,[],.,new,instanceof,(類型))
註:除了=,==,!=運算符外,其它運算符只能用於基本類型。String類支持+,+=操作符
例: String aStr=2+」hello」;
instanceof操作符用來檢驗某特殊對象是不是某類或該類的子類的實例,還可以檢驗某對象的類或子類是否實現了某介面。注意,數組也是對象,instanceof同樣適合與數組。

賦值操作符=
基本數據類型的賦值操作
boolean數據只能賦值於另一個boolean數據。不同於c和c++,java中的boolean值只能是true和false。
其它的數據類型可以自由的進行widening conversion(寬化轉換)。而進行narrowing conversion(窄化轉換)由於有精度的損失,必須進行強制轉換。
Primitives may be assigned to "wider" data types, a boolean can only be assigned to another boolean
引用數據類型的賦值操作
引用數據類型的賦值,例如a=b,使得a和b引用指向相同的對象。引用數據類型的賦值可以向上轉型。即一超類的引用可以被賦值一子類對象。但向下轉型必須強制轉換。
Object references can be assigned up the hierarchy from child to base.
++,--: 前序遞增和前序遞減(++a,--a)先進行運算然後才增賦值。後序遞增和後序遞減(a++,a--)先賦值然後才進行運算。
奇怪的++與--:
int a=1,b=5;
b+=b++-a--; (b=9)
b=b++;(b=9)
b=++b; (b=10)

關系操作符
關系操作符(<,>,<=,>=,==,!=)所產生的結果是boolean,==,!=可用於所有的內置的類型,其它運算符不能用於boolean.
奇怪的==(對於引用類型==比較兩個對象的內存地址,這可不是我們想要的)
double d=12.0;
int i=12;
Integer i2=new Interger(12);
Double d2=new Double(12);
Integer i3=new Interger(12);
d==i ; true
i2==i3; false
i2.equals(i3); true
i2.equals(d2) ; false

邏輯操作符
邏輯運算符:&&,||,!只能用boolean值身上。位運算符:&,|,^,~:在兩個操作數的相應位上進行邏輯代數運算。boolean數據不能~b而用!b。&和|和^即是邏輯的(邏輯與,邏輯或和邏輯非)也是位操作的運算符(按位與,按位或和按位異或)。
奇怪的&&與||(短路的&&和||)
當第一個操作數為flase時,如果用&&運算符時,則不檢查第二個操作數就直接返回flase。
當第一個操作數為true時,如果用||運算符時,則不檢查第二個操作數就直接返回true。

移位操作符
無符號右移位操作符>>>,它採用零擴展,高位插入0. 左移位運算符<< 能將運算符左邊的運算對象向左移動運算符右側指定的位數在低位補0。有符號右移位運算符>> 則將運算符左邊的運算對象向右移動運算符右側指定的位數,有符號右移位運算符使用了符號擴展。若值為正則在高位插入0,若值為負則在高位插入1。
註:int或<int的數據類型進行位移操作數先要進行mode 32運算所以對大於32的位移運算,先要進行mode 32運算,所以3>>>32的結果為3。Long數據類型在先要進行mode 64運算。
奇怪的>>>:小的負數進行>>>運算將得到一個大的正數
-1>>>1 : 2147483647
A unsigned right shift >>> by a positive amount of a small negative number will result in a large positive number returned.

操作數的優先順序
優先順序(胃潰瘍患者是c程序員的寫照 Ulcer Addicats Really Like C A lot)
U: ->Unary 一元運算符 ++, -- ,-,+,!,~
A: -> Arithmetic(shift) *,/,%,+,-,>>,>>>,<<
R: -> Relation >,<,>=,<=,instanceof,==,!=
L: -> Logic(bitwise) &,^,|,&&,||
C: -> 三元運算符
A:-> 賦值 = *=

Objective 2, the equals method
Determine the result of a

熱點內容
python替換文本內容 發布:2024-04-20 05:21:22 瀏覽:898
urllib3源碼 發布:2024-04-20 05:11:23 瀏覽:34
如何通過運行打開伺服器文件 發布:2024-04-20 00:06:50 瀏覽:670
電腦百度網盤怎麼上傳 發布:2024-04-19 23:49:15 瀏覽:416
陸放四驅買哪個配置 發布:2024-04-19 23:49:08 瀏覽:407
岳陽點外賣什麼軟體安卓 發布:2024-04-19 23:46:27 瀏覽:44
編譯時代理 發布:2024-04-19 23:26:28 瀏覽:515
美國雲伺服器主機 發布:2024-04-19 22:28:54 瀏覽:140
抗生素資料庫 發布:2024-04-19 22:13:03 瀏覽:496
晚晚教編程 發布:2024-04-19 21:56:23 瀏覽:713