JAVA编程语言的基础知识(六)
JAVA代碼查錯(cuò):
1.
?
大俠們,這有何錯(cuò)誤?
答案: 錯(cuò)。abstract method必須以分號(hào)結(jié)尾,且不帶花括號(hào)。
2.
有錯(cuò)嗎?
答案: 錯(cuò)。局部變量前不能放置任何訪問(wèn)修飾符 (private,public,和protected)。final可以用來(lái)修飾局部變量
(final如同abstract和strictfp,都是非訪問(wèn)修飾符,strictfp只能修飾class和method而非variable)。
3.
?
這好像沒(méi)什么錯(cuò)吧?
答案: 錯(cuò)。abstract的methods不能以private修飾。abstract的methods就是讓子類(lèi)implement(實(shí)現(xiàn))具體細(xì)節(jié)的,怎么可以用private把a(bǔ)bstract
method封鎖起來(lái)呢? (同理,abstract method前不能加final)。
4.
?
這個(gè)比較明顯。
答案: 錯(cuò)。int x被修飾成final,意味著x不能在addOne method中被修改。
5.
?
和上面的很相似,都是關(guān)于final的問(wèn)題,這有錯(cuò)嗎?
答案: 正確。在addOne method中,參數(shù)o被修飾成final。如果在addOne method里我們修改了o的reference (比如: o = new Other();),那么如同上例這題也是錯(cuò)的。但這里修改的是o的member vairable (成員變量),而o的reference并沒(méi)有改變。
6.
?
有什么錯(cuò)呢? 看不出來(lái)啊。
答案: 正確。輸出的是"i = 0"。int i屬於instant variable (實(shí)例變量,或叫成員變量)。instant variable有default value。int的default value是0。
7.
?
和上面一題只有一個(gè)地方不同,就是多了一個(gè)final。這難道就錯(cuò)了嗎?
答案: 錯(cuò)。final int i是個(gè)final的instant variable (實(shí)例變量,或叫成員變量)。final的instant variable沒(méi)有default value,必須在constructor (構(gòu)造器)結(jié)束之前被賦予一個(gè)明確的值??梢孕薷臑?#34;final int i = 0;"。
8.
?
看上去很完美。
答案: 錯(cuò)??瓷先ピ趍ain里call doSomething沒(méi)有什么問(wèn)題,畢竟兩個(gè)methods都在同一個(gè)class里。但仔細(xì)看,main是static的。static method不能直接call non-static methods??筛某?#34;System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能訪問(wèn)non-static instant variable。
9.
此處,Something類(lèi)的文件名叫OtherThing.java
這個(gè)好像很明顯。
答案: 正確。從來(lái)沒(méi)有人說(shuō)過(guò)Java的Class名字必須和其文件名相同。但public class的名字必須和文件名相同。
10.
?
答案:錯(cuò)誤。在編譯時(shí)會(huì)發(fā)生錯(cuò)誤(錯(cuò)誤描述不同的JVM有不同的信息,意思就是未明確的x調(diào)用,兩個(gè)x都匹配(就象在同時(shí)import java.util和java.sql兩個(gè)包時(shí)直接聲明Date一樣)。對(duì)于父類(lèi)的變量,可以用super.x來(lái)明確,而接口的屬性默認(rèn)隱含為 public static final.所以可以通過(guò)A.x來(lái)明確。
11.
?
這個(gè)錯(cuò)誤不容易發(fā)現(xiàn)。
答案: 錯(cuò)。"interface Rollable extends Playable, Bounceable"沒(méi)有問(wèn)題。interface可繼承多個(gè)interfaces,所以這里沒(méi)錯(cuò)。問(wèn)題出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里聲明的interface variable (接口變量,也可稱(chēng)成員變量),默認(rèn)為public static final。也就是說(shuō)"Ball ball = new Ball("PingPang");"實(shí)際上是"public static final Ball ball = new Ball("PingPang");"。在Ball類(lèi)的Play()方法中,"ball = new Ball("Football");"改變了ball的reference,而這里的ball來(lái)自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改變r(jià)eference的。因此編譯器將在"ball = new Ball("Football");"這里顯示有錯(cuò)。
12、內(nèi)部類(lèi)可以引用他包含類(lèi)的成員嗎?有沒(méi)有什么限制?
一個(gè)內(nèi)部類(lèi)對(duì)象可以訪問(wèn)創(chuàng)建它的外部類(lèi)對(duì)象的內(nèi)容
13、WEB SERVICE名詞解釋。JSWDL開(kāi)發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
Web ServiceWeb Service是基于網(wǎng)絡(luò)的、分布式的模塊化組件,它執(zhí)行特定的任務(wù),遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進(jìn)行互操作。
JAXP(Java API for XML Parsing) 定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當(dāng)你需要改變具體的實(shí)現(xiàn)時(shí)候也不需要修改代碼。
JAXM(Java API for XML Messaging) 是為SOAP通信提供訪問(wèn)方法和傳輸機(jī)制的API。
WSDL是一種 XML 格式,用于將網(wǎng)絡(luò)服務(wù)描述為一組端點(diǎn),這些端點(diǎn)對(duì)包含面向文檔信息或面向過(guò)程信息的消息進(jìn)行操作。這種格式首先對(duì)操作和消息進(jìn)行抽象描述,然后將其綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格式上以定義端點(diǎn)。相關(guān)的具體端點(diǎn)即組合成為抽象端點(diǎn)(服務(wù))。
SOAP即簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級(jí)協(xié)議。
UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問(wèn)協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。
轉(zhuǎn)自51CTO開(kāi)發(fā)頻道
轉(zhuǎn)載于:https://blog.51cto.com/liangruijun/636261
總結(jié)
以上是生活随笔為你收集整理的JAVA编程语言的基础知识(六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 压缩文件(1)
- 下一篇: hdu 1043 ,pku 1077 E