亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java基礎知識,你都知道么?

系統 1797 0
Java 基礎 axman 考驗你的 Java 基礎
1. 簡述邏輯操作 (&,|,^) 與條件操作 (&&,||) 的區別。 (15 )
2. 下面程序運行會發生什么結果 ? 如果有錯誤,如何改正 ? (15 )
interfaceA{
int x = 0;
}
class B{
int x =1;
}
class C
extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
}
3. 簡述 Java Server Page Servlet 的聯系和區別。 (20 )
4.XML 文檔定義有幾種形式?它們之間有何本質區別?
解析 XML 文檔有哪幾種方式? (20 )
5. 簡述 synchronized java.util.concurrent.locks.Lock 的異同? (15 )
6.EJB 規范規定 EJB 中禁止的操作有哪些? (15 )
7. 最后還有一題考考你的眼力 :
public String toString(){
return this + "@" + this.hashCode();
}
這個 toString() 方法實現有無不當的地方 ?(toString 方法其實可以按你想輸出的任何內容輸出一些該類的信息 )
答案:
1. 簡述邏輯操作 (&,|,^) 與條件操作 (&&,||) 的區別。 (15 )
區別主要答兩點 :
a. 條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型 , 而且可以操作數值型
b. 邏輯操作不會產生短路 . :
int a = 0;
int b = 0;
if( (a = 3) > 0 || (b = 3) > 0 ) // 操后 a =3,b=0.
if( (a = 3) > 0 | (b = 3) > 0 ) // 操后 a =3,b=3.
答對第一點得 5 分,答對第二點得 10 .
本題考察最最基本的知識 , 但仍然有很多大牛級開發人員下馬,任何語言在開始的部分
都會詳細介紹這些基本知識,但除了學習第一種語言時,沒有人在學習新的語言時愿意
花五分鐘來復習一下 .
2. 下面程序運行會發生什么結果 ? 如果有錯誤,如何改正 ? (15 )
interfaceA{
int x = 0;
}
class B{
int x =1;
}
class C
extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
}
本題在編譯時會發生錯誤 ( 錯誤描述不同的 JVM 有不同的信息,意思就是未明確的 x 調用,
兩個 x 都匹配,就象在同時 import java.util java.sql 兩個包時直接聲明 Date 一樣 )
本題主要考察對接口和類的最最基本的結構的了解 . 對于父類的變量,可以用 super.x
明確,而接口的屬性默認隱含為 public static final. 所以可以通過 A.x 來明確 .
3. 簡述 Java Server Page Servlet 的聯系和區別。 (20 )
本題不用多說,在答相同點時應該明確知道 jsp 編譯后是 " servlet" " 不是 Servlet"
答區別時應該回答出 " 側重于 ( 視圖 / 控制邏輯 )". 其它可根據情況加減分值 . 知識很簡單,
但從面試的角度看,被試者不僅要能知道它們的區別,而且要能比較準確地表達出來 (
后寫文檔要能讓別人看得懂,不產生歧義 ) ,回答 "jsp 編譯后就是 servlet" 視為錯誤,回答
"jsp 用于視圖, servlet 用于控制邏輯 " 視為錯誤,應該用側重于,主要 ( 多數 ) 用于等詞語
表達 .
4.XML 文檔定義有幾種形式?它們之間有何本質區別?
解析 XML 文檔有哪幾種方式? (20 )
本題三個答題點 :
a: 兩種形式 dtd schema
b: 本質區別 :schema 本身是 xml 的,可以被 XML 解析器解析 ( 這也是從 DTD 上發展 schema
根本目的 )
c: 兩種主要方式 :dom sax. 答出兩種得全分,如能答出 saxt ,或其它 ( 在答出 dom sax 的基
礎上,如果應試者認為其它方式也可以視為對 xml 的解析應該允許 . 但沒有答出 dom sax
其它方式說成是對 XML 的解析不得分 ) 應該加分 .
5. 簡述 synchronized java.util.concurrent.locks.Lock 的異同? (15 )
主要相同點 :
Lock 能完成 synchronized 所實現的所有功能 .( 其它不重要 )
主要不同點 :
Lock 有比 synchronized 更精確的線程語義和更好的性能 ( 在相同點中回答此點也行 )
synchronized 會自動釋放鎖 . Lock 一定要求程序員手工釋放 . 并且必須在 finally 從句
中釋放,如果沒有答出在 finally 中釋放不得分 . 就如 Connection 沒有在 finally 中關閉一
. 連最基本的資源釋放都做不好,還談什么多線程編程 .
6.EJB 規范規定 EJB 中禁止的操作有哪些? (15 )
共有 8 點,答出下列 3-4 點得滿分 .
· 不能操作線程和線程 API( 線程 API 指非線程對象的方法如 notify wait )
· 不能操作 awt
· 不能實現服務器功能
· 不能對靜態屬生存取 .
· 不能使用 IO 操作直接存取文件系統
· 不能加載本地庫 .
· 不能將 this 作為變量和返回 .
· 不能循環調用 .
7
public String toString(){
return this + "@" + this.hashCode();
}
會變成
public String toString(){
return String.valueOf(this) + "@" + String.valueOf(this.hashCode());
}
valueOf 方法又將去調用 toString();
/**
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
*/
這樣好像會有問題
原文地址:
Java 本身沒有這個能力,不過利用操作系統的命令可以做到。
public static String getMACAddress() {
String address = "";
String os = System.getProperty("os.name");
if ( os != null && os.startsWith("Windows")) {
try {
String command = "cmd.exe /c ipconfig /all";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br =
new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") > 0) {
int index = line.indexOf(":");
index += 2;
address = line.substring(index);
break;
}
}
br.close();
return address.trim();
}
catch (IOException e) { }
}
return address;
}
原文地址:
axman equal 的深入研究
equals 方法的重要性毋須多言,只要你想比較的兩個對象不愿是同一對象,你就應該實現
equals 方法,讓對象用你認為相等的條件來進行比較 .
下面的內容只是 API 的規范,沒有什么太高深的意義,但我之所以最先把它列在這兒,是因為
這些規范在事實中并不是真正能保證得到實現 .
1. 對于任何引用類型, o.equals(o) == true 成立 .
2. 如果 o.equals(o1) == true 成立,那么 o1.equals(o)==true 也一定要成立 .
3. 如果 o.equals(o1) == true 成立且 o.equals(o2) == true 成立,那么
o1.equals(o2) == true 也成立 .
4. 如果第一次調用 o.equals(o1) == true 成立再 o o1 沒有改變的情況下以后的任何次調用
都成立 .
5.o.equals(null) == true 任何時間都不成立 .
以上幾條規則并不是最完整的表述,詳細的請參見 API 文檔 .
對于 Object 類,它提供了一個最最嚴密的實現,那就是只有是同一對象是, equals 方法才返回 true ,也就是人們常說的引用比較而不是值比較 . 這個實現嚴密得已經沒有什么實際的意義,所以在具體子類 ( 相對于 Object 來說 ) 中,如果我們要進行對象的值比較,就必須實現自己的 equals 方法 .
先來看一下以下這段程序 :
public boolean equals(Object obj)
{
if (obj == null) return false;
if (!(obj instanceof FieldPosition))
return false;
FieldPosition other = (FieldPosition) obj;
if (attribute == null) {
if (other.attribute != null) {
return false;
}
}
else if (!attribute.equals(other.attribute)) {
return false;
}
return (beginIndex == other.beginIndex
&& endIndex == other.endIndex
&& field == other.field);
}
這是 JDK java.text.FieldPosition 的標準實現,似乎沒有什么可說的 .
我信相大多數或絕大多數程序員認為,這是正確的合法的 equals 實現 . 畢竟它是 JDK API 實現啊 .
還是讓我們以事實來說話吧 :
package debug;
import java.text.*;
public class Test {
public static void main(String[] args) {
FieldPosition fp = new FieldPosition(10);
FieldPosition fp1 = new MyTest(10);
System.out.println(fp.equals(fp1));
System.out.println(fp1.equals(fp));
}
}
class MyTest extends FieldPosition{
int x = 10;
public MyTest(int x){
super(x);
this.x = x;
}
public boolean equals(Object o){
if(o==null) return false;
if(!(o instanceof MyTest )) return false;
return ((MyTest)o).x == this.x;
}
}
運行一下看看會打印出什么 :
System.out.println(fp.equals(fp1)); 打印 true
System.out.println(fp1.equals(fp)); 打印 flase
兩個對象,出現了不對稱的 equals 算法 . 問題出在哪里 ( 腦筋急轉彎:當然出在 JDK 實現的 BUG)?
我相信有太多的程序員 ( 除了那些根本不知道實現 equals 方法的程序員外 ) 在實現 equals 方法
時都用過 instanceof 運行符來進行短路優化的,實事求是地說很長一段時間我也這么用過。
太多的教程,文檔都給了我們這樣的誤導。而有些稍有了解的程序員可能知道這樣的優化可能
有些不對但找不出問題的關鍵。另外一種極端是知道這個技術缺陷的骨灰級專家就提議不要這
樣應用。
我們知道, " 通常 " 要對兩個對象進行比較,那么它們 " 應該 " 是同一類型。所以首先利用 instanceof
運行符進行短路優化,如果被比較的對象不和當前對象是同一類型則不用比較返回 false ,但事實
上, " 子類是父類的一個實例 " ,所以如果子類 o instanceof 父類,始終返回 true ,這時肯定
不會發生短路優化,下面的比較有可能出現多種情況,一種是不能造型父類而拋出異常,另一種
是父類的 private 成員沒有被子類繼承而不能進行比較,還有就是形成上面這種不對稱比較。可能
會出現太多的情況。
那么,是不是就不能用 instanceof 運行符來進行優化?答案是否定的, JDK 中仍然有很多實現是正
確的,如果一個 class final 的,明知它不可能有子類,為什么不用 instanceof 來優化呢?
為了維護 SUN 的開發小組的聲譽,我不說明哪個類中,但有一個小組成員在用這個方法優化時在后加
mar
分享到:
評論

