java程式設計陷阱

2021-04-22 18:54:33 字數 678 閱讀 3398

1、for迴圈。請看下面的**

object  obj = null;

for(int i =0; i <10; i++)  catch (exception e) 

if (obj == null)  else 

}//#for

程式正常執行

dao.get(i) 均會返回 object 物件。現在假如 當 i= 6 - 10時,

dao.get(i)均發生異常。程式輸出幾個「yes」 ?

正確答案:10個。

為什呢? 仔細想想就知道了,只是程式設計時可能想不起來。而且這樣的bug一旦出現不容易重現,看**時貌似沒有問題。

2、 對「共享物件」處理時。處理「共享物件」,很容易出錯誤,一旦出錯也很難發現或者除錯。

「共享物件」包括 全域性變數, 多人共享乙個資料庫 。

今天遇到乙個資料庫問題,困擾了我好幾個小時,原因就是開發資料庫和demo資料庫 是同乙個。

最近資料庫的schema更改了,而且資料庫裡的資料量很大,偷懶一次直接部署到demo上,開發是也使用了這個庫。

當開發完後,除錯校驗同步資料的準確性時,發現同步資料很不穩定,而且日誌也很奇怪,完全不安常理出牌,左看看,右看看,還是一頭霧水。折騰了幾個來回下來後才發現demo上有自動執行程式,而且和我正在開發的功能模組有交叉,這樣一來,兩個程式對同乙個資料庫操作,導致資料混亂。

Java面試陷阱

1.abstract class name 大俠們,這有何錯誤?答案 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 有錯嗎?答案 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final...

注意Java陷阱

一 deletecharat stringbuilder方法deletecharat 在這個序列中的刪除指定位置字元,只是乙個字元.如下 在拼接sql過程中,刪除最後乙個 或者 都是可以的,但是刪除最後乙個 and 時,只是刪除了最後乙個 and 的乙個字元,即 a 的位置.結果變成 select ...

java陷阱 字元陣列

code public class test system.out.println number system.out.println number number 列印的結果是 123number c 18affc 原因 如果乙個字元陣列轉換成string將會呼叫它的tostring方法。而字元陣列...