可以在包頭加個字段表示資料的長度, 驗證資料的長度值或者將資料實體轉換為hashcode, 利用一些資料驗證演算法
比如md5,是乙個將任意長度的資料字串轉化成短的固定長度的值的單向操作
vector 是執行緒安全的, arraylist不是執行緒安全的可以用**測試一下在更多元素新增進來時會請求更大的空間
超過預定義大小時, 會擴容, vector每次請求其大小的雙倍空間,arraylist請求其大小的1.5倍空間
若可以預估資料量的話,分配乙個較大的初始值屬於最佳實踐, 可以減少調整大小的開銷。
public
class main
system.out.println("bad------" + (system.currenttimemillis() - time));
time = system.currenttimemillis();
listalist = new arraylist(size);
for (int i = 0; i < size; i++)
system.out.println("good-----" + (system.currenttimemillis() - time));
}}
輸出結果為bad——256
good—–203
note
但是我試了上面的size值, 發現有時候bad的效能反而比good好
它指從資料庫中提取資料時涉及的一系列活動, 這些活動包括 將用高層資料庫語言表示的查詢語句翻譯為能在檔案系統的物理層使用的表示式, 為優化查詢而進行各種轉換, 以及查詢的實際執行
基本步驟為:1. 語言分析以及翻譯
2. 優化
3. 執行
類似於編譯器的語法分析器所做的工作, 檢查查詢的語法, 驗證查詢中出現的關係名是資料庫中的關係名如果查詢用檢視表示的, 翻譯階段還用定義該檢視的關係式替換對該檢視的引用
給定查詢的不同執行計畫會有不同的代價, 我們不能寄希望使用者寫出最高效率執行計畫的查詢語句, 構造具有最小查詢代價的查詢執行代價的查詢執行計畫應當是系統的責任
騰訊筆試題目
1 一天總共有 3600 24 86400秒。定義乙個長度為86400的整數陣列int delta 86400 每個整數對應這一秒的人數變化值,可能為正也可能為負。開始時將陣列元素都初始化為0。然後依次讀入每個使用者的登入時間和退出時間,將與登入時間對應的整數值加1,將與退出時間對應的整數值減1。這...
程式設計師筆試題
signed char a 0xe0 unsigned int b a unsigned char c a 下面說法正確的是 a a 0 b 0 為真 b c a 為真 c b的16進製為0xffffffe0 d 都不對 答案 c 整形比較小於int的會擴寬的int再比較,而有符號數擴寬填充符號位,...
騰訊程式設計師面試題
const用來說明所定義的變數是唯讀的。這些在編譯期間完成,編譯器可能使用常數直接替換掉對此變數的引用。2 買200返100優惠券,實際上折扣是多少?到商店裡買200的商品返還100優惠券 可以在本商店代替現金 請問實際上折扣是多少?由於優惠券可以代替現金,所以可以使用200元優惠券買東西,然後還可...