java基礎知識,你都知道么?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人看片黄a免费 | 国产尤物视频在线 | 欧美国产高清 | 欧美日韩中文在线 | 欧美国产精品日韩在线 | 免费观看欧美精品成人毛片能看的 | 亚洲男人的天堂久久无 | 福利午夜国产网站在线不卡 | 亚洲精品色一区色二区色三区 | 久久这里只精品 | 不卡一级aaa全黄毛片 | 国产成人综合高清在线观看 | 国产精品乱码在线观看 | 日日夜夜操操操 | 欧美日韩综合 | 久久综合九色综合97婷婷女人 | 波多野结衣在线观看3人 | 九九亚洲视频 | 破处一级片 | 四虎高清在线精品免费观看 | 亚洲图片色图 | 欧美综合图片区 | 中文字幕美日韩在线高清 | 在线日产一区二区 | 黄色综合网站 | 国产精品99久久99久久久看片 | 亚洲国产成人久久一区二区三区 | 亚洲精品成人456在线播放 | 国产精品网页 | 亚洲精品美女久久久久网站 | 亚洲精品乱码久久久久久 | 久久精品免费全国观看国产 | 亚洲精品国产成人专区 | 免费福利小视频 | 在线a毛片免费视频观看 | 四虎永久在线精品国产馆v视影院 | 久久er热这里只有精品免费 | 国产精品日韩一区二区三区 | 四虎影永久在线观看网址 | 毛片基地视频 | 在线观看av片永久免费 |