|
2008年7月8日
sudo vim /etc/vmware/config
在最下面添加一句話:
xkeymap.nokeycodeMap = true
在使用Iterator處理Collection時(shí),注意java.util.ConcurrentModificationException。
1.如果你僅僅是對(duì)collection進(jìn)行遍歷查詢,那么不必?fù)?dān)心什么。
2.但如果你在遍歷過(guò)程中要對(duì)collection進(jìn)行刪除,那么你就要注意了。
For example:
private void testDel() {
- List<String> list = new ArrayList<String>();
- for (int i = 0; i < 10; i++) {
- String str = "td" + i;
- list.add(str);
- }
-
- for (Iterator it = list.iterator(); it.hasNext();) {
- String str = (String) it.next();
- if (str.equals("td5")) {
- // list.remove(str); // 刪除方法一
- it.remove(); // 刪除方法二
- }
- }
- }
上面的代碼運(yùn)行沒(méi)有問(wèn)題,但如果你用“方法一”替代“方法二”,則會(huì)出現(xiàn)java.util.ConcurrentModificationException。
(用for-each遍歷也會(huì)出個(gè)類似問(wèn)題)
具體原因是可以看一下 先看看List中的remove方法源碼:
- public boolean remove(Object o) {
- if (o == null) {
- for (int index = 0; index < size; index++)
- if (elementData[index] == null) {
- fastRemove(index);
- return true;
- }
- } else {
- for (int index = 0; index < size; index++)
- if (o.equals(elementData[index])) {
- fastRemove(index);
- return true;
- }
- }
- return false;
- }
-
- private void fastRemove(int index) {
- modCount++; // 特別注意這里,這里只增加了modCount的值
- int numMoved = size - index - 1;
- if (numMoved > 0)
- System.arraycopy(elementData, index + 1, elementData, index,
- numMoved);
- elementData[--size] = null; // Let gc do its work
- }
接著看。刪除后得到下一個(gè)元素的代碼,it.next(): it為AbstractList的內(nèi)部類Iterator的一個(gè)實(shí)例。
- public E next() {
- checkForComodification();
- try {
- E next = get(cursor);
- lastRet = cursor++;
- return next;
- } catch (IndexOutOfBoundsException e) {
- checkForComodification();
- throw new NoSuchElementException();
- }
- }
-
- final void checkForComodification() { //注意這個(gè)方法
- if (modCount != expectedModCount) //檢查這兩個(gè)值是否相同
- throw new ConcurrentModificationException();
- }
最后看Iterator的remove()方法的源代碼:
- public void remove() {
- if (lastRet == -1)
- throw new IllegalStateException();
- checkForComodification();
- try {
- AbstractList.this.remove(lastRet);
- if (lastRet < cursor)
- cursor--;
- lastRet = -1;
- expectedModCount = modCount; // 設(shè)置expectedModCount
- } catch (IndexOutOfBoundsException e) {
- throw new ConcurrentModificationException();
- }
- }
-
- final void checkForComodification() {
- if (modCount != expectedModCount)
- throw new ConcurrentModificationException();
- }
這下就明白了,list的remove方法只修改了modCount值,而iterator的remove能同步modCount和expectedModCount.
Ubuntu 時(shí)區(qū)時(shí)間設(shè)置:
執(zhí)行
tzselect (有的版本用tzconfig)
按照提示進(jìn)行選擇時(shí)區(qū)
sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime
執(zhí)行
sudo ntpdate cn.pool.ntp.org
cn.pool.ntp.org是位于中國(guó)的公共NTP服務(wù)器,用來(lái)同步你的時(shí)間
時(shí)間
sudo date
各國(guó)語(yǔ)言代碼列表:
English 1033 1033
German 1031 1031
French 1036 1036
Japanese 1041 1041
Danish 1030 1030
Spanish 3082 3082
Italian 1040 1040
Dutch 1043 1043
Norwegian 2068 2068
Portuguese 2070 2070
Finnish 1035 1035
Swedish 1053 1053
Czech 1029 1029
Hungarian 1038 1038
Polish 1045 1045
Romanian 1048 1048
Croatian 1050 1050
Slovak 1051 1051
Slovene 1060 1060
Greek 1032 1032
Bulgarian 1026 1026
Russian 1049 1049
Turkish 1055 1055
British English 2057 1033
Estonian 1061 1061
Latvian 1062 1062
Lithuanian 1063 1063
Brazilian 1046 1046
Traditional Chinese 1028 1028
Korean 1042 1042
Simplified Chinese 2052 2052
Arabic 1025 1025
Thai 1054 1054
記得06年時(shí),看過(guò)類似的文章,今又看到了,收藏一下,以備后驗(yàn)!
********************************
讓我來(lái)告訴大家為什么房?jī)r(jià)這么高,肉價(jià)會(huì)漲得這么厲害 本文以最淺顯得道理闡
述經(jīng)濟(jì)的原理,進(jìn)而闡述經(jīng)濟(jì)的真相。不會(huì)有任何所謂的學(xué) 術(shù)妓 女們常用來(lái)欺
騙人民的深?yuàn)W的學(xué)術(shù)理論,還事實(shí)以清白,真相只有一個(gè),讓我 們擦亮眼睛,洞
觀今天發(fā)生的一切。 我不是經(jīng)濟(jì)學(xué)家,但我比經(jīng)濟(jì)學(xué)誠(chéng)實(shí),本文在以下幾方面闡
述中國(guó)經(jīng)濟(jì)的真相。
1、什么是經(jīng)濟(jì)發(fā)展?
2、什么是對(duì)外貿(mào)易?
3、什么是通貨膨脹?
4、房?jī)r(jià)能綁架中國(guó)經(jīng)濟(jì)嗎?
5、房?jī)r(jià)和通貨膨脹有關(guān)系嗎?
6、房?jī)r(jià)高漲的原動(dòng)力是什么?
7、房?jī)r(jià)一直漲下去,開(kāi)發(fā)商會(huì)笑還是會(huì)哭?什么情況下會(huì)笑?什么情況
下 會(huì)哭?
8、坐在華爾街辦公室的財(cái)團(tuán)們是如何吸干中國(guó)山區(qū)一個(gè)農(nóng)民的血汗的
9、在有關(guān)這場(chǎng)圍繞房?jī)r(jià)和通貨膨脹之間的各方博弈中可能選擇的中庸路
線
1、 什么是經(jīng)濟(jì)發(fā)展?
簡(jiǎn)單的講經(jīng)濟(jì)發(fā)展就是有錢,但錢從何來(lái)?錢只能印出來(lái)。那么到底是
什 么使印鈔機(jī)不停的運(yùn)轉(zhuǎn)?
假設(shè)一個(gè)島上有1000口人,與世隔絕,人與人之間交換物品過(guò)活,但有
時(shí) 候你手里用來(lái)交換的東西不一定就是對(duì)方想要的,怎么辦?于是人們就用都喜
歡的 金銀作為交換的東西,于是交換方便了。但金銀要磨損,攜帶也不方便,當(dāng)
交換活 動(dòng)頻繁時(shí),發(fā)現(xiàn)這個(gè)東西太繁瑣,限制了交換活動(dòng),于是為了解決這個(gè)問(wèn)
題,想了 一個(gè)辦法,就是由島上的管理者發(fā)行一種符號(hào),用它來(lái)代替金銀,于是
鈔票出現(xiàn)了 。
剛開(kāi)始這種鈔票可以隨時(shí)得兌換金銀。大家都很放心,因?yàn)殁n票就是金
銀 。可是島上金銀的產(chǎn)量太小,當(dāng)人們的交換活動(dòng)更加頻繁時(shí),鈔票不夠用了,
只能 暫停交換。暫停交換的后果就是大家不生產(chǎn)別人想要的東西了,因?yàn)殡m然別
人用, 但交換不出去,套用現(xiàn)在的話說(shuō)就是經(jīng)濟(jì)發(fā)展減速了。
于是大家想了一個(gè)辦法,成立一家錢莊,這個(gè)錢莊是大家的,由錢莊來(lái)
發(fā) 行鈔票,印出的鈔票借給想用錢的人,然后這個(gè)人有錢了再還給錢莊。于是銀
行就 出現(xiàn)了。
銀行的出現(xiàn),能保證交換活動(dòng)更持續(xù)的進(jìn)行,大家都拼命的生產(chǎn),島上
的 東西越來(lái)越多,銀行根據(jù)產(chǎn)品的生產(chǎn)數(shù)量,不停的印制鈔票,以保證交換能更
深入 的進(jìn)行。
后來(lái)人們的交換活動(dòng)更頻繁了,一家錢莊太少了,于是出現(xiàn)了很多錢莊
, 總要有個(gè)管錢莊的吧,于是指定一家錢莊管理其他錢莊,并且鈔票只能由這家
錢莊 印刷,然后通過(guò)其他錢莊借給用錢的人,中央銀行就這么也出現(xiàn)了。
2、什么是對(duì)外貿(mào)易?
有一天島上的人發(fā)明了船,于是就到處劃船跑,發(fā)現(xiàn)了另一個(gè)島嶼,那
上 面也有人,也有鈔票,也像自己島上這么活動(dòng)。但自己島上生產(chǎn)的東西多,那
個(gè)島 上生產(chǎn)的東西少,1元錢在自己的島上能買1斤大米,那個(gè)島上的一元錢只能
買半斤 大米,于是另外島上的錢來(lái)這個(gè)島上買東西時(shí)只能2元換1元才行。于是匯
率出現(xiàn)了 。算好匯率后,他們開(kāi)始互相買賣東西到對(duì)方島上,這就是對(duì)外貿(mào)易。
對(duì)外貿(mào)易豐 富了人們的生活生產(chǎn)需要,使交換活動(dòng)到了一個(gè)空前的高潮。
3、什么是通貨膨脹?
由于島上生產(chǎn)的產(chǎn)品太多了,以至于沒(méi)法準(zhǔn)確估計(jì)到底該發(fā)行多少鈔票
, 發(fā)行多了的時(shí)候,因?yàn)闆](méi)有那么多產(chǎn)品可買,產(chǎn)品就開(kāi)始漲價(jià),發(fā)行少了呢就
開(kāi)始 降價(jià),為了保證價(jià)格穩(wěn)定,央行要求各錢莊要把一部分錢放在央行里面用來(lái)
調(diào)節(jié)產(chǎn) 品的價(jià)格,根據(jù)價(jià)格情況多放和少放。這就是存款準(zhǔn)備金率。
可是有一部分聰明人開(kāi)始怎么才能把錢弄到自己手上,他在海邊撿了一
顆 石子,說(shuō)這個(gè)石子值100萬(wàn)快錢,把它賣給了一個(gè)人,這個(gè)人覺(jué)得整個(gè)島上的
錢加一 起也沒(méi)有100萬(wàn)啊,怎么辦,于是向錢莊借,錢莊也沒(méi)有這么多錢,于是
把印鈔機(jī)打 開(kāi),印了這100萬(wàn),借給了他買了這個(gè)石子。
然后這個(gè)人開(kāi)始賣這個(gè)石子,100萬(wàn)賣給了第二個(gè)人,由于第一個(gè)賣石子
的 人把錢花了,所以島上的錢多了,所以這一百萬(wàn)可以籌集到,多買些產(chǎn)品就有
了。 但當(dāng)把這個(gè)石子以200萬(wàn)轉(zhuǎn)讓的時(shí)候,錢莊只能又印了100萬(wàn)鈔票,就這樣鈔
票越印 越多,可是當(dāng)這個(gè)石子不停的流動(dòng)轉(zhuǎn)讓時(shí),大家并不覺(jué)得島上的錢多,產(chǎn)
品價(jià)格還 是原來(lái)的那樣。可是當(dāng)這個(gè)石子不流通或流通的慢時(shí),大家覺(jué)得錢多了
,可是如果 當(dāng)持有石子的人把它扔到大海里,那就等于島上憑空多出N多個(gè)100
萬(wàn)來(lái),怎么辦, 央行最害怕的就是這顆石子沒(méi)了。它沒(méi)了島上產(chǎn)品的價(jià)格就會(huì)飛
漲,就會(huì)通貨膨脹 。那么持有石子的人就綁架了島上的經(jīng)濟(jì)。
4、房?jī)r(jià)能綁架中國(guó)經(jīng)濟(jì)嗎?
中國(guó)的房地產(chǎn)已經(jīng)使中國(guó)央行發(fā)行了太多的人民幣,如果房?jī)r(jià)下降,等
于 把那顆石子投進(jìn)了海里,那么多印出來(lái)的錢會(huì)使中國(guó)產(chǎn)品價(jià)格飛漲,會(huì)發(fā)生嚴(yán)
重的 通貨膨脹。
看似房?jī)r(jià)與石子毫無(wú)相干,可是他們的屬性是一樣的,就是價(jià)格和價(jià)值
嚴(yán) 重的背離。實(shí)際上房地產(chǎn)的崩盤受害最大的并不是中國(guó)的商業(yè)銀行,而是整個(gè)
中國(guó) 經(jīng)濟(jì)體系。為什么go-vern-ment遲遲沒(méi)有把房?jī)r(jià)降下來(lái),不是降不下來(lái),如
果真想降房?jī)r(jià), 只需要一道政令,房地產(chǎn)價(jià)格會(huì)在一夜之間土崩瓦解。可是后果
誰(shuí)能承擔(dān),嚴(yán)重通 貨膨脹誰(shuí)來(lái)負(fù)責(zé)?
房地產(chǎn)業(yè)已經(jīng)綁架了中國(guó)的經(jīng)濟(jì),是無(wú)可置疑的,是客觀實(shí)在的,沒(méi)有
人 能改變。
不管誰(shuí)是總理,廉潔也好,貪污也好,都希望社會(huì)和諧,可這是一個(gè)棘
手 的問(wèn)題。
5、房?jī)r(jià)和通貨膨脹有關(guān)系嗎?
可更棘手的問(wèn)題還不僅僅在這里。如果降房?jī)r(jià),面對(duì)的是馬上的通貨膨
脹 ,可不降房?jī)r(jià),那么面對(duì)的就是更嚴(yán)重的通貨膨脹,何去何從?
所以最可靠的辦法就是穩(wěn)定房?jī)r(jià),然后在社會(huì)產(chǎn)品增加時(shí),減少貨幣的
投 放量,加上其他政策如加息、增加商業(yè)銀行準(zhǔn)備金率、縮小信貸規(guī)模等輔助手
段, 來(lái)使中國(guó)經(jīng)濟(jì)軟著陸,這是最好的辦法,我們看到的一切政令也是這個(gè)邏輯
。不信 的話,可以查閱一下近年來(lái)go-vern-ment發(fā)布的一系列調(diào)控房地產(chǎn)業(yè)的措
施。
可是為什么房?jī)r(jià)不穩(wěn)定而且更加的瘋長(zhǎng)呢?難道是KFS與go-vern-ment在
博弈嗎?告 訴你在中國(guó)沒(méi)有人能和party叫板,幾個(gè)肚子大點(diǎn)的KFS 是沒(méi)有這個(gè)
實(shí)力的。實(shí)際上是 幕后的另一只黑手在和中國(guó)go-vern-ment博弈,這支黑手就是
外資,以美國(guó)為代表的帝國(guó)主 義攫取中國(guó)人民血汗的黑手。
6、房?jī)r(jià)高漲的原動(dòng)力是什么?
使房?jī)r(jià)上漲的動(dòng)力很多,房?jī)r(jià)上漲對(duì)其有利的人就是動(dòng)力之一,比如:
為 了GDP和個(gè)人利益的地方go-vern-ment、為了賺錢的KFS、炒房族、以至于買了
房的所謂“房 奴”都是是房?jī)r(jià)上漲的動(dòng)力,可是最大的原動(dòng)力不是這些,是外資
,是美國(guó)的以攫 取超額利潤(rùn)的各大財(cái)團(tuán)。
KFS作為商人,為了賺取高額利潤(rùn)不是什么傷天害理的事情,可是各行
各 業(yè)都有商人,難道想賺就有嗎?那除非是神話。房地產(chǎn)業(yè)的開(kāi)發(fā)商也一樣,不
是他 們想賺多少就有多少的。根據(jù)價(jià)值規(guī)律,當(dāng)商品的價(jià)格和價(jià)值嚴(yán)重背離時(shí),
會(huì)有一 種趨向正常價(jià)格回歸的力量鉗制價(jià)格的上漲,可是在中國(guó)的房地產(chǎn)業(yè),這
種規(guī)律似 乎不起作用,一個(gè)重要的原因是忽視了一個(gè)參考范圍的原因,如果以中
國(guó)經(jīng)濟(jì)本身 而言確實(shí)打破了這個(gè)規(guī)律,可是目前的情況是有一股力量在維持著房
地產(chǎn)業(yè)的價(jià)格 ,即托市,那么誰(shuí)在托市呢?
誰(shuí)能在房地產(chǎn)業(yè)失控能得到巨額利潤(rùn)的人就是托市的人。
討論這個(gè)問(wèn)題前,現(xiàn)看一下中國(guó)的外匯儲(chǔ)備情況。中國(guó)的外匯儲(chǔ)備在近
幾 年迅速由1、2千億突破萬(wàn)億,并且還在迅速的增長(zhǎng),難道是中國(guó)人民奮發(fā)圖強(qiáng)
,掙 來(lái)的嗎?這個(gè)不需要證明,看中國(guó)的GDP增幅就知道,外匯儲(chǔ)備的增長(zhǎng)速度
明顯大于 GDP的增幅。顯然不是掙來(lái)的,那么除了掙來(lái)的一部分,那么就是所謂
的 “國(guó)際熱 錢”的涌入,而國(guó)際熱錢的涌入的目的只有一個(gè),就是要取得高額
的回報(bào)。
國(guó)際熱錢進(jìn)入中國(guó)市場(chǎng)后,首先要兌換成人民幣,那么一下子哪有這么
多 人民幣呢?只有一個(gè)辦法就是讓印鈔機(jī)沒(méi)日沒(méi)夜的工作,然后這筆錢用來(lái)托住
已是 燙手山芋的房地產(chǎn)市場(chǎng),就是拼命的投資房地產(chǎn)業(yè),當(dāng)房地產(chǎn)價(jià)格因背離價(jià)
值而向 下波動(dòng)時(shí),通過(guò)托市再把它抬高,反復(fù)如此,給人的表象就是房產(chǎn)價(jià)格決
沒(méi)有偏離 價(jià)值。導(dǎo)致房?jī)r(jià)越漲越高。
而KFS呢,他們一到房子將要賣不出去的時(shí)候,就有人出高價(jià)買下來(lái),他
們 怎么會(huì)降價(jià),如果沒(méi)有這部分資金在運(yùn)作,別說(shuō)是KFS聯(lián)盟,就是全國(guó)只有一
個(gè)KFS ,價(jià)格也會(huì)降下來(lái),沒(méi)有人買了,難道等房子發(fā)霉嗎?
那么外資持有這么多高價(jià)房產(chǎn)做什么?不怕砸到手里嗎?
不怕!為什么呢?在這個(gè)資本運(yùn)作的過(guò)程中,有一個(gè)冤大頭在最底下接
著 呢,是誰(shuí)呢?就是中國(guó)的商業(yè)銀行,由于火爆的房地產(chǎn)市場(chǎng),一流的流通性,
近年 來(lái)沒(méi)有看到任何萎縮的跡象,放了貸款就盈利,為什么不貸款呢?沒(méi)有理由
不放貸 款。
加之中國(guó)老百姓買房的心情,外資可以輕易的把高價(jià)房轉(zhuǎn)嫁到中國(guó)的銀
行 和消費(fèi)者身上,連炒房的農(nóng)民都能賺到一杯羹,職業(yè)的外資會(huì)賠錢嗎?
那么房?jī)r(jià)一直漲下去,會(huì)怎樣呢?請(qǐng)看下一節(jié):“7、房?jī)r(jià)一直漲下去,
開(kāi) 發(fā)商會(huì)笑還是會(huì)哭?什么情況下會(huì)笑?什么情況下會(huì)哭?”
7、房?jī)r(jià)一直漲下去,開(kāi)發(fā)商會(huì)笑還是會(huì)哭?什么情況下會(huì)笑?什么情況下 會(huì)哭
?
在中國(guó)go-vern-ment近幾年來(lái)密集的幾十道金牌的調(diào)控下,房?jī)r(jià)還是如
脫了韁的野 馬一樣狂奔不止。暫且不論何時(shí)能停止上漲的勢(shì)頭,畢竟房?jī)r(jià)在目前
還是上漲的, 所以我們就看看房?jī)r(jià)上漲不止會(huì)帶來(lái)什么。
首先:由于GDP上漲,中國(guó)go-vern-ment為了維持上文說(shuō)的“保持產(chǎn)品交
換的繼續(xù)” 要不斷地投放人民幣,即開(kāi)動(dòng)印鈔機(jī)。只要房地產(chǎn)這個(gè)石子還沒(méi)有投
入到大海里去 ,還有一定的流通性,那么就不會(huì)有通貨膨脹的發(fā)生。
其次:開(kāi)發(fā)商會(huì)在這個(gè)過(guò)程中也賺取巨大的利潤(rùn)。
再次:能看到的是,炒房族會(huì)賺錢、所謂的買房的“房奴”會(huì)增值。
都賺錢!可是在這個(gè)過(guò)程中到底誰(shuí)虧了呢?錢從哪里來(lái)呢?如果你是有
炒 股的經(jīng)驗(yàn)就會(huì)知道,如果投資價(jià)格和價(jià)值背離的商品,你賺的錢就是別人賠的
錢, 那么套用到房地產(chǎn)上,就是買房自住的人,現(xiàn)在看似增值,那是鏡中月、水
中花, 你不變現(xiàn)就不是你的。再有就是當(dāng)價(jià)格完全回歸真實(shí)價(jià)值的時(shí)候,有時(shí)甚
至?xí)秸?實(shí)價(jià)值一下,被高價(jià)房套住的投資者。還有一個(gè)就是開(kāi)發(fā)商!
為什么說(shuō)開(kāi)發(fā)商也有賠錢呢?大家知道商人的本性是賺錢,賺取利潤(rùn)。
如 果一個(gè)商人投機(jī)一次就永遠(yuǎn)都不做這個(gè)生意了,他是賺錢了,可他不是商人,
這種 商業(yè)行為沒(méi)有意義。由于商人的本性,所以賺來(lái)的錢會(huì)繼續(xù)擴(kuò)大再生產(chǎn),在
能賺錢 的領(lǐng)域不斷的加大投資。這個(gè)道理從生活中就可看出來(lái),越是做大生意的
人總喊沒(méi) 錢,因?yàn)橐蟮牧鲃?dòng)資金來(lái)維持其擴(kuò)大再生產(chǎn)的需要。
所以一旦房?jī)r(jià)回歸真實(shí)的價(jià)值之時(shí),就是有一大批開(kāi)發(fā)商崩潰之日。這
個(gè) 是不以任何人的意志和任何行為為轉(zhuǎn)移的。如果現(xiàn)在有開(kāi)發(fā)商逃離房地產(chǎn)業(yè)的
角斗 場(chǎng),那么跑得慢的就是最后的輸家。如果都不跑,就像擊鼓傳花一樣,最后
拿到接 力棒的就是接盤者。有句話叫:“出來(lái)混遲早是要還的”。也許只不過(guò)是
方式不一 樣,看誰(shuí)的運(yùn)氣好而已。
可是現(xiàn)在卻沒(méi)有任何的KFS賠錢的跡象,有的是KFS不斷的賺錢,老百姓
送 錢都來(lái)不及。只是因?yàn)槟壳胺績(jī)r(jià)還在上漲,房產(chǎn)還在不斷的流動(dòng)。
一個(gè)巨大的問(wèn)題來(lái)了,這樣不斷上漲的房?jī)r(jià)何時(shí)是個(gè)頭啊,請(qǐng)看下一節(jié)
: “8、坐在華爾街辦公室的財(cái)團(tuán)們是如何吸干中國(guó)山區(qū)一個(gè)農(nóng)民的血汗的”
8、坐在華爾街辦公室的財(cái)團(tuán)們是如何吸干中國(guó)山區(qū)一個(gè)農(nóng)民的血汗的
Mao.ZD說(shuō)過(guò):“帝國(guó)主義沒(méi)有睡大覺(jué),而是天天在蠢蠢欲動(dòng),在圖謀不軌
, 想達(dá)到他們的罪惡目的。誠(chéng)然他們的氣焰的確沒(méi)有以前那么囂張,但他們確實(shí)在
活動(dòng) 著。”是不是冷戰(zhàn)結(jié)束就代表著人類的和平得以實(shí)現(xiàn)呢?“一句上帝面前人
人平等 ”就能掩蓋帝國(guó)主義噬血的本質(zhì)嗎?人人平等的理念是對(duì)的,但它只不過(guò)
是帝國(guó)主 義用來(lái)欺騙人們的伎倆罷了,說(shuō)到和做到永遠(yuǎn)是兩碼事。
國(guó)際財(cái)團(tuán)通過(guò)國(guó)際熱錢涌入中國(guó),使人民幣加大發(fā)行量,然后通過(guò)房地
產(chǎn) 炒作,把中國(guó)的國(guó)內(nèi)價(jià)格水平無(wú)限制的提高,GDP的增長(zhǎng)又一次使人民幣的發(fā)
行量被 迫提高。國(guó)際財(cái)團(tuán)心黑手狠,雙管齊下,目的就是使中國(guó)經(jīng)濟(jì)熱到燙手,
熱到讓每 個(gè)中國(guó)人為之瘋狂。
我們暫不去關(guān)心這個(gè)過(guò)程,我們放眼未來(lái),看看這一過(guò)程的結(jié)果是什么
樣 呢?換句話說(shuō)財(cái)團(tuán)的目的是什么呢?
很明顯,中國(guó)人最不愿意看到的事情,就是財(cái)團(tuán)們最樂(lè)見(jiàn)的結(jié)果。先做
個(gè) 假設(shè),比如國(guó)際熱錢在投資的中國(guó)房地產(chǎn)領(lǐng)域里上演最后的瘋狂后,然后把房
產(chǎn)成 功解套全部變現(xiàn),如果此時(shí)人民幣兌美元的匯率達(dá)到美國(guó)預(yù)期最高時(shí),匯率
是熱錢 逃離時(shí)需要相乘的那個(gè)倍數(shù),會(huì)發(fā)生什么誰(shuí)都能想到,所有熱錢會(huì)一夜之
間全部?jī)?換美元逃離。財(cái)團(tuán)們會(huì)賺得溝滿壕平,中國(guó)市場(chǎng)上除了錢就是錢,能遮
住天的大把 人民幣將成為中國(guó)人民的噩夢(mèng)。
這是中國(guó)人最不愿意看到的事情,也是財(cái)團(tuán)最樂(lè)見(jiàn)的結(jié)果。近期美國(guó)不
斷 的通過(guò)政治、貿(mào)易等手段逼迫人民幣升值,而中國(guó)go-vern-ment遲遲不升值或
小范圍的升值 ,遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到美國(guó)go-vern-ment的預(yù)期,這是在出口處的中美之
間的博弈。美國(guó)逼迫人民 幣升值的狼子野心昭然若揭!
順便提一句,如果真的這個(gè)升值預(yù)期達(dá)到了,中國(guó)樓市將重演日本上世
紀(jì) 90年代崩盤的歷史。只是那時(shí)中國(guó)經(jīng)濟(jì)也會(huì)像日本一樣進(jìn)入一個(gè)連續(xù)低迷不振
的不 歸路。
在這種攸關(guān)民族生存的問(wèn)題上,go-vern-ment會(huì)坐視不管嗎?就算是退
一步來(lái)講, 一個(gè)完全不負(fù)責(zé)任的go-vern-ment遇到這種情況,因?yàn)檫@個(gè)資本運(yùn)作
同時(shí)也極大侵犯了go-vern-ment 的利益,也會(huì)拼命反搏的。
那么中國(guó)go-vern-ment會(huì)以什么樣的方式來(lái)化解這一“經(jīng)濟(jì)危機(jī)”呢?
請(qǐng)看下一節(jié) :“在有關(guān)這場(chǎng)圍繞房?jī)r(jià)和通貨膨脹之間的各方博弈中可能選擇的中
庸路線”。
9、在有關(guān)這場(chǎng)圍繞房?jī)r(jià)和通貨膨脹之間的各方博弈中可能選擇的中庸路線
我一直相信:物極必反,中庸,是老祖宗留給后人解決棘手問(wèn)題的殺手
锏 !
既然是中國(guó)房地產(chǎn)“綁架”了中國(guó)的經(jīng)濟(jì),那么我們就從“綁架”說(shuō)起
。 何為“綁架”,應(yīng)該是相對(duì)弱的一方,拿著相對(duì)強(qiáng)的一方的“要害”,使相對(duì)
強(qiáng)的 一方即便有能力對(duì)付弱的一方,但礙于投鼠忌器,無(wú)力可施。
我們先來(lái)看看綁架雙方的陣容和各自手上的籌碼。房地產(chǎn)業(yè)的主體是KFS
, 所以KFS算一方,它綁架的要害是中國(guó)經(jīng)濟(jì),那中國(guó)經(jīng)濟(jì)是誰(shuí)的要害呢?是中
國(guó)人民 的要害,代表中國(guó)人民的,目前只能是中國(guó)go-vern-ment。中國(guó)go-vern
-ment算一方。外資呢?它是 煽風(fēng)點(diǎn)火者,劃到KFS一方。中國(guó)go-vern-ment一方
有公權(quán)力,可以通過(guò)稅收、財(cái)政、經(jīng)濟(jì)政 策、行政手段對(duì)KFS陣營(yíng)施力,KFS陣營(yíng)
通過(guò)源源不斷的后備資金來(lái)綁架中國(guó)經(jīng)濟(jì), 且不斷的提高贖金。
問(wèn)題已經(jīng)擺在這里,怎么辦呢?沖上去一槍擊斃,那歹徒非撕票不可,
太 極端不可行。所以有為go-vern-ment開(kāi)出藥方,只要實(shí)現(xiàn)了某某一條既可降低
房?jī)r(jià)的主意, 就猶如這一槍擊斃一樣是不可行的。我們想象如何解救綁架事件的
,首先要穩(wěn)定住 對(duì)方的情緒,再一步步地靠近,但這種靠近雖會(huì)引起歹徒的敵意
,但不會(huì)導(dǎo)致他撕 票,然后再進(jìn)一步穩(wěn)定情緒,再靠近,然后條件成熟時(shí),再穩(wěn)
準(zhǔn)狠,即保證人質(zhì)的 安全,又要保證歹徒一舉拿下。這才是真正的營(yíng)救。
所以中庸才是解決棘手問(wèn)題的殺手锏。極端、盲目、冒進(jìn)是要不得的。
針對(duì)如何解決中國(guó)房地產(chǎn)市場(chǎng)的綁架問(wèn)題,就要圍繞問(wèn)題的關(guān)鍵部分一
步 步地施加反作用力,然后一舉成功,才是正道。
第一個(gè)關(guān)鍵的部分就是匯率,中國(guó)go-vern-ment會(huì)嚴(yán)把匯率關(guān),我們可
以預(yù)期的是 ,人民幣兌滅元的匯率決不會(huì)過(guò)快升值,但會(huì)小幅升值,就是要穩(wěn)定
對(duì)方的情緒, 如果一點(diǎn)不升,對(duì)方會(huì)狗急跳墻,如果升的過(guò)快,是給自己掘墓,
所以為什么中國(guó) 匯率升幅總是猶抱琵琶半遮面,看看美國(guó)go-vern- ment的態(tài)度
跟一個(gè)綁匪是多么的 貼切,我要一瓶果汁,為什么拿來(lái)半瓶水。可又說(shuō)不出什么
來(lái),畢竟還能暫時(shí)解渴 。
第二個(gè)關(guān)鍵是限制資產(chǎn)流動(dòng)性,既然房地產(chǎn)能綁架中國(guó)經(jīng)濟(jì),說(shuō)明它舉
足 輕重,限制房產(chǎn)的流通性,就可以限制資產(chǎn)的流動(dòng)性,注意這里是兩個(gè)概念,
“資 產(chǎn)流動(dòng)性”和“房產(chǎn)流通性”。兩者完全不同,但又息息相關(guān)。房產(chǎn)流通性
減弱, 資產(chǎn)流動(dòng)性減弱,那么需要印刷的人民幣就減少。就像那個(gè)石子,不流通
馬上通脹 ,不漲價(jià)流通沒(méi)問(wèn)題,可是行不通,外資也不同意。既然是不斷的上漲
價(jià)格,只能 一步步地限制房產(chǎn)流通,只要房產(chǎn)流通性少一點(diǎn),通脹就會(huì)顯現(xiàn)一點(diǎn)
,然后再通過(guò) 上調(diào)準(zhǔn)備金率和加息等柔性政策來(lái)調(diào)整一點(diǎn),用柳葉棉絲掌來(lái)化解
泰森的一記重拳 ,以綿柔克強(qiáng)剛、化千鈞于無(wú)形,這就是中國(guó)go-vern-ment的策
略(這好像是中國(guó)人最擅長(zhǎng) 的事情)。我們從官方媒體就能看到相關(guān)的消息,樓
市簽約率在下降,即流通性在 下降,然后物價(jià)開(kāi)始有所漲幅,如豬肉等副食產(chǎn)品
,但央行馬上上調(diào)準(zhǔn)備金率和加 息,來(lái)穩(wěn)定物價(jià)。不知各位看官是否也看出些端
倪。可預(yù)期的是,到完全化解危機(jī) 之前,會(huì)不斷地加息和調(diào)高準(zhǔn)備金率,同時(shí)房
產(chǎn)流通性會(huì)越來(lái)越弱,這個(gè)預(yù)言是否 準(zhǔn)確可在以后的央行政策上驗(yàn)證。等完全消
除了由于經(jīng)濟(jì)過(guò)熱導(dǎo)致的通貨膨脹預(yù)期 ,那么就是房地產(chǎn)價(jià)格回歸真實(shí)價(jià)值之時(shí)
。
不管你看到?jīng)]看到,這已是最后的瘋狂,我們從兩方面來(lái)分析:
第一,如果這場(chǎng)博弈以外資勝利而告終,那么中國(guó)經(jīng)濟(jì)將步日本90年代
持 續(xù)下滑的深淵,由于外資撤走,房市賴以生存的支柱坍塌,房?jī)r(jià)會(huì)一落千丈,
可到 時(shí)候不管是KFS還是老百姓都將承受經(jīng)濟(jì)下滑之苦,持有的貨幣迅速貶值,
即便房?jī)r(jià) 落下,也不一定買的起。這是中國(guó)go-vern-ment和中國(guó)人民不可接受的
,也是無(wú)法接受的。
第二,如果外資以失敗而告終,即在匯率上把住出口,讓房?jī)r(jià)回歸真實(shí)
價(jià) 值,把外資同樣套在中國(guó),這才是勝利的前提。那么以美國(guó)財(cái)團(tuán)為首的帝國(guó)主
義噬 血者必將瘋狂報(bào)復(fù),會(huì)在投資、出口等各方面對(duì)中國(guó)施加壓力。我們今天人
民幣升 值沒(méi)有達(dá)到美國(guó)預(yù)期,已經(jīng)導(dǎo)致中國(guó)出口到美國(guó)的產(chǎn)品受打壓,進(jìn)而引起
了眾多的 貿(mào)易摩擦,由此可見(jiàn)一斑。我們知道,經(jīng)濟(jì)發(fā)展的三套馬車是,投資、
出口和消費(fèi) ,在投資、出口領(lǐng)域遭到報(bào)復(fù)會(huì)影響中國(guó)經(jīng)濟(jì)的發(fā)展,但我相信不會(huì)
影響我們的發(fā) 展速度,別忘了還有一套馬車是“消費(fèi)”,房?jī)r(jià)下降后,如果你是
愛(ài)國(guó)者,請(qǐng)現(xiàn)在 保護(hù)好你的錢包,到時(shí)千萬(wàn)別羞羞答答,要果斷地出手買房,中
國(guó)經(jīng)濟(jì)會(huì)在消費(fèi)領(lǐng) 域異軍突起,繼續(xù)獨(dú)占世界經(jīng)濟(jì)引擎的鰲頭。
看了這篇文章,真的讓我無(wú)語(yǔ)了。。。
*****************************************以下轉(zhuǎn)載*********************************************
昨晚,和一個(gè)開(kāi)典當(dāng)行的同學(xué)喝酒。
我問(wèn)同學(xué),“你買了多少套房子,多少間鋪面?”
“房子22套,鋪面12間。”同學(xué)炫耀似的答道。
“那你花了多少錢呢?”同學(xué)雖然是千萬(wàn)級(jí)的富翁,但他也不至于能把千萬(wàn)多的錢壓在固定資產(chǎn)上吧!我心中默算了一下,非常懷疑!
現(xiàn)在買房子,傻瓜才掏錢!虧你還是個(gè)生意人!”同學(xué)鄙視的看著我。
同學(xué)的話,簡(jiǎn)直令我震耳欲聾,使我目瞪口呆。我連忙虛心請(qǐng)教。于是,同學(xué)就對(duì)我說(shuō)出一番匪夷所思、驚世駭俗的話來(lái)......以下,都是我同學(xué)的話,雖然詞句有些出入,但基本語(yǔ)意我還是轉(zhuǎn)述清楚了的。
一、買房不掏錢,你是怎么操作的?
同學(xué)的話——
你知道,我的典當(dāng)生意完全是靠錢生錢。第一次買房時(shí),雖然我有能力一次性付清全款,但我還是不愿意那么多的現(xiàn)金被房子壓死。那時(shí),正流行“零首付”,于是,我一分錢沒(méi)花,貸款18萬(wàn)買了房(貸款期限為一年)。
一年期滿,要還房款和利息了。也不知道是我幸運(yùn)呢?還是我倒霉!那時(shí),我的資金被一筆業(yè)務(wù)占用了。為了業(yè)務(wù),我不僅還不起房款不說(shuō),還得另外新增貸款。迫
不得已,我找老關(guān)系——銀行的信貸部經(jīng)理溝兌。當(dāng)我吞吞吐吐的把“延期還房款并另外新增貸款”的要求說(shuō)出來(lái)后,沒(méi)想到,信貸經(jīng)理卻詭秘的一笑,非常爽快的
答應(yīng)了。
信貸經(jīng)理給我出的主意很簡(jiǎn)單:讓我老婆,以兩倍的價(jià)格,貸款買我的房子,貸款期限也是一年。
“兩倍的貸款,那就是兩倍的利息啊!你這不是變著方的剝削我嗎?”我還沒(méi)有反應(yīng)過(guò)來(lái)。
“如果到時(shí),你不還款呢?”信貸經(jīng)理很鎮(zhèn)定。
“啊......”
“被銀行收房,沒(méi)有什么大不了的!關(guān)鍵是除去稅費(fèi)后,我還憑空白得了17萬(wàn)。不,這17萬(wàn)我可不能一個(gè)人得,我至少要分給他5萬(wàn)。”很快,我反應(yīng)過(guò)來(lái)。于是,我對(duì)信貸經(jīng)理會(huì)心的一笑......
這,就是我第一次買房的經(jīng)歷。
我后來(lái)的買房經(jīng)歷都與此類似,也就是:堅(jiān)決的不掏一分錢,全部用銀行的貸款買房子;然后,如果遇見(jiàn)不明真象的投資者(說(shuō)是投資者,其實(shí)是傻帽)買房,那就
高價(jià)賣給他。如果一直沒(méi)有投資者買房,那就不斷的把自己的房子加價(jià)轉(zhuǎn)貸給自己,不斷的用銀行的錢來(lái)還銀行的債。
并且,我是開(kāi)典當(dāng)行的,與銀行的關(guān)系是一般人無(wú)法比的。一般老百姓買房,大都選擇20年按揭,而我買房從來(lái)都是只貸款一年,到期了才還本金和利息。這樣操作,不用交月供。而貸款到期后,我只須做做“紙面文章”轉(zhuǎn)貸款一下。實(shí)際上,我一分錢也不用掏。
二、我不信,在實(shí)際生活中能有如此荒謬的事情。你講的是“童話”吧!
同學(xué)的話:兄弟!我是看你人對(duì),才給你講這些掏心窩的話。你怎么可以不相信我呢?你要怎樣才能相信我呢?
作者發(fā)言:你就給我講點(diǎn)實(shí)際的例子吧!
同學(xué)的話:你知道王二麻子是怎么發(fā)家的嗎?
作者發(fā)言:“那你說(shuō)說(shuō)。”王二麻子是我的另外一個(gè)同學(xué),現(xiàn)在是開(kāi)發(fā)房地產(chǎn)的億萬(wàn)級(jí)富翁。
同學(xué)的話——
那我就說(shuō)說(shuō)。
想當(dāng)年,王二麻子那個(gè)落魄啊!就連他注冊(cè)公司的注冊(cè)資金,也是我臨時(shí)拆借給他的。如今,別看王二麻子表面風(fēng)光,他拿地的錢,是從銀行貸款的;修房子的錢,是建筑商墊資的。總之,他就是一個(gè)完全的“空手道”。
房子修好后,王二麻子在正式開(kāi)盤前,通常要舉行一個(gè)“內(nèi)部認(rèn)購(gòu)會(huì)”。這個(gè)內(nèi)部認(rèn)購(gòu),其實(shí)就是王二麻子召集公司內(nèi)部員工和一些象我這樣的、相熟的炒房客(或
者干脆是一些從招聘會(huì)上收集的、眾多的、應(yīng)聘者的“身份證復(fù)印件”),以這些人的名義來(lái)買房子,全部用銀行貸款來(lái)買。這,就是所謂的“開(kāi)發(fā)商囤房”。
并且,此次交易上報(bào)給銀行的交易價(jià),必須比實(shí)際的內(nèi)部交易價(jià)提高30%。為什么?因?yàn)橘J款買房要首付兩成啊!舉個(gè)例子,如果你想收回100萬(wàn),那你就必須
以130萬(wàn)的房?jī)r(jià)向銀行貸款。這樣,銀行給你的錢就是:130萬(wàn)×0.8=104萬(wàn);你實(shí)際裝進(jìn)口袋的錢就是:104萬(wàn)—4萬(wàn)(給相關(guān)銀行人員的“好處費(fèi)
”)=100萬(wàn)。
就這樣,通過(guò)開(kāi)盤前的內(nèi)部認(rèn)購(gòu),王二麻子其實(shí)已經(jīng)成功的全部收回了投資,把所有的風(fēng)險(xiǎn)轉(zhuǎn)給了銀行。到這時(shí),王二麻子才會(huì)開(kāi)始打廣告賣房子,并歸還“買地的銀行貸款”和“修房子的建筑商墊資”。
作者發(fā)言:后面又怎么操作呢?
同學(xué)的話——
你怎么那樣笨啊!稍微聰明一點(diǎn)的人都能想到,后面的操作方法,其實(shí)與我炒房的方法是一樣的,也就是:“如果遇見(jiàn)不明真象的投資者(說(shuō)是投資者,其實(shí)是傻
帽)買房,那就高價(jià)賣給他;如果一直沒(méi)有投資者買房,那就不斷的把自己的房子加價(jià)轉(zhuǎn)貸給自己,不斷的用銀行的錢來(lái)還銀行的債。”
不過(guò),由于已經(jīng)收回了按揭貸款的首付款,所以后面的操作并不需要每一次都加價(jià)30%,只需按著樓市房?jī)r(jià)本來(lái)的上漲幅度加價(jià)就可以了(即每年上漲14%左右)。
什么?萬(wàn)一房?jī)r(jià)上漲幅度不足于支付貸款利息怎么辦?笑話,你什么時(shí)候看見(jiàn)過(guò)中國(guó)樓市的房?jī)r(jià)上漲幅度低于當(dāng)年的貸款利息了?
明白了吧!這,就是中國(guó)樓市的房?jī)r(jià)只能上漲不能下跌;并且,房?jī)r(jià)的上漲幅度還不能低于當(dāng)年貸款利息的真正原因!!
想想就覺(jué)得可笑,居然有學(xué)者說(shuō),“建筑成本和地價(jià)的不斷上漲,是房?jī)r(jià)飛漲的原因。”這簡(jiǎn)直是扯蛋! 其實(shí),“金融成本”才是房?jī)r(jià)構(gòu)成的大頭,至少要占目前房?jī)r(jià)的50%。
以上海倒塌的蓮花河畔景苑為例。網(wǎng)上公布,其樓面價(jià)格不到604元/平方米,建筑成本也不到1300元/平方米(其實(shí),網(wǎng)上公布的建筑成本并不準(zhǔn)確。市法
院電梯公寓的建筑質(zhì)量總該比它好吧,建筑成本也沒(méi)有超過(guò)1000元/平方米)這么便宜的房子,開(kāi)發(fā)商為什么非得要把它賣到14000元/平方米呢?賣低一
點(diǎn)、少賺一點(diǎn)不行嗎?答案是不行的。原因很簡(jiǎn)單,“金融游戲”是有成本的,每這樣操作一次,房子就必須加價(jià)一次。只有不斷的加價(jià),上述操作才有生存的空
間。所以,蓮花河畔景苑前年賣7000元/平方米,去年賣10000元/平方米,今年就得非要賣14000元/平方米。俗話說(shuō)“豆腐盤成了肉價(jià)錢”。這,
就是“金融游戲”的代價(jià)!
有句話道出了目前中國(guó)樓市的實(shí)情,“房子是用來(lái)炒的,不是用來(lái)住的;商品房是賣給銀行的,不是賣給老百姓的。”
老同學(xué),請(qǐng)你想一想,現(xiàn)在的樓市,房?jī)r(jià)明明已經(jīng)遠(yuǎn)遠(yuǎn)的超過(guò)了老百姓的實(shí)際購(gòu)買能力(也就意味著房子永遠(yuǎn)賣不出去),為什么房?jī)r(jià)還會(huì)不斷的上漲呢?并且,還要“量、價(jià)齊漲”呢?原因何在?正在于此!
三、你講的,只是極個(gè)別的現(xiàn)象,不能代表中國(guó)樓市的整體形勢(shì)。
同學(xué)的話——
老同學(xué),你太孤陋寡聞了吧。請(qǐng)看:
李樹彪案:1999年9月8日到2004年1月15日,湖南郴州市住房公積金管理中心原主任李樹彪騙取公積金貸款、銀行貸款共計(jì)44筆,涉案金額1.2億元。
康明案:2000年前后,河南鄭州康明置業(yè)有限公司通過(guò)東明花園414套房源,在工商銀行、交通銀行、建設(shè)銀行、招商銀行進(jìn)行重復(fù)抵押貸款共690多套,至少套取銀行資金2億元。
姚康達(dá)案:從2002年至2003年上半年,中國(guó)工商銀行上海外高橋保稅區(qū)支行向“姚康達(dá)”一人發(fā)放房貸7141萬(wàn)元,用于炒作128套住房。
森豪虛假按揭案:從1997年年至2002年上半年,北京市華運(yùn)達(dá)房地產(chǎn)開(kāi)發(fā)公司以森豪公寓、太利花園為幌子,采取假按揭的方式,向中行北京市分行、北京
銀行中關(guān)村支行、北京銀行展覽路支行三家銀行騙貸共計(jì)16.2億元。(請(qǐng)看《京城最大假按揭騙貸案震醒房市》
http://finance.people.com.cn/GB/1045/9255894.html)
建行廣州分行案:2002年,審計(jì)署抽查建設(shè)銀行廣州地區(qū)八家支行的住房按揭貸款,發(fā)現(xiàn)10億元虛假按揭。僅廣東省汕尾市公安局某副局長(zhǎng)一人,即騙取建行廣州市芳村支行按揭貸款3793萬(wàn)元。
曲滬平案:2006年,上海浦東發(fā)展銀行陸家嘴支行在已發(fā)放貸款中,發(fā)現(xiàn)1.26億元個(gè)人房產(chǎn)按揭貸款存在抵押不實(shí),貸款代理人為“曲滬平
”。其后更查出與曲相關(guān)的房貸高達(dá)91筆,涉及金額4億元左右。銀行不得不委托房屋中介公司出售抵押房產(chǎn),以回收問(wèn)題貸款。
同泰案:2006年,北京同泰房地產(chǎn)公司涉嫌利用87份假業(yè)主所簽購(gòu)房合同,從銀行騙貸6700萬(wàn)元。
成都虛構(gòu)房產(chǎn)騙貸案:2005年至2008年期間,犯罪嫌疑人唐某勾結(jié)成都市房管局工作人員以虛構(gòu)房產(chǎn)的方式辦理房產(chǎn)證進(jìn)行騙貸。現(xiàn)已發(fā)現(xiàn)的涉案房產(chǎn)證已超過(guò)一百多套,涉及金額近二千萬(wàn)元!而且事態(tài)還在進(jìn)一步發(fā)展中。
另外,今年銀監(jiān)會(huì)三令五申的明確要求,“貸款發(fā)放必須用于滿足實(shí)體經(jīng)濟(jì)的有效信貸需求,防止信貸資金流入樓市”。然而,40000億資金依然流入樓市......
老同學(xué),請(qǐng)你想一想,為什么會(huì)發(fā)生那么多的這類事情呢?為什么全國(guó)的銀行都明知道是假按揭也要把錢貸給地產(chǎn)商呢?難道銀行的官員們都是傻子嗎?
其實(shí),銀行的官員們一點(diǎn)都不傻。
原因在于,銀行內(nèi)部人員與開(kāi)發(fā)商其實(shí)是狼狽為奸的同伙。參與這項(xiàng)操作的某些銀行內(nèi)部人員決不是希望通過(guò)購(gòu)房者支付貸款利息為銀行賺錢,坦白地說(shuō),他們是在
參與分贓——他們與開(kāi)發(fā)商一起盜取不義之財(cái),將風(fēng)險(xiǎn)轉(zhuǎn)嫁給國(guó)家銀行,而買單的是真實(shí)的購(gòu)房者。一旦真實(shí)的購(gòu)房者無(wú)法買下這個(gè)巨單,銀行就出現(xiàn)危機(jī)。
這時(shí)候,買單的就是全國(guó)人民了,國(guó)家必須銀行注資,消除爛帳。國(guó)家的錢哪里來(lái)?印鈔票!結(jié)果是什么?通貨膨脹,物價(jià)飛漲,老百性的錢不值錢
了,或者說(shuō)老百姓的錢被搶了,被誰(shuí)搶了?被國(guó)家搶去堵漏了,堵開(kāi)發(fā)商和銀行某些蛀出來(lái)的大洞。這個(gè)洞如此之大,堵住了也是一個(gè)丑陋的疤,而疼的永遠(yuǎn)是百
姓。
所以我會(huì)說(shuō)——房地產(chǎn)業(yè)已經(jīng)成為相關(guān)單位、相關(guān)部門團(tuán)結(jié)起來(lái)瓜分國(guó)家金錢(其實(shí)是老百姓的存款)的道具。
違規(guī)又有什么大不了的?銀行官員們不怕啊!只要表面的紙上手續(xù)完備了,我就沒(méi)有了責(zé)任。即使按揭貸款是假的,又有什么關(guān)系?況且銀行有國(guó)家這
個(gè)后臺(tái),就是虧了也不怕,反正銀行的官員們現(xiàn)在掙了錢就行。至于銀行以后不行了,自然有國(guó)家來(lái)管,況且那是下屆銀行官員的事情。難怪中國(guó)銀行的壞賬率居然
在40%以上!原來(lái),在中國(guó),最大的腐敗在銀行!!
四、我依然認(rèn)為,這只是極個(gè)別的現(xiàn)象。如果你講的是普遍的現(xiàn)象,為什么還沒(méi)有開(kāi)發(fā)商被收樓呢?
同學(xué)的話——
原因有許多,簡(jiǎn)單的有:
1、你不關(guān)心房地產(chǎn)界的新聞。比如“曲滬平案”,上海浦東發(fā)展銀行陸家嘴支行就收了樓,不得不成為了“房東”;
2、由于開(kāi)發(fā)商在銀行內(nèi)部的同伙,掩護(hù)工作做的好的緣故,案子沒(méi)暴。
掩護(hù)工作怎么做?很簡(jiǎn)單——只要一近債務(wù)償還期,開(kāi)發(fā)商就會(huì)和“銀行內(nèi)部的同伙”們一起,把房子又一次加價(jià)賣給(轉(zhuǎn)按揭)其它的“身份證復(fù)印件”(其實(shí),房子依然在開(kāi)發(fā)商手里)。這樣操作,開(kāi)發(fā)商永遠(yuǎn)不會(huì)被收樓。
雖然這樣操作,房?jī)r(jià)會(huì)不斷的上漲,并很快的遠(yuǎn)遠(yuǎn)超過(guò)老百姓的實(shí)際承受能力(也就意味著房子永遠(yuǎn)賣不出去)。但是,這樣的操作,如果只從官樣程
序上來(lái)看、只從表面的紙上手續(xù)來(lái)看的話,它是永遠(yuǎn)合法的。這就是銀行官員們敢于給開(kāi)發(fā)商打掩護(hù)的原因——因?yàn)橐阅壳暗你y行制度來(lái)說(shuō),只要表面的紙上手續(xù)完
備了,銀行的官員就沒(méi)有了責(zé)任。
五、你的意思是,目前的銀行貸款制度有著嚴(yán)重的漏洞?
同學(xué)的話——
當(dāng)然!
我能不花錢的買那么多的房子和鋪面,甚至還靠房子從銀行套出那么多的周轉(zhuǎn)資金做生意,這一切,全都得感謝銀行的制度漏洞啊!銀行的貸款制度,真的是“為人民服務(wù)的好制度”啊!
作為一個(gè)典當(dāng)行的老板,以同行的眼光來(lái)看,我認(rèn)為銀行貸款的制度漏洞有:
1、抵押物價(jià)值的評(píng)定方法有缺陷。
比如,明明開(kāi)發(fā)商拿地只用了5000萬(wàn),他卻可以用這塊地抵押貸款1個(gè)億;比如,開(kāi)發(fā)商修樓修到蓋頂,明明只用了7000萬(wàn)(含地錢),他卻可以用這個(gè)樓抵押貸款2個(gè)億。
如果,按照我們典當(dāng)行的規(guī)矩來(lái)辦,事情又會(huì)怎樣呢?
當(dāng)開(kāi)發(fā)商用這塊地抵押貸款時(shí),我會(huì)親自去核實(shí):開(kāi)發(fā)商拿這塊地,是否真的給了政府5000萬(wàn)。并且,如果這個(gè)情況屬實(shí),他也最多只能貸款4000萬(wàn)。因?yàn)槲乙A(yù)提風(fēng)險(xiǎn)基金啊!
當(dāng)開(kāi)發(fā)商用這個(gè)樓抵押貸款時(shí),我也會(huì)親自去核實(shí):開(kāi)發(fā)商修這個(gè)樓,是否真的花了2000萬(wàn)(只算建筑成本,不含地)。我會(huì)按照各種人工、各種建筑材料的最
低價(jià)來(lái)核算這個(gè)樓的建筑成本。并且,如果開(kāi)發(fā)商修這個(gè)樓的確花了2000萬(wàn),他也最多只能貸款7000萬(wàn)×0.8=5600萬(wàn)(連地一起抵押)。
最后,當(dāng)購(gòu)房者按揭貸款時(shí),我絕對(duì)不可能按照“購(gòu)房合同交易價(jià)”來(lái)發(fā)放貸款,購(gòu)房者最多能獲得的貸款金額是:7000萬(wàn)×0.8×購(gòu)房面積/此樓總面積。
舉個(gè)例子:有個(gè)賣衣服的商人因?yàn)樯庵苻D(zhuǎn),需要以衣服為抵押物向銀行貸款。你說(shuō)說(shuō),銀行是該“按照衣服出廠價(jià)的8折”給他貸款呢?還是該“按照衣服零售價(jià)的8折”給他貸款。
作者發(fā)言:當(dāng)然該按出廠價(jià)算。如果按照零售價(jià)算的話,賣衣服的商人干脆不用開(kāi)店了,他直接把衣服賣給銀行賺錢更快!恩,我明白了,怪不得在中國(guó)會(huì)出現(xiàn)“房子是用來(lái)炒的,不是用來(lái)住的;商品房是賣給銀行的,不是賣給老百姓的”這樣的奇聞!!!
同學(xué)的話:是啊!抵押房的價(jià)值,不能由客戶之間的交易來(lái)決定啊!!
2、責(zé)任追究方法有缺陷
“只要表面的紙上手續(xù)完備了,銀行官員就沒(méi)有了責(zé)任。”這怎么可以呢?在我的典當(dāng)行,我可不管你的紙上手續(xù)是否已經(jīng)完備,只要是你負(fù)責(zé)的業(yè)務(wù)出了問(wèn)題,嘿嘿!我就找你算帳!!!
另外,讓國(guó)家損失16.2億的森豪虛假按揭案暴露后,相關(guān)的銀行官員居然沒(méi)有被追究責(zé)任,這怎么可以呢?嘿嘿!如果這樣的事是發(fā)生在我的典當(dāng)行,不要說(shuō)讓他家破人亡,我至少會(huì)讓他和他的親戚傾家蕩產(chǎn)!!!
作者發(fā)言:是啊!發(fā)生金融案件后,居然不追究相關(guān)銀行官員的責(zé)任。換成是我,我也覺(jué)得“打馬虎”比盡忠職守更合算!!!怪不得中國(guó)的金融案件層出不窮。聽(tīng)
君一席話,勝讀十年書!聽(tīng)你說(shuō)到這兒,就連我這么笨的人也知道了應(yīng)該如何理順樓市——只要嚴(yán)格金融制度,讓炒房的人不能獲得投機(jī)的資金,樓市的泡沫自然的
就會(huì)散去!!
同學(xué)的話——
你終于聰明了一回。可惜!!!
Error info:
E:Dynamic MMap ran out of room. Please increase the size of
APT::Cache-Limit. Current value: 25165824. (man 5 apt.conf), E:Dynamic ...
Reason: sources.list is wrong. (/etc/apt/sources.list)
For example: the ubuntu 9.04 with the sources.list of the ubuntu 8.10, the error will be there.
Others cases:
Error :Synaptic Package Manager
Error info:
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
E:_cache->open() failed, please report.
please run 'dpkg --configure -a'.
摘要: 轉(zhuǎn)載:請(qǐng)每一個(gè)孝順的子女耐心的看下去! 閱讀全文
摘要: 要理解IOC,推薦: 看《墨攻》理解IoC概念。
IOC從字面來(lái)看不容易懂,但如果你看了這篇文章,相信你一定會(huì)懂。
佩服原作者! 閱讀全文
對(duì)于parseInt("01")到parseInt("07");都能得到正確的結(jié)果,但如果是parseInt("08") 或parseInt("09")則返回0;
首先看parseInt語(yǔ)法:parseInt(string, radix);
其中string為要轉(zhuǎn)換的字符串,radix為二進(jìn)制,八進(jìn)制,十六進(jìn)制或十進(jìn)制。
在默認(rèn)不指定radix時(shí),當(dāng)以0x開(kāi)關(guān)時(shí),為十六進(jìn)制;如果以0開(kāi)關(guān)且第二位不為x,則讓為是八進(jìn)制,(因?yàn)榘诉M(jìn)制不能有8,9所以報(bào)錯(cuò)返回0)。
所以,在我們用時(shí)還是明確指定進(jìn)位制,以防出錯(cuò)。
如我們平時(shí)都用十進(jìn)制位,我們就 parseInt("08", 10);
摘要: vsftpd 有關(guān)錯(cuò)誤 500 OOPS: vsftpd: refusing to run with writable anonymous root 閱讀全文
摘要: Linux下application中文顯示為方塊問(wèn)題的解決 閱讀全文
摘要: jquery css hover 閱讀全文
DWR 2.0.5,
方法使用對(duì)象參數(shù)時(shí)報(bào)錯(cuò)如下:
Erroring: batchId[0] message[org.directwebremoting.extend.MarshallException: Error marshalling test.User:
一個(gè)最可能的原因是 User沒(méi)有一個(gè)無(wú)參的construction。
暈。。。
朋友們注意呀!
對(duì)于以太網(wǎng)環(huán)境下UDP傳輸中的數(shù)據(jù)包長(zhǎng)度問(wèn)題
首先要看TCP/IP協(xié)議,涉及到四層:鏈路層,網(wǎng)絡(luò)層,傳輸層,應(yīng)用層。
其中以太網(wǎng)(Ethernet)的數(shù)據(jù)幀在鏈路層
IP包在網(wǎng)絡(luò)層
TCP或UDP包在傳輸層
TCP或UDP中的數(shù)據(jù)(Data)在應(yīng)用層
它們的關(guān)系是 數(shù)據(jù)幀{IP包{TCP或UDP包{Data}}}
在應(yīng)用程序中我們用到的Data的長(zhǎng)度最大是多少,直接取決于底層的限制。
我們從下到上分析一下:
在鏈路層,由以太網(wǎng)的物理特性決定了數(shù)據(jù)幀的長(zhǎng)度為(46+18)-(1500+18),其中的18是數(shù)據(jù)幀的頭和尾,也就是說(shuō)數(shù)據(jù)幀的內(nèi)容最大為1500,即MTU(Maximum Transmission Unit)為1500;
在網(wǎng)絡(luò)層,因?yàn)镮P包的首部要占用20字節(jié),所以這的MTU為1500-20=1480;
在傳輸層,對(duì)于UDP包的首部要占用8字節(jié),所以這的MTU為1480-8=1472;
所以,在應(yīng)用層,你的Data最大長(zhǎng)度為1472。
(當(dāng)我們的UDP包中的數(shù)據(jù)多于MTU(1472)時(shí),發(fā)送方的IP層需要分片fragmentation進(jìn)行傳輸,而在接收方IP層則需要進(jìn)行數(shù)據(jù)報(bào)重組,由于UDP是不可靠的傳輸協(xié)議,如果分片丟失導(dǎo)致重組失敗,將導(dǎo)致UDP數(shù)據(jù)包被丟棄)。
從上面的分析來(lái)看,在普通的局域網(wǎng)環(huán)境下,UDP的數(shù)據(jù)最大為1472字節(jié)最好(避免分片重組)。
但在網(wǎng)絡(luò)編程中,Internet中的路由器可能有設(shè)置成不同的值(小于默認(rèn)值),Internet上的標(biāo)準(zhǔn)MTU值為576,所以Internet的UDP編程時(shí)數(shù)據(jù)長(zhǎng)度最好在576-20-8=548字節(jié)以內(nèi)。
MTU對(duì)我們的UDP編程很重要,那如何查看路由的MTU值呢?
對(duì)于windows OS: ping -f -l <data_length> <gateway_IP>
如:ping -f -l 1472 192.168.0.1
如果提示:Packets needs to be fragmented but DF set.
則表明MTU小于1500,不斷改小data_length值,可以最終測(cè)算出gateway的MTU值;
對(duì)于linux OS: ping -c <number> -M do -s <data_length> <gateway_IP>
如: ping -c 1 -M do -s 1472 192.168.0.1
如果提示 Frag needed and DF set……
則表明MTU小于1500,可以再測(cè)以推算gateway的MTU。
當(dāng)然要修改MTU的值,那就是網(wǎng)管的事了(一般人沒(méi)這權(quán)限呀),我們只能申請(qǐng)加等待了 ^-^ .
從JDK5開(kāi)始就已經(jīng)增加了對(duì)VM的監(jiān)控功能jconsole,JDK1.6也有了進(jìn)一步的改進(jìn)。
然而對(duì)linux特別是Ubuntu用戶來(lái)說(shuō),會(huì)碰到一些小問(wèn)題。
在終端進(jìn)入java_home/bin目錄下,
# jconsole
結(jié)果報(bào)錯(cuò)如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
原因就是在ubuntu下用java寫Swing應(yīng)用程序時(shí)不能使用SystemLookAndFeel。
實(shí)際上出現(xiàn)這個(gè)問(wèn)題是因?yàn)閟wing的默認(rèn)laf采用systemlaf,而Ubuntu里卻沒(méi)有定義這個(gè)laf。
一種很方便的解決方法就是把語(yǔ)言環(huán)境改成英文:
# export LANG=en
但對(duì)中文用戶很不方便(盡管swing程序可以運(yùn)行)。
另一種方法就是程序啟動(dòng)時(shí)加上jvm運(yùn)行時(shí)參數(shù),比如 運(yùn)行jconsole :
# jconsole -J-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
另外,jconsole對(duì)于hostname也有要求,如果執(zhí)行:
# hostname -i
顯時(shí) 127.0.0.1,則需要在 /etc/hosts中把127.0.0.1改成機(jī)器的外網(wǎng)IP。
這下,我們就又多了一個(gè)jvm分析的利器。
Kraken plugin as IM gateway is developed separately from openfire.
It is built alongside openfire.
Kraken build Detail:http://kraken.blathersource.org/node/9
But I still encountered this problem when I did that.
When I run the step:ant release,I found the following error,although BUILD SUCCESS,
Error:
[jasper2] 409 DEBUG No Java compiler available
[jasper2] java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/env/INameEnvironment
NoClassDefFound,obviously,there is no class named 'INameEnvironment',
I run 'find ./ -name jdt*' ,there is nothing really.
I know that it need a jar named 'jdt-compiler' via google,so I download it.
If you can find it to download you can come the following site:
http://fisheye1.atlassian.com/viewrep/springframework/spring/lib/jdt or
http://softwarelivre.sapo.pt/projects/ptpos/browser/openbravopos/trunk/build/zip/lib/jdt-compiler-3.1.1.jar?rev=35
I get jdt-compiler-3.1.1.jar from the site mentioned above,and put it into the java lib directory;
then,add a line :<pathelement location="${java.home}/../lib/jdt-compiler-3.1.1.jar"/> in classpath of taskdef named 'jasper2' in the build.xml of Openfire
So far so good ,I have fixed it.
PEM : Privacy Enhanced Mail 隱私增強(qiáng)郵件
是使用多種加密方式提供機(jī)密性、認(rèn)證、信息完整性的因特網(wǎng)電子郵件,在因特網(wǎng)中沒(méi)有被廣泛配置;
而現(xiàn)在更多的是用作密鑰格式,并且可包含私鑰(RSA和DSA)、公鑰(RSA和DSA)、X509證書,它存儲(chǔ)ASCII包裝的BASE64編碼的DER數(shù)據(jù),適用于系統(tǒng)之間的文本模式傳輸。
DER : Distinguished Encoding Rules 分布式編碼規(guī)則
也可包含私鑰、公鑰和證書,它是大多數(shù)瀏覽器的默認(rèn)證書格式,并且按ASN 1 DER 格式存儲(chǔ)進(jìn)行存儲(chǔ)。(它沒(méi)有頭部-PEM是有文本頭部包裝的DER)。
VoIP : Voice over Internet Protocol 網(wǎng)絡(luò)語(yǔ)音傳輸
SIP : Session Initiation Protocol 會(huì)話發(fā)起協(xié)議
經(jīng)過(guò)漫長(zhǎng)的配置,終于搞定了windows AD、domain和Exchange2007,
新建了帳戶后,用戶 fingki 密碼 ************** 郵件 fingki@mydomain.com 在另一臺(tái)win xp上測(cè)試。
這里要注意DNS的配置,且要打開(kāi)服務(wù) services,確定pop3等郵件服務(wù)都已經(jīng)啟動(dòng)。
首先加入該域 mydomain.com
然后 重啟,用fingki登錄該域,一切還算順利。
再 測(cè)試郵件收發(fā),啟動(dòng)Outlook,用fingki@mydomain.com新建一outlook帳戶,郵件服務(wù)器用戶名 fingki密碼************;其他的是默認(rèn)配置。
測(cè)試給administrator@mydomain.com發(fā)一封郵件,正常,然后再給自己發(fā)一封;
接收郵件時(shí),提示:由于服務(wù)器拒絕接受發(fā)件人的電子郵件地址,這封郵件無(wú)法發(fā)送。...服務(wù)器響應(yīng): '530 5.7.1 Client was not authenticated', 端口: 25, 安全(SSL): 否, 服務(wù)器錯(cuò)誤: 530, 錯(cuò)誤號(hào): 0x800CCC78.
奇怪。
后來(lái)發(fā)現(xiàn),原來(lái)exchange2007默認(rèn)是采用ssl安全傳輸?shù)模枰獙?duì) pop3設(shè)置安全連接,端口會(huì)默認(rèn)變?yōu)?95。(即選中:“此服務(wù)器要求安全連接SSL”)。
按上面要求 設(shè)置pop3為SSL連接。接收郵件就正常了。
(網(wǎng)上也有朋友說(shuō)是DNS的MX記錄丟失,但顯然我的不屬于這種情況)。
另外,很有意思的是如果你為Exchange用戶設(shè)定多個(gè)電子郵件地址(當(dāng)然只會(huì)有一個(gè)為默認(rèn)郵件地址,或叫主地址),當(dāng)有人給你向這多個(gè)地址中發(fā)送郵件時(shí),這些郵件都會(huì)發(fā)到你的主地址郵箱中。
View cpu information command:
1 # dmesg | grep CPU
2 # cat /proc/cpuinfo
you can find the following from the show :AMD Athlon(tm) 64 X2 Dual Core Processor 4000+
It tell you :64bit cpu
View OS version:
# cat /proc/version
you can see information similar to the following:
Linux version 2.6.24-21-generic (buildd@palmer) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Tue Oct 21 23:43:45 UTC 2008
View OS bit num:
# getconf LONG_BIT
you can see :32 or 64.
摘要: If you install im gateway plugin firstly, perhaps you did not encounter this problem.
If you upgrade your im gateway plugin, perhaps you have been in trouble.
Unfortunately,I encountered this problem some days ago.
I used the openfire 3.4.5, and it contains the gateway plugins; 閱讀全文
摘要: sudoer application Launcher
On Ubuntu,run applications as sudo via Application Launcher 閱讀全文
JSCalendar 日歷控件 使用樣例如下:
<html>
<head>
<style type="text/css">@import url( /js/jscalendar/calendar-win2k-cold-1.css );</style>
<script type="text/javascript" src="/js/jscalendar/calendar.js"></script>
<script type="text/javascript" src="/js/jscalendar/i18n.jsp"></script>//不用i18n可以指定語(yǔ)言 如:<script type="text/javascript" src="/js/jscalendar/lang/calendar-en.js"></script>
<script type="text/javascript" src="/js/jscalendar/calendar-setup.js"></script>
</head>
<body>
<input type="text" size="10" name="fromDate" id="fromDate" maxlength="10" onchange="checkSpecific();" value=""/>
<img src="images/icon_calendarpicker.gif" id="fromDateCal" />
<br>
<script type="text/javascript" >
Calendar.setup(
{
inputField : "fromDate", // ID of the input field
ifFormat : "%m/%d/%Y", // the date format
button : "fromDateCal", // ID of the button
});
</script>
</body>
</html>
上述示例代碼在jsp容器中運(yùn)行完全正常。
當(dāng)一個(gè)類實(shí)現(xiàn)了序列化接口,有時(shí)會(huì)遇到 java.io.InvalidClassException 異常出現(xiàn):
java.io.InvalidClassException: com.test.Test; local class incompatible: stream classdesc serialVersionUID = 7981560250804078637, local class serialVersionUID = -8334405535174160822
這是序列化兼容性所致;
java通過(guò)一個(gè)名為UID(stream unique
identifier)來(lái)控制,這個(gè)UID是隱式的,它通過(guò)類名,方法名等諸多因素經(jīng)過(guò)計(jì)算而得,理論上是一一映射的關(guān)系,也就是唯一的。如果UID不一
樣的話,就無(wú)法實(shí)現(xiàn)反序列化了,并且將會(huì)得到InvalidClassException。
當(dāng)要人為的產(chǎn)生一個(gè)新的版本(實(shí)現(xiàn)并沒(méi)有改動(dòng)),而拋棄以前的版本的話,可以通過(guò)顯式的聲名UID來(lái)實(shí)現(xiàn):
private static final long serialVersionUID=????;//(你可以編造一個(gè)UID,但不能有重復(fù))
對(duì)于上例我們可以在com.test.Test類中加入 :
private static final long serialVersionUID=7981560250804078637l;
這樣就解決了新老版本的兼容性問(wèn)題。
當(dāng)然,對(duì)于序列化還有很多問(wèn)題,慢慢研究吧。
對(duì)volatile,看到了個(gè)很清楚的解釋,摘錄下來(lái)如下:
volatile關(guān)鍵字有什么用?
恐怕比較一下volatile和synchronized的不同是最容易解釋清楚的。volatile是變量修飾符,而synchronized則作用于一段代碼或方法;看如下三句get代碼:
- inti1; intgeti1(){returni1;}
- volatile inti2; intgeti2(){returni2;}
- int i3; synchronizedintgeti3(){returni3;}
geti1()得到存儲(chǔ)在當(dāng)前線程中i1的數(shù)值。多個(gè)線程有多個(gè)i1變量拷貝,而且這些i1之間可以互不相同。換句話說(shuō),另一個(gè)線程可能已經(jīng)改
變了它線程內(nèi)的i1值,而這個(gè)值可以和當(dāng)前線程中的i1值不相同。事實(shí)上,Java有個(gè)思想叫“主”內(nèi)存區(qū)域,這里存放了變量目前的“準(zhǔn)確值”。每個(gè)線程
可以有它自己的變量拷貝,而這個(gè)變量拷貝值可以和“主”內(nèi)存區(qū)域里存放的不同。因此實(shí)際上存在一種可能:“主”內(nèi)存區(qū)域里的i1值是1,線程1里的i1值
是2,線程2里的i1值是3——這在線程1和線程2都改變了它們各自的i1值,而且這個(gè)改變還沒(méi)來(lái)得及傳遞給“主”內(nèi)存區(qū)域或其他線程時(shí)就會(huì)發(fā)生。
而geti2()得到的是“主”內(nèi)存區(qū)域的i2數(shù)值。用volatile修飾后的變量不允許有不同于“主”內(nèi)存區(qū)域的變量拷貝。換句話說(shuō),一個(gè)變量經(jīng)
volatile修飾后在所有線程中必須是同步的;任何線程中改變了它的值,所有其他線程立即獲取到了相同的值。理所當(dāng)然的,volatile修飾的變量
存取時(shí)比一般變量消耗的資源要多一點(diǎn),因?yàn)榫€程有它自己的變量拷貝更為高效。
既然volatile關(guān)鍵字已經(jīng)實(shí)現(xiàn)了線程間數(shù)據(jù)同步,又要synchronized干什么呢?呵呵,它們之間有兩點(diǎn)不同。首
先,synchronized獲得并釋放監(jiān)視器——如果兩個(gè)線程使用了同一個(gè)對(duì)象鎖,監(jiān)視器能強(qiáng)制保證代碼塊同時(shí)只被一個(gè)線程所執(zhí)行——這是眾所周知的事
實(shí)。但是,synchronized也同步內(nèi)存:事實(shí)上,synchronized在“主”內(nèi)存區(qū)域同步整個(gè)線程的內(nèi)存。因此,執(zhí)行g(shù)eti3()方法做
了如下幾步:
1. 線程請(qǐng)求獲得監(jiān)視this對(duì)象的對(duì)象鎖(假設(shè)未被鎖,否則線程等待直到鎖釋放)
2. 線程內(nèi)存的數(shù)據(jù)被消除,從“主”內(nèi)存區(qū)域中讀入(Java虛擬機(jī)能優(yōu)化此步。。。[后面的不知道怎么表達(dá),汗])
3. 代碼塊被執(zhí)行
4. 對(duì)于變量的任何改變現(xiàn)在可以安全地寫到“主”內(nèi)存區(qū)域中(不過(guò)geti3()方法不會(huì)改變變量值)
5. 線程釋放監(jiān)視this對(duì)象的對(duì)象鎖
因此volatile只是在線程內(nèi)存和“主”內(nèi)存間同步某個(gè)變量的值,而synchronized通過(guò)鎖定和解鎖某個(gè)監(jiān)視器同步所有變量的值。顯然synchronized要比volatile消耗更多資源。
附英文原文:
What does volatile do?
This is probably best explained by comparing the effects that
volatile and synchronized have on a method. volatile is a field
modifier, while synchronized modifies code blocks and methods. So we
can specify three variations of a simple accessor using those two
keywords:
- inti1; intgeti1(){returni1;}
- volatile inti2; intgeti2(){returni2;}
- int i3; synchronizedintgeti3(){returni3;}
geti1() accesses the value currently stored in i1 in the current
thread. Threads can have local copies of variables, and the data does
not have to be the same as the data held in other threads. In
particular, another thread may have updated i1 in it’s thread, but the
value in the current thread could be different from that updated value.
In fact Java has the idea of a “main” memory, and this is the memory
that holds the current “correct” value for variables. Threads can have
their own copy of data for variables, and the thread copy can be
different from the “main” memory. So in fact, it is possible for the
“main” memory to have a value of 1 for i1, for thread1 to have a value
of 2 for i1 and for thread2 to have a value of 3 for i1 if thread1 and
thread2 have both updated i1 but those updated value has not yet been
propagated to “main” memory or other threads.
On the other hand, geti2() effectively accesses the value of i2 from
“main” memory. A volatile variable is not allowed to have a local copy
of a variable that is different from the value currently held in “main”
memory. Effectively, a variable declared volatile must have it’s data
synchronized across all threads, so that whenever you access or update
the variable in any thread, all other threads immediately see the same
value. Of course, it is likely that volatile variables have a higher
access and update overhead than “plain” variables, since the reason
threads can have their own copy of data is for better efficiency.
Well if volatile already synchronizes data across threads, what is
synchronized for? Well there are two differences. Firstly synchronized
obtains and releases locks on monitors which can force only one thread
at a time to execute a code block, if both threads use the same monitor
(effectively the same object lock). That’s the fairly well known aspect
to synchronized. But synchronized also synchronizes memory. In fact
synchronized synchronizes the whole of thread memory with “main”
memory. So executing geti3() does the following:
1. The thread acquires the lock on the monitor for object this
(assuming the monitor is unlocked, otherwise the thread waits until the
monitor is unlocked).
2. The thread memory flushes all its variables, i.e. it has all of its
variables effectively read from “main” memory (JVMs can use dirty sets
to optimize this so that only “dirty” variables are flushed, but
conceptually this is the same. See section 17.9 of the Java language
specification).
3. The code block is executed (in this case setting the return value to
the current value of i3, which may have just been reset from “main”
memory).
4. (Any changes to variables would normally now be written out to “main” memory, but for geti3() we have no changes.)
5. The thread releases the lock on the monitor for object this.
So where volatile only synchronizes the value of one variable
between thread memory and “main” memory, synchronized synchronizes the
value of all variables between thread memory and “main” memory, and
locks and releases a monitor to boot. Clearly synchronized is likely to
have more overhead than volatile.
摘自:http://bianbian.org/technology/java/88.html
有synthetic標(biāo)記的field和method是class內(nèi)部使用的,正常的源代碼里不會(huì)出現(xiàn)synthetic field。小穎編譯工具用的就是jad.所有反編譯工具都不能保證完全正確地反編譯class。所以你不能要求太多。
下面我給大家介紹一下synthetic
下面的例子是最常見(jiàn)的synthetic field
class parent
{
public void foo()
{
}
class inner
{
inner()
{
foo();
}
}
}
非static的inner class里面都會(huì)有一個(gè)this$0的字段保存它的父對(duì)象。編譯后的inner class 就像下面這樣:
class parent$inner
{
synthetic parent this$0;
parent$inner(parent this$0)
{
this.this$0 = this$0;
this$0.foo();
}
}
所有父對(duì)象的非私有成員都通過(guò) this$0來(lái)訪問(wèn)。
還有許多用到synthetic的地方。比如使用了assert 關(guān)鍵字的class會(huì)有一個(gè)
synthetic static boolean $assertionsDisabled 字段
使用了assert的地方
assert condition;
在class里被編譯成
if(!$assertionsDisabled && !condition)
{
throw new AssertionError();
}
還有,在jvm里,所有class的私有成員都不允許在其他類里訪問(wèn),包括它的inner class。在java語(yǔ)言里inner class是可以訪問(wèn)父類的私有成員的。在class里是用如下的方法實(shí)現(xiàn)的:
class parent
{
private int value = 0;
synthetic static int access$000(parent obj)
{
return value;
}
}
在inner class里通過(guò)access$000來(lái)訪問(wèn)value字段。
摘自:http://www.cjsdn.net/post/print?bid=1&id=130784
相關(guān)資料:
IETF : http://www.potaroo.net/ietf/idref/draft-nourse-scep/
Java SCEP : http://www.urut.ch/scep/
OpenSCEP : http://openscep.othello.ch/
一朋友推薦給我的文章,感覺(jué)很不錯(cuò);摘抄過(guò)來(lái),也給同行們提個(gè)醒!
論壇里經(jīng)常可以看到關(guān)于 35 歲程序員的生涯詢問(wèn), 他們之中有些人寫了十年代碼, 有些人則是因?yàn)閷?duì)編程發(fā)生了興趣, 中途轉(zhuǎn)行, 以下四點(diǎn)是給那些 30 - 35 歲程序員的建議:
* 照顧自己健康
以前, 我認(rèn)為 "錢" 是很重要的, 俗話說(shuō)的好: "錢不是萬(wàn)能, 但沒(méi)有錢萬(wàn)萬(wàn)不能", 所以過(guò)去我的焦點(diǎn)都是放在收入,
但后來(lái)我發(fā)現(xiàn)有比錢更重要的東西, 那是 "家", 在你沒(méi)有結(jié)婚前, 這個(gè)家的概念是指你和父母的和諧關(guān)系, 而在結(jié)婚后,
家的概念是指如何維系一個(gè)家庭, 包括和太太還有孩子的關(guān)系。
在 IT 這個(gè)行業(yè)里, 很多人跟自己父母的想法是有差距的, 認(rèn)為上一代保守, 食古不化, 講到很多東西沒(méi)法溝通, 另外,
我的很多朋友事業(yè)做很大, 但最后卻離婚了, 沒(méi)有孩子還好, 有孩子的要想更多, 只有家, 你才有奮斗的目標(biāo), 才有精神的支持,
否則就像電視里講的那一句, 失去了你, 得到江山又如何?
但這個(gè)家的信念自從張國(guó)榮事件后, 又改變了我的看法, 那就是有比家更重要的東西, 那是你的 "健康",
這個(gè)健康包括生理和心理上的健康, 想想看你擁有了一個(gè)家, 但是因?yàn)闆](méi)有健康, 全家人都被拖下去了, 每天看著你痛苦的吊瓶子,
更嚴(yán)重的直接輕生, 這樣遺留給珍愛(ài)你的人只是更大的痛苦, 你會(huì) C, C++, C#, Java... 又怎樣?
那時(shí)候你會(huì)認(rèn)為這些通通都是屁, 做人做到能夠 "吃得下飯、睡得著覺(jué)、笑得出來(lái)" 就已經(jīng)是莫大的幸福。
35 歲會(huì)困惑的人多半是因?yàn)槎畮讱q的時(shí)候就沒(méi)有做好準(zhǔn)備, 過(guò)去的已經(jīng)不可追, 現(xiàn)在要想的應(yīng)該是 45 歲怎么辦?
有人說(shuō)年輕比的是學(xué)問(wèn), 中年比的是財(cái)富, 老年比的是健康, 如果你現(xiàn)在不注意自己健康, 那么很快更大的困擾就會(huì)上門了,
人生每個(gè)階段都有扮演的角色, 要學(xué)會(huì)未雨綢繆, 否則不用到 50 歲, 可能 40 歲就會(huì)開(kāi)始后悔了, 健康要從飲食和運(yùn)動(dòng)著手,
多涉獵這方面的常識(shí), 比搞那些過(guò)幾年就要淘汰的技術(shù)有意義多了。
* 學(xué)會(huì)投資理財(cái)
很多人認(rèn)為投資理財(cái)需要很多的錢, 這是不正確的, 會(huì)理財(cái)?shù)娜? 小錢可以積累到大, 不會(huì)理財(cái)?shù)娜? 大錢也會(huì)消耗到光,
投資理財(cái)首重的是風(fēng)險(xiǎn)管理, 沒(méi)有風(fēng)險(xiǎn)管理就像在刀口舔血一樣, 投資理財(cái)應(yīng)該要趁早磨練, 不要等到 40 歲的時(shí)候才去冒險(xiǎn),
因?yàn)槟菚r(shí)候你已經(jīng)沒(méi)有本錢跌倒, 投資理財(cái)?shù)姆椒ㄓ泻芏? 并不是只有房地產(chǎn), 股票這些東西, 從節(jié)約, 儲(chǔ)蓄, 定存... 每一步都是學(xué)習(xí),
關(guān)鍵是你要從投資的過(guò)程里去發(fā)現(xiàn)自己, 并且了解如何正確對(duì)待甚至對(duì)付自己, 這樣你才有機(jī)會(huì)早一日達(dá)到經(jīng)濟(jì)自由, 不會(huì)提心吊膽這個(gè)那個(gè)。
投資理財(cái)要量力而為, 不要做超過(guò)你能力所能負(fù)荷的事情, 我給程序員最好的建議是關(guān)注經(jīng)濟(jì), 不要浮躁, 錯(cuò)把投機(jī)當(dāng)投資, 這樣還不如定存來(lái)得可靠安全。
* 經(jīng)營(yíng)你的人脈
我覺(jué)得程序員除了普遍不善理財(cái)外, 另外人際溝通也多有問(wèn)題, 很多人在離開(kāi)公司的剎那, 整個(gè)人感覺(jué)也都被掏空了, 而且會(huì)有一種擔(dān)憂, 以前別人跟我說(shuō)話那是因?yàn)槲沂悄衬彻镜膯T工, 現(xiàn)在不是了, 可能就沒(méi)有什么人會(huì)再鳥我了, 這就是典型的人脈經(jīng)營(yíng)危機(jī)。
人脈的經(jīng)營(yíng)不是看你有沒(méi)有朋友, 而是有沒(méi)有能幫助你同時(shí)又有實(shí)力的朋友。有些人朋友很多, 但真正遇到困難, 只能精神上支持一下,
除此外, 幫不上任何忙, 這代表人脈還是太單薄, 不要總問(wèn)別人能給你什么? 也要問(wèn)問(wèn)你能給別人什么? 懂得去欣賞別人,
而不要像患了紅眼病一樣, 漠視別人背后的辛勞的付出, 只知道妒忌表面的風(fēng)頭, 這樣, 只會(huì)將自己的路越走越窄。
經(jīng)營(yíng)自己的人脈是有秘訣的, 首先你要了解自己存在的價(jià)值, 如果沒(méi)有存在的價(jià)值, 那么經(jīng)營(yíng)的人脈是空的,
這跟有存在價(jià)值卻不知道怎樣經(jīng)營(yíng)人脈, 基本上差不多, 經(jīng)營(yíng)人脈并不等于趨炎附勢(shì), 而是指在得勢(shì)的時(shí)候, 就要想到落難的時(shí)刻, 待人寬厚真誠(chéng),
花無(wú)百日好, 人無(wú)千日紅, 多欣賞別人, 擇友深交, 別把時(shí)間浪費(fèi)在小屁孩身上。
* 培養(yǎng)廣泛興趣
一個(gè)程序員如果除了 IT 以外, 一點(diǎn)其它的興趣也沒(méi)有, 那真的是很危險(xiǎn)的事情, 像我現(xiàn)在年齡已經(jīng)超過(guò) 35 歲了, 很快就要 40,
但我現(xiàn)在還是每天寫代碼, 做項(xiàng)目已經(jīng)不是為了維生, 而是純粹興趣了, 我想我會(huì)一直寫下去,
同時(shí)開(kāi)始加強(qiáng)自己經(jīng)營(yíng)管理或財(cái)務(wù)方面的知識(shí)。你說(shuō)郭安定以后玩不了電腦怎么辦? 他就去寫書, 萬(wàn)一雙手廢了怎么辦? 那就去配音,
萬(wàn)一聲音也啞了怎么辦? 那就重回金融市場(chǎng), 讓徒子徒孫幫忙著下單, 眼球看左就買, 看右就賣, 就這么一直玩下去...
所以人生不是只有一條路, 你得為自己想好方方面面, 而廣泛的興趣可以幫助你跳脫現(xiàn)況, 看到更多。
以上四點(diǎn)不僅是 35 歲的人要注意的, 很多甚至二十幾歲的人也要開(kāi)始關(guān)注, 說(shuō)真的, 很多程序員看上去每個(gè)體型都不錯(cuò), 但體格都馬馬虎虎, 很多人熬個(gè)兩天夜就不行了, 不知該說(shuō)什么... 一起加油吧。
Tsung,壓力測(cè)試的好工具。
安裝過(guò)程:
1.獲取tsung 的源碼。http://tsung.erlang-projects.org/
2.安裝依賴 erlang(從源碼編譯 erlang 寫的程序) gnuplot perl5(如果想看 report 中的圖形,就要裝這個(gè))
apt-get install erlang erlang-src gnuplot perl5 我用的是Ubuntu 8 OS.
3.編譯安裝
./configure
make
sudo make install
安裝完成之后的 tsung 運(yùn)行腳本在 /usr/bin/tsung ,在系統(tǒng) path 之中,可以直接運(yùn)行。
設(shè)置
從 /usr/share/doc/tsung/examples 中挑一兩個(gè)例子拷貝到 ~/.tsung/tsung.xml 作為配置文件。我只需要 http 測(cè)試,所以:
cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml
tsung 采用了巧妙的 proxy 方式來(lái)“錄制”測(cè)試腳本。具體來(lái)說(shuō),就是建立一個(gè)本機(jī)的 http proxy 默認(rèn)使用 8090
端口,在配好 firefox 使用 localhost 8090 作為代理之后(推薦 foxyproxy 插件),所有“流經(jīng)”這個(gè) proxy
的 http 動(dòng)作都會(huì)被記錄下來(lái),測(cè)試時(shí)可以“回放”這些步驟來(lái)產(chǎn)生請(qǐng)求。
tsung rocorder
tsung stop_recorder
“錄制”完了,會(huì)得到一個(gè) ~/.tsung/tsung_recorderXXXXXXXXXX.xml 文件,這就是測(cè)試時(shí)回回放的腳本。
將這個(gè)腳本加到 tsung.xml 之中
就像這樣
<!DOCTYPEtsungSYSTEM"/usr/share/tsung/tsung-1.0.dtd" [
<!ENTITYmysession1SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
...
<sessions>
&mysession1;
</sessions>
對(duì)配置稍作調(diào)整
<monitoring>
<monitorhost="localhost"type="erlang"></monitor>
</monitoring>
<!-- 需要配置到 localhost 無(wú)須密碼的 ssh 登錄(ssh via rsa_key),開(kāi)啟了這個(gè)配置可以,獲得目標(biāo)機(jī)器的 cpu 和 ram 消耗情況 -->
<load>
<arrivalphasephase="1"duration="1"unit="minute">
<usersinterarrival="2"unit="second"></users>
</arrivalphase>
</load>
<!-- 第1階段1分鐘(你可以自己多搞幾個(gè)階段),其中每2秒新建一個(gè)用戶,每個(gè)用戶都會(huì)完整執(zhí)行 session 的測(cè)試腳本,最高并發(fā)約為 30 個(gè),個(gè)人認(rèn)為這個(gè)“逐漸加壓”的方法比 ab xxxx 的“突然加壓”要慢一些,但更科學(xué)一點(diǎn) -->
運(yùn)行
準(zhǔn)備好了,加壓運(yùn)行。
運(yùn)行完,在 ~/.tsung/log 目錄會(huì)生成一個(gè)以時(shí)間命名的目錄,進(jìn)入這個(gè)目錄
cd ~/.tsung/log/xxxxx
/usr/lib/tsung/bin/tsung_stats.pl (有時(shí)可能是 /usr/local/lib/tsung/bin/tsung_stats.pl)
生成 html 的壓力測(cè)試報(bào)告
除了 http 以外 tsung 還可以壓很多東西,比如:jabber, postgreSQL 還可以寫插件來(lái)給任何你想要測(cè)試的東西加壓.
通過(guò)/etc/init.d/iptables status命令查詢是否有打開(kāi)80端口,如果沒(méi)有可通過(guò)兩種方式處理:
1.修改vi /etc/sysconfig/iptables命令添加使防火墻開(kāi)放80端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2.關(guān)閉防火墻
/etc/init.d/iptables stop
#start 開(kāi)啟
#restart 重啟
Backup to Script:
首先切換到postgres用戶:
liqingfeng@liqingfeng:~$ su postgres
口令: 輸入密碼
postgres@liqingfeng:/home/liqingfeng$
然后輸入backup命令:
pg_dump -U[username] -d -f[way of script file] [database name]
例如:pg_dump -Upostgres -d -f/home/liqingfeng/test.sql testdb
這樣數(shù)據(jù)庫(kù)testdb將以sql腳本形式backup到/home/liqingfeng/test.sql中。
Restore from Script:
還是首先要切換到postgres用戶下,輸入命令:
psql -U[username] -d[database name] -f[way to an existing script file]
例如:
psql -Upostgres -dtestdb -f/home/liqingfeng/test.sql
當(dāng)進(jìn)行大并發(fā)的壓力測(cè)試時(shí),經(jīng)常會(huì)出現(xiàn)如下Exception:Too many open files.
查閱資料,google baidu.
首先感謝demo的評(píng)論,使我對(duì)這個(gè)問(wèn)題有了新的認(rèn)識(shí)。
經(jīng)過(guò)再次查找,發(fā)現(xiàn)這個(gè)問(wèn)題的出現(xiàn)原因是system對(duì)打開(kāi)files數(shù)量的限制問(wèn)題。
用 ulimit -a 命令可以查看當(dāng)前所有資源限制
fingki@ubuntu:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15863
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15863
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
fingki@ubuntu:~$
可以看出,對(duì)open files的限制數(shù)是1024,我們可以通過(guò)修改這個(gè)值來(lái)增加可以打開(kāi)的文件數(shù)。
最簡(jiǎn)單的修改方式就是用ulimit -n 命令,
比如我打算將其改為2048,用 ulimit -n 2048.
當(dāng)你把open files的值增大到一定程度,你的Too many open files就不會(huì)再出現(xiàn)了。
而對(duì)于tcp_fin_timeout,是合tcp連接相關(guān)的,當(dāng)你有大量tcp連接時(shí),或許有些性能改善;
tcp_fin_timeout,默認(rèn)情況下,win為4 min,linux為60 sec.
可以把其相應(yīng)設(shè)置短一些,以增加系統(tǒng)性能。
in Windows
- Run regedit to start the Registry Editor
- Locate the following key: HKEY_LOCAL_MACHINE"System"CurrentControlSet"Services"tcpip"Parameters
- Add a new value named TcpTimedWaitDelay asa decimal and set the desired timeout in seconds (30-300)
- Reboot
in Linux
- Update the configuration value by running (30 seconds used in the example)
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
- Restart the networking component, for example by running
/etc/init.d/networking restart or service network restart
在linux下,經(jīng)常會(huì)有權(quán)限問(wèn)題使設(shè)置不能成功,盡管你用了sudo。
解決辦法就是先 su root,在root用戶下來(lái)執(zhí)行操作,這樣就ok了。
再有就是可能忘記root密碼了,那就 sudo passwd root,來(lái)設(shè)置一個(gè)新密碼。
根據(jù)進(jìn)一步的研究發(fā)現(xiàn):服務(wù)器默認(rèn)情況下對(duì)進(jìn)程的處理也是有限制的,要想server處理更多用戶進(jìn)程就需要調(diào)整相應(yīng)參數(shù)。
這里面有兩個(gè)文件要特別注意,
一個(gè)是 /etc/security/limits.conf
另一個(gè) /etc/sysctl.conf
當(dāng)我們用ulimit -a命令可以查看 open files(默認(rèn)為1024)和max user processes(默認(rèn)也為1024),
所以默認(rèn)情況下這個(gè)server只允許同時(shí)打開(kāi)1024個(gè)文件,處理1024個(gè)用戶進(jìn)程,
若要 臨時(shí) 改變這兩個(gè)參數(shù)值,可以使用 ulimit -n 10240 ,ulimit -u 10240,
若要 長(zhǎng)久 改變這兩個(gè)參數(shù)值,就要修改/ect/security/limits.conf,在文件中加上兩行:
* - nofile 102400
* - nproc 102400
而對(duì)于大量使用tcp連接的應(yīng)用來(lái)說(shuō),也需要對(duì)/etc/sysctl.conf中的參數(shù)進(jìn)行相應(yīng)優(yōu)化:
net/ipv4/ip_always_defrag = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 102400
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
上面是我根據(jù)我的需求的一些參數(shù)調(diào)整,你可以根據(jù)你的需求來(lái)調(diào)整相應(yīng)參數(shù)值。
然后執(zhí)行 sysctl -p命令可立即生效。sysctl -a可查看參數(shù)值。
參考 :http://www.javaeye.com/topic/65175
1、Scp 很好用的遠(yuǎn)程文件安全傳輸命令
命令格式:scp [-r] 源文件路徑 目標(biāo)文件路徑
源文件路徑:username@hostname:文件路徑 For example:fingki2@192.168.0.2:test/a.txt (如果是本地可直接寫相應(yīng)路徑)
目標(biāo)文件路徑:username@hostname:文件路徑 For example:fingki3@192.168.0.3:test/a.txt (如果是本地可直接寫相應(yīng)路徑)
-r:如果是傳目錄 就要加上這個(gè)參數(shù)
要求:遠(yuǎn)程機(jī)器必須打開(kāi)22端口
2、ssh 很好的linux服務(wù)器登錄命令 secure shell
簡(jiǎn)易命令格式:ssh username@hostname 然后輸入密碼即可進(jìn)入系統(tǒng)。
有時(shí)你會(huì)遇到如下問(wèn)題:
The authenticity of host '172.0.x.xxx (172.0.x.xxx)' can't be established.
RSA key fingerprint is 1f:c9:78:0a:ce:e2:e5:10:2c:b5:f4:33:19:fa:be:ec.
Are you sure you want to continue connecting (yes/no)?
如果你是第一次在這臺(tái)機(jī)器上使用ssh命令,輸入yes回車后,就可以輸入密碼登錄了。
如果輸入yes后仍有問(wèn)題,你可以到 ~/.ssh/下找到文件known_hosts,清除文件里面的內(nèi)容,重試即可。
3、vi列模式編輯:
用命令打開(kāi)文本:vim test.txt
按 Esc 取消當(dāng)前模式,
按Ctrl + v 進(jìn)入這種模式,
將光標(biāo)移到指定列位置,
然后按方向鍵選定指定列,進(jìn)行編輯(刪除等)
4. 批量刪除
如:刪除所有名字包含test的文件
find ./ -name *test* | xargs rm -f
前兩天一個(gè)朋友問(wèn)我,為什么要寫blog?
是呀,為什么要寫blog呢?為什么大家都在寫blog呢?
我來(lái)說(shuō)說(shuō)我的想法吧。
最開(kāi)始的時(shí)候,我純粹是跟風(fēng),大家都在寫blog,自己也就想玩玩,隨便申請(qǐng)了一個(gè),然后寫幾篇不相干的東西,然后忘記了;
后來(lái),工作中經(jīng)常遇到一些技術(shù)問(wèn)題,想把它記錄下來(lái),想到了blog這種方式,很不錯(cuò),很方便,所以又開(kāi)始找個(gè)相關(guān)的blog,開(kāi)始寫;
再后來(lái),發(fā)現(xiàn)有好多的問(wèn)題都是在別人的blog中找到的答案,很羨慕,很感激,于是也開(kāi)始把自己的一些經(jīng)驗(yàn)?zāi)贸鰜?lái)和大家分享;
慢慢的,當(dāng)發(fā)現(xiàn)自己的文章也曾幫助過(guò)別人時(shí),感覺(jué)很高興;于是,工作不是很忙時(shí),就會(huì)寫一些東西和大家分享;
我是blog的受益者,我也是blog的貢獻(xiàn)者!正是blog,使我們可以互補(bǔ)技術(shù)上的缺點(diǎn),分享工作中的經(jīng)驗(yàn),讓我們更快的進(jìn)步!
于是有感于blog: 是分享,是共同進(jìn)步!
About Exception:
An invalid XML character (Unicode: 0x0) was found in the element content of the document.
問(wèn)題描述:
當(dāng)我們用
byte[] info ;
DocumentHelper.parseText(new String(info));
將一個(gè)字節(jié)數(shù)組轉(zhuǎn)成字符串再轉(zhuǎn)成Document(XML格式)時(shí),常常會(huì)遇到上述異常。
特別是當(dāng)字符串有加、解密,或編碼等情況時(shí)。
原因:
從異常來(lái)看,很明顯是因?yàn)樽止?jié)數(shù)組中存在 Unicode: 0x0,而這個(gè)字節(jié)在Xml中被認(rèn)為是非法字符。
對(duì)于一些經(jīng)過(guò)編碼或加、解密的字符串中,很容易會(huì)出現(xiàn)這個(gè) 0x0,
特別是在加、解密中,經(jīng)常會(huì)涉及到字符填充,而填充物通常是 0x0,
需對(duì)于0x00-0x20 都會(huì)引起一定的問(wèn)題,又因?yàn)檫@些字符不可見(jiàn),因此用通常的編輯器進(jìn)行編輯的時(shí)候找不到問(wèn)題所在。
而在轉(zhuǎn)成String后也覺(jué)察不到任何異常。
所以在轉(zhuǎn)成XML格式時(shí)要對(duì)字符串進(jìn)行檢測(cè):
* Verify that no character has a hex value greater than 0xFFFD, or less than 0x20.
* Check that the character is not equal to the tab ("t), the newline ("n), the carriage return ("r), or is an invalid XML character below the range of 0x20. If any of these characters occur, an exception is thrown.
pubic void CheckUnicodeString(String value)
{
for (int i=0; i < value.Length; ++i) {
if (value[i] > 0xFFFD)
{
throw new Exception("Invalid Unicode");//或者直接替換掉0x0 value[i]='"n';
}
else if (value[i] < 0x20 && value[i] != '"t' & value[i] != '"n' & value[i] != '"r')
{
throw new Exception("Invalid Xml Characters");//或者直接替換掉0x0 value[i]='"n';
}
}
相關(guān)資源:
http://msdn.microsoft.com/en-us/library/k1y7hyy9.aspx
http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html
keystore是個(gè)密鑰存儲(chǔ)庫(kù),我們經(jīng)常用他來(lái)存儲(chǔ)非對(duì)稱密鑰,但有時(shí)我們也需要它來(lái)存儲(chǔ)一些對(duì)稱密鑰。
public void createKeyStore() {
try {
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.init(56, random);
SecretKey secretKey = keyGen.generateKey();
KeyStore ks = KeyStore.getInstance("jceks");
char password[] = {'c', 'h', 'a', 'n', 'g', 'e','i','t' };
// Create an empty keystore
ks.load(null, password);
KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(secretKey);
ks.setEntry("myKey", skEntry, new KeyStore.PasswordProtection(password));
// store away the keystore
java.io.FileOutputStream fos =
new java.io.FileOutputStream("mystore");
ks.store(fos, password);
fos.close();
} catch (NoSuchAlgorithmException nsaex) {
nsaex.printStackTrace(System.err);
} catch (NoSuchProviderException nspex) {
nspex.printStackTrace(System.err);
} catch (KeyStoreException ksex) {
ksex.printStackTrace(System.err);
} catch (CertificateException cex) {
cex.printStackTrace(System.err);
} catch (IOException ioex) {
ioex.printStackTrace(System.err);
}
}
上面的例子是存一個(gè)DES密鑰。
需要注意的就是這個(gè)keystore的類型,必須是jceks,
之前我就是使用默認(rèn)的jks,導(dǎo)致報(bào)錯(cuò)。
以往有聽(tīng)說(shuō)過(guò)“Microsoft Windows、FreeBSD不安全隨機(jī)數(shù)生成器信息泄露漏洞”之類的文章,大都是因?yàn)殡S機(jī)函數(shù)存在漏洞生成不安全的隨機(jī),導(dǎo)致可預(yù)測(cè)的加密密鑰。
About Random
隨機(jī)數(shù)是密碼學(xué)的一個(gè)重要部分,它通常作為初始化向量用于密鑰生成中。有許多測(cè)試根據(jù)數(shù)字計(jì)算給定數(shù)字序列的隨機(jī)性,它們考慮給定數(shù)定在序列中出現(xiàn)的周期,做更細(xì)致的測(cè)量,包括相同數(shù)字或其他重復(fù)形式出現(xiàn)的周期。
但統(tǒng)計(jì)隨機(jī)性的要求與加密隨機(jī)性不同。
一個(gè)數(shù)字序列在統(tǒng)計(jì)上是隨機(jī)的,但如果攻擊者可以推算出數(shù)字的序列(通過(guò)了解使用的算法和隨機(jī)種子值),那么加密是變得不安全了。
About Pseudo Random 偽隨機(jī)數(shù)
對(duì)于一串隨機(jī)的數(shù)字,最常見(jiàn)的描述就是沒(méi)有從前一個(gè)數(shù)字推算出后一個(gè)數(shù)字的數(shù)學(xué)方法。最好的隨機(jī)數(shù)是從物理過(guò)程中獲得的,因?yàn)閷?shí)際物理程才是真正隨機(jī)的。事實(shí)上,一些隨機(jī)數(shù)生成器就是使用硬件設(shè)置來(lái)實(shí)現(xiàn),如音頻輸入或二極管。
從設(shè)計(jì)上來(lái)說(shuō),計(jì)算機(jī)是很確定的,因此不是生成隨機(jī)數(shù)的就好選擇。它們通常求助于一個(gè)生成統(tǒng)計(jì)上隨機(jī)的數(shù)字串的算法。為了確定在該算法中使用的輸入值,它們要求用戶提供一個(gè)種子值,這通常來(lái)自于系統(tǒng)時(shí)鐘、網(wǎng)卡MAC地址以及其他不同的系統(tǒng)參數(shù)。
這些隨機(jī)數(shù)字很適合于計(jì)算機(jī)游戲中的示例數(shù)據(jù)或建模物理過(guò)程。不過(guò),它們不適合于加密。它的弱點(diǎn)包括以下幾點(diǎn):
● 偽隨機(jī)數(shù)是周期性的。最終將重復(fù)數(shù)字序列。
● 如果使用相同的種子值,將接收到序列完全一樣的“隨機(jī)”數(shù)。因此,隨機(jī)序列與種子值一樣多。
● 隨機(jī)數(shù)可使用逆向工程。運(yùn)用算法知識(shí),強(qiáng)力攻擊會(huì)立即猜測(cè)到種子值。如果種子值和時(shí)間之間有相關(guān)性,攻擊者將會(huì)推算出所有后面的“隨機(jī)”數(shù)。
偽隨機(jī)數(shù)是出現(xiàn)許多臭名昭著的攻擊的主要原因。破解56 位DES從1997年1月的96 天到1999 年1月的22 小時(shí)15 分鐘,由于DES使用的偽隨機(jī)數(shù)生成算法導(dǎo)致了這個(gè)結(jié)果,有一種攻擊就是針對(duì)賭博應(yīng)用程序,這種應(yīng)用程序使用一個(gè)隨機(jī)數(shù)種子值來(lái)對(duì)紙牌進(jìn)行排序,而洗牌的可能性是有限的。在看完開(kāi)始的幾張牌后,用戶可以將當(dāng)前發(fā)的牌與某種可能的洗牌序列匹配,來(lái)確定剩下牌的順序。
另一個(gè)著名的例子就是Netscape Navigator 早期版本中的取決于時(shí)間的隨機(jī)數(shù)字生成器,它泄露了動(dòng)態(tài)生成的用于加密運(yùn)用SSL的會(huì)話中數(shù)據(jù)的密鑰。
About Random encrypted 加密的隨機(jī)數(shù)
隨機(jī)數(shù)生成是許多加密操作不可分割的組成部分。例如,加密密鑰需要盡可能地隨機(jī),以便使它們很難被復(fù)制。加密隨機(jī)數(shù)生成器必須生成在計(jì)算上無(wú)法進(jìn)行推算(低于 p < .05 的概率)的輸出;即,任何推算下一個(gè)輸出位的方法不得具有比隨機(jī)猜測(cè)更高的成功幾率。
為了說(shuō)明一連串的隨機(jī)數(shù)字是加密安全的,必須使得用戶不可能通過(guò)計(jì)算重新生成同樣序列的隨機(jī)數(shù)。遺憾的是,運(yùn)用偽隨機(jī)數(shù)字,可以很容易地重新生成同樣的序列。用戶需要知道的知識(shí)就是偽隨機(jī)數(shù)生成器算法和種子值。
通過(guò)加密保護(hù)數(shù)據(jù)基于加密算法和更為隨機(jī)的種子值就是本文要提出的方法,一個(gè)帶加密功能的隨機(jī)數(shù)產(chǎn)生器,可以應(yīng)用于需要加密隨機(jī)數(shù)的場(chǎng)合.為了構(gòu)成種子值,需要用不同的值組合成一個(gè)系統(tǒng)范圍內(nèi)的種子值。這些值包括調(diào)用的應(yīng)用程序可以提供的位,例如鼠標(biāo)或鍵盤動(dòng)作之間的用戶反應(yīng)時(shí)間、象進(jìn)程ID和線程ID這樣的系統(tǒng)和用戶數(shù)據(jù)、系統(tǒng)時(shí)鐘、系統(tǒng)計(jì)數(shù)器、自由磁盤集群屬和散列的用戶環(huán)境塊。接著使用SHA-1散列這個(gè)值,輸出用于創(chuàng)建一個(gè)隨機(jī)數(shù)據(jù)流(用于更新系統(tǒng)種子值)。這可以起作用,是因?yàn)樯⒘兄瞪闪丝此齐S機(jī)的數(shù)據(jù),只改變?cè)次臋n(種子值)中的一個(gè)位,任何兩個(gè)輸出的散列共享它們50%的位,盡管兩個(gè)輸出只有一位之差。當(dāng)然,從理論上講,有些過(guò)程還是周期性的。例如磁盤搜索時(shí)間看似隨機(jī)的,實(shí)際取決于易于確定的因素,可以被推測(cè)出來(lái)。為了獲取更好的隨機(jī)數(shù)生成,可以采用硬件生成器,例如Intel的隨機(jī)數(shù)生成器。
說(shuō)明:
創(chuàng)建加密安全的隨機(jī)數(shù)需要更多的時(shí)間,這意味著如果需要快速地在一個(gè)短時(shí)間內(nèi)生成大量隨機(jī)數(shù)(例如百萬(wàn)級(jí)的數(shù)據(jù))是不適合的。在一個(gè)簡(jiǎn)單測(cè)試中,用本文提到的RNG生成一百萬(wàn)個(gè)隨機(jī)數(shù)的時(shí)間花費(fèi)差不多是偽隨機(jī)數(shù)生成器所用時(shí)間的八倍之多。
相關(guān)資源:http://www.xfocus.net/articles/200209/451.html
到目前為止,中國(guó)已奪26金啦,中國(guó)加油!
在ubuntu-server下安裝phppgadmin遇到如下問(wèn)題,記錄如下:
首先安裝postgresql很簡(jiǎn)單,sudo apt-get instatll postgresql
安裝完成后,可能需要更改默認(rèn)用戶postgre的密碼,這個(gè)可以查看我之前的文章。
然后,安裝client,我打算使用phppgadmin,
命令行下:sudo apt-get install phppgadmin
完成后,默認(rèn)同時(shí)安裝了它所依賴的apache2。
在瀏覽器中輸入:http://localhost,顯示 It works.這說(shuō)明apache2在正常工作。
但輸入http://localhost/phppgadmin,顯示無(wú)法找到該頁(yè),
進(jìn)入 /var/www中查看,只有index.html,所以肯定找不到phpgpadmin,
所以需要做link,
執(zhí)行:sudo find / -name phppgadmin,查找出phppgadmin的位置,
然后做連接: sudo ln -s /usr/share/phppgadmin phppgadmin
之后再試瀏覽器中訪問(wèn)http://localhost/phppgadmin,這次可以找到文件了,但提示是否下載php文件。
一同事說(shuō)遇到過(guò)這樣問(wèn)題,說(shuō)是少個(gè)libapache2-mod-php5,查看一下已經(jīng)安裝了。
于是google一番,得知:如果當(dāng)您瀏覽PHP網(wǎng)頁(yè)的時(shí)候,瀏覽器提示您是否下載PHP文件而不是去顯示它的時(shí)候,就可能是您沒(méi)有安裝libapache2-mod-php5。當(dāng)您
安裝PHP5的時(shí)候,它會(huì)被默認(rèn)的安裝進(jìn)去的,如果您不小心的將它遺忘了。您就需要去將它打開(kāi),sudo a2enmod php5,然后使用sudo
/etc/init.d/apache2 restart來(lái)重新啟動(dòng)APACHE。
果然重啟apache2后,可以正常訪問(wèn)了。
要用java檢測(cè)網(wǎng)絡(luò)資源是否可用,我們可以采用以下兩種方法:
一種方法是調(diào)用ping命令,
如:
Process process= Runtime.getRuntime().exec("ping 192.168.0.5");
InputStreamReader return = new InputStreamReader(process.getInputStream());
LineNumberReader returnData = new LineNumberReader (return);
String line="";
while((line=returnData.readLine())!=null){
System.out.println(line);
}
通用對(duì)返回?cái)?shù)據(jù)進(jìn)行分析,來(lái)探測(cè)網(wǎng)絡(luò)資源的可用性;
這種方法有一個(gè)缺點(diǎn):就是許多網(wǎng)絡(luò)資源是不允許被ping的,從而針對(duì)這類資源無(wú)法探測(cè)。
另一種方法是使用URL,
如:
URL url = new URL("http://localhost");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int state = connection.getResponseCode();
String responseContent = connection.getResponseMessage();
通過(guò)分析ResponseCode來(lái)探測(cè)網(wǎng)絡(luò)資源的可用性。
另外,當(dāng)指定的網(wǎng)絡(luò)資源走SSL時(shí),即用https協(xié)議時(shí),需要加入可信證書到trust.keystore.
通常情況下,我的用的是jre的keystore:cacerts,如jdk6下的路徑為:jdk1.6.0_05/jre/lib/security/cacerts
我們需要把指定資源的數(shù)字證書導(dǎo)入到信任庫(kù) cacerts.
可以使用keytool工具:keytool -import -alias localhost -file localhost.cer -keystore cacerts
如果我們不想使用jre的keystore,我們可以建立自己的keystore,
System.setProperty("javax.net.ssl.trustStore", "/home/liqingfeng/workspace/Test/mystore/localhost.keystore");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
用keytool命令把localhost的證書導(dǎo)入到指定的localhost.keystore中。這樣我們就可以用URL來(lái)探測(cè)SSL網(wǎng)絡(luò)資源的可用性了。
這里必須注意的是指定網(wǎng)絡(luò)資源的證書的CN,必須與資源訪問(wèn)地址一致,否則會(huì)報(bào)錯(cuò)。
以下是常見(jiàn)異常:
當(dāng)keystore中沒(méi)有指定資源的證書時(shí):
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
當(dāng)指定資源證書的CN與資源訪問(wèn)地址不匹配時(shí):
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found
Good Address:
Command Line Tools for win32
http://www.vkill.net/tools.html
腳本中心腳本庫(kù)網(wǎng)址:
http://www.microsoft.com/china/technet/community/scriptcenter/scripts/default.mspx
有關(guān)用戶和組的腳本(找得我好辛苦呀)
http://www.microsoft.com/china/technet/community/scriptcenter/user/default.mspx
最近發(fā)現(xiàn)一個(gè)不錯(cuò)的jdk6 source網(wǎng)站,收藏一下:
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules-sun/security/sun/security/krb5/internal/ktab/KeyTab.java.htm
http://developer.classpath.org/doc/
http://fuseyism.com/classpath/doc/
http://kickjava.com/src/
http://www.docjar.com/
VbScript語(yǔ)言參考
http://book.chinaz.com/VBScript/vbsdocs/vbstoc.htm
SUN網(wǎng)站
http://www.java.sun.com
http://java.sun.com/javase/technologies/security/
在我們用程序進(jìn)行HTTP連接時(shí),都要監(jiān)測(cè)返回的httpstatus,來(lái)確定響應(yīng)狀態(tài)。
一般的情況下返回都是401,500等。
但有時(shí)候會(huì)返回 -2146697211,這種情況一般是無(wú)法訪問(wèn)指定資源。
請(qǐng)檢查網(wǎng)絡(luò)是否異常,是否可以ping通指定資源。
我曾見(jiàn)到的問(wèn)題是在DNS中沒(méi)有綁定指定的域名和IP,
例如:我要訪問(wèn)的資源為:http://liqingfeng:8080 IP為192.168.0.5
當(dāng)我沒(méi)有在DNS或host中綁定它們時(shí),我進(jìn)行http連接會(huì)返回 status -2146697211
當(dāng)我綁定域名和IP后,status 200.
另外,當(dāng)返回-2146697191時(shí),一般是證書安全問(wèn)題。
最近發(fā)現(xiàn)一個(gè)不錯(cuò)的jdk6 source網(wǎng)站,收藏一下:
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules-sun/security/sun/security/krb5/internal/ktab/KeyTab.java.htm
由于項(xiàng)目的要求,親密接觸了windows操作.
windows就是牛,由于其用戶數(shù)的龐大,好多應(yīng)用必須圍著它轉(zhuǎn),順應(yīng)它的規(guī)則.
相應(yīng)的對(duì)其操作的一些腳本,也成了很有用的東西.
記錄以備后查:
腳本中心腳本庫(kù)網(wǎng)址:
http://www.microsoft.com/china/technet/community/scriptcenter/scripts/default.mspx
有關(guān)用戶和組的腳本(找得我好辛苦呀)
http://www.microsoft.com/china/technet/community/scriptcenter/user/default.mspx
最近和capicom親密接觸了一下,感覺(jué)到它的強(qiáng)大,記錄以備后查.
capicom是一個(gè)對(duì)windows來(lái)講非常重要的CryptoAPI.
通過(guò)capicom你可以在你的應(yīng)用中集成Public Key Infrastructure (PKI)功能:獲取證書庫(kù),利用服務(wù)器證書簽名,加密數(shù)據(jù).
通過(guò)vbscript你可以輕松的調(diào)用它,當(dāng)然,前提是你已經(jīng)安裝了capicom.dll.
注冊(cè)capicom.dll,打開(kāi)cmd,轉(zhuǎn)到capicom.dll目錄下,執(zhí)行: regsvr32 capicom.dll.(當(dāng)然你也可以自己做個(gè).msi來(lái)安裝)
之后你就可以用各種腳本調(diào)用它的強(qiáng)大功能了
以vbscript為例:
拿到當(dāng)前用戶的數(shù)字證書
Const CAPICOM_MY_STORE = "My"
Const CAPICOM_CURRENT_USER_STORE = 2
Const CAPICOM_STORE_OPEN_READ_ONLY = 0
Dim oCert, oStore
Set oStore = CreateObject ("CAPICOM.Store")
if Err.Number <> 0 Then
wscript.echo "CAPICOM NOT detected"
Wscript.Quit(1)
End if
oStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
For Each oCert in oStore.Certificates
WScript.Echo " Subject Name: " & oCert.SubjectName
WScript.Echo " Issuer Name: " & oCert.IssuerName
WScript.Echo " SHA-1 Thumbprint: " & oCert.Thumbprint
WScript.Echo " Serial Number: " & oCert.SerialNumber
WScript.Echo " Version: " & oCert.Version
WScript.Echo " Valid From: " & oCert.ValidFromDate
WScript.Echo " Valid To: " & oCert.ValidToDate
Next
上面這段代碼就是得到了當(dāng)前用戶的所有數(shù)字證書.
當(dāng)然你也可以得當(dāng)前機(jī)器上的,AD上的等.
store = CreateObject ("CAPICOM.Store")將返回一個(gè)證書庫(kù).
可利用這個(gè)store的open()方法得到相應(yīng)證書庫(kù)及其中的證書.
.open ()語(yǔ)法為:
.open( StoreLocation , StoreName , OpenMode)
StoreLocation :
CAPICOM_ACTIVE_DIRECTORY_USER_STORE 3 得到AD上已經(jīng)發(fā)布的證書
CAPICOM_CURRENT_USER_STORE 2 得到當(dāng)前用戶的證書
CAPICOM_LOCAL_MACHINE_STORE 1 得到本地機(jī)器上的證書
CAPICOM_MEMORY_STORE 0 得到內(nèi)存中的證書
StoreName :
CAPICOM_MY_STORE "MY" 得到當(dāng)前用戶證書與CAPICOM_CURRENT_USER_STORE配合使用
"CN=your user name on domain" 得到指定用戶的證書,一般與CAPICOM_ACTIVE_DIRECTORY_USER_STORE配合使用.
OpenMode:
CAPICOM_STORE_OPEN_READ_ONLY 0 只讀方法
經(jīng)常易出錯(cuò)的地方是:以上這些常量在vbscript中并沒(méi)被預(yù)定義,使用前要自己定義一下.其值就是后面相應(yīng)的數(shù)字.
之前我就是以為這此常量是VBS預(yù)定義了,所以直接用,導(dǎo)致操作不成功,浪費(fèi)了大量時(shí)間去找原因.
當(dāng)然,你也可以直接用相應(yīng)數(shù)字代替這此常量.
了解更多請(qǐng)參考:
http://msdn.microsoft.com/en-us/library/aa388130.aspx
http://207.46.196.114/windowsserver/en/library/8f918fdc-9841-48f9-a46d-28232742239a1033.mspx?mfr=true
最近項(xiàng)目中要寫vb腳本作些系統(tǒng)操作,收集vb中常用關(guān)鍵字對(duì)照以備后查:
vbCr Chr(13) 回車符。
vbCrLf Chr(13) & Chr(10) 回車符與換行符。
vbFormFeed Chr(12) 換頁(yè)符;在 Microsoft Windows 中不適用。
vbLf Chr(10) 換行符。
vbNewLine Chr(13) & Chr(10) 或 Chr(10) 平臺(tái)指定的新行字符;適用于任何平臺(tái)。
vbNullChar Chr(0) 值為 0 的字符。
vbNullString 值為 0 的字符串 與零長(zhǎng)度字符串 ("") 不同;用于調(diào)用外部過(guò)程。
vbTab Chr(9) 水平附簽。
vbVerticalTab Chr(11) 垂直附簽;在 Microsoft Windows
vbEmpty 0 未初始化(默認(rèn))
vbNull 1 不包含任何有效數(shù)據(jù)
vbInteger 2 整型子類型
vbLong 3 長(zhǎng)整型子類型
vbSingle 4 單精度子類型
vbDouble 5 雙精度子類型
vbCurrency 6 貨幣子類型
vbDate 7 日期子類型
vbString 8 字符串子類型
vbObject 9 對(duì)象
vbError 10 錯(cuò)誤子類型
vbBoolean 11 Boolean 子類型
vbVariant 12 Variant (僅用于變量數(shù)組)
vbDataObject 13 數(shù)據(jù)訪問(wèn)對(duì)象
vbDecimal 14 十進(jìn)制子類型
vbByte 17 字節(jié)子類型
vbArray 8192 數(shù)組
常數(shù) 值 描述
vbBlack &h00 黑色
vbRed &hFF 紅色
vbGreen &hFF00 綠色
vbYellow &hFFFF 黃色
vbBlue &hFF0000 藍(lán)色
vbMagenta &hFF00FF 紫色
vbCyan &hFFFF00 青色
vbWhite &hFFFFFF 白色
vbOKOnly 0 只顯示確定按鈕。
vbOKCancel 1 顯示確定和取消按鈕。
vbAbortRetryIgnore 2 顯示終止、重試和忽略按鈕。
vbYesNoCancel 3 顯示是、否和取消按鈕。
vbYesNo 4 顯示是和否按鈕。
vbRetryCancel 5 顯示重試和取消按鈕。
vbCritical 16 顯示臨界消息圖標(biāo)。
vbQuestion 32 顯示警告詢問(wèn)圖標(biāo)。
vbExclamation 48 顯示警告消息圖標(biāo)。
vbInformation 64 顯示提示消息圖標(biāo)。
vbDefaultButton1 0 第一個(gè)按鈕是默認(rèn)按鈕。
vbDefaultButton2 256 第二個(gè)按鈕是默認(rèn)按鈕。
vbDefaultButton3 512 第三個(gè)按鈕是默認(rèn)按鈕。
vbDefaultButton4 768 第四個(gè)按鈕是默認(rèn)按鈕。
vbApplicationModal 0 應(yīng)用程序模式。用戶必須響應(yīng)消息框,才能繼續(xù)在當(dāng)前應(yīng)用程序中工作。
vbSystemModal 4096 系統(tǒng)模式。 在 Win16 系統(tǒng)中, 所有應(yīng)用程序都將中止直到用戶響應(yīng)消息框。 在 Win32 系統(tǒng)中, 此常數(shù)提供一個(gè)應(yīng)用
程序模式信息框并總是保留在您可能正在運(yùn)行的所有其它程序的頂部。
常數(shù) 值 描述
vbOK 1 確定按鈕被單擊。
vbCancel 2 取消按鈕被單擊。
vbAbort 3 終止按鈕被單擊。
vbRetry 4 重試按鈕被單擊。
vbIgnore 5 忽略按鈕被單擊。
vbYes 6 是按鈕被單擊。
vbNo 7 否按鈕被單擊。
vbCr Chr(13) 回車符。
vbCrLf Chr(13) & Chr(10) 回車符與換行符。
vbFormFeed Chr(12) 換頁(yè)符;在 Microsoft Windows 中不適用。
vbLf Chr(10) 換行符。
vbNewLine Chr(13) & Chr(10) 或 Chr(10) 平臺(tái)指定的新行字符;適用于任何平臺(tái)。
vbNullChar Chr(0) 值為 0 的字符。
vbNullString 值為 0 的字符串 與零長(zhǎng)度字符串 ("") 不同;用于調(diào)用外部過(guò)程。
vbTab Chr(9) 水平附簽。
vbVerticalTab Chr(11) 垂直附簽;在 Microsoft Windows
vbEmpty 0 未初始化(默認(rèn))
vbNull 1 不包含任何有效數(shù)據(jù)
vbInteger 2 整型子類型
vbLong 3 長(zhǎng)整型子類型
vbSingle 4 單精度子類型
vbDouble 5 雙精度子類型
vbCurrency 6 貨幣子類型
vbDate 7 日期子類型
vbString 8 字符串子類型
vbObject 9 對(duì)象
vbError 10 錯(cuò)誤子類型
vbBoolean 11 Boolean 子類型
vbVariant 12 Variant (僅用于變量數(shù)組)
vbDataObject 13 數(shù)據(jù)訪問(wèn)對(duì)象
vbDecimal 14 十進(jìn)制子類型
vbByte 17 字節(jié)子類型
vbArray 8192 數(shù)組
|