今天上午myeclipse8.5突然出現(xiàn)building workspace 緩慢,每次保存都出現(xiàn),每次等待一分鐘左右,都崩潰了。。在網(wǎng)上搜索了很多辦法試,都沒有達(dá)到想要的效果。
最后myeclipse新建一個(gè)工作空間,只存放這個(gè)項(xiàng)目,運(yùn)行啟動(dòng)后正常了。
原文: http://blog.csdn.net/itstar201063/article/details/8277403 buiding workspace 加載卡的我都不行了

, 郁悶啊!!! 網(wǎng)上許多的朋友 都說優(yōu)化下
myeclipse 就行了!
是的優(yōu)化了之后 速度是加快了不少
,可是還是沒有找到解決問題的根本辦法,
有的朋友說 關(guān)閉 Progect 中的 Build auto…… 勾去掉就行了! 是的去掉之后又會(huì)出現(xiàn)一
些問題,
什么呢? 所有更新的代碼都不能及時(shí)的編譯; 每次都需要手動(dòng)的去編譯(這樣更麻煩了

)。
其實(shí) buiding workspace 就是將我們所寫的代碼及時(shí)的進(jìn)行編譯;
說了這么多的廢話: 看看如何做吧 ---希望對困擾的 童鞋們 有所幫助
1: 選擇菜單欄中的progect里的properties(如果properties不顯示就是為灰色,首先 buildall或buildprogect )
2: 1完成之后再去properties 將validation和javascriptValidator 去掉就行了!
3:有時(shí)候我們的項(xiàng)目過多也會(huì)增大buiding workspace的時(shí)間, 關(guān)閉不必要的項(xiàng)目;
4:progect 中cliean 中選擇 Clean progects selected below 指定項(xiàng)目;
這種辦法多我來說沒有什么問題 ---!對你!! 如果不行的話 --建議再到網(wǎng)上找找
有關(guān)有關(guān)問題補(bǔ)充
有時(shí)候可能buildall 可能也很慢
可以先選取一個(gè)項(xiàng)目--然后在進(jìn)行 progect 中的屬性值;
1.丟棄小數(shù)部分,保留整數(shù)部分
js:parseInt(7/2)
2.向上取整,有小數(shù)就整數(shù)部分加1
js: Math.ceil(7/2)
3,四舍五入.
js: Math.round(7/2)
4,向下取整
js: Math.floor(7/2)
詳細(xì)出處參考:http://www.jb51.net/article/23398.htm
來源:
http://lives.iteye.com/blog/1397939地
<script type="text/javascript">
function validate(){
var reg = new RegExp("^[0-9]*$");
var obj = document.getElementById("name");
if(!reg.test(obj.value)){
alert("請輸入數(shù)字!");
}
if(!/^[0-9]*$/.test(obj.value)){
alert("請輸入數(shù)字!");
}
}
< /script>
驗(yàn)證數(shù)字的正則表達(dá)式集
驗(yàn)證數(shù)字:^[0-9]*$
驗(yàn)證n位的數(shù)字:^\d{n}$
驗(yàn)證至少n位數(shù)字:^\d{n,}$
驗(yàn)證m-n位的數(shù)字:^\d{m,n}$
驗(yàn)證零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
驗(yàn)證有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
驗(yàn)證有1-3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
驗(yàn)證非零的正整數(shù):^\+?[1-9][0-9]*$
驗(yàn)證非零的負(fù)整數(shù):^\-[1-9][0-9]*$
驗(yàn)證非負(fù)整數(shù)(正整數(shù) + 0) ^\d+$
驗(yàn)證非正整數(shù)(負(fù)整數(shù) + 0) ^((-\d+)|(0+))$
驗(yàn)證長度為3的字符:^.{3}$
驗(yàn)證由26個(gè)英文字母組成的字符串:^[A-Za-z]+$
驗(yàn)證由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$
驗(yàn)證由26個(gè)小寫英文字母組成的字符串:^[a-z]+$
驗(yàn)證由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$
驗(yàn)證由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:^\w+$
驗(yàn)證用戶密碼:^[a-zA-Z]\w{5,17}$ 正確格式為:以字母開頭,長度在6-18之間,只能包含字符、數(shù)字和下劃線。
驗(yàn)證是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
驗(yàn)證漢字:^[\u4e00-\u9fa5],{0,}$
驗(yàn)證Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
驗(yàn)證InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
驗(yàn)證電話號碼:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正確格式為:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
驗(yàn)證身份證號(15位或18位數(shù)字):^\d{15}|\d{}18$
驗(yàn)證一年的12個(gè)月:^(0?[1-9]|1[0-2])$ 正確格式為:“01”-“09”和“1”“12”
驗(yàn)證一個(gè)月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正確格式為:01、09和1、31。
整數(shù):^-?\d+$
非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0):^\d+(\.\d+)?$
正浮點(diǎn)數(shù) ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
負(fù)浮點(diǎn)數(shù) ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮點(diǎn)數(shù) ^(-?\d+)(\.\d+)?$
原文:
http://fuleonardo.iteye.com/blog/339749
第一次發(fā)現(xiàn)JavaScript中replace() 方法如果直接用str.replace("-","!") 只會(huì)替換第一個(gè)匹配的字符.
而str.replace(/\-/g,"!")則可以全部替換掉匹配的字符(g為全局標(biāo)志)。
replace()
The replace() method returns the string that results when you replace text matching its first argument
(a regular expression) with the text of the second argument (a string).
If the g (global) flag is not set in the regular expression declaration, this method replaces only the first
occurrence of the pattern. For example,
var s = "Hello. Regexps are fun.";s = s.replace(/\./, "!"); // replace first period with an exclamation pointalert(s);
produces the string “Hello! Regexps are fun.” Including the g flag will cause the interpreter to
perform a global replace, finding and replacing every matching substring. For example,
var s = "Hello. Regexps are fun.";s = s.replace(/\./g, "!"); // replace all periods with exclamation pointsalert(s);
yields this result: “Hello! Regexps are fun!”
所以可以用以下幾種方式.:
string.replace(/reallyDo/g, replaceWith);
string.replace(new RegExp(reallyDo, 'g'), replaceWith);
string:字符串表達(dá)式包含要替代的子字符串。
reallyDo:被搜索的子字符串。
replaceWith:用于替換的子字符串。
<script type="text/javascript">

