<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當(dāng)前訪問本站: hits

    yjhmily

    堅(jiān)持走自己的路……

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks

    2007年9月14日 #

    原文出處:http://space.itpub.net/133735/viewspace-710117 
    總結(jié)的不錯(cuò)!
    -------------------------------------------------------------------------------------------------
    生產(chǎn)環(huán)境最佳實(shí)踐
    1.linux 系統(tǒng):
    1】關(guān)閉文件系統(tǒng)/分區(qū)的atime 選項(xiàng)
    Vi /etc/fstab
    在對(duì)應(yīng)的分區(qū)項(xiàng)后面添加noatime ,nodiratime
    LABEL=/1 / ext3 defaults 1 1
    LABEL=/data1 /data ext4 defaults,noatime,nodiratime 1 2
    2】設(shè)置文件句柄4k+,目前該配置已經(jīng)集成到啟動(dòng)腳本中。
    Vi /etc/security/limit.conf
    * soft nproc 65536
    * hard nproc 65536
    * soft nofile 65536
    * hard nofile 65536
    3】不要使用large vm page (不要使用大內(nèi)存頁(yè)選項(xiàng))
    Linux 大內(nèi)存頁(yè)參考:http://linuxgazette.net/155/krishnakumar.html
    4】用dmesg 查看主機(jī)的信息。
    2.linux 文件系統(tǒng)的選擇:
    Mongodb 采用預(yù)分配的大文件來存儲(chǔ)數(shù)據(jù),我們推薦
    1】ext4
    2】xfs
    3.內(nèi)核版本:
    網(wǎng)絡(luò)上對(duì)2.6.33-31 以及2.6.32 的表現(xiàn)持懷疑度, 而強(qiáng)力推薦2.6.36
    4.線程堆棧的尺寸
    默認(rèn)的線程堆棧尺寸為10m ,調(diào)整為1m ,已經(jīng)集成在啟動(dòng)腳本中。
    項(xiàng)目過程中的總結(jié)與建議
    1.大小寫問題
    mongodb 是默認(rèn)區(qū)分大小寫的,但是這會(huì)不會(huì)衍生出跟mysql 一樣的問題?(mysql 區(qū)
    分大小寫,導(dǎo)致windows 與linux 下的表名,字段名不一致)。
    如果無特別用途,建議表名,字段名全部用小寫字母。
    2.盡可能的縮短字段名的長(zhǎng)度
    mongodb 的schema free 導(dǎo)致了每筆數(shù)據(jù)都要存儲(chǔ)他的key 以及屬性,這導(dǎo)致了這些數(shù)
    據(jù)的大量冗余。開發(fā)同事也許考慮到,從易讀性出發(fā)設(shè)計(jì)的key 基本比較長(zhǎng),基本都是按
    照起字面意思去設(shè)計(jì)的。這導(dǎo)致key 很長(zhǎng)。對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)占用了很大的空間。
    必要的時(shí)候,可以考慮建立一個(gè)key 與實(shí)際意義的map 表,盡量降低key 的長(zhǎng)度。
    示例定義:
    // 基本信息
    static final String _ID = "_id";
    static final String STATUS_CODE = "sc";
    // 緩沖
    static final String DATE = "date";
    static final String MAX_AGE = "age";
    // 內(nèi)容
    static final String CONTENT = "content";
    static final String CONTENT_TYPE = "ctype";
    static final String CONTENT_LENGTH = "clen";
    static final String ZIP = "zip";
    3. mongodb 單表最大索引數(shù)為64
    無索引排序的最大數(shù)據(jù)量為4M, 超過則報(bào)錯(cuò)退出。
    建議where 條件盡量落在索引字段上,排序字段需要建立索引,索引的使用原則與oracle
    mysql 一致,盡量降低索引數(shù)量,索引長(zhǎng)度。
    mongodb 的查詢每次只能用到一個(gè)索引,對(duì)數(shù)據(jù)的查詢不會(huì)“并發(fā)”執(zhí)行
    例如: db.tab.find({'id'=1,'name'=2}) 如果‘id’,‘name' 列上分別有索引
    對(duì)查詢效率提升意義不大,如果索引為('id','name') 則大幅提升效率。
    4.mongodb 添加字段
    如果添加字段且?guī)в衐efault 值,需要全部數(shù)據(jù)都要修改,這也是設(shè)計(jì)階段需要考慮的
    事情,這個(gè)問題的另外一種解法是應(yīng)用代碼里做一次判斷。
    5.測(cè)試過程的密碼問題
    對(duì)于用作數(shù)據(jù)庫(kù)使用的Mongodb,在代碼測(cè)試階段都應(yīng)加上密碼驗(yàn)證,目前上線階段基
    本都會(huì)在密碼驗(yàn)證方面出現(xiàn)問題(做緩存使用的可以不做密碼驗(yàn)證)。
    6.數(shù)據(jù)源連接方式
    使用連接池模式,盡量減少認(rèn)證帶來的性能額外消耗
    建議采用標(biāo)準(zhǔn)的uri 連接方式: mongodb://user:passwd@host:port,host:port/db
    7.Mongodb日志量
    正常情況下不需要開啟-v 日志選項(xiàng)。
    Mongodb 的-v 日志適合在開發(fā)環(huán)境的調(diào)試線上部署不建議采用這個(gè)參數(shù),目前線上
    部署的情況,-v 日志一天也會(huì)有幾個(gè)G 的日志量,去掉這個(gè)參數(shù),跟數(shù)據(jù)查詢相關(guān)的操作
    就不會(huì)記日志了,數(shù)據(jù)庫(kù)的內(nèi)部的重要操作還是會(huì)寫日志的。
    8.連接數(shù)大小的設(shè)置
    Mongodb 驅(qū)動(dòng)程序采用的連接池的方式連接到數(shù)據(jù)庫(kù),目前從觀察到的情況是應(yīng)用一
    開啟便根據(jù)變量的設(shè)置,建立全部連接,然后提供給程序使用,并且一旦其中某個(gè)連接
    到數(shù)據(jù)庫(kù)的訪問失敗,則會(huì)清空整個(gè)連接池到這臺(tái)數(shù)據(jù)庫(kù)的連接,并重新建立連接。
    而mongodb 對(duì)中斷連接的垃圾清理工作則是懶惰的被動(dòng)清理方式,如果驅(qū)動(dòng)程序端配
    置的連接數(shù)過大,一旦發(fā)生重連,則會(huì)導(dǎo)致mongo 端堆積大量的垃圾連接數(shù)據(jù),導(dǎo)致
    主機(jī)資源耗盡。
    建議: mongodb 驅(qū)動(dòng)的連接池大小的設(shè)置一般應(yīng)該控制100 以下,一般情況30-50 足
    夠支撐應(yīng)用訪問。
    9.鎖的問題
    Mongodb 對(duì)數(shù)據(jù)庫(kù)的訪問全部加鎖,如果是查詢請(qǐng)求則設(shè)置共享鎖,數(shù)據(jù)修改請(qǐng)求,
    則設(shè)置全局排他鎖,并且是實(shí)例級(jí)別的排他鎖。并且寫鎖會(huì)阻塞讀請(qǐng)求,如果長(zhǎng)時(shí)間持有
    寫鎖,會(huì)阻塞整個(gè)實(shí)例的讀請(qǐng)求。
    部署建議:
    1】一般情況下,建議不同的應(yīng)用不要合用一套示例。
    2】如果資源不滿足,需要合用,應(yīng)該具有相同屬性的應(yīng)用合用一套實(shí)例。
    例如合同mongo 的應(yīng)用都是讀多寫少,防止一臺(tái)寫多應(yīng)用阻塞讀請(qǐng)求。
    10.關(guān)于map/reduce問題
    mongodb 對(duì)map/reduce 的支持是單線程的,我們不建議在前臺(tái)使用該功能, group by
    是通過map/reduce 實(shí)現(xiàn)的,開發(fā)過程中,要慎用。
    11.安全問題
    1】Mongodb 運(yùn)行在mongodb 用戶之上,并禁止mongodb 用戶登錄
    2】使用Mongodb 自帶的認(rèn)證方法(adduser、auth)限制用戶訪問行為
    3】將Mongodb 置于內(nèi)網(wǎng)環(huán)境中
    4】Mongodb 必須暴露在外網(wǎng)環(huán)境中的時(shí)候,使用IPTABLES 等網(wǎng)絡(luò)層技術(shù)進(jìn)行防護(hù)
    5】網(wǎng)絡(luò)層面內(nèi)容為明文傳輸,可以考慮存儲(chǔ)加密文檔,應(yīng)用端,加解密。
    12.性能監(jiān)控
    Mongodb 自帶有性能數(shù)據(jù)收集系統(tǒng)
    Mongostat 實(shí)時(shí)采集數(shù)據(jù)庫(kù)的多項(xiàng)指標(biāo),提供http console 端口號(hào)為應(yīng)用端口號(hào)+1000。
    關(guān)注的主要性能指標(biāo):
    1】Faults:顯示Mongodb 每秒頁(yè)面故障的數(shù)量,這個(gè)是mongoDB 映射到虛擬地址空間,
    而不是物理內(nèi)存,這個(gè)值如果飆高的話,可能意味著機(jī)器沒有足夠的內(nèi)存來
    存儲(chǔ)數(shù)據(jù)和索引。
    2】Flushes:每秒做了多少次fsync,顯示多少次數(shù)據(jù)被刷新進(jìn)了磁盤
    3】locked:寫鎖
    4】idx miss:索引未命中比例
    5】qr | qw:讀寫鎖的請(qǐng)求隊(duì)列長(zhǎng)度。
    6】conn: 當(dāng)前已經(jīng)建立的連接數(shù)。
    其他命令:
    Db.stat()
    db.serverStatuse()
    Db.collection.stats()
    13.碎片問題
    Mongodb 數(shù)據(jù)庫(kù)如果數(shù)據(jù)修改很頻繁,會(huì)出現(xiàn)比較嚴(yán)重的空間碎片問題,表現(xiàn)在磁盤
    文件擴(kuò)張與實(shí)際數(shù)據(jù)量不相符,內(nèi)存不夠用,索引命中率低,查詢效率降低。
    碎片整理,目前我們采用的版本沒有太有效的方法。
    可以用db.repaireDatabase() 來整理數(shù)據(jù)庫(kù),這個(gè)過程非常的慢
    如果是Master-slave 模式則相當(dāng)于執(zhí)行一次主從切換,然后從新建立從庫(kù)。
    如果是replSet 架構(gòu)可以停掉數(shù)據(jù)庫(kù),然后刪除數(shù)據(jù)目錄,從新從復(fù)制復(fù)制組中全同步數(shù)據(jù),
    這個(gè)時(shí)候要考慮oplog 的尺寸。
    一個(gè)大體的步驟:
    1.】先調(diào)用rs.freeze(1200),將每個(gè)不想讓它成為primary 的機(jī)器讓它在1200 秒內(nèi)無法成為
    primary(這步也可以不做)
    2. 】將primary stepDown,不出意外新的primary 會(huì)起來.
    3. 】將原primary kill 掉.
    4. 】刪掉所有data 數(shù)據(jù)(調(diào)用repair 很慢,真不如干掉重新來)
    5. 】再重啟動(dòng)原primary 的進(jìn)程
    6. 】以此循環(huán)完成整個(gè)復(fù)制組的全部重建。
    14.系統(tǒng)備份:
    Mongodb 目前不支持在線備份,只能離線備份。
    我們采用的架構(gòu)為replSet 和Master-slave .
    基于我們目前的架構(gòu)以及數(shù)據(jù)一致性要求,我們沒有安排相關(guān)的備份系統(tǒng)。
    15.應(yīng)用代碼中Mongodb連接問題
    在有些應(yīng)用在使用Mongodb 過程中會(huì)存在以下兩個(gè)小問題:
    1. 在應(yīng)用啟動(dòng)過程中,應(yīng)用存在要求連接池中所有的連接都建立成功才讓應(yīng)用正
    常啟動(dòng),這種做法不可取,因?yàn)榇嬖诰W(wǎng)絡(luò)問題、Mongodb 拒絕連接或Mongodb 假死情況,如
    果沒加外部try catch 做防護(hù),則Resin 不斷重啟也不能正常啟動(dòng)端口。
    2.有些應(yīng)用在使用Mongodb 中連接池配置了safe=true,w=1;這種配置意味著客戶端在
    插入數(shù)據(jù)或更新數(shù)據(jù)的時(shí)候,要求mongodb 必須將所更新的數(shù)據(jù)寫入磁盤并返回更新成功
    的信息給程序。如果碰上應(yīng)用程序訪問壓力大,mongodb 就會(huì)反應(yīng)遲鈍,并會(huì)發(fā)生假死可能,
    針對(duì)此情況,需要評(píng)估數(shù)據(jù)的一致性需求,做出合適調(diào)整。我們一般建議關(guān)閉此選項(xiàng)。
    16.補(bǔ)充開發(fā)方面的一些問題
    1】skip+limit翻頁(yè),越往后面越慢,有資料說用數(shù)組元素的分頁(yè)可以解決,目前還沒
    試過,比較靠譜的做法是,先找出上次的id,翻頁(yè)的時(shí)候不用skip:
    last_row_id = ObjectId(‘....’);
    db.activity_stream->find({_id:{$lt: last_row_id },
    user_id:20 } ).sort( {_id:-1} ).limit(10);
    2】.只有真正需要的字段才select出來
    3】.更新的某條數(shù)據(jù)的時(shí)候,先查出來再更新會(huì)減小鎖的時(shí)間
    4】.只有返回很少結(jié)果的查詢才用索引,否則會(huì)加載太多數(shù)據(jù),比沒有用索引還慢
    5】.屬性比較多的時(shí)候,建立分層的關(guān)系能夠提高查詢效率,否則每個(gè)記錄都要過一遍
    才能找到要的屬性
    17.關(guān)于硬件資源的選擇:
    虛擬機(jī)可以很好的隔離資源,并可動(dòng)態(tài)的擴(kuò)展。
    我們建議mongodb 的部署采用虛擬機(jī)的方式,每個(gè)虛擬機(jī)部署一個(gè)實(shí)例,使各節(jié)點(diǎn)分
    散在不同的物理機(jī)上,根據(jù)應(yīng)用的前期預(yù)測(cè),平衡虛擬機(jī)的之間的i/o。
    posted @ 2012-09-29 22:17 kangxm 閱讀(633) | 評(píng)論 (0)編輯 收藏

    adb shell

    # mount -oremount,rw /dev/block/mtdblock3 /system

    # pm list packages -f (列出apk和包名的對(duì)應(yīng)關(guān)系)
    # cd /system/app (APK文件所在地)
    # rm Mms.* (rom自帶的短信)
    # exit

     

    adb uninstall com.android.mms

     

    返回Success,就說明卸載成功了

     

    注意..
    刪除之前, 最好用

    1. adb pull /system/app/xxx.apk .

    復(fù)制代碼

    給備份一下, 避免出錯(cuò)(系統(tǒng)老是Force Close, 沒法用).
    出錯(cuò)后, 可以用

    1. adb push xxx.apk /system/app
    adb shell

    # mount -oremount,rw /dev/block/mtdblock3 /system

    # pm list packages -f (列出apk和包名的對(duì)應(yīng)關(guān)系)
    # cd /system/app (APK文件所在地)
    # rm Mms.* (rom自帶的短信)
    # exit

     

    adb uninstall com.android.mms

     

    返回Success,就說明卸載成功了

     

    注意..
    刪除之前, 最好用

    1. adb pull /system/app/xxx.apk .

    復(fù)制代碼

    給備份一下, 避免出錯(cuò)(系統(tǒng)老是Force Close, 沒法用).
    出錯(cuò)后, 可以用

    1. adb push xxx.apk /system/app
    posted @ 2012-08-10 17:56 kangxm 閱讀(539) | 評(píng)論 (0)編輯 收藏

    最近的機(jī)器內(nèi)存又爆滿了,出了新增機(jī)器內(nèi)存外,還應(yīng)該好好review一下我們的代碼,有很多代碼編寫過于隨意化,這些不好的習(xí)慣或?qū)Τ绦蛘Z言的不了解是應(yīng)該好好打壓打壓了。
    下面是參考網(wǎng)絡(luò)資源和總結(jié)一些在java編程中盡可能做到的一些地方
    -
    1.盡量在合適的場(chǎng)合使用單例
    使用單例可以減輕加載的負(fù)擔(dān),縮短加載的時(shí)間,提高加載的效率,但并不是所有地方都適用于單例,簡(jiǎn)單來說,單例主要適用于以下三個(gè)方面
    第一,控制資源的使用,通過線程同步來控制資源的并發(fā)訪問
    第二,控制實(shí)例的產(chǎn)生,以達(dá)到節(jié)約資源的目的
    第三,控制數(shù)據(jù)共享,在不建立直接關(guān)聯(lián)的條件下,讓多個(gè)不相關(guān)的進(jìn)程或線程之間實(shí)現(xiàn)通信
    -
    2.盡量避免隨意使用靜態(tài)變量
    要知道,當(dāng)某個(gè)對(duì)象被定義為stataic變量所引用,那么gc通常是不會(huì)回收這個(gè)對(duì)象所占有的內(nèi)存,如
    public class A{
    static B b = new B();
    }
    此時(shí)靜態(tài)變量b的生命周期與A類同步,如果A類不會(huì)卸載,那么b對(duì)象會(huì)常駐內(nèi)存,直到程序終止。
    -
    3.盡量避免過多過常的創(chuàng)建java對(duì)象
    盡量避免在經(jīng)常調(diào)用的方法,循環(huán)中new對(duì)象,由于系統(tǒng)不僅要花費(fèi)時(shí)間來創(chuàng)建對(duì)象,而且還要花時(shí)間對(duì)這些對(duì)象進(jìn)行垃圾回收和處理,在我們可以控制的范圍內(nèi),最
    大限度的重用對(duì)象,最好能用基本的數(shù)據(jù)類型或數(shù)組來替代對(duì)象。
    -
    4.盡量使用final修飾符
    帶 有final修飾符的類是不可派生的。在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String。為String類指 定final防止了使用者覆蓋length()方法。另外,如果一個(gè)類是final的,則該類所有方法都是final的。java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián) (inline)所有的final方法(這和具體的編譯器實(shí)現(xiàn)有關(guān))。此舉能夠使性能平均提高50%。
    -
    5.盡量使用局部變量
    調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在棧(Stack)中,速度較快。其他變量,如靜態(tài)變量,實(shí)例變量等,都在堆(Heap)中創(chuàng)建,速度較慢。
    -
    6.盡量處理好包裝類型和基本類型兩者的使用場(chǎng)所
    雖然包裝類型和基本類型在使用過程中是可以相互轉(zhuǎn)換,但它們兩者所產(chǎn)生的內(nèi)存區(qū)域是完全不同的,基本類型數(shù)據(jù)產(chǎn)生和處理都在棧中處理,包裝類型是對(duì)象,是在堆中產(chǎn)生實(shí)例。
    在集合類對(duì)象,有對(duì)象方面需要的處理適用包裝類型,其他的處理提倡使用基本類型。
    -
    7.慎用synchronized,盡量減小synchronize的方法
    都 知道,實(shí)現(xiàn)同步是要很大的系統(tǒng)開銷作為代價(jià)的,甚至可能造成死鎖,所以盡量避免無謂的同步控制。synchronize方法被調(diào)用時(shí),直接會(huì)把當(dāng)前對(duì)象鎖 了,在方法執(zhí)行完之前其他線程無法調(diào)用當(dāng)前對(duì)象的其他方法。所以synchronize的方法盡量小,并且應(yīng)盡量使用方法同步代替代碼塊同步。
    -
    8.盡量使用StringBuilder和StringBuffer進(jìn)行字符串連接
    這個(gè)就不多講了
    -
    9.盡量不要使用finalize方法
    實(shí)際上,將資源清理放在finalize方法中完成是非常不好的選擇,由于GC的工作量很大,尤其是回收Young代內(nèi)存時(shí),大都會(huì)引起應(yīng)用程序暫停,所以再選擇使用finalize方法進(jìn)行資源清理,會(huì)導(dǎo)致GC負(fù)擔(dān)更大,程序運(yùn)行效率更差。
    -
    10.盡量使用基本數(shù)據(jù)類型代替對(duì)象
    String str = "hello";
    上面這種方式會(huì)創(chuàng)建一個(gè)“hello”字符串,而且JVM的字符緩存池還會(huì)緩存這個(gè)字符串;
    String str = new String("hello");
    此時(shí)程序除創(chuàng)建字符串外,str所引用的String對(duì)象底層還包含一個(gè)char[]數(shù)組,這個(gè)char[]數(shù)組依次存放了h,e,l,l,o
    -
    11.單線程應(yīng)盡量使用HashMap, ArrayList
    HashTable,Vector等使用了同步機(jī)制,降低了性能。
    -
    12.盡量合理的創(chuàng)建HashMap
    當(dāng)你要?jiǎng)?chuàng)建一個(gè)比較大的hashMap時(shí),充分利用另一個(gè)構(gòu)造函數(shù)
    public HashMap(int initialCapacity, float loadFactor)
    避 免HashMap多次進(jìn)行了hash重構(gòu),擴(kuò)容是一件很耗費(fèi)性能的事,在默認(rèn)中initialCapacity只有16,而loadFactor是 0.75,需要多大的容量,你最好能準(zhǔn)確的估計(jì)你所需要的最佳大小,同樣的Hashtable,Vectors也是一樣的道理。
    -
    13.盡量減少對(duì)變量的重復(fù)計(jì)算
    for(int i=0;i<list.size();i++)
    應(yīng)該改為
    for(int i=0,len=list.size();i<len;i++)
    并且在循環(huán)中應(yīng)該避免使用復(fù)雜的表達(dá)式,在循環(huán)中,循環(huán)條件會(huì)被反復(fù)計(jì)算,如果不使用復(fù)雜表達(dá)式,而使循環(huán)條件值不變的話,程序?qū)?huì)運(yùn)行的更快。 
    -
    14.盡量避免不必要的創(chuàng)建
    A a = new A();
    if(i==1){list.add(a);}
    應(yīng)該改為
    if(i==1){
    A a = new A();
    list.add(a);}
    -
    15.盡量在finally塊中釋放資源
    程序中使用到的資源應(yīng)當(dāng)被釋放,以避免資源泄漏。這最好在finally塊中去做。不管程序執(zhí)行的結(jié)果如何,finally塊總是會(huì)執(zhí)行的,以確保資源的正確關(guān)閉。 
    -
    16.盡量使用移位來代替'a/b'的操作
    "/"是一個(gè)代價(jià)很高的操作,使用移位的操作將會(huì)更快和更有效
    int num = a / 4;
    int num = a / 8;
    應(yīng)該改為
    int num = a >> 2;
    int num = a >> 3;
    但注意的是使用移位應(yīng)添加注釋,因?yàn)橐莆徊僮鞑恢庇^,比較難理解
    -
    17.盡量使用移位來代替'a*b'的操作
    同樣的,對(duì)于'*'操作,使用移位的操作將會(huì)更快和更有效
    int num = a * 4;
    int num = a * 8;
    應(yīng)該改為
    int num = a << 2;
    int num = a << 3;
    -
    18.盡量確定StringBuffer的容量
    StringBuffer 的構(gòu)造器會(huì)創(chuàng)建一個(gè)默認(rèn)大小(通常是16)的字符數(shù)組。在使用中,如果超出這個(gè)大小,就會(huì)重新分配內(nèi)存,創(chuàng)建一個(gè)更大的數(shù)組,并將原先的數(shù)組復(fù)制過來,再 丟棄舊的數(shù)組。在大多數(shù)情況下,你可以在創(chuàng)建 StringBuffer的時(shí)候指定大小,這樣就避免了在容量不夠的時(shí)候自動(dòng)增長(zhǎng),以提高性能。 
    如:StringBuffer buffer = new StringBuffer(1000);  
    -
    19.盡量早釋放無用對(duì)象的引用
    大部分時(shí),方法局部引用變量所引用的對(duì)象 會(huì)隨著方法結(jié)束而變成垃圾,因此,大部分時(shí)候程序無需將局部,引用變量顯式設(shè)為null。
    例如:
    Public void test(){
    Object obj = new Object();
    ……
    Obj=null;
    }
    上面這個(gè)就沒必要了,隨著方法test()的執(zhí)行完成,程序中obj引用變量的作用域就結(jié)束了。但是如果是改成下面:
    Public void test(){
    Object obj = new Object();
    ……
    Obj=null;
    //執(zhí)行耗時(shí),耗內(nèi)存操作;或調(diào)用耗時(shí),耗內(nèi)存的方法
    ……
    }
    這時(shí)候就有必要將obj賦值為null,可以盡早的釋放對(duì)Object對(duì)象的引用。
    -
    20.盡量避免使用二維數(shù)組
    二維數(shù)據(jù)占用的內(nèi)存空間比一維數(shù)組多得多,大概10倍以上。
    -
    21.盡量避免使用split
    除 非是必須的,否則應(yīng)該避免使用split,split由于支持正則表達(dá)式,所以效率比較低,如果是頻繁的幾十,幾百萬的調(diào)用將會(huì)耗費(fèi)大量資源,如果確實(shí)需 要頻繁的調(diào)用split,可以考慮使用apache的StringUtils.split(string,char),頻繁split的可以緩存結(jié)果。
    -
    22.ArrayList & LinkedList
    一 個(gè)是線性表,一個(gè)是鏈表,一句話,隨機(jī)查詢盡量使用ArrayList,ArrayList優(yōu)于LinkedList,LinkedList還要移動(dòng)指 針,添加刪除的操作LinkedList優(yōu)于ArrayList,ArrayList還要移動(dòng)數(shù)據(jù),不過這是理論性分析,事實(shí)未必如此,重要的是理解好2 者得數(shù)據(jù)結(jié)構(gòu),對(duì)癥下藥。
    -
    23.盡量使用System.arraycopy ()代替通過來循環(huán)復(fù)制數(shù)組
    System.arraycopy() 要比通過循環(huán)來復(fù)制數(shù)組快的多 
    -
    24.盡量緩存經(jīng)常使用的對(duì)象
    盡可能將經(jīng)常使用的對(duì)象進(jìn)行緩存,可以使用數(shù)組,或HashMap的容器來進(jìn)行緩存,但這種方式可能導(dǎo)致系統(tǒng)占用過多的緩存,性能下降,推薦可以使用一些第三方的開源工具,如EhCache,Oscache進(jìn)行緩存,他們基本都實(shí)現(xiàn)了FIFO/FLU等緩存算法。
    -
    25.盡量避免非常大的內(nèi)存分配
    有時(shí)候問題不是由當(dāng)時(shí)的堆狀態(tài)造成的,而是因?yàn)榉峙涫≡斐傻摹7峙涞膬?nèi)存塊都必須是連續(xù)的,而隨著堆越來越滿,找到較大的連續(xù)塊越來越困難。
    -
    26.慎用異常
    當(dāng) 創(chuàng)建一個(gè)異常時(shí),需要收集一個(gè)棧跟蹤(stack track),這個(gè)棧跟蹤用于描述異常是在何處創(chuàng)建的。構(gòu)建這些棧跟蹤時(shí)需要為運(yùn)行時(shí)棧做一份快照,正是這一部分開銷很大。當(dāng)需要?jiǎng)?chuàng)建一個(gè) Exception 時(shí),JVM 不得不說:先別動(dòng),我想就您現(xiàn)在的樣子存一份快照,所以暫時(shí)停止入棧和出棧操作。棧跟蹤不只包含運(yùn)行時(shí)棧中的一兩個(gè)元素,而是包含這個(gè)棧中的每一個(gè)元素。
    如 果您創(chuàng)建一個(gè) Exception ,就得付出代價(jià)。好在捕獲異常開銷不大,因此可以使用 try-catch 將核心內(nèi)容包起來。從技術(shù)上講,您甚至可以隨意地拋出異常,而不用花費(fèi)很大的代價(jià)。招致性能損失的并不是 throw 操作——盡管在沒有預(yù)先創(chuàng)建異常的情況下就拋出異常是有點(diǎn)不尋常。真正要花代價(jià)的是創(chuàng)建異常。幸運(yùn)的是,好的編程習(xí)慣已教會(huì)我們,不應(yīng)該不管三七二十一就 拋出異常。異常是為異常的情況而設(shè)計(jì)的,使用時(shí)也應(yīng)該牢記這一原則。

    文章主要是為了拋磚引玉,希望有更多牛人的指點(diǎn)

    謝謝的 xuanyuan 的建議:
    ===================================================
    7.慎用synchronized,盡量減小synchronize的方法
    re:同意,不過文中有個(gè)地方說錯(cuò)了,使用synchronized關(guān)鍵字并不一定都是鎖定當(dāng)前對(duì)象的,要看具體的鎖是什么。如果是在方法上加的synchronized,則是以對(duì)象本身為鎖的,如果是靜態(tài)方法則鎖的粒度是類。
    ---------------
    9.盡量不要使用finalize方法
    re:同意,其實(shí)不推薦用finalize方法的根本原因在于,JVM的規(guī)范并不保證何時(shí)執(zhí)行該方法,所以用這個(gè)方法來釋放資源很不合適,有可能造成長(zhǎng)時(shí)間資源得不到釋放。
    ---------------
    16.盡量使用移位來代替'a/b'的操作;17.盡量使用移位來代替'a*b'的操作
    re:個(gè)人不太同意這兩條。這樣做確實(shí)有更好的性能,但是卻犧牲了可讀性。這兩個(gè)操作符對(duì)很多程序員來說并不直觀。我認(rèn)為在如今硬件價(jià)格不那么昂貴的情況下,略微犧牲一些性能,換來更好的可讀性和可維護(hù)性是好的選擇。
    ===================================================
    19.盡量早釋放無用對(duì)象的引用
    大部分時(shí),方法局部引用變量所引用的對(duì)象 會(huì)隨著方法結(jié)束而變成垃圾,因此,大部分時(shí)候程序無需將局部,引用變量顯式設(shè)為null。
    例如:
    Public void test(){
    Object obj = new Object();
    ……
    Obj=null;
    }
    上面這個(gè)就沒必要了,隨著方法test()的執(zhí)行完成,程序中obj引用變量的作用域就結(jié)束了。但是如果是改成下面:
    Public void test(){
    Object obj = new Object();
    ……
    Obj=null;
    //執(zhí)行耗時(shí),耗內(nèi)存操作;或調(diào)用耗時(shí),耗內(nèi)存的方法
    ……
    }
    如果Object obj = new Object(); 如果這對(duì)象并不是大對(duì)象,這有必要嗎?Obj=null;只是告訴jvm這個(gè)對(duì)象已經(jīng)成為垃圾,至于什么時(shí)候回收,還不能確定! 這可讀性也不好!
    ===================================================
    posted @ 2011-08-22 15:18 kangxm 閱讀(558) | 評(píng)論 (0)編輯 收藏

    提示/boot目錄空間不足,查了一些資料,最后把久的內(nèi)核給卸載得以解決。

    1.首先查看自己使用的內(nèi)核

    lxz@lxz-pc:~$ uname -a

    Linux lxz-pc 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:48 UTC 2011 i686 GNU/Linux


    2.然后查看自己boot目錄,選擇需要卸載的版本
    lxz@lxz-pc:~$    cd /boot
    lxz@lxz-pc:/boot$  ls -l
    總計(jì) 35125
    -rw-r--r-- 1 root root   705861 2011-01-22 06:04 abi-2.6.35-25-generic
    -rw-r--r-- 1 root root   709370 2011-03-01 23:56 abi-2.6.35-28-generic-pae
    -rw-r--r-- 1 root root   128615 2011-01-22 06:04 config-2.6.35-25-generic
    -rw-r--r-- 1 root root   129056 2011-03-01 23:56 config-2.6.35-28-generic-pae
    drwxr-xr-x 3 root root     7168 2011-03-23 10:31 grub
    -rw-r--r-- 1 root root 10761551 2011-03-04 10:49 initrd.img-2.6.35-25-generic
    -rw-r--r-- 1 root root 10741569 2011-03-23 10:18 initrd.img-2.6.35-28-generic-pae
    drwx------ 2 root root    12288 2011-01-05 04:52 lost+found
    -rw-r--r-- 1 root root   165084 2010-09-25 01:14 memtest86+.bin
    -rw-r--r-- 1 root root   167264 2010-09-25 01:14 memtest86+_multiboot.bin
    -rw-r--r-- 1 root root  1831296 2011-01-22 06:04 System.map-2.6.35-25-generic
    -rw-r--r-- 1 root root  1873873 2011-03-01 23:56 System.map-2.6.35-28-generic-pae
    -rw-r--r-- 1 root root     1192 2011-01-22 06:06 vmcoreinfo-2.6.35-25-generic
    -rw-r--r-- 1 root root     1196 2011-03-01 23:57 vmcoreinfo-2.6.35-28-generic-pae
    -rw-r--r-- 1 root root  4294672 2011-01-22 06:04 vmlinuz-2.6.35-25-generic
    -rw-r--r-- 1 root root  4428048 2011-03-01 23:56 vmlinuz-2.6.35-28-generic-pae
    上面顯示的情況中,是我已經(jīng)把linux-image-2.6.35-27-generic的結(jié)果

    3.卸載舊內(nèi)核應(yīng)該使用命令:
    lxz@lxz-pc:/boot$  sudo apt-get remove linux-image-2.6.35-27-generic

    4.查看/boot目錄:
    lxz@lxz-pc:/boot$ sudo du -m /boot           //以MB為單位顯示
    1    /boot/grub/locale
    2    /boot/grub
    1    /boot/lost+found
    36    /boot

    5.查看文件系統(tǒng)使用情況,和文件系統(tǒng)被掛在的位置:
    lxz@lxz-pc:/boot$  df  -lh
    文件系統(tǒng)            容量  已用  可用 已用%% 掛載點(diǎn)
    /dev/sda7              71G  7.7G   60G  12% /
    none                 1001M  244K 1001M   1% /dev
    none                 1007M  216K 1006M   1% /dev/shm
    none                 1007M  100K 1006M   1% /var/run
    none                 1007M     0 1007M   0% /var/lock
    /dev/sda8              92M   42M   46M  48% /boot
    posted @ 2011-04-06 12:09 kangxm 閱讀(3188) | 評(píng)論 (0)編輯 收藏

    在ubuntu環(huán)境下進(jìn)行android開發(fā),想把目標(biāo)設(shè)備定為真實(shí)的手機(jī)。

    前幾天剛買了個(gè)defy就試了下,結(jié)果打開手機(jī)usb調(diào)試模式連接到電腦后,在eclipse里面手機(jī)名字顯示為一堆???號(hào),且無法使用。

    需要以下的步驟才能連接到:

    1 把手機(jī)設(shè)備為usb調(diào)試模式并和電腦連接

    2 打開終端運(yùn)行

        lsusb


        屏幕上會(huì)有一行顯示類似

        Bus 002 Device 012: ID 22b8 :xxxx Motorola xxxxxxxxxxxx

        這就是你的android手機(jī)了

    3 然后在終端運(yùn)行

       sudo gedit /etc/udev/rules.d/50-android.rules

       并編輯其中加入行: SUBSYSTEM=="usb", SYSFS{"Motorola xxxxxxxxxxxx "}=="22b8 ", MODE="0666"

    4 接著運(yùn)行

        sudo chmod a+rx /etc/udev/rules.d/50-android.rules

        sudo /etc/init.d/udev restart

    5 最后進(jìn)入android sdk的tools目錄 platform-tools 運(yùn)行

        sudo ./adb kill-server

        sudo ./adb devices

    試著重新打開eclipse,在運(yùn)行參數(shù)里選則手動(dòng)選取目標(biāo)設(shè)備,這時(shí)在Device Chooser里面應(yīng)該就可以看到正常顯示出名字的手機(jī)了。

    posted @ 2011-03-23 14:11 kangxm 閱讀(2069) | 評(píng)論 (2)編輯 收藏

            
            目前手上的項(xiàng)目需要用到memory cache,于是我選擇強(qiáng)大的Memcached。至于Memcached的強(qiáng)大先不在這里說了,
    后續(xù)有時(shí)間,我專門來介紹一下Memcached吧。今天只介紹下安裝和配置;
             直接進(jìn)入主題吧;
             1、下載
                   Memcached下載地址: http://memcached.org/  我下載的最新版本v1.45
                   Libevent下載地址:http://www.monkey.org/~provos/libevent/   我下載的版本是libevent-1.4.13-stable
                  
              因?yàn)镸emcache用到了libevent這個(gè)庫(kù)用于Socket的處理,所以需要安裝libevent

            2、先安裝libevent
                 # tar zxvf libevent-1.4.13-stable.tar.gz
                 # cd libevent-1.4.13-stable
                 # ./configure –prefix=/usr
                 # make
                 # make install
          
            3、再安裝Memcached,同時(shí)需要安裝中指定libevent的安裝位置:
                 # tar zxvf memcached-1.4.5.tar.gz
                 # cd memcached-1.4.5
                 # ./configure –with-libevent=/usr
                 # make
                 # make install
                 安裝完成后會(huì)把memcached放到 /usr/local/bin/memcached ,

            4、memcached的基本設(shè)置

                 啟動(dòng)Memcache的服務(wù)器端:
                 # /usr/local/bin/memcached -d -m 100 -u root -l 192.168.1.192 -p 12000 -c 256 -P /tmp/memcached.pid

        -d選項(xiàng)是啟動(dòng)一個(gè)守護(hù)進(jìn)程,
        -m是分配給Memcache使用的內(nèi)存數(shù)量,單位是MB,我這里是100MB,
        -u是運(yùn)行Memcache的用戶,我這里是root,
        -l是監(jiān)聽的服務(wù)器IP地址,如果有多個(gè)地址的話,我這里指定了服務(wù)器的IP地址192.168.1.192,
        -p是設(shè)置Memcache監(jiān)聽的端口,我這里設(shè)置了12000,最好是1024以上的端口,
        -c選項(xiàng)是最大運(yùn)行的并發(fā)連接數(shù),默認(rèn)是1024,我這里設(shè)置了256,按照你服務(wù)器的負(fù)載量來設(shè)定,
        -P是設(shè)置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid,

               如果要結(jié)束Memcache進(jìn)程,執(zhí)行:

               # kill  cat /tmp/memcached.pid

              也可以啟動(dòng)多個(gè)守護(hù)進(jìn)程,不過端口不能重復(fù)。

                
    posted @ 2010-04-20 12:19 kangxm 閱讀(650) | 評(píng)論 (0)編輯 收藏

    原處:http://www.javaeye.com/topic/644277

    《為什么畢業(yè)后5年同學(xué)間的差距會(huì)拉得如此巨大?》 引起大家不少的共鳴,今天繼續(xù)發(fā)布一篇?jiǎng)?lì)志的文章,首先聲明:如果你是“憤青”或“類憤青”,對(duì)不起,請(qǐng)你離開,我怕我的觀點(diǎn)再次傷害你那“純潔”得幾乎不識(shí)人間煙火的心靈!

       如果你想從此改變自己,那么,就花上十幾分鐘的時(shí)間,仔仔細(xì)細(xì)把這篇文章看完。如果你想改變自己的命運(yùn),那么,從現(xiàn)在就開始行動(dòng)。有時(shí)候我們之所以失 敗,99%的原因是因?yàn)檎f得太多,而行動(dòng)得太少!那1%的人或許并不聰明,或許只是小學(xué)畢業(yè),但是人家成功了,做了你的上司,那是因?yàn)槿思疑朴谟眯袆?dòng)證明 自己,而不是嘴巴。我不敢保證看了我這篇文章就一定會(huì)使你平步青云,我沒有那個(gè)本事。如果你有一天飛黃騰達(dá),也絕對(duì)與這篇文章沒有直接的關(guān)系。因?yàn)椋愕? 命運(yùn),只掌握在你自己的手中!

       同樣是打工,為什么你一個(gè)月只有2、3K,而唐駿的身價(jià)卻可以高達(dá)10億?

       或許你會(huì)反駁我,說人人都成為唐駿的概率有多大?的確,人人都成為唐駿的確不現(xiàn)實(shí),但是經(jīng)過努力,月薪達(dá)到8K、1W的總是大有人在吧?雖然不能達(dá)到大富大貴,但也不至于被女朋友看不起,付不起房貸首付款吧?

        很多人都喜歡抱怨,覺得這個(gè)世道不好。但現(xiàn)實(shí)是,在同樣世道不好的情況下,為什么有的人成功,而你卻碌碌無為?差距在哪里?怪世道不好嗎?還是怪自己沒本 事?我說這話可能你不愛聽。但是一個(gè)無法辯駁的事實(shí)是:你要是有本事,為什么月薪只有2、3K或者3、4K?事實(shí)勝于雄辯。所以,如果看到這里還想抱怨的 人,那么,也請(qǐng)你趁早離開。抱怨永遠(yuǎn)解決不了問題。

        職場(chǎng)是一個(gè)復(fù)雜的綜合體。看到別人在職場(chǎng)上呼風(fēng)喚雨,你認(rèn)為很愜意,是么?但是他們風(fēng)光表面的背后,又有幾個(gè)有看到他們?cè)?jīng)付出的巨大艱辛?這個(gè)社會(huì)其實(shí) 是很公平的。努力不一定有回報(bào),但是如果不努力,就一定沒有回報(bào)。要怪,就怪自己投錯(cuò)胎,怪自己的老子沒本事,當(dāng)初沒有給你留下一大筆可以揮霍的資本!

       說歸說,對(duì)于那些想改變自己的朋友們來說,還是需要看清楚一些東西,有一些經(jīng)驗(yàn)也想和大家分享分享。同樣是職場(chǎng)人士,我也有我的經(jīng)驗(yàn)和感受。在打工的3年 里,我得到了7次加薪(同時(shí)進(jìn)入公司的員工,加薪不超過2次的員工大有人在),順利地從員工做到了總監(jiān),是公司所有員工中成長(zhǎng)最快的。我敢肯定,在看過這 篇文章的人當(dāng)中,肯定有人比我更優(yōu)秀。但是對(duì)于那些更渴望得到幫助的朋友們來說,我還是希望把自己的經(jīng)驗(yàn)寫出來,與大家分享。

    我自己寫了一篇文章,叫《決定前程的8件事,你做到了幾件?》在這里整理出來,希望能對(duì)大家有所幫助。

    一、一定要清楚自己未來的目標(biāo)是什么
    很多人把職場(chǎng)想得太美好,其實(shí)不然。如果你沒有規(guī)劃好,你就會(huì)難免遇到各種各樣的問題:工作不開心;沒有前進(jìn)的動(dòng)力;工作不是自己想像的那么好;自己的才能無法發(fā)揮;看到以前的同學(xué)待遇如何如何,便受不了刺激,急切地想跳槽;當(dāng)初為了生存而找的工作,根本就不適合自己……
    這是幾乎所有初入職場(chǎng)的朋友都會(huì)面臨的問題。而這些問題通常會(huì)在步入職場(chǎng)的1-3年之內(nèi)最明顯(3年之后之所以不明顯,是因?yàn)槟阋呀?jīng)被現(xiàn)實(shí)折磨得 太久了,已經(jīng)被種種不平現(xiàn)象同化了,因此也就習(xí)慣了。你曾經(jīng)的種種抱負(fù)被現(xiàn)實(shí)碾得粉碎,于是,你也從一個(gè)志向遠(yuǎn)大的年輕人一下子變成了一個(gè)碌碌無為、甘于 平庸、成天為了生計(jì)而奔走的普通打工者)。

       如果不及早解決這些問題,那么,你就會(huì)荒廢這3年的時(shí)間(有的人可能會(huì)更長(zhǎng)),而對(duì)于一個(gè)職場(chǎng)新人來說,這3年至關(guān)重要,是鍛煉能力、積累資本的黃金3 年!一旦錯(cuò)過,則要花費(fèi)更多的時(shí)間,從頭再來,重新彌補(bǔ)!更有甚者,可能一輩子都無法彌補(bǔ)!這絕對(duì)不是危言聳聽!因此,如果你的職場(chǎng)年齡還沒有超過3年, 恭喜你,還有改變命運(yùn)的機(jī)會(huì)。而一旦超過了3年,那么,你的每一次改變,都將付出巨大的代價(jià)!

       為什么要清楚自己的目標(biāo)?因?yàn)椋辛四繕?biāo),才有行動(dòng)的指南。知道自己想干什么,喜歡干什么,這才是你前進(jìn)的最終動(dòng)力。工作不開心、動(dòng)力不足、盲目跳槽的最 根本原因是職業(yè)目標(biāo)不清晰。沒有目標(biāo),便沒有了追求,于是,所有的行動(dòng)只是為了掙一口飯吃。你根本沒有考慮過自己的未來應(yīng)該端什么飯碗。
    或許你在30歲之前還有揮霍的資本,因?yàn)槟贻p嘛,做什么都不怕。連廣告上都說了,“30歲之前,有什么好怕的?!”而一旦過了30歲,你走的每 一步都必須要慎之又慎,因?yàn)椋耗阋Y(jié)婚、你要養(yǎng)活老婆孩子、你要供房貸、你要供養(yǎng)年邁的父母、孩子大了還要上學(xué)、父母年邁了需要照顧……等等等等,所有的 這些責(zé)任,都要你來承擔(dān)。如果沒有規(guī)劃,一旦出現(xiàn)問題,你只能自亂陣腳。

       人生的職業(yè)發(fā)展如同品牌塑造一樣,只不過你的產(chǎn)品就是你自己。你自己的發(fā)展目標(biāo),也就是你人生的品牌目標(biāo)。有了目標(biāo),就要考慮該怎么走。每走一步,都應(yīng)該 離目標(biāo)更近,而不是更遠(yuǎn)。所以,你每做一個(gè)決定的時(shí)候,要衡量這個(gè)決定對(duì)不對(duì),唯一的標(biāo)準(zhǔn)就是:它是不是能夠幫助你離目標(biāo)更近?如果不是,那么,趕緊住 手,因?yàn)椋阕叩穆菲x了你的目標(biāo)!再走下去,只能錯(cuò)得更離譜!

       對(duì)于人生目標(biāo),涉及到職業(yè)生涯規(guī)劃的問題。這是一個(gè)老話題,很多人以為自己很了解了,其實(shí)卻遠(yuǎn)不是那么回事。大家可以看一些相關(guān)書籍,但在中國(guó),此類書籍 的最大問題就是說教性比較強(qiáng),實(shí)用性非常差!很多人看了書之后依然一頭霧水,不知所措,看了之后反而更糊涂。我的意見是,最好還是找一些專門的機(jī)構(gòu)咨詢一 下。
    注意:是咨詢,不是測(cè)評(píng)。二者的區(qū)別在于,咨詢的意義在于“為客戶提供可應(yīng)用性的解決方案”,而測(cè)評(píng)則僅僅局限于“幫助你認(rèn)識(shí)自己”,至于怎么 做,怎樣行動(dòng)才能更接近自己的目標(biāo),不知道!因?yàn)闇y(cè)評(píng)的人都是專家,而國(guó)內(nèi)的專家都是做研究的,沒有實(shí)戰(zhàn)經(jīng)驗(yàn),甚至對(duì)職場(chǎng)升遷是怎么回事都不太清楚,怎么 可能指導(dǎo)你做實(shí)戰(zhàn)規(guī)劃?建議大家去做一下職業(yè)生涯規(guī)劃。如果現(xiàn)在不解決,恐怕未來3年你都會(huì)白白浪費(fèi),更有可能因此而毀了你的一生!
    記住:有了規(guī)劃,不一定能夠成功;但沒有規(guī)劃,一定不會(huì)成功!

    二、能力固然重要,但并不能代表全部

      這里所說的能力,是指專業(yè)技能。步入職場(chǎng)你會(huì)發(fā)現(xiàn),能力其實(shí)并沒有你想像的那么重要,它并不是是步步高升的全部資本。你會(huì)發(fā)現(xiàn)一個(gè)能力不太強(qiáng)的人做了你的 上司,只因?yàn)樗谶@個(gè)公司干了10年——這說明“資歷”是你高升的本錢(這種現(xiàn)象,在國(guó)有企業(yè)和政府機(jī)構(gòu)里特別明顯,因此,在國(guó)企工作的朋友和公務(wù)員同志 要注意了);有時(shí)候你會(huì)發(fā)現(xiàn)能力并不怎么強(qiáng),但是與老板關(guān)系非常好的人通常能夠得到提拔——這說明“關(guān)系”也是本錢。在我原先工作的公司,有兩個(gè)特別明顯 的例子。

        一 個(gè)有著豐富工作經(jīng)驗(yàn)的男士,跳槽來到公司,能力也特別強(qiáng),但就是與同事處理不好關(guān)系,自認(rèn)為自己非常牛,喜歡主動(dòng)當(dāng)別人的“導(dǎo)師”,動(dòng)不動(dòng)就對(duì)別人的工作 指手畫腳,頂頭上司非常討厭他;而同時(shí)進(jìn)入公司的另外一位女士,能力不是特別強(qiáng),但是非常踏實(shí)、勤奮、與其他同事相處得也很好,能夠顧全大局。最后試用期 結(jié)束時(shí),那位女士得到了公司的認(rèn)可,而那位男士則收到了公司的辭退通知。

       在職場(chǎng)上,一定要對(duì)職場(chǎng)有清醒的認(rèn)識(shí),不要生活在夢(mèng)幻當(dāng)中,不要太理想化,不要標(biāo)新立異,不要恃才傲物,不要認(rèn)為有能力就可以走遍天下。專業(yè)技能固然重 要,但是職場(chǎng)發(fā)展看的是一個(gè)人的綜合素質(zhì)。綜合素質(zhì)高的人,才是職場(chǎng)發(fā)展的“潛力股”。這些綜合素質(zhì),包括溝通能力、人際關(guān)系能力、團(tuán)隊(duì)合作能力、管理能 力、工作態(tài)度及敬業(yè)精神等各種“軟實(shí)力”。

        對(duì)于有些朋友而言,可能會(huì)對(duì)這些“軟實(shí)力”不屑一顧。很多人會(huì)說,如果老板喜歡愛拍馬屁的人,難道我就要委屈自己,學(xué)著去拍馬屁?很不幸,我會(huì)告訴你,答 案是肯定的,你一定要學(xué)會(huì)拍馬屁,否則吃虧的是自己。但要聲明的是,我不是教你詐。中國(guó)有句成語,叫外圓內(nèi)方,用在人際交往上,就是說你與人相處要學(xué)會(huì)妥 善處理各種關(guān)系,但不可因此而失去了內(nèi)心的準(zhǔn)則,否則就變質(zhì)了。尤其在中國(guó)這種注重人情的社會(huì),這種人際交往的能力一定要好好練練。
    如果有時(shí)間,看一下《厚黑學(xué)》,了解一下社會(huì)現(xiàn)實(shí),切忌不可因此而迷失了自己。

    三、要手足夠的“亮劍”資本

        有的大學(xué)生經(jīng)常會(huì)跟我說,我畢業(yè)之后一定要找到一份月薪多少多少的工作,爭(zhēng)取做到什么什么職位。這時(shí)候我總是會(huì)耐心聽完他們的“遠(yuǎn)大藍(lán)圖”,然后問一句:“你憑什么達(dá)到你的目標(biāo)?你的資本是什么?”然后他就會(huì)啞口無言。

        我相信讀過這篇文章的人也會(huì)和這位大學(xué)生一樣,有著自己的偉大抱負(fù),但是大學(xué)四年下來,你有沒有想到,要實(shí)現(xiàn)這些目標(biāo),你的資本是什么?對(duì)于很多已經(jīng)身在職場(chǎng)的朋友而言,你晉升的資本又是什么?

       人生在發(fā)展過程中,很多時(shí)候都需要毫不猶豫地向別人展示自己的實(shí)力,要敢于展示,善于展示,這就是“亮劍”。因?yàn)檫@年頭,酒香也怕巷子深,是金子未必會(huì)發(fā) 光。相反,發(fā)光的倒是那些碎玻璃、爛瓶子。中國(guó)什么都缺,就是不缺人。茫茫人海,如果你一直都謙虛地默默無聞,那么,你就大錯(cuò)特錯(cuò)了。

       既然具備了“亮劍”的意識(shí),那么,下一步你就要考慮到亮什么劍:我到底拿什么資本給人家看?對(duì)于職場(chǎng)上的朋友而言,你“亮劍”的資本又在哪里?你的業(yè)績(jī)提 升了嗎?你的能力提升了嗎?你在一年內(nèi)看過多少本對(duì)自己的職業(yè)有益的書籍?你參加過幾次培訓(xùn)班來為自己充電?如果沒有,你又憑什么讓老板為你加工資?靠抱 怨?你肯定會(huì)提前被職場(chǎng)淘汰出局!


    四、慎重對(duì)待第一份工作

    這一觀點(diǎn),對(duì)于大學(xué)生來說,更有意義。
    現(xiàn)在整個(gè)社會(huì)、媒體、專家等等各種單位都一直在鼓吹“先就業(yè),再擇業(yè)”。這種論調(diào)不是今年就有,而是多好多年前就出現(xiàn)了,并且屢屢出現(xiàn),不絕于耳。相信當(dāng)年我們大學(xué)畢業(yè)時(shí)候,也會(huì)有很多人相信了這一點(diǎn)吧?管它呢,騎驢找馬,先找份工作掙錢填飽肚子再說!

    但是根據(jù)本人自身的經(jīng)驗(yàn)及職場(chǎng)發(fā)展的現(xiàn)實(shí)情況來看,本人絕對(duì)不贊同這種說法。相信現(xiàn)在在職場(chǎng)上發(fā)展不順的朋友,多半也和第一份工作有關(guān)系吧?俗話說,“男怕入錯(cuò)行,女怕嫁錯(cuò)郎。”第一步錯(cuò)了,以后就會(huì)經(jīng)常犯錯(cuò)。正所謂一步錯(cuò),步步錯(cuò)。

    為什么第一分工作這么重要呢?原因有三:

    1、先入為主的觀念影響。
    具體是指,先聽進(jìn)去的話或先獲得的印象往往在頭腦中占有主導(dǎo)地位,以后再遇到不同的意見時(shí),就不容易接受。舉個(gè)最簡(jiǎn)單的例子:在你的頭腦印象中, 諾基亞已經(jīng)是手機(jī)的代名詞。如果有一天諾基亞生產(chǎn)出了一種“諾基亞牌電腦”,你的心里是什么感覺?非常不對(duì)勁對(duì)不對(duì)?這主是先入為主現(xiàn)象。

    我原先有一個(gè)同事,曾經(jīng)在海爾工作過,她用的是海爾的手機(jī),功能也非常不錯(cuò),但她總是說要換一部手機(jī),我問她原因,她說,兜里裝著海爾的手機(jī),總 感覺像裝了一個(gè)大冰箱,非常不舒服。為什么?先入為主唄!不要小看這一現(xiàn)象,其實(shí)對(duì)人的潛意識(shí)影響非常大。海爾的手機(jī)和電腦等IT產(chǎn)品賣得不好,相當(dāng)一部 分是因?yàn)橄热霝橹鳎捍蠹移毡檎J(rèn)為海爾是家電的代名詞,而不是IT的代名詞。

    對(duì)于求職的大學(xué)生來說,這一觀念同樣會(huì)影響你以后的發(fā)展。你的第一份工作會(huì)對(duì)你以后的工作產(chǎn)生影響,你跳槽時(shí),你的新雇主也會(huì)通過你的第一份工作 經(jīng)驗(yàn)來判斷你是否能夠勝任這份工作。曾經(jīng)有一個(gè)大學(xué)生,畢業(yè)之后想做策劃,就找了一家廣告公司。剛進(jìn)公司時(shí),因?yàn)槲墓P不錯(cuò),被安排到了文案的位子上。而與 他同時(shí)進(jìn)去的另外一個(gè)人,恰恰因?yàn)槲墓P不好而被安排到了策劃的位子上。后來她屢次想轉(zhuǎn)行做策劃,但都是因?yàn)榍耙环莨ぷ鹘?jīng)驗(yàn)的影響,而始終沒有得到轉(zhuǎn)行的機(jī) 會(huì)。

    2、職場(chǎng)中不允許從頭再來。

    如果公司招聘的是有幾年工作經(jīng)驗(yàn)的老員工,一定要求是“相關(guān)經(jīng)驗(yàn)”!這一點(diǎn)至關(guān)重要!因?yàn)檫@樣的員工一般不需要培訓(xùn),可以直接上崗,會(huì)很快為公司 帶來最大的效益。如果是工作幾年以后再打算轉(zhuǎn)行的應(yīng)聘人員,一般不會(huì)受到重視,一是不會(huì)給公司直接帶來效益,二是培訓(xùn)起來也比較困難,思維已經(jīng)固化。與其 這樣,倒不如招一名應(yīng)屆生,白紙一張,可塑性強(qiáng),發(fā)展起來潛力更大。

    所以,一旦有了工作經(jīng)驗(yàn)之后,再想轉(zhuǎn)行從頭再來,難度相當(dāng)大。除非你認(rèn)識(shí)公司的高層領(lǐng)導(dǎo),可以得到一個(gè)機(jī)會(huì),否則,很難。

    3、時(shí)間成本不允許。

    步入職場(chǎng)的前三年,是一個(gè)人職業(yè)成長(zhǎng)的最重要、最關(guān)鍵的時(shí)期。如果你這時(shí)候還把工作的重點(diǎn)放在騎驢找馬式的轉(zhuǎn)行上,則會(huì)浪費(fèi)你最寶貴的青春,你的成長(zhǎng)也因此比其他人慢一步,而很多晉升的機(jī)會(huì)將因此而失去。
    所以,對(duì)待第一份工作,一定要慎重。找工作就像結(jié)婚,情愿不結(jié),絕不能亂結(jié)。
    如果現(xiàn)在你剛剛步入職場(chǎng)還不到3年,勸你趁早做一個(gè)職業(yè)規(guī)劃,亡羊補(bǔ)牢,尤未為晚。一旦你結(jié)婚了買房子了,你再想彌補(bǔ)都已經(jīng)晚了!

    五、要保持一種“空杯心態(tài)”

    給大家講一個(gè)故事。古時(shí)候有一個(gè)佛學(xué)造詣很深的人,聽說某個(gè)寺廟里有位德高望重的老禪師,便去拜訪。老禪師的徒弟接待他時(shí),他態(tài)度傲慢,心想:我 是佛學(xué)造詣很深的人,你算老幾?后來老禪師又十分恭敬地接待了他,并為他沏茶。可在倒水時(shí),明明杯子已經(jīng)滿了,老禪師還不停地倒。他不解地問:“大師,為 什么杯子已經(jīng)滿了,還要往里倒?”大師說:“是啊,既然已滿了,干嘛還要倒呢?”

    禪師的意思是,既然你已經(jīng)很有學(xué)問了,干嘛還要到我這里求教?這就是“空杯心態(tài)”的故事哲理。它最直接的含義就是一個(gè)裝滿水的杯子很難接納新東 西,要將心里的“杯子”倒空,將自己所重視、在乎的很多東西以及曾經(jīng)輝煌的過去從心態(tài)上徹底了結(jié)清空,只有將心倒空了,才會(huì)有外在的松手,才能擁有更大的 成功。這是每一個(gè)想在職場(chǎng)發(fā)展的人所必須擁有的最重要的心態(tài)。它告訴我們一個(gè)道理:做事的前提是先要有好心態(tài)。如果想學(xué)到更多的學(xué)問,先要把自己想象成 “一個(gè)空著的杯子”,而不是驕傲自滿。

    我見過很多的大學(xué)畢業(yè)生,剛進(jìn)入公司時(shí)常常處處吹牛,說自己在學(xué)校如何如何,本來可以找到更好的工作,迫不得已才來到了這里等等之類的話,好像這 家公司委屈了自己。在這里提醒一下那些即將步入職場(chǎng)的大學(xué)生:這種心態(tài)千萬要不得!不要認(rèn)為自己很牛。還是那句你不愛聽的話:中國(guó)什么都缺,就是不缺人! 話又說回來,你要是這么牛,為什么不像比爾?蓋茨、戴爾、喬布斯那樣,大學(xué)沒畢業(yè)就退學(xué)去創(chuàng)辦一家世界級(jí)的大企業(yè)?火車不是推的,牛皮不是吹的。
    你要是有本事,就用事實(shí)證明給人家看,而不是成天抱怨!

    對(duì)于身在職場(chǎng)的朋友而言,這一心態(tài)同樣重要。中國(guó)有一個(gè)詞,叫“虛懷若谷”。我們都知道,優(yōu)秀的人有極高的素養(yǎng),甚至是虛懷若谷,他們都有一個(gè)能 包容一切的胸懷,有了這樣的胸懷,你在職場(chǎng)上就會(huì)獲得別人的尊重,就會(huì)獲得更多的發(fā)展機(jī)會(huì)。類似的詞還有“大智若愚”“大巧若拙”等等,不多說,自己去體 會(huì)。

    六、要懂一點(diǎn)做人的常識(shí)
    職場(chǎng)就像一個(gè)大熔爐。在職場(chǎng)中,不僅僅是要掙一碗飯吃,更重要的是學(xué)會(huì)做人的道理。如果連最起碼的道理都不懂,你不僅得不到別人的尊重,更會(huì)失去更多的發(fā)展機(jī)會(huì)。因?yàn)椋谥袊?guó),人際關(guān)系也是生產(chǎn)力。中國(guó)有句古話:得道多助,失道寡助。

    我見過很多人,雖然已經(jīng)工作多年,但對(duì)于做人,卻連一點(diǎn)最基本的常識(shí)都不懂。做人的道理萬萬千,但其中最重要的,莫過于以下三條:

    1、嚴(yán)于律己,寬以待人。
    職場(chǎng)不同于生活。雖然職場(chǎng)上同事之間的相互關(guān)系表面上會(huì)比較好,但你總會(huì)感覺到缺點(diǎn)兒什么。非常明顯的一點(diǎn),就是大家都在相互利用,人與人之間難免會(huì)因?yàn)槔骊P(guān)系而鬧得不愉快。這時(shí)候,你若是錙銖必較,勢(shì)必引起同事之間的不愉快。
    在這種情況下,為避免糾紛,同時(shí)也為了贏得他人的尊重,你要學(xué)會(huì)大度一些,容忍一些。出現(xiàn)問題時(shí),首先想想是不是自己出了問題,而不是一出現(xiàn)問題就去找別人的責(zé)任(長(zhǎng)此以往,你的心態(tài)就會(huì)變得非常不平衡,因此也難以容人了)。
    嚴(yán)于律己,寬以待人,是十分必要的。長(zhǎng)期下去,你會(huì)積累很多的人脈,會(huì)得到大家的尊重;而你需要幫助時(shí),大家也樂意伸手。
    2、學(xué)會(huì)傾聽。
    無論什么時(shí)候,傾聽都顯示出一個(gè)人的職業(yè)素養(yǎng)。與別人交談時(shí),一定要記住等對(duì)方說完話時(shí)再發(fā)表意見,切不可中途插話或者打斷他人。通過這種方式,大家都樂意和你交往,同樣也會(huì)有助于樹立你個(gè)人在大家心目中的形象。
    3、誠(chéng)實(shí)守信。
    職業(yè)中固然處處充滿了相互利用、利益至上的現(xiàn)象,在這種情況下,誠(chéng)實(shí)守信仍然不失為一種傳統(tǒng)美德。誠(chéng)信同樣可以帶來效益。只要你誠(chéng)實(shí)守信,長(zhǎng)此以 往,大家都會(huì)對(duì)你形成一種良好的印象,都愿意和你交往。而那種兩面三刀、當(dāng)面一套背后一套的人,固然可以占一點(diǎn)小便宜,但要想成就大事業(yè),誠(chéng)實(shí)守信的基本 原則絕對(duì)不能丟。
    七、要學(xué)會(huì)遵守游戲規(guī)則
    我為什么在文章一開頭就提醒“憤青”或者“類憤青”們不要看這篇文章?
    因?yàn)樗麄兌喟胧欠攀幉涣b、不會(huì)遵守游戲規(guī)則的主兒!很多人都會(huì)感覺到,在職場(chǎng)上發(fā)展,不僅會(huì)受到各種約束,而且處處都充滿了不公平現(xiàn)象。比如上班 遲到老板會(huì)扣你工資,但你加班的時(shí)候卻從來沒有拿過加班工資。這是最常見的一種現(xiàn)象,其他不公平的現(xiàn)象也比比皆是,這里就不多就了,大家都有體會(huì)。
    在這個(gè)世界上,不要奢求公平。那只是一種烏托邦式的理想,從來都不存在于現(xiàn)實(shí)社會(huì)中。
    員工和老板之間的關(guān)系,就好像是一場(chǎng)游戲。是游戲就會(huì)有游戲規(guī)劃,否則,游戲就玩不下去。但是,游戲規(guī)則是誰制定的呢?當(dāng)然是老板,各種利益也偏向老板!身在職場(chǎng)的你,一開始看不慣這種現(xiàn)象,是很正常的,因?yàn)槟愠跎媛殘?chǎng),本質(zhì)上還是比較純潔的。
    但你一定要學(xué)會(huì)慢慢接受這種游戲規(guī)則。不要試圖改變這種規(guī)則,因?yàn)樵诶习迕媲埃銢]有太多的話語權(quán)。說得再難聽些,你只是一個(gè)打工的,混口飯吃,給你吃就不錯(cuò)了,還嫌飯涼?如果不想做,可以離開。還是那句話:中國(guó)什么都缺,就是不缺人。
    記住這句話:“如果你不是游戲規(guī)則的制定者,你的選擇只有兩條:要么屈從,要么離開!”
    八、機(jī)會(huì)只垂青有準(zhǔn)備的人
    無論你再怎么抱怨,再怎么不開心,飯還是要吃的,覺還是要睡的,工作還是要做的,未來的事情永遠(yuǎn)只屬于自己的。買房子也好,娶老婆也罷,壓力只有 自己扛,老板不會(huì)為你操任何心。與其有時(shí)間去抱怨,但不如踏踏實(shí)實(shí)靜下心來,好好提升自己的基本功,用事實(shí)證明自己的本事,讓別人對(duì)你刮目相看,萬不可因 為自己的書生意氣而自做一個(gè)自毀前程的“憤青”。
    當(dāng)然,你的準(zhǔn)備是多方面的,除了專業(yè)技能外,其他的輔助技能也是非常必要的,比如溝通能力、人際關(guān)系處理能力、管理能力等等。當(dāng)然,更重要的是 要為自己的未來做一個(gè)規(guī)劃,清楚地知道自己的目標(biāo)是什么,應(yīng)該怎么努力才能實(shí)現(xiàn)。適當(dāng)?shù)臅r(shí)候也要充充電,不要舍不得那半個(gè)月的工資,這也算是為自己的未來 進(jìn)行投資,有什么舍不得的呢?如果你現(xiàn)在不學(xué)會(huì)“舍”,以后將永遠(yuǎn)也“得”不到。
    有時(shí)候,你之所以發(fā)展得不好,不是因?yàn)闆]有機(jī)遇,而是因?yàn)槟銢]有準(zhǔn)備好,導(dǎo)致機(jī)遇與你擦肩而過。這個(gè)社會(huì)就是這樣,再怎么不合理,再怎么不公 平,但是發(fā)展機(jī)遇是時(shí)時(shí)都會(huì)面臨的,只看你有沒有準(zhǔn)備好。你要是真的練就了一身令人刮目相看的真本事,說不定明天就有人請(qǐng)你做某世界500強(qiáng)的總裁也不一 定呢。
    以上只是本人做HR多年的經(jīng)驗(yàn)積累,希望對(duì)大家有所幫助。作為過來人,我真誠(chéng)地希望在職的朋友們及即將就業(yè)的大學(xué)生們也能夠以一種“空杯心態(tài)” 看待這篇文章。有時(shí)候,過來人的經(jīng)驗(yàn)是非常有價(jià)值的,那是他們用時(shí)間和金錢換來的血汗教訓(xùn)。有的人偏偏不信這一套,認(rèn)為只有自己親自體會(huì)過,才能知道是什 么滋味,別人的經(jīng)驗(yàn)只是別人的,和自己無關(guān)。如果你這樣想,那我也沒有辦法。我也要有一種寬容的心態(tài),冷靜看待那些“不見棺材不掉淚,不撞南墻不回頭”的 “人才”,不是嗎?參加一下培訓(xùn),適當(dāng)充一下電,為未來做更好、更完善的準(zhǔn)備,才是積極的人生態(tài)度。記住:抱怨永遠(yuǎn)解決不了問題!)

    posted @ 2010-04-16 12:24 kangxm 閱讀(507) | 評(píng)論 (0)編輯 收藏

           假設(shè)我們現(xiàn)在有user和org兩張表:
    1、user用戶表 字段包含:id、name、orgId 其中orgId標(biāo)示該用戶所屬的組織
    2、org組織表   字段包含:id、name
    兩表之間的關(guān)系很簡(jiǎn)單,一個(gè)組織下會(huì)擁有多個(gè)用戶,一個(gè)用戶屬于某個(gè)組織。

             在解析之前先普及一下數(shù)據(jù)庫(kù)空值(null)的概念:
    有很多時(shí)候我們都能碰到某表中某字段值為空的情況,空值不等同于字符串中的空格、空串
    也不等同于數(shù)字類型的0,所以,一般我們用IS NULL 關(guān)鍵字來檢索有空值字段的記錄。而不是用!=、<>這些判斷符。

            接下來,我們給示例庫(kù)表中做上一些測(cè)試數(shù)據(jù),如下圖:
                                 

            有了這些數(shù)據(jù),咱們就可以進(jìn)入正題啦:
    一、左連接、右連接
            A Left join(左連接)優(yōu)先解出左表中所有的記錄,包含右表中沒有匹配到得記錄。
            A Right join(右連接)優(yōu)先解出右表中所有的記錄,包含左表中沒有匹配到得記錄。

    左右連接是相互對(duì)應(yīng)的,所以在這里一并解釋。
    羅嗦一句如何區(qū)分左表和右表:
            在JOIN的左邊出現(xiàn)的表叫左表,在JOIN的右邊出現(xiàn)的表叫右表
    具體體現(xiàn)在SQL語句上即:(以左連接為例)
            左連接語句:SELECT user.name,org.name FROM user LEFT JOIN org ON  user.orgId = org.id
            右鏈接語句:SELECT user.name,org.name FROM user RIGHT JOIN org ON  user.orgId = org.id
    顯而易見,該SQL中,user為左表、org為右表
    下面我們來看看這兩個(gè)語句分別執(zhí)行后的效果:
                                       
            為了更好的看出左右連接的效果,我們?cè)賮砜纯磧?nèi)連接查詢出來的效果
            內(nèi)連接:SELECT user.name,org.name FROM user JOIN org ON  user.orgId = org.id
    內(nèi)連接語句執(zhí)行后的效果:
                                                        
            很明顯:
    內(nèi)連接與左連接相比,檢索結(jié)果集中漏掉了user表的user3數(shù)據(jù)
    內(nèi)連接與右連接相比,檢索結(jié)果集中漏掉了org表的org4數(shù)據(jù)

    posted @ 2010-03-14 18:25 kangxm 閱讀(674) | 評(píng)論 (0)編輯 收藏

           
            進(jìn)入10年了,先回顧一下吧:

            08年注定是變化的一年,該死的金融危機(jī)上來就搞倒了我待了3年多的公司,到現(xiàn)在還灰常的懷念以前公司的工作氛圍和那些一起奮斗的日子。那時(shí)候做項(xiàng)目,真的是把項(xiàng)目當(dāng)自己的孩子來養(yǎng),很有感情;懷念ing.

            09年注定是壓抑的一年,生活壓抑,工作壓抑,很多壓抑。。。壓抑到實(shí)在不想糾纏。

            10年注定是拼搏的一年,勾畫了美麗的圖,也承諾了很多事,必須做了。

            10年的那些事在這里留個(gè)記錄吧,年終的時(shí)候再來看;

            1、ZZ的那個(gè)網(wǎng)站,我已經(jīng)答應(yīng)下來了,不管多難也要搞出來;
            2、WX的那些活,希望我能做的比去年更好,也希望他那邊能再多接一些新活;
            3、公司的那攤事,走一步看一步吧,畢竟09年失望太多,希望能找到合適的契機(jī)和方向;
            4、考駕照、買車,今年必須實(shí)現(xiàn)了,要不5年計(jì)劃沒法劃上句號(hào)了;


            
    posted @ 2010-02-24 10:15 kangxm 閱讀(467) | 評(píng)論 (2)編輯 收藏

    早上讀RSS,看到不錯(cuò)的東西,抄錄下來


    1、? 堅(jiān)持不懈的向團(tuán)隊(duì)傳達(dá)目標(biāo)

    2、? 崇拜質(zhì)量

    3、? 每天都和項(xiàng)目成員聊上兩句

    4、? 敢于說不,慎于說不

    5、? 幫助項(xiàng)目成員解決困難,而不是幫他干活

    6、? 敏感,不將風(fēng)險(xiǎn)留到最后才面對(duì)

    7、? 懂得歡慶

    個(gè)人覺得總結(jié)的蠻好,簡(jiǎn)單易懂,回想我工作這幾年:
    不管作項(xiàng)目組成員,還是作Team Manager;
    不管項(xiàng)目成功,還是失敗;
    以上都比較有感觸

    posted @ 2009-05-12 11:24 kangxm 閱讀(440) | 評(píng)論 (0)編輯 收藏

    不小心把快速啟動(dòng)里面的“顯示桌面”圖標(biāo)搞沒了,懶得折騰,所以一直用WIN+D,還是覺得不太習(xí)慣。總覺得少了點(diǎn)什么......

    后來還是把“顯示桌面”找回來了!記錄一下

    以前用過一個(gè)自己編寫“顯示桌面.scf”文件的辦法干過,具體操作如下:

    記事本輸入:[Shell]Command=2IconFile=explorer.exe,3[Taskbar]Command=ToggleDesktop另存為"顯示桌面.scf",文件類型為所有文件。然后將文件拖到快速啟動(dòng)欄即可;


    不過有點(diǎn)麻煩,這次?google了一下,找到一個(gè)更簡(jiǎn)單的辦法;

    “start”-->“Run”-->輸入“regsvr32 /n /i:u shell32”

    顯示桌面.jpg

    這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)你的快速啟動(dòng)欄里面就有了“顯示桌面”
    posted @ 2009-04-21 10:29 kangxm 閱讀(554) | 評(píng)論 (0)編輯 收藏

         摘要: 轉(zhuǎn):唐駿:我的創(chuàng)業(yè)第一步
    尋找新的發(fā)展空間
      我的人生其實(shí)經(jīng)歷了很多次失敗。考大學(xué)是一次失敗,留學(xué)日本讀研究生又是一次失敗。我和板倉(cāng)老師發(fā)生沖突后私逃美國(guó)的行為,無論如何都是不妥當(dāng)?shù)摹5珡牧硪粋€(gè)角度講,從日本到美國(guó)的人生環(huán)境轉(zhuǎn)變,是我的主動(dòng)選擇,也為我未來的職業(yè)生涯創(chuàng)造了新的契機(jī)。

      閱讀全文
    posted @ 2008-12-18 11:33 kangxm 閱讀(496) | 評(píng)論 (0)編輯 收藏

    例子在:\jasperreports-3.1.2-project\jasperreports-3.1.2\demo\samples

    用ant工具運(yùn)行就可以看到效果

    1. alterdesign

    該例子演示了報(bào)表編譯后,在報(bào)表展現(xiàn)的時(shí)候如何動(dòng)態(tài)的控制其中的元素
    比如讓某一個(gè)矩形變色或其他

    2. antcompile

    演示如何讓 ant 來編譯
    3. chart

    演示了如何在報(bào)表中添加圖像,JasperReport是用Scriptlet的方式
    往報(bào)表中添加圖像,而Scriptlet是調(diào)用也是開源的jfreechart的Api來
    生成圖形,去jfreechart看一下,該工具能的圖形生成能力也很強(qiáng)
    4. datasource

    演示了如何在報(bào)表中使用各種數(shù)據(jù)源,能夠使用beanarray
    beancollection,也可以用自定義的數(shù)據(jù)源,只要繼承了JRDataSource的
    兩個(gè)接口,這個(gè)能給用戶提供非常大的靈活性,報(bào)表的數(shù)據(jù)不用局限于一
    條Sql語句,也可以使用存儲(chǔ)過程,對(duì)生成報(bào)表中的數(shù)據(jù)也可以排序,二
    次檢索,等等
    5. fonts

    各種字體的演示
    6. horizontal

    演示了水平分欄的報(bào)表,演示報(bào)表中分了三欄,其中還用到了
    textFieldExpression,就像if語句的效果來選擇輸出的內(nèi)容
    7. hyperlink

    演示了各種樣式的鏈接
    8. images

    演示了如何在報(bào)表中加入圖像以及圖像的顯示方式
    9. jasper

    演示了分組分欄的報(bào)表,演示中用了2次group
    10. jcharts

    演示了調(diào)用另一個(gè)開源的API jcharts來往報(bào)表中加入分析圖形,原理同
    上chart,如果jfreechart都還不能滿足你分析圖形的要求,那到j(luò)charts
    里找找看吧,說不定有
    11. landscape

    演示橫向的報(bào)表
    12. nopagebreak

    演示比如在IE中不分頁(yè)的方式打印出報(bào)表的內(nèi)容,通過這個(gè)演示也可以
    了解報(bào)表輸出如何配置參數(shù)
    13. noreport

    演示了如何直接通過java程序生成JasperPrint對(duì)象來輸出
    14. noxmldesign

    演示了如何直接通過java程序生成JasperDesign對(duì)象來動(dòng)態(tài)的生成報(bào)
    表,根據(jù)這個(gè)例子,用戶可以作出自定義選列的報(bào)表,當(dāng)然比較麻煩,
    而且肯定自己要補(bǔ)充他的API庫(kù)
    (JasperReport真是強(qiáng)大啊,呵呵)
    15. pdfencrypt

    演示了pdf的輸出方式,可以給pdf文件加密碼,其實(shí)就是pdf輸出方式的
    參數(shù)配置,具體有那些參數(shù)可配置,去看看API吧
    16. printservice

    演示了如何直接打印報(bào)表
    17. query

    演示了如何讓查詢的sql動(dòng)態(tài)起來,比如你可以通過一個(gè)Jsp頁(yè)面?zhèn)?br />報(bào)表的sql的where條件,order條件,甚至整個(gè)sql語句
    18. rotation

    演示了文字縱向顯示的報(bào)表
    19. scriptlet

    演示了如何繼承JRDefaultScriptlet,并加入自己的處理語句,這個(gè)功能
    可是很強(qiáng)大的哦,看看這些接口
    beforeReportInit() afterReportInit() beforePageInit()
    afterPageInit() beforeColumnInit() afterColumnInit()
    beforeGroupInit(String groupName)
    afterGroupInit(String groupName)
    看看這些名字就知道你能完成那些功能,比如顯示一列數(shù)據(jù)后,馬上跟
    上該列數(shù)據(jù)的分析圖形,當(dāng)然你也可以加上自己的方法并在報(bào)表中調(diào)用
    20. shapes

    演示了JasperReport中自帶的圖形,及能配置的參數(shù)
    當(dāng)然你也能繼承或者覆寫JasperReport中的Api生成你要的圖形,
    21. stretch

    演示了如何處理報(bào)表中數(shù)據(jù)拉伸以及帶來周圍的線及框的拉伸,
    你能了解到雖然黑框式表格不是JasperReport中缺省的展現(xiàn)方式,
    但在JasperReport中不難實(shí)現(xiàn)
    22. subreport

    演示了子報(bào)表,還告訴你一個(gè)報(bào)表中可以有n個(gè)子報(bào)表,子報(bào)表中還可以
    嵌套子報(bào)表
    23. tableofcontents

    演示了如何生成一個(gè)有目錄的,復(fù)雜的報(bào)表
    24. unicode

    演示了各種 字符編碼
    25. webapp

    演示了如何把報(bào)表放到一個(gè)JavaWeb項(xiàng)目中,可以用Jsp Servlet
    applet,筆者做了一個(gè)有參數(shù)頁(yè)面,可以選擇html pdf applet
    輸出方式的報(bào)表,有興趣的 我可以在后面放上代碼
    posted @ 2008-12-09 16:59 kangxm 閱讀(1093) | 評(píng)論 (0)編輯 收藏

         摘要: SiteMesh:一個(gè)優(yōu)于Apache Tiles的Web頁(yè)面布局、裝飾框架  閱讀全文
    posted @ 2007-09-28 15:34 kangxm 閱讀(9946) | 評(píng)論 (3)編輯 收藏

         摘要: 最近經(jīng)常看一些朋友寫的源代碼,總是感覺編碼規(guī)范問題還沒有成為大家的關(guān)注點(diǎn),導(dǎo)致代碼的通用可讀性相對(duì)比較差;

    所以在此嘮叨幾句編碼規(guī)范(以struts2+spring2+hibernate3架構(gòu)的項(xiàng)目為例),大家各取所需,歡迎拍磚!
      閱讀全文
    posted @ 2007-09-27 13:31 kangxm 閱讀(3639) | 評(píng)論 (10)編輯 收藏

         摘要: 教你十招優(yōu)化WinXp系統(tǒng)盤  閱讀全文
    posted @ 2007-09-21 16:13 kangxm 閱讀(994) | 評(píng)論 (2)編輯 收藏

    ??? 水木周平:“中國(guó)99%的白領(lǐng)以及他們的家庭即將面臨破產(chǎn)。而且是必然破產(chǎn)!無路可逃!這件事可能是發(fā)生在未來2-10年。你可以盡量去懷疑這個(gè)數(shù)字。但它必然發(fā)生,絕非危言聳聽。”
    ???
    ??? 就如我預(yù)言中國(guó)國(guó)營(yíng)企業(yè)職工必然失業(yè)一樣,在當(dāng)時(shí)來說沒人信。但確實(shí)會(huì)發(fā)生。因?yàn)樵谥袊?guó)這樣一個(gè)發(fā)展中國(guó)家,其必然以不斷的以通貨膨脹和改革手段來?yè)Q取經(jīng) 濟(jì)的發(fā)展。而每一次改革所帶來的陣痛都是由百姓來承擔(dān)的。無論是上山下鄉(xiāng)時(shí)迷茫的知青們還是改革開放帶來的大量國(guó)企紛紛倒閉時(shí)大量下崗職工。如果他們能有 一定的前瞻性的話,那么我想他們也許會(huì)為自己留一點(diǎn)后路。但是由于過分相信文件以及過分相信生活不會(huì)突變,所以才導(dǎo)致了他們的人生悲劇。有人說政府不會(huì)坐 視不理白領(lǐng)破產(chǎn),其實(shí)政府當(dāng)然不愿意。可有的事情……怎么說呢。想想當(dāng)年的下崗職工吧。引起了那么大的社會(huì)震動(dòng)。又能怎樣呢?今天的白領(lǐng)明天破產(chǎn)的時(shí)候也 那樣而已。

    ??? 而改革開放20多年來,中國(guó)的經(jīng)濟(jì)發(fā)展快速騰飛。但舊的體制并沒有完全更改。各種重要行業(yè)依然施行的是政府壟斷機(jī)制在運(yùn)轉(zhuǎn)。如:銀行,金融,冶金,能源, 信息,運(yùn)輸,醫(yī)療,教育,土地。在改革開放初期我國(guó)不可能對(duì)這些東西進(jìn)行全方面的改革開放。但到了今天,壟斷經(jīng)營(yíng)所帶來的矛盾日益突出。首當(dāng)其沖的就是房 地產(chǎn)。由于我國(guó)的法制不健全,尤其是金融以及改革領(lǐng)域里出現(xiàn)了各種失誤導(dǎo)致房地產(chǎn)節(jié)節(jié)攀升。隨著房地產(chǎn)的增加以及外來人口向大城市集中。所以城市新民工也 就是所謂的“白領(lǐng)”收入表面上也在提升,以北京為例3000-15000元人民幣的月薪處處可見。但這一部分收入主要用于支付租房或還貸。

    ??? 為了深入地了解為什么99%的白領(lǐng)家庭會(huì)破產(chǎn),我們就必須先了解房?jī)r(jià)為什么會(huì)這么高?高在哪里?資金是運(yùn)轉(zhuǎn)的?(這里的白領(lǐng)指買房或者準(zhǔn)備買房族。)以及發(fā)展趨勢(shì)帶來的相關(guān)效應(yīng)。本文會(huì)分三個(gè)階段向你闡述。
    ???
    ??? 1:導(dǎo)致房?jī)r(jià)爆漲的第一個(gè)因素:銀行競(jìng)爭(zhēng)下的貸款開放。--水木周平

    ????其實(shí)房?jī)r(jià)的爆漲的因素主要是因?yàn)榘傩赵谔嬲赶碌腻e(cuò)誤買單。比如以前一個(gè)開發(fā)商通過某銀行貸款了1000萬開發(fā)了一個(gè)房子。如果還不起那他就 倒霉了,因?yàn)樗械你y行都是一個(gè)體系,你欠了錢沒還就再也沒有翻身的機(jī)會(huì)。但是中國(guó)在銀行改革的基礎(chǔ)上開了一條口子,為了各銀行之間的競(jìng)爭(zhēng)所以把工行,農(nóng) 行,建設(shè)銀行等等全部獨(dú)立運(yùn)營(yíng)。這本來是好事。但問題是這些銀行都不是私有的,而是國(guó)家的。我們不難想象。當(dāng)一個(gè)開發(fā)商從工行貸款1000萬的后果。他只 需要用500萬來開發(fā)房子,然后把售價(jià)提升,再把這個(gè)開發(fā)中的房子按他的售價(jià)標(biāo)準(zhǔn)抵押從農(nóng)行再貸款2000萬,然后再用這2000萬中的1000萬開發(fā)一 套售價(jià)更高的房子來找建設(shè)銀行抵押貸款4000萬。就是這樣一個(gè)滾雪球的瘋狂貸款模式。房子賣不賣得出去不重要,關(guān)鍵是房?jī)r(jià)要高,不得降價(jià)。反正銀行的錢 不是私人的,所以稍微疏通一下行長(zhǎng)加之又有“合法的”高零售價(jià)的樓盤做抵押所以自然就越來越好從銀行貸款。

    ??? 那么這樣造成的結(jié)果就是,房子價(jià)格只攀不跌!因?yàn)椴荒艿∫坏y行貸出去的款就再也回不來了。這可是政府的銀行,政府的錢!所以為了堵住這個(gè)資金黑洞一些 被收買的專家、媒介便開始瘋狂制造輿論用各種輿論手段威逼利誘人買房子。比如土地資源嚴(yán)重緊張,再不買房將來就只能住在郊區(qū)呀之類的。導(dǎo)致人們不得不去買 房。其實(shí)住不了市中心這種情況這根本不可能發(fā)生,城市居民是一個(gè)新老替換的過程,要上班的住城里,老人退休喜歡住郊區(qū)。只要人口不爆炸就不會(huì)出現(xiàn)上班族住 不了市中心的情況。雖然這些輿論造成了很多人買房子,但是僅僅是這樣,房?jī)r(jià)還沒有高到現(xiàn)在這樣的離譜。緊接著政府又犯了第二個(gè)錯(cuò)誤。


    ??? 2:導(dǎo)致房?jī)r(jià)爆漲的第二個(gè)錯(cuò)誤:中國(guó)特色的按揭。--水木周平

    ????按揭本來是一種西方很流行的制度,也很合適。但這個(gè)制度一旦運(yùn)用到中國(guó)就有點(diǎn)問題了。因?yàn)閺拇蟮捏w制上來說。所有銀行都是國(guó)家的,而不是私人的。所以貸款這個(gè)關(guān)口就不可能控制得住。只要文件上說得過去,人們就能貸到款。

    ????為了早日緩解第一個(gè)錯(cuò)誤所帶來的資金黑洞。政府開始實(shí)行個(gè)人按揭制度來售房。還經(jīng)常舉什么美國(guó)來太太和中國(guó)老太太的例子來誘惑人們?nèi)グ唇摇4_實(shí)有 人按揭了,而且是瘋狂的按揭。只要和銀行有點(diǎn)“路子”的人。他們先按揭一套80萬的房子,自己出10萬首付然后再?gòu)你y行貸出70萬。之后再把這個(gè)房子抬高 價(jià)格到180萬出售。這個(gè)時(shí)候他們的親戚或者老爸老媽再去買下,也用按揭的方式自己出首付30萬再?gòu)你y行貸出150萬。然后就不管了。他們不還貸款怎么 辦?銀行愛收不收。反正根據(jù)合同我還不上錢你可以收走房子,我們兩不相欠。

    ????所以轉(zhuǎn)了一圈,抬高了幾倍價(jià)格的房子又回到了政府回到了銀行手里。這就解釋了為什么很多新樓盤剛開始修就被“炒房團(tuán)”買走了。他們炒的不是賭房子會(huì)升值。而是拿了房子去收拾銀行。

    ????銀行拿到這個(gè)房子怎么辦?更不敢降價(jià)了。只好再加點(diǎn)價(jià)接著賣。所以普通老百姓現(xiàn)在根本別想買到真正合理價(jià)格的房子!即使你直接從開發(fā)商手里買來的 房子都說不定已經(jīng)轉(zhuǎn)了好幾次手又回到銀行以及開發(fā)商手里的了。說句不好聽的現(xiàn)在8000/平的房子里,有只有2500才是房?jī)r(jià),有5500都是以為決策錯(cuò) 誤帶來的資金黑洞!也就是說你正在替人任勞任怨的擦屁股。


    ??? 3:第三個(gè)問題:白領(lǐng)家庭何時(shí)破產(chǎn)??--水木周平

    ????那么我們研究了房子價(jià)格為什么會(huì)漲,再來研究一下中國(guó)城市所謂的白領(lǐng)家庭破產(chǎn)的必然性。

    ????首先國(guó)外白領(lǐng)收入確實(shí)是高,但是高得有價(jià)值。而中國(guó)所謂的白領(lǐng)則普遍素質(zhì)較差。中國(guó)企業(yè)內(nèi)耗嚴(yán)重。人人相輕,人人頑固。所以難怪外資企業(yè)一進(jìn)入中 國(guó)大陸市場(chǎng)就開始驚呼:“在中國(guó)辦企業(yè)招不到人!”對(duì)此我也深有體會(huì)。那有人會(huì)說:“既然現(xiàn)在的白領(lǐng)不值這個(gè)身價(jià),那水木周平你說說為什么他們還能拿到這 樣的薪水呢?”

    ????其實(shí),這由于房地產(chǎn)的火爆造成的一個(gè)量子效應(yīng)。銀行損失的資金大量的經(jīng)過少數(shù)人之手流向了市場(chǎng)。這些人開始在中國(guó)的其他領(lǐng)域瘋狂投資。因?yàn)樗麄冏? 己也知道房地產(chǎn)就快要崩盤了。他們這樣一輪又一輪的投資熱潮正在快速消化這些資金,他們投資互聯(lián)網(wǎng),投資高新技術(shù),投資娛樂,投資很多很多。但起碼付出的 工資要夠員工付房子月租或者月供吧。所以正是因?yàn)榉績(jī)r(jià)的高漲所以造就了中國(guó)城市人口工資水平的相對(duì)提升。不相信你自己算算你所在的城市白領(lǐng)階級(jí)平均收入一 旦交完每月的房錢,手上還能剩多少錢?我想這個(gè)問題就不用我再羅嗦了吧。大家心理有數(shù)。所以我可以說一旦房地產(chǎn)崩盤緊接著崩潰的就是你的工資。

    ????有很多很多我認(rèn)識(shí)的白領(lǐng)們都購(gòu)了房。他們的算盤很簡(jiǎn)單:“兩口子除開各種稅收保險(xiǎn)每月純收入還余12000。交3000房錢算什么?我還能再買一 套呢!”是的不算什么。但因?yàn)榉孔淤F所以什么東西都貴。吃的貴,交通貴,學(xué)費(fèi)貴,醫(yī)療費(fèi)用更貴!!!所以交了房錢你再除開生活費(fèi)用就基本上一分錢存不下 來,就算存點(diǎn)也趕不上正常的通貨膨脹率。問題是如果能一直保持這個(gè)現(xiàn)狀的話,理論上說應(yīng)該沒事。你這二十年賺來的錢正好可以彌補(bǔ)政府的兩個(gè)錯(cuò)誤帶來的虧 損。

    ????但問題也出在這里。隨著WTO5年緩沖期的結(jié)束,具體時(shí)間應(yīng)該是在2006年的12月31日。大量外資通訊,銀行,醫(yī)療,保險(xiǎn)等等公司都會(huì)陸續(xù)進(jìn) 入中國(guó)。到時(shí)候沒有人能阻止你把錢存入花旗,存入?yún)R豐。請(qǐng)問一下到那個(gè)時(shí)候誰愿意把錢存在呆帳壞帳如此之多的中國(guó)國(guó)有銀行呢?即使政府再怎么采取措施也可 能擠兌,所以到時(shí)候會(huì)發(fā)生什么現(xiàn)在還很難說。但有一點(diǎn)可以肯定的是到時(shí)中國(guó)國(guó)有這些銀行的壓力將變得非常巨大。貸款就會(huì)難上加上,因?yàn)殂y行根本無錢可貸! 同時(shí)大量具備高素質(zhì)人材的外資企業(yè)進(jìn)入中國(guó)必定帶來市場(chǎng)的強(qiáng)烈沖擊和大量現(xiàn)有企業(yè)的倒閉以及白領(lǐng)失業(yè)。也就是說。一旦外資企業(yè)加入競(jìng)爭(zhēng),中國(guó)現(xiàn)有的99% 的白領(lǐng)都將面臨大環(huán)境下的就業(yè)壓力!

    ????而且外資銀行一旦積累了資金開始投資房地產(chǎn),那么由于它們是正常的操作流程所以造出來的房子就會(huì)便宜,其必然拉動(dòng)全國(guó)房地產(chǎn)大幅下跌。如我剛才所 說,房?jī)r(jià)一跌,緊跟著跌的就是你所在的企業(yè)的工資收入!可你之前買的房子還貸價(jià)格并不會(huì)降低或者減少,所以你將無力支付高昂的貸款。那么你的的房子會(huì)被銀 行收走,你的存款會(huì)被直接凍結(jié)。所以未來中國(guó)城市中的白領(lǐng)們最大的可能是和幾十年前的中國(guó)國(guó)有企業(yè)職工一樣。辛辛苦苦二十年,到頭來竹籃打水一場(chǎng)空!

    ??? 如何避免破產(chǎn)?--水木周平

    ????看到這里您應(yīng)該明白,不要買房是一個(gè)避免破產(chǎn)的好辦法。不過我還要提醒你,為了托住樓市不跌,他們還有個(gè)辦法,那就是鼓吹老百姓不買房就不是個(gè)爺 們兒!您別說,這還真有點(diǎn)效果。現(xiàn)在的人一張口第一句就是:“你有房嗎。”似乎你沒房就是個(gè)太監(jiān)一樣。我實(shí)在是氣得連罵人的力氣都沒有了。還有人在百度水 木周平這個(gè)帖吧里發(fā)帖說:“不買房子你住哪里?”我就奇怪了,住和買有必然聯(lián)系嗎?在中國(guó)一個(gè)土地都不屬于你的房子賣給你和租給你有什么區(qū)別?(笑)。更 別提土匪一樣的物業(yè)和把人不當(dāng)人的強(qiáng)制拆遷!這不純粹是“皇帝的新裝”嗎?不過既然WTO中已經(jīng)說明出版業(yè)和傳媒業(yè)中國(guó)還是不對(duì)外開放的。那么輿論救市就 會(huì)成為政府和開發(fā)商手中的最后一張王牌。所以我們?cè)诿鎸?duì)很多花言巧語的時(shí)候還是自己多動(dòng)動(dòng)腦子。以后我們聽到的房產(chǎn)的鬼話會(huì)越來越多,越來越令人發(fā)指!比 如最近就有磚家在鼓吹房?jī)r(jià)不貴時(shí)都說:“什么即使年薪5萬,兩口子也是一年10萬,5年就50萬。所以房?jī)r(jià)當(dāng)然不貴。”我奇怪的是居然有人點(diǎn)頭稱是?也許 對(duì)于這種或者此類已經(jīng)進(jìn)化到了不吃不喝不病不穿不動(dòng)且爹娘早已死絕不用贍養(yǎng)的磚家來說也許還真是那么回事。所以大家注意提高警惕。

    ??? 結(jié)束語:--水木周平

    ????已經(jīng)買房或者準(zhǔn)備買房的白領(lǐng)一族必定隨著房?jī)r(jià)的崩潰而崩潰,那會(huì)是一個(gè)緩慢發(fā)生的過程。短則兩年,長(zhǎng)則十年。但這是不可逆轉(zhuǎn)的趨勢(shì)。所以中國(guó) 99%城市白領(lǐng)一族已經(jīng)面臨破產(chǎn)一說絕非危言聳聽!今天你往銀行交的每一分房錢都是替政府替炒房者補(bǔ)洞,只有一小部分是真正的房錢。明天大環(huán)境一變,你沒 有那么多資金來補(bǔ)洞的時(shí)候就會(huì)被市場(chǎng)和銀行一腳踢回老家,換一批新人來接著補(bǔ)。不信?走著瞧唄!--PS:為什么我說99%這個(gè)數(shù),是因?yàn)楦鶕?jù)我的了解 99%的人一旦月薪過5000就開始買房,甚至3000,4000都買。小倆口什么都不明白這樣買下去人生一定會(huì)很慘。我只是替他們感到憂傷。當(dāng)然如果你 是那1%的智者,多勸救他們吧。獨(dú)樂樂不如眾樂樂。

    ??? 本文轉(zhuǎn)載自:http://www.tkk7.com/fanyingjie/archive/2007/09/05/142964.html
    posted @ 2007-09-14 10:47 kangxm 閱讀(608) | 評(píng)論 (3)編輯 收藏

    主站蜘蛛池模板: 亚洲日韩精品射精日| 久久伊人亚洲AV无码网站| 亚洲视频在线免费看| 免费无码作爱视频| 久久综合图区亚洲综合图区| 一级做a毛片免费视频| 亚洲一区二区精品视频| a毛片成人免费全部播放| 亚洲一本大道无码av天堂| 黄视频在线观看免费| 亚洲国产精品无码专区在线观看| 国产偷伦视频免费观看| 亚洲福利视频导航| 亚洲一区二区三区免费观看| 亚洲国产精品免费在线观看| 国产精品69白浆在线观看免费| 亚洲精品中文字幕无乱码麻豆| 久久精品网站免费观看| 国产亚洲一卡2卡3卡4卡新区 | 亚洲女同成av人片在线观看| 国产中文字幕在线免费观看| 亚洲AV日韩精品久久久久久| 亚洲人成在线免费观看| 国产精品无码亚洲精品2021| 久久久久亚洲AV综合波多野结衣| 成人国产精品免费视频| 久久青青草原亚洲av无码app| 性做久久久久久久免费看| jizzjizz亚洲日本少妇| 亚洲精品无码久久千人斩| 亚洲视频在线免费看| 亚洲爆乳精品无码一区二区| 亚洲熟妇av一区二区三区漫画| 1000部无遮挡拍拍拍免费视频观看| 中文字幕亚洲综合久久综合| 亚洲人成无码www久久久| 最近2019中文字幕免费大全5| 亚洲AV成人一区二区三区观看| 国产亚洲真人做受在线观看| 成人毛片免费视频| 三级黄色在线免费观看|