資源描述:
《java常見問題集錦(來自sun官方)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Java常見問題集錦(來自sun官方).txt我這輩子只有兩件事不會:這也不會,那也不會。人家有的是背景,而我有的是背影。肉的理想,白菜的命。肉的理想,白菜的命。白馬啊你死去哪了!是不是你把王子弄丟了不敢來見我了。問:如何設(shè)置Java2(JDK1.2)的環(huán)境變量? 答:Java2安裝后,需要設(shè)置PATH和JAVA_HOME環(huán)境變量.與JDK1.1不同的是:設(shè)置好JAVA_HOME環(huán)境變量后,JVM將自動搜索系統(tǒng)類庫以及用戶的當(dāng)前路徑. Java2環(huán)境變量的設(shè)置如下例所示: Solaris平臺:se
2、tenvJAVA_HOMEJava2的安裝路徑 setenvPATH$JAVA_HOME/bin:${PATH} Windows平臺:setJAVA_HOME=Java2的安裝路徑 setPATH=$JAVA_HOMEbin;%PATH% 問:哪些Java集成開發(fā)工具支持Java2? 答:目前流行的Java集成開發(fā)環(huán)境,如Inprise的JBuilder,Symantec的VisualCafe,Sybase的PowerJ,都支持Java2. 問:如果在Netscape或IE瀏覽器中運(yùn)行Jav
3、aapplet時出現(xiàn)了錯誤,如何確定錯誤范圍? 答:當(dāng)javaapplet在瀏覽器中運(yùn)行時,使用的是瀏覽器本身的缺省JVM.而不同瀏覽器對JDK的支持程度也不盡相同.因此,在Netscape或IE瀏覽器中運(yùn)行Javaapplet出現(xiàn)了錯誤,建議使用JDK提供的工具appletviewer或Sun公司的Hotjava瀏覽器來測試該applet,以確定錯誤的產(chǎn)生是與瀏覽器相關(guān). 如果applet在appletviewer或Hotjava中運(yùn)行一切正常,則錯誤的產(chǎn)生是由于瀏覽器不完全兼容JDK而引起的.此
4、時,解決方法可以是使用Hotjava瀏覽器或者安裝Sun公司的JavaPlugin. 如果applet在Hotjava瀏覽器或appletviewer中運(yùn)行即發(fā)生錯誤,則應(yīng)當(dāng)根據(jù)錯誤提示檢查applet程序. 問:當(dāng)用JDBC向數(shù)據(jù)庫中插入數(shù)據(jù)或從數(shù)據(jù)庫中提取數(shù)據(jù)時,為何有時中文字符會顯示為亂碼? 答:這個問題的實(shí)現(xiàn)通常與各個JDBCdriver的實(shí)現(xiàn)有關(guān).目前大多數(shù)JDBCdriver采用本地編碼格式來傳輸中文字符,例如中文字符"0x4175"會被轉(zhuǎn)成"0x41"和"0x75"進(jìn)行傳輸.因此我們
5、需要對JDBCdriver返回的字符以及要發(fā)給JDBCdriver的字符進(jìn)行轉(zhuǎn)換. 當(dāng)用JDBCdriver向數(shù)據(jù)庫中插入數(shù)據(jù)時,需要先將Unicode轉(zhuǎn)成nativecode;當(dāng)JDBCdriver從數(shù)據(jù)庫中查詢數(shù)據(jù)時,則需要將nativecode轉(zhuǎn)換成Unicode.下面給出了這兩種轉(zhuǎn)換的實(shí)現(xiàn): Stringnative2Unicode(Strings){ if(s==null''s.length()==0){ returnnull; } byte[]buffer=newbyte[s.l
6、ength()]; for(inti=0;is.length();i++){if(s.charAt(i)>=0x100){ c=s.charAt(i); byte[]buf=(""+c).getBytes(); buffer[j++]=(char)buf[0]; buffer[j++]=(char)buf[1]; } else{ buffer[j++]=s.charAt(i); } } returnnewString(buffer,0,j); } 除使用以上兩個方法之外,有些J
7、DBCdriver如果對jdbcdriverManager設(shè)置了正確的字符集屬性,以上2個方法就不需要了. 問:當(dāng)用Servlet來處理http請求并產(chǎn)生返回的HTML頁面時,如何使HTML頁面中的中文字符能夠正常顯示? 答:javax.servlet.http.HttpResponse類用于產(chǎn)生返回頁面.通過HttpResponse定義的方法getOutputStream()可以獲得ServletOutputStream的實(shí)例,這樣用戶就可以利用ServletOutputStream.write方
8、法向輸出流中寫入返回頁面的內(nèi)容.但是ServletOutputStream使用的是缺省的編碼方式,如果要使返回頁面中的中文字符能夠正常顯示,最好顯示地指定所用的字符編碼方式.通常需要構(gòu)造一個OutputStreamWriter,例程如下: publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres) throwsServletException,IOException {