String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase)
{

if (!RegExp.prototype.isPrototypeOf(reallyDo))
{
return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);

} else
{
return this.replace(reallyDo, replaceWith);
}
}
</script>
原文:
http://socket.blog.163.com/blog/static/209873004201096210555/高內(nèi)聚,低耦合(High Cohesion、Low Coupling)
是一句近乎于“為實(shí)現(xiàn)四個(gè)現(xiàn)代化而努力”式的口號,耳熟并不一定能詳。這個(gè)口號是在軟件工程里第一次碰到的,它的定義估計(jì)是計(jì)算專業(yè)術(shù)語里最欠扁的定義,內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程序。耦合:一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程序的度量。這兩個(gè)定義,相當(dāng)?shù)?#8220;形而上學(xué)”“不知所云”。這是軟件工程中判斷設(shè)計(jì)好壞的標(biāo)準(zhǔn),主要是面向?qū)ο笤O(shè)計(jì),主要是看類的內(nèi)聚性是否高,偶合度是否低。為什么要高內(nèi)聚,使模塊之間的關(guān)系越緊密出錯(cuò)就趙少,越緊密運(yùn)行效率越高!低耦合,就是說,子程序之間的關(guān)系越簡單,越容易擴(kuò)展和維護(hù),越復(fù)雜就會(huì)產(chǎn)生出更多的意想不到的錯(cuò)誤!不利于維護(hù)。
程序員天生都是內(nèi)聚的高手,違反高內(nèi)聚的反而是那些有一定水平的程序員,可能是誤用了設(shè)計(jì)模式,可能是考慮問題過分全面,把一個(gè)功能單一的類分割成多個(gè)類。這里重點(diǎn)說低耦合,耦合就是類之間的互相調(diào)用關(guān)系,如果耦合很強(qiáng),互相牽扯調(diào)用很多,那么會(huì)牽一發(fā)而動(dòng)全身,不利于維護(hù)和擴(kuò)展。什么方法、數(shù)據(jù)、不加分析地往一個(gè)類里整,甚至?xí)r一個(gè)類的所有數(shù)據(jù)成員設(shè)成public,方便在其它類里直接修改數(shù)據(jù)。生活中很多“低耦合”的例子,如床與床單,如果是緊耦合的話,換床單時(shí),也要換床。再如桌子與抽屜。

