Time of Update: 2018-12-03
說到字串比較,大家都知道,但你真的知道如何比較才是最正確的嗎?不知道的人,幾乎都是用以下方法來比較的String str = nullif (str == null || str.equals("")) {}這實際上是效率最低的,正確的做法是:String str = null;if (str == null || str.isEmpty()) {}但上述方法需要jdk在1.6以上,那麼也可以用:String str = null;if (str == null || str.length()
Time of Update: 2018-12-03
在項目過程中,我們有時經常喜歡用靜態變數(static)來緩衝一些不便的公用資料,但是這麼做有一點需要注意:靜態變數的保護。由於一些因素(比如查詢資料庫),我們無法對靜態變數加上final屬性,因此如果靜態變數暴漏後,如果有對靜態變數寫操作(即修改變數)的話,很可能會引起意想不到的錯誤。當然平時我們用緩衝幾乎都是讀取操作,所以這個問題不容易引起我們的注意。例子說明:package test;import java.util.ArrayList;import java.util.Iterator;
Time of Update: 2018-12-03
一、Findbugs1. 配置1.1 開啟FindBugs視圖:Windows => Show View => Other… => FindBugs => Bug Info 、Bug Explorer、Bug Reviews1.2 配置FindBugs選擇你的項目=>右鍵 => Properties => FindBugs => 選中“Run automatically” => OKFindbugs各項屬性的配置說明:Enable
Time of Update: 2018-12-03
在Spring Aop執行個體的文章中,我向大家介紹了Spring Aop的相關知識,今天我進一步細化下Aop中異常處理的相關知識。public void doThrowing(JoinPoint jp, Throwable ex) {System.out.println("method " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName() + " throw exception");System.
Time of Update: 2018-12-03
偶然間發現HQL一個非常有意思的用法,拿來分享下。樣本如下:1. student資料庫表(MySQL)CREATE TABLE `student` ( `ID` int(11) NOT NULL, `NAMES` varchar(50) NOT NULL, `AGE` int(3) NOT NULL, PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;表中資料IDNAMESAGE1王鵬242張三122.
Time of Update: 2018-12-03
四、執行個體總結1. 參數化測試有時一個測試方法,不同的參數值會產生不同的結果,那麼我們為了測試全面,會把多個參數值都寫出來並一一斷言測試,這樣有時難免費時費力,這是我們便可以採用參數化測試來解決這個問題。參數化測試就好比把一個“輸入值,期望值”的集合傳入給測試方法,達到一次性測試的目的。package test;import static org.junit.Assert.*;import java.util.Arrays;import org.junit.Test;import
Time of Update: 2018-12-03
一、會用Spring測試套件的好處在開發基於Spring的應用時,如果你還直接使用Junit進行單元測試,那你就錯過了Spring為我們所提供的饕餮大餐了。使用Junit直接進行單元測試有以下四大不足:1)導致多次Spring容器初始化問題根據JUnit測試方法的調用流程,每執行一個測試方法都會建立一個測試案例的執行個體並調用setUp()方法。由於一般情況下,我們在setUp()方法中初始化Spring容器,這意味著如果測試案例有多少個測試方法,Spring容器就會被重複初始化多次。雖然初始化
Time of Update: 2018-12-03
Maven簡介Maven是一個專案管理工具,它包含了一個項目物件模型(Project Object Model),一組標準集合,一個專案生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management
Time of Update: 2018-12-03
.net架構下的事件和委託理解起來比較困難,特別是委託這個特殊的類型學習起來總是要花點時間。下面結合Observer模式做了一個簡單的例子,希望對初學者有協助。首先建一個控制台應用程式。代碼如下 :Program.cs:using System;using System.Collections.Generic;using System.Text;namespace ObserverPattern{ /// <summary> ///
Time of Update: 2018-12-03
在.NET2.0中,新加了一個類:ClientScriptManager,該類讓我們可以在伺服器端編寫用戶端指令碼,而在執行的時候不用回傳。一個典型的小例子://伺服器端控制項,調用用戶端指令碼 if (Request.Browser.SupportsCallback)//驗證瀏覽器是否支援 { //不用回傳的用戶端指令碼,參數1是指令碼的類型,參數2是指令碼的關鍵字(用來區分),參數3是執行的指令碼內容
Time of Update: 2018-12-03
什麼是method JIT? 什麼是DFG JIT? JSC的DFG JIT與V8 Crankshaft相比有何優劣?JIT:一個方法式的JIT(a method jit)*關於method JIT,可以參考另一份檔案。關於解譯器(interpreter)和堆棧(stack,也就是寄存器檔案,register file)都是應用了方法式JIT(method JIT).
Time of Update: 2018-12-03
迭代器是.NET2.0的一個新的特性,使得我們可以很輕鬆對沒有繼承自IEnumerator介面的類進行迭代訪問。如下一個樣本: class IteratorDemo { int[] ii ={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; public System.Collections.IEnumerator GetEnumerator() { for (int i = 0; i <
Time of Update: 2018-12-03
.NET12.0相對於.NET 1.1增加了泛型的內容,其特點我認為有:(1)可以在很大程度上,簡化模組的重用,使用泛型可以動態指定資料的類型(簡單類型和複雜類型,或者說實值型別和參考型別).這樣就使得很多不同類型的相同操作,都用一個泛型型別來代替就可以。(2)泛型在寫集合的應用時,特別有用.在.NET1.1中,也有集合類(在System.Collection命名空間中).但是.NET1.1的集合類往往對於實值型別的資料要裝箱(如果資料量大的話,這樣在很大程度上影響了程式的效能).所以在.NET
Time of Update: 2018-12-03
.NET2.0管理配置的新特性:1、提供了豐富的API。這些API可以讓你很輕鬆編寫程式去檢查和修改應用程式配置;你甚至可以在遠端電腦上使用這些API。2、提供了豐富的編輯工具,你可以很輕鬆的在IIS和VS
Time of Update: 2018-12-03
有很多控制項產生的事件處理常式都帶有一個object類型的參數sender,往往有大多數初學者不知道這個參數怎麼用,其實這個參數從它的命名上就可以知道:它是整個事件處理常式的發起者,知道這一點做一些事情,往往就簡單了,下面這個例子是選擇gridview中的radiobutton(一般放在模板列中的radiobutton是不能實現只選擇一個的)。protected void rbtnSel_CheckedChanged(object sender, EventArgs e) {
Time of Update: 2018-12-03
一、問題。首先暴露一下,有些電腦專業學生的問題:1.自學能力不強。表現在對於一些在開發中遇到的問題,不知道使用協助工具,如MDSN(.NET方向),baidu等。甚至,在遇到一些問題的時候,只能等待,一點主動尋求解決方案的意識都沒有。2.邏輯思維能力不強。遇到問題,不主動思考。舉一個例子:Web網站的三層體繫結構設計。有的學生,對中間商務邏輯層的業務實體的抽象特別吃力。原因可能有以下幾個方面:可能在學習過程中,對OO和三層體系學的不夠紮實,所以在對事務邏輯進行抽象時,感覺老虎吃天,無從下口,老感
Time of Update: 2018-12-03
物件導向已經出來很長一段時間了,和物件導向有關的書也寫了不少,出了不少,自己也曾讀過一些大作.再加上自己的經驗和感受,形成了以下的理解.第一,物件導向的核心是類.其實"類"是中國人自己翻譯的,很形象,但是從我的角度來講,類這個詞感覺很空洞,很抽象.不過對類的定義:具有相同或相識屬性和行為的一組對象的集合,還是很貼切的。但是有一個不好的地方就是:在類的概念中又引如了一個新的概念,那就是對象.其實在我看來,對象這個概念,其實也是同樣的重要.如果不知道什麼是對象,那怎麼知道它的集合是什麼.所謂對象,其
Time of Update: 2018-12-03
這個問題看似好像挺簡單挺幼稚的,然而就這個幼稚的問題還曾經困擾過我一陣呢,其實犯這個錯誤的根本原因是我們對於基礎知識的理解和掌握上還有不足的表現,基本功有些人總是覺得不重要,認為更多的擴大學習的廣度才是最重要的,我認為這是很容易犯的,同時也是很致命的錯誤觀點!對基礎知識掌握不牢靠,或理解不深刻,寫出的代碼必然會有40%的機率是錯誤的、低效的,一段代碼不是說沒有編譯錯誤就一定是對的,不是說簡單的運行下就一定是對的,優秀的代碼,是經得起“刀山火海”般的考驗的(“多線程、效率、安全”這三坐大山)。所以
Time of Update: 2018-12-03
說起資料庫設計,相信大家都明白怎麼回事,但說起資料庫設計的重要性,我想大家也只是停留在概念上而已,到底如何重要?怎麼重要呢?今天就將我至今為止的理解向大家闡述下。一個不良的資料庫設計,必然會造成很多問題,輕則增減欄位,重則系統無法運行。我先來說說資料庫設計不合理的表現吧:1. 與需求不符因為這個原因造成的改動量往往是最大。如果進入編碼階段的話,很可能會直接讓你崩潰掉。2.
Time of Update: 2018-12-03
現在主流的Web MVC架構除了Struts這個主力 外,其次就是Spring MVC了,因此這也是作為一名程式員需要掌握的主流架構,架構選擇多了,應對多變的需求和業務時,可實行的方案自然就多了。不過要想靈活運用Spring MVC來應對大多數的Web開發,就必須要掌握它的配置及原理。 一、Spring MVC環境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring