第一篇:JAVA基礎(chǔ)知識精華總結(jié)
1、對象的初始化
(1)非靜態(tài)對象的初始化
在創(chuàng)建對象時(shí),對象所在類的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化。
基本類型:int 型,初始化為0.如果為對象:這些對象會(huì)按順序初始化。
※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對象。
構(gòu)造方法的作用就是初始化。
(2)靜態(tài)對象的初始化
程序中主類的靜態(tài)變量會(huì)在main方法執(zhí)行前初始化。
不僅第一次創(chuàng)建對象時(shí),類中的所有靜態(tài)變量都初始化,并且第一次訪問某 類(注意此時(shí)未創(chuàng)建此類對象)的靜態(tài)對象時(shí),所有的靜態(tài)變量也要按它們在類 中的順序初始化。
2、繼承時(shí),對象的初始化過程
(1)主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private.(2)主類靜態(tài)成員的初始化。
(3)主類的超類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個(gè) 超類的默認(rèn)構(gòu)造方法前,先進(jìn)行對此超類進(jìn)行非靜態(tài)對象的初始化。
(4)主類非靜態(tài)成員的初始化。
(5)調(diào)用主類的構(gòu)造方法。3、關(guān)于構(gòu)造方法
(1)類可以沒有構(gòu)造方法,但如果有多個(gè)構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu) 造方法,否則在繼承此類時(shí),需要在子類中顯式調(diào)用父類的某一個(gè)非默認(rèn)的構(gòu)造 方法了。
(2)在一個(gè)構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方 法的語句必須是第一條語句。
4、有關(guān)public、private 和protected(1)無public修飾的類,可以被其他類訪問的條件是:a.兩個(gè)類在同一文 件中,b.兩個(gè)類在同一文件夾中,c.兩個(gè)類在同一軟件包中。
(2)protected :繼承類和同一軟件包的類可訪問。
(3)如果構(gòu)造方法為private,那么在其他類中不能創(chuàng)建該類的對象。
5、抽象類
(1)抽象類不能創(chuàng)建對象。
(2)如果一個(gè)類中一個(gè)方法為抽象方法,則這個(gè)類必須為abstract抽象類。
(3)繼承抽象類的類在類中必須實(shí)現(xiàn)抽象類中的抽象方法。
(4)抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private.(5)間接繼承抽象類的類可以不給出抽象方法的定義。6、final 關(guān)鍵字
(1)一個(gè)對象是常量,不代表不能轉(zhuǎn)變對象的成員,仍可以其成員進(jìn)行操 作。
(2)常量在使用前必須賦值,但除了在聲明的同時(shí)初始化外,就只能在構(gòu) 造方法中初始化。
(3)final 修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。
(4)如果聲明一個(gè)類為final,則所有的方法均為final,無論其是否被 final 修飾,但數(shù)據(jù)成員可為final 也可不是。7、接口interface(用implements來實(shí)現(xiàn)接口)
(1)接口中的所有數(shù)據(jù)均為static和final 即靜態(tài)常量。盡管可以不用這 兩個(gè)關(guān)鍵字修飾,但必須給常量賦初值。
(2)接口中的方法均為public,在實(shí)現(xiàn)接口類中,實(shí)現(xiàn)方法必須可public 關(guān)鍵字。
(3)如果使用public來修飾接口,則接口必須與文件名相同。8、多重繼承
(1)一個(gè)類繼承了一個(gè)類和接口,那么必須將類寫在前面,接口寫在后面,接口之間用逗號分隔。
(2)接口之間可多重繼承,注意使用關(guān)鍵字extends.(3)一個(gè)類雖只實(shí)現(xiàn)了一個(gè)接口,但不僅要實(shí)現(xiàn)這個(gè)接口的所有方法,還 要實(shí)現(xiàn)這個(gè)接口繼承的接口的方法,接口中的所有方法均須在類中實(shí)現(xiàn)。9、接口的嵌入
(1)接口嵌入類中,可以使用private 修飾。此時(shí),接口只能在所在的類 中實(shí)現(xiàn),其他類不能訪問。
(2)嵌入接口中的接口一定要為public.10、類的嵌入
(1)類可以嵌入另一個(gè)類中,但不能嵌入接口中。
(2)在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對象,需通過手段來 取得。
手段有兩種:
class A { class B {} B getB(){ B b = new B(); return b ; } } static void m(){ A a = new A(); A.B ab = a.getB(); // 或者 是 A.B ab = a.new B(); }(3)一個(gè)類繼承了另一個(gè)類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu) 造方法不能自動(dòng)被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造 方法。接上例:
class C extends A.B { C(){ new A()。super(); // 這一句就 實(shí)現(xiàn)了對內(nèi)部類構(gòu)造方法的調(diào)用。} } 構(gòu)造方法也可這樣寫:
C(A a){ a.super(); } // 使用這個(gè)構(gòu)造方法創(chuàng)建對象,要寫成C c = new C(a); a是A 的對象。
11、異常類
JAVA中除了RunTimeException類,其他異常均須捕獲或拋出。
第二篇:Java基礎(chǔ)知識總結(jié)
Java總結(jié)
標(biāo)識符
? Java對各種變量、方法和類等要素命名時(shí)使用的字符數(shù)列稱為標(biāo)識符。
? 凡是自己可以起名字的地方都叫標(biāo)識符,都遵循標(biāo)識符的規(guī)則
? Java標(biāo)識符命名規(guī)則:
? 標(biāo)識符由字母、下劃線“__”、美元”$”或數(shù)字組成? 標(biāo)識符應(yīng)以字母、下劃線、美元符開頭
? Java標(biāo)識符大小寫敏感,長度無限制
? 約定俗成:Java標(biāo)識符選取因“見名知意”且不能與Java語言的關(guān)鍵字重名
關(guān)鍵字
? Java中一些賦以特定的含義,用做專門用途的字符串稱為關(guān)鍵字(keyword)。
? 大多數(shù)編譯器會(huì)將關(guān)鍵字用特殊的方式標(biāo)出
? 所有Java關(guān)鍵字都是小寫英文。
? goto 和const雖然從未使用,但也作為被Java關(guān)鍵字保留。
Java常量
? Java的常量值用字符串表示,區(qū)分為不同的數(shù)據(jù)類型。
? 如整型常量123
? 實(shí)型常量3.12
? 字符常量?a?
? 邏輯常量true,false
? 字符串常量“helloword”
? 注意:區(qū)分字符串常量和字符常量
? 注意:“常量”這個(gè)名詞還會(huì)用在另外其他語境中表示值不可變的變量
? 參見final關(guān)鍵字
Java變量
? Java變量是程序中最基本的存儲(chǔ)單元,其要素包括變量名,變量類型和作用域。
? Java程序中每一個(gè)變量都屬于特定的數(shù)據(jù)類型,在使用前必須對其聲明,聲明格式:
? type varName[=value] [{,varName [=value]}]
? 例如:
? int I = 100;
? float f = 12.3f;
? double d1,d2,d3 = 0.123;
? String s = “Hello”;
? 從本質(zhì)上講,變量其實(shí)是內(nèi)存中的一小塊區(qū)域,使用變量名來訪問這塊區(qū)域,因此,每一個(gè)變量使用前必須要先申請(聲明),然后必須進(jìn)行賦值(填充內(nèi)容),才能使用
Java變量的分類
? 按被聲明的位置劃分:
? 局部變量:方法或語句塊內(nèi)部定義的變量
? 成員變量:方法外部、類的內(nèi)部定義的變量
? 注意:類外部(與類對應(yīng)的大括號外面)不能有變量的聲明
? 按所屬的數(shù)據(jù)類型劃分:
? 基本數(shù)據(jù)類型變量
? 引用數(shù)據(jù)類型變量
Java局部變量與成員變量
? 方法體內(nèi)部聲明的變量(包括形參)稱為局部變量:
? 方法體內(nèi)部是指與方法對應(yīng)的大括號內(nèi)部
? 在方法體外,類體內(nèi)聲明的變量成為成員變量
? public void method(){
? int i;
? int j = i+5;//編譯出錯(cuò),變量i還未被初始化
? double d = 3.14;
? Dog dog;
? Dog = new Dog(22,1964);
? }
? 注:以上程序面前還不能編譯
Java基本數(shù)據(jù)類型
? Java中定義了4類8種基本數(shù)據(jù)類型
? 邏輯型—boolean
? 文本型---char
? 整數(shù)型---byte,short,int,long
? 浮點(diǎn)數(shù)型---float,double
邏輯型boolean
? boolean類型適于邏輯運(yùn)算,一般用于程序流程控制。
? boolean類型數(shù)據(jù)只容許取值true或false,不可以0或非0的整數(shù)替代true和false,這點(diǎn)和C語言不同。字符型char
? Char型數(shù)據(jù)用來表示通常意義上“字符”
? 字符常量用單引號括起來的單個(gè)字符,例如:
? Char eChar = ?a?;char cChar = ?中?
? Java字符采用Unicode編碼,每個(gè)字符占兩個(gè)字節(jié),因而可用十六進(jìn)制編碼形式表示,例如:
? Char c1 = ?u0061?;
? 注:Unicode是全球語言統(tǒng)一編碼
? Java語言中還允許使用轉(zhuǎn)義字符??來將其后轉(zhuǎn)變?yōu)槠渌x,例如:
? Char c1 = ?n?;//?n?代表換行
? 補(bǔ)充:2進(jìn)制,10進(jìn)制,16機(jī)制之間的轉(zhuǎn)換
? 1101---1*1 + 0*2 + 1*4 + 1*8
? 13---1 + 4 + 8---1101
? 1101---D
整數(shù)類型
? Java各整數(shù)類型有固定的表示范圍和字段長度,其不受具體操作系統(tǒng)的影響,以保證Java程序的可移
植性。
? Java語言整型常量的三種表示形式:
? 10進(jìn)制整數(shù):12-3140。
? 8進(jìn)制,要求以0開頭,如:012。
? 16進(jìn)制,要求0x或0X開頭,如:0x12
? Java語言的整型常量默認(rèn)為int類型,聲明long型常量可以后加?l?或?L?,如:
? int i1 = 600;long l1 = ***L;//必須加L否則出錯(cuò)
浮點(diǎn)類型
? 與整數(shù)類型類似,Java浮點(diǎn)類型有固定的表示范圍和字段長度,不受平臺影響。
? Java浮點(diǎn)類型常量有兩種表示形式:
? 10進(jìn)制形式,例如:3.14312.0
? 科學(xué)記數(shù)形式:3.14e23.14E2
? Java浮點(diǎn)數(shù)默認(rèn)為double類型,如要聲明一個(gè)常量為float類型,則需要在數(shù)字后面加f或F
? double d = 12323.6;float f = 12.3f;必須加f否則出錯(cuò)
基本數(shù)據(jù)類型轉(zhuǎn)換
? Boolean類型不可以轉(zhuǎn)換為其他的數(shù)據(jù)類型
? 整型,字符型、浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算中相互轉(zhuǎn)換,轉(zhuǎn)換時(shí)遵循以下原則:
? 容量小的類型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型:數(shù)據(jù)類型按容量大小排序?yàn)椋?/p>
? Byte,short,char->int->long->float-> double
? Byte,short,char之間不會(huì)相互轉(zhuǎn)換,他們?nèi)咴谟?jì)算時(shí)首先轉(zhuǎn)換為int類型
? 容量大的數(shù)據(jù)類型轉(zhuǎn)換為為容量小的數(shù)據(jù)類型時(shí),要加上強(qiáng)制轉(zhuǎn)換符,但可能造成精度降低或
溢出:使用時(shí)格外注意。
? 有多種類型的數(shù)據(jù)混合也算時(shí),系統(tǒng)首先自動(dòng)的將所有數(shù)據(jù)類型轉(zhuǎn)換為容量最大的,然后在進(jìn)
行計(jì)算
? 實(shí)數(shù)常量(如:1.2)默認(rèn)為double
? 整數(shù)常量(如:12)默認(rèn)為int
運(yùn)算符
? Java語言支持如下運(yùn)算符:
?
?
?
? 算術(shù)運(yùn)算符:+、-、*、/、%、++、--關(guān)系運(yùn)算符:>、<、>=、<=、==、!= 邏輯運(yùn)算符:!、&、|、^、&&、|| 位運(yùn)算符:&、|、^、~、>>、<<、>>>
? 賦值運(yùn)算符:=
? 擴(kuò)展賦值運(yùn)算符:+=、-=、*=、/=
? 字符串連接運(yùn)算符:+
邏輯運(yùn)算符
邏輯運(yùn)算:!--邏輯非&--邏輯與 |--邏輯或 ^--邏輯異或 &&--短路與 ||--短路或
賦值運(yùn)算符與擴(kuò)展賦值運(yùn)算符
? 賦值運(yùn)算符(=)
? 當(dāng)”=”兩側(cè)數(shù)據(jù)類型不一致時(shí),可以適用默認(rèn)類型轉(zhuǎn)換或使用強(qiáng)制類型轉(zhuǎn)換原則進(jìn)行處理
? long m = 100;int n =(int)m
? 注意:可以將整型常量直接賦值給byte,short,char等類型變量,而不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,只
要不超出其表示范圍:
? byte b = 12;char c = 100;
? byte bb = 256;short s =-32769
字符串連接符
? “+”除用于算術(shù)加法運(yùn)算外,還可以對字符串進(jìn)行連接操作
? int id = 800 + 90
? String s = “Hello” + “World”;
? “+”運(yùn)算符兩側(cè)的操作數(shù)中只要有一個(gè)字符串類型,系統(tǒng)自動(dòng)將另一個(gè)操作數(shù)轉(zhuǎn)換為字符串然后再進(jìn)行
連接。
? int c = 12;
? System.out.println(“c=”+c);
? 當(dāng)進(jìn)行打印時(shí),無論任何類型,都自動(dòng)轉(zhuǎn)為字符串進(jìn)行打印
? System.out.println(c);
三目條件運(yùn)算符
? 三目運(yùn)算符,語法格式:
? X ? y : z
? 其中x為boolean類型表達(dá)式,先計(jì)算x的值,若為true,則整個(gè)三目運(yùn)算的結(jié)果為表達(dá)
式y(tǒng)的值,否則整個(gè)運(yùn)算結(jié)果為表達(dá)式z的值。
語句
? 條件語句—根據(jù)不同條件,執(zhí)行不同語句
? if
? if…else
? if…else if
? if…else if…else if…else
? switch
? 循環(huán)語句—重復(fù)執(zhí)行某些動(dòng)作
? for
? while
? do…while
if語句
?
?
?
? if if…else… if…else if… if…else if…else if…
? if…else if…else if…else
? 只有一句需要執(zhí)行的語句時(shí),可以省略{}
for循環(huán)語句
? for語句為如下形式:
? for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ 語句;……}
? 執(zhí)行過程
達(dá)式3,再判斷表達(dá)式2的值;依此重復(fù)下去,直到表達(dá)式2的值=false
? for語句中三個(gè)表達(dá)式都可以省略
while & do while語句
? while語句為如下形式:
? while(邏輯表達(dá)式){語句……}
? 執(zhí)行過程:先判斷邏輯表達(dá)式的值。若=true則執(zhí)行其后面的語句,然后再次判斷條件
并反復(fù)執(zhí)行,直到條件不成立。
? do while語句為如下形式:
? do{語句…} while(邏輯表達(dá)式);? 首先計(jì)算表達(dá)式1,接著執(zhí)行表達(dá)式2,若表達(dá)式2的值=true,則執(zhí)行語句,接著計(jì)算表
? 執(zhí)行過程:先執(zhí)行語句,再判斷邏輯表達(dá)式的值,若為true,再執(zhí)行語句,否則結(jié)束循
環(huán)。
break & continue語句
? break在循環(huán)體中用于強(qiáng)制退出循環(huán),不再執(zhí)行循環(huán)中剩余的部分
? continue在循環(huán)體內(nèi),用于終止當(dāng)前的循環(huán),返回到循環(huán)的開始處,接著開始新的一次循環(huán)。switch語句(條件語句補(bǔ)充)
? switch(){
case xx:
….case xx:
….default:
….? }
?小心case穿透,推薦使用break語句
?多個(gè)case可以合并到一起
?default可以省略,但不推薦省略
?在switch語句里的選擇值只能是字符或是常量。
方法
? Java的方法類似于其他語言的函數(shù),是一段用來完成特定功能的代碼片段,聲明格式:
? [修飾符1,修飾符2…]返回值類型 方法名(形式參數(shù)列表){}
? 形式參數(shù):在方法調(diào)用時(shí)用于接收外界輸入的數(shù)據(jù)
? 實(shí)參:調(diào)用方法時(shí)實(shí)際傳給方法的數(shù)據(jù)
?
?
?
? 返回值:方法在執(zhí)行完畢后返回給調(diào)用它的環(huán)境的數(shù)據(jù)。返回值類型:事先約定的返回值的數(shù)據(jù)類型,如無返回值,必須給出返回值類型void Java語言中使用下述形式調(diào)用方法:對象名.方法名(實(shí)參列表)實(shí)參的數(shù)目、數(shù)據(jù)類型和次序必須和所調(diào)用方法聲明的形參列表匹配
? Return語句終止方法的運(yùn)行指定要返回的數(shù)據(jù)
? Java中進(jìn)行函數(shù)調(diào)用中傳遞參數(shù)時(shí),遵循傳遞的原則:
? 基本類型傳遞的是該數(shù)據(jù)本身。引用類型傳遞的是對對象的引用,而不是對象本身
遞歸調(diào)用
? 遞歸調(diào)用指在方法執(zhí)行過程中出現(xiàn)該方法本身的調(diào)用:
總結(jié)
? 標(biāo)識符
? 不用記規(guī)則,動(dòng)手
? 關(guān)鍵字
? 局部變量vs成員變量
? 變量作用域
? 內(nèi)存布局
? 基礎(chǔ)類型變量
? 4類8種,相互轉(zhuǎn)換
? 分支、循環(huán)
? 方法
? 形參、實(shí)參、返回值、返回值類型
? 遞歸調(diào)用
第三篇:java程序員基礎(chǔ)知識
目前,JAVA是開發(fā)人員的熱寵,很多論壇都有不少熱愛JAVA的開發(fā)人員,也有不少想成為JAVA程序員,但苦于不知道該如何學(xué)習(xí),也不清楚該學(xué)些什么知識才能成為一個(gè)JAVA程序員。本人在這里拋磚引玉,和大家討論成為一個(gè)JAVA初級程序員應(yīng)該具有的知識,與大家共享。
個(gè)人認(rèn)為想成為一個(gè)合格的JAVA初級程序員應(yīng)該具備如下知識:
一、面向?qū)ο蟮闹R:JAVA是一個(gè)面向?qū)ο蟮拈_發(fā)語言,因此熟悉面向?qū)ο髮W(xué)習(xí)JAVA很有必要,您要了解:什么是對象,什么是類;什么是封裝,什么是多態(tài),什么是繼承;什么是抽象類,什么是接口。了解了概念后,您還需要這些概念是如何體現(xiàn)的,如類和對象有什么區(qū)別?類是如何封裝的?
二、JAVA語法:如果您已經(jīng)有了開發(fā)經(jīng)驗(yàn),恭喜您,您學(xué)習(xí)JAVA語法來將比較容易。如果您有C++等面向?qū)ο笳Z言的開發(fā)經(jīng)驗(yàn),您只需簡單的翻看一下介紹JAVA的相關(guān)書籍就可以了。如果您是新手,沒有關(guān)系,您下些工夫,好好研究一本JAVA初級教程之類的書就可以了。
學(xué)習(xí)了JAVA語法,加上面向?qū)ο蟮闹R,只有您用心,您就可以寫出來比較好的JAVA代碼了。如果您再抽出時(shí)間熟悉一下JAVA編程規(guī)范,您代碼的水平就應(yīng)該不俗了。
三、JSP和HTML:在我國的絕大多數(shù)公司,做JAVA程序員都少不了和JSP以及HTML打交道。因此,想成為JAVA程序員就不可避免的要熟悉JSP和HTML,您最好能知道JSP的幾個(gè)內(nèi)置對象,如Session,Request,Reponse,以及常用的JSP標(biāo)簽,如
include,userBean等。盡管一些工具會(huì)幫您生成HTML代碼,但您還是要熟悉比如title等。如果您再熟悉一下JS和CSS就更好了,那會(huì)使您制作的頁面更友好。
四、WebServer:熟悉了以上三種,可以肯定的說您已經(jīng)可以制作出來JSP頁面了,您也可以在您的頁面里使用自己開發(fā)的JAVA類,但您的頁面總要跑起來才能看到您要的效果,這就要求您必須熟悉一種WebServer,比如:TOMCAT等。您要熟悉如何發(fā)布您的應(yīng)用,如何利用WebServer的數(shù)據(jù)庫資源等。
五、開發(fā)工具:大家都知道,開發(fā)工具可以幫助您更好更快地開發(fā),因此熟悉幾種開發(fā)工具很有必要。目前JAVA的開發(fā)工具比較流行的有Eclipse,HTML的開發(fā)工具有Dreamweaver等。
六、熟悉一種框架:熟悉一種框架其實(shí)是成為JAVA程序員的一種可選知識,但目前開發(fā)B/S結(jié)構(gòu)的應(yīng)用的開發(fā)小組,都差不多會(huì)采用一種框架來構(gòu)建自己的應(yīng)用系統(tǒng)。框架都會(huì)有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開發(fā)使你可以省出很多的開發(fā)成本。目前比較流行的框架有Struts和Spring等。
如何成為一名合格的java程序員?(轉(zhuǎn))
程序?qū)W習(xí)2008-05-27 19:56閱讀35評論01、語法:必須比較熟悉,在寫代碼的時(shí)候IDE的編輯器對某一行報(bào)錯(cuò)應(yīng)該能夠根據(jù)
報(bào)錯(cuò)信息知道是什么樣的語法錯(cuò)誤并且知道任何修正。
2、命令:必須熟悉JDK帶的一些常用命令及其常用選項(xiàng),命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那么你對java實(shí)際上還很不了解。
3、工具:必須至少熟練使用一種IDE的開發(fā)工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進(jìn)行工程管理、常用選項(xiàng)的設(shè)置、插件的安裝配置以及進(jìn)行調(diào)試。
4、API:Java的核心API是非常龐大的,但是有一些內(nèi)容筆者認(rèn)為是必須熟悉的,否則不可能熟練的運(yùn)用Java,包括:
1)、java.lang包下的80%以上的類的功能的靈活運(yùn)用。
2)、java.util包下的80%以上的類的靈活運(yùn)用,特別是集合類體系、規(guī)則表達(dá)式、zip、以及時(shí)間、隨機(jī)數(shù)、屬性、資源和Timer。
3)、java.io包下的60%以上的類的使用,理解IO體系的基于管道模型的設(shè)計(jì)思路以及常用IO類的特性和使用場合。
4)、java.math包下的100%的內(nèi)容。
5)、java.net包下的60%以上的內(nèi)容,對各個(gè)類的功能比較熟悉。
6)、java.text包下的60%以上的內(nèi)容,特別是各種格式化類。
7)、熟練運(yùn)用JDBC。
8)、java.security包下40%以上的內(nèi)容,如果對于安全沒有接觸的話根本就不可能掌握java。
9)、AWT的基本內(nèi)容,包括各種組件事件、監(jiān)聽器、布局管理器、常用組件、打印。
10)、Swing的基本內(nèi)容,和AWT的要求類似。
11)、XML處理,熟悉SAX、DOM以及JDOM的優(yōu)缺點(diǎn)并且能夠使用其中的一種完成XML的解析及內(nèi)容處理。
5、測試:必須熟悉使用junit編寫測試用例完成代碼的自動(dòng)測試。
6、管理:必須熟悉使用ant完成工程管理的常用任務(wù),例如工程編譯、生成javadoc、生成jar、版本控制、自動(dòng)測試。
7、排錯(cuò):應(yīng)該可以根據(jù)異常信息比較快速的定位問題的原因和大致位置。
8、思想:必須掌握OOP的主要要求,這樣使用Java開發(fā)的系統(tǒng)才能是真正的Java系統(tǒng)。
9、規(guī)范:編寫的代碼必須符合流行的編碼規(guī)范,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個(gè)單詞一般是動(dòng)詞,包名全部小寫等,這樣程序的可讀性才比較好。
第四篇:java基礎(chǔ)知識面試題
java 和javasciprt 的區(qū)別。【基礎(chǔ)】
JSP 和Servlet 有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?【基礎(chǔ)】
jsp 的四種范圍?【基礎(chǔ)】
一個(gè)“.java”源文件中是否可以包含多個(gè)類(不是內(nèi)部類)?有什么限制?【基礎(chǔ)】
說出一些常用的類,包,接口,請各舉5 個(gè)。【基礎(chǔ)】
java 中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?【基礎(chǔ)
下面哪些類可以被繼承? 【基礎(chǔ)】
1)java.lang.Thread(T)
2)java.lang.Number(T)
3)java.lang.Double(F)
4)java.lang.Math(F)
5)java.lang.Void(F)
6)java.lang.Class(F)
7)java.lang.ClassLoader(T)
寫一個(gè)函數(shù),要求輸入一個(gè)字符串和一個(gè)字符長度,對該字符串進(jìn)行分隔。【基礎(chǔ)】
JAVA 語言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try 塊中可以拋出異常嗎?【基礎(chǔ)】
第五篇:培訓(xùn)期間學(xué)習(xí)的java基礎(chǔ)知識總結(jié)
final定義常量:
如果放到主函數(shù)外則需要publicstatic final
如果放到主函數(shù)內(nèi)部則不需要public static final
float 表示的變量后面必須跟個(gè)f表示單精度小數(shù)
運(yùn)算符:
++(--)在前時(shí)先運(yùn)算在取值,在后時(shí)先取值在運(yùn)算。
if else的分支順序不能顛倒
switch分句后面的default可以省略但不推薦省略。
基本數(shù)據(jù)類型放在棧里,引用數(shù)據(jù)類型放在堆里
studentstu =newstudent則stu放在棧里,student放在堆里
StringBuffer是線程安全的使用場景:經(jīng)常對字符串進(jìn)行修改操作時(shí),并且需要線程安全時(shí)
StringBuilder和stringbuffer類似,是非安全版本
缺點(diǎn):
不支持線程安全
優(yōu)點(diǎn):
在不要求多線程安全情況下性能高
使用場景:經(jīng)常對字符串進(jìn)行修改操作,不需要多線程安全時(shí)使用
對象和類:
如果為public則在此可以直接賦值如果為private則必須通過setter賦值
public修飾的在其他包內(nèi)依然可見,private修飾的是私有類,只能在自身類內(nèi)部可見
面向?qū)ο蟮娜齻€(gè)特征:封裝(數(shù)據(jù)的抽象)、繼承、多態(tài)
多態(tài):有多個(gè)子類,每個(gè)子類調(diào)用相同的方法做出不同的反應(yīng)
例cut()方法:
如果理發(fā)師則理發(fā)
如果是廚師則切菜
盡管一個(gè)子類從父類繼承所有的方法和變量,但它不繼承構(gòu)造函數(shù)。
下述規(guī)則適合覆蓋的方法
覆蓋方法的返回類型必須與它所覆蓋的方法相同
覆蓋方法不能讓它所覆蓋的方法訪問性差
覆蓋方法不能比它所覆蓋的方法拋出更多異常
抽象類無法實(shí)例化,抽象類可以沒有抽象方法
線程同步
關(guān)于鎖和同步,有一下幾個(gè)要點(diǎn):
1)、只能同步方法,而不能同步變量和類;
2)、每個(gè)對象只有一個(gè)鎖;當(dāng)提到同步時(shí),應(yīng)該清楚在什么上同步?也就是說,在哪個(gè)對象上同步?
3)、不必同步類中所有的方法,類可以同時(shí)擁有同步和非同步方法。
4)、如果兩個(gè)線程要執(zhí)行一個(gè)類中的synchronized方法,并且兩個(gè)線程使用相同的實(shí)例來調(diào)用方法,那么一次只能有一個(gè)線程能夠執(zhí)行方法,另一個(gè)需要等待,直到鎖被釋放。也就是說:如果一個(gè)線程在對象上獲得一個(gè)鎖,就沒有任何其他線程可以進(jìn)入(該對象的)類中的任何一個(gè)同步方法。
5)、如果線程擁有同步和非同步方法,則非同步方法可以被多個(gè)線程自由訪問而不受鎖的限制。
6)、線程睡眠時(shí),它所持的任何鎖都不會(huì)釋放。
7)、線程可以獲得多個(gè)鎖。比如,在一個(gè)對象的同步方法里面調(diào)用另外一個(gè)對象的同步方法,則獲取了兩個(gè)對象的同步鎖。
8)、同步損害并發(fā)性,應(yīng)該盡可能縮小同步范圍。同步不但可以同步整個(gè)方法,還可以同步方法中一部分代碼塊。
9)、在使用同步代碼塊時(shí)候,應(yīng)該指定在哪個(gè)對象上同步,也就是說要獲取哪個(gè)對象的鎖。
css樣式表:
# 是div選擇器div
“.”是類選擇器class
“l(fā)i”屬于標(biāo)簽選擇器