圖中的上半部分中,把一個(gè)軟件模塊抽象成線條,軟件模塊互相依賴,這是一種面向過程的開發(fā)方式,如果軟件是不改變的,那么這種高耦合度的結(jié)構(gòu)也無可厚非,有時(shí)象底層軟件如操作系統(tǒng)等,一切以執(zhí)行效率優(yōu)先,而且需求并不改變頻繁的情況下,是適用的。但在實(shí)際開發(fā)過程中,軟件需求的變化是導(dǎo)致這種模式被否定的真正原因。一旦有一個(gè)模塊改變,那么需要改動(dòng)到其它好幾個(gè)模塊,而且更要命的時(shí),被影響的模塊又會(huì)影響其它模塊,或者干脆又把影響力傳遞給當(dāng)初最先改動(dòng)的模塊。
下圖中的模塊結(jié)構(gòu)通過梳理,使他們依附于一條粗線條,它是主邏輯模塊,是相對穩(wěn)定的高層的、抽象的模塊。而其它通過一個(gè)小空心圓點(diǎn)(表示接口)與粗線條進(jìn)行連接的小短線條代表次模塊,它被分成兩個(gè)部分,接口和實(shí)現(xiàn)接口的子類對象,它們通過接口與主邏輯模塊形成依賴。相對來說,次模塊變化較快,而主模塊變化較慢。剛才提到的生活例子中,床相對于床單來說是主要的,核心的,成本較高的,它的使用年限是10年,而床單使用年限是2年,就是說床的模塊變化速度慢于床單的變化速度,如果床2個(gè)月變一次,那么邏輯結(jié)構(gòu)就混亂了。床為床單提供了一個(gè)尺寸接口,床單只要符合這個(gè)接口,就可以組合使用。那么這個(gè)接口就必須是相對穩(wěn)定的。
設(shè)計(jì)模式做為軟件開發(fā)過程中一種創(chuàng)造性的總結(jié)思維,使軟件開發(fā)人員,在開發(fā)軟件產(chǎn)品時(shí),有了更加明確的軟件解耦的思路,設(shè)計(jì)模式來源于生活,卻指導(dǎo)于軟件。事實(shí)上,短期來看,要求低耦合并沒有很明顯的好處,因?yàn)槔迷O(shè)計(jì)模式來解決問題是需要軟件開發(fā)的智力和時(shí)間成本的。況且引入了誤用設(shè)計(jì)模式的風(fēng)險(xiǎn),所以短期內(nèi)使用設(shè)計(jì)模式來解耦反而會(huì)影響系統(tǒng)的開發(fā)進(jìn)度。低耦合的好處是長期回報(bào)的,體現(xiàn)在系統(tǒng)持續(xù)發(fā)展的過程中,系統(tǒng)具有更好的重用性,維護(hù)性,擴(kuò)展性,持續(xù)的支持業(yè)務(wù)的發(fā)展,而不會(huì)成為業(yè)務(wù)發(fā)展的障礙。
left join的困惑:一旦加上where條件,則顯示的結(jié)果等于inner join
將where 換成 and
用where 是先連接然后再篩選
用and 是先篩選再連接
數(shù)據(jù)庫在通過連接兩張或多張表來返回記錄時(shí),都會(huì)生成一張中間的臨時(shí)表,然后再將這張臨時(shí)表返回給用戶。
在使用left jion時(shí),on和where條件的區(qū)別如下:
1、 on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會(huì)返回左邊表中的記錄。
2、where條件是在臨時(shí)表生成好后,再對臨時(shí)表進(jìn)行過濾的條件。這時(shí)已經(jīng)沒有l(wèi)eft
join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。
假設(shè)有兩張表:
表1 tab1:
id size
1 10
2 20
3 30
表2 tab2:
size name
10 AAA
20 BBB
20 CCC
兩條SQL:
1、select * form tab1 left join tab2 on (tab1.size = tab2.size)
where tab2.name=’AAA’
2、select * form tab1 left join tab2 on (tab1.size =
tab2.size and tab2.name=’AAA’)
第一條SQL的過程:
1、中間表
on條件:
tab1.size = tab2.size
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
2 20 20 BBB
2 20 20 CCC
3 30 (null) (null)
2、再對中間表過濾
where 條件:
tab2.name=’AAA’
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
第二條SQL的過程:
1、中間表
on條件:
tab1.size = tab2.size and
tab2.name=’AAA’
(條件不為真也會(huì)返回左表中的記錄)
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
2 20 (null) (null)
3 30 (null) (null)
其實(shí)以上結(jié)果的關(guān)鍵原因就是left join,right join,full
join的特殊性,不管on上的條件是否為真都會(huì)返回left或right表中的記錄,full則具有l(wèi)eft和right的特性的并集。 而inner
jion沒這個(gè)特殊性,則條件放在on中和where中,返回的結(jié)果集是相同的。
ORA-00904標(biāo)識符無效 :
在跨機(jī)器實(shí)例通過dblink訪問不同的數(shù)據(jù)庫時(shí)(A--B兩個(gè)不同物理機(jī)器上的實(shí)例),如果后期更新了B機(jī)器上的表的字段(修改字段名稱或者增加字段), 那么在A實(shí)例下存儲過程中引用新增的這些字段就可能出現(xiàn)ora-00904錯(cuò)誤,解決辦法:在B實(shí)例下把表rename成新名稱,再rename成原來的名稱,然后在A實(shí)例下重新編譯過程,OK!
http://blog.chinaunix.net/uid-22414998-id-2892370.html
http://www.jb51.net/web/36856.html
定義和用法
<!DOCTYPE> 聲明位于文檔中的最前面的位置,處于 <html> 標(biāo)簽之前。此標(biāo)簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規(guī)范。
該標(biāo)簽可聲明三種 DTD 類型,分別表示嚴(yán)格版本、過渡版本以及基于框架的 HTML 文檔。
以下面這個(gè) <!DOCTYPE> 標(biāo)簽為例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
在上面的聲明中,聲明了文檔的根元素是 html,它在公共標(biāo)識符被定義為 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中進(jìn)行了定義。瀏覽器將明白如何尋找匹配此公共標(biāo)識符的 DTD。如果找不到,瀏覽器將使用公共標(biāo)識符后面的 URL 作為尋找 DTD 的位置。