JAVA—咖啡館

          ——?dú)g迎訪問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

          05 2009 檔案

               摘要: Java NIO非堵塞應(yīng)用通常適用用在I/O讀寫等方面,我們知道,系統(tǒng)運(yùn)行的性能瓶頸通常在I/O讀寫,包括對(duì)端口和文件的操作上,過(guò)去,在打開(kāi)一個(gè)I/O通道后,read()將一直等待在端口一邊讀取字節(jié)內(nèi)容,如果沒(méi)有內(nèi)容進(jìn)來(lái),read()也是傻傻的等,這會(huì)影響我們程序繼續(xù)做其他事情,那么改進(jìn)做法就是開(kāi)設(shè)線程,讓線程去等待,但是這樣做也是相當(dāng)耗費(fèi)資源的。

          Java NIO非堵塞技術(shù)實(shí)際是采取Reactor模式,或者說(shuō)是Observer模式為我們監(jiān)察I/O端口,如果有內(nèi)容進(jìn)來(lái),會(huì)自動(dòng)通知我們,這樣,我們就不必開(kāi)啟多個(gè)線程死等,從外界看,實(shí)現(xiàn)了流暢的I/O讀寫,不堵塞了。
            閱讀全文
          posted @ 2009-05-31 15:17 rogerfan 閱讀(689) | 評(píng)論 (0)  編輯

               摘要: //根據(jù)不同的難度產(chǎn)生隨機(jī)字母和數(shù)字
          for(int i=0; readomNumStart.length()<4; i++) {
          if(difficult == 1) {

          //產(chǎn)生隨機(jī)的0-9的數(shù)字
          a = String.valueOf((int)(Math.random() * 10)) ;
          }   閱讀全文
          posted @ 2009-05-14 11:40 rogerfan 閱讀(459) | 評(píng)論 (1)  編輯

               摘要: 歸納一些網(wǎng)上取JAVA路徑的方法:

          注明:如果從ANT啟動(dòng)程序,this.getClass().getResource("")取出來(lái)的比較怪,直接用JAVA命令行調(diào)試就可成功。
           
          得到classpath和當(dāng)前類的絕對(duì)路徑的一些方法

          獲得CLASSPATH之外路徑的方法:
          URL base = this.getClass().getResource(""); //先獲得本類的所在位置,如/home/popeye/testjava/build/classes/net/
          String path = new File(base.getFile(), "../../../"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name   閱讀全文
          posted @ 2009-05-14 11:39 rogerfan 閱讀(409) | 評(píng)論 (0)  編輯

               摘要: 主要使用的是java.util.Robot類來(lái)捕獲屏幕,可以實(shí)現(xiàn)對(duì)屏幕一個(gè)矩形區(qū)域的捕獲,通過(guò)這個(gè)類,我們也可以實(shí)現(xiàn)一個(gè)遠(yuǎn)程桌面控制的程序。


          package com.qiu.util;
          import java.io.*;
          import java.net.*;
          import javax.swing.*;
          import java.awt.*;
          import java.awt.event.*;
          import java.awt.image.*;
          import javax.imageio.*;
          import java.io.*;
          /** *//**@Author Qiu_BaiChao
          *一個(gè)簡(jiǎn)單的屏幕抓圖
            閱讀全文
          posted @ 2009-05-14 11:37 rogerfan 閱讀(303) | 評(píng)論 (0)  編輯

               摘要: 由于本人的一個(gè)低級(jí)失誤,造成結(jié)論錯(cuò)誤,for才是最終的勝者。foreach和iterator是類似的機(jī)制,性能都不是很好。以下代碼已經(jīng)重新調(diào)整,再次道歉。

          以前一直有人說(shuō),foreach的性能有損失,不建議使用,今天特意測(cè)試了一下,結(jié)果是 for方式的性能最好,foreach次之,而Iterator循環(huán)性能最差..

          1 完整的測(cè)試代碼
          view plaincopy to clipboardprint?
          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;
          /**
          * 測(cè)試JAVA各種循環(huán)的性能。

          * for 方式的性能最好,foreach次之,而Iterator循環(huán)性能最差。
            閱讀全文
          posted @ 2009-05-14 11:34 rogerfan 閱讀(362) | 評(píng)論 (0)  編輯

               摘要: Collection接口
            Collection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)。一些 Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的類, Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。
            所有實(shí)現(xiàn)Collection接口的類都必須提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造函數(shù):無(wú)參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)空的Collection,有一個(gè) Collection參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)新的 Collection,這個(gè)新的Collection與傳入的Collection有相同的元素。后一個(gè)構(gòu)造函數(shù)允許用戶復(fù)制一個(gè)Collection。
            如何遍歷Collection中的每一個(gè)元素?不論Collection的實(shí)際類型如何,它都支持一個(gè)iterator()的方法,該方法返回一個(gè)迭代子,使用該迭代子即可逐一訪問(wèn)Collection中每一個(gè)元素。典型的用法如下:
              Iterat  閱讀全文
          posted @ 2009-05-14 09:58 rogerfan 閱讀(881) | 評(píng)論 (0)  編輯

               摘要: 編輯
          作用域 功能 快捷鍵
          文本編輯器 查找上一個(gè) Ctrl+Shift+K
          文本編輯器 查找下一個(gè) Ctrl+K
          全局 恢復(fù)上一個(gè)選擇 Alt+Shift+↓
          全局 快速修正 Ctrl1+1
          全局 內(nèi)容輔助 Alt+/
          全局 上下文信息 Alt+?Alt+Shift+?Ctrl+Shift+Space
          Java編輯器 顯示工具提示描述 F2
          Java編輯器 選擇封裝元素 Alt+Shift+↑
          Java編輯器 選擇上一個(gè)元素 Alt+Shift+←
          Java編輯器 選擇下一個(gè)元素 Alt+Shift+→
          文本編輯器 增量查找 Ctrl+J
          文本編輯器 增量逆向查找 Ctrl+Shift+J
          全局 重做 Ctrl+Y   閱讀全文
          posted @ 2009-05-13 11:47 rogerfan 閱讀(386) | 評(píng)論 (0)  編輯

               摘要: 1.java.util.Calendar
          Calendar 類是一個(gè)抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來(lái)表示,它是距歷元(即格林威治標(biāo)準(zhǔn)時(shí)間 1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量。

          例:

          1Calendar cal = Calendar.getInstance();//使用默認(rèn)時(shí)區(qū)和語(yǔ)言環(huán)境獲得一個(gè)日歷。
          2cal.add(Calendar.DAY_OF_MONTH, -1);//取當(dāng)前日期的前一天.
          3
          4cal.add(Calendar.DAY_OF_MONTH, +1);//取當(dāng)前日期的后一天.
          5
          6//通過(guò)格式化輸出日期
          7java.text.SimpleDateFormat format = new java.text.S  閱讀全文
          posted @ 2009-05-13 11:32 rogerfan 閱讀(314) | 評(píng)論 (0)  編輯

          主站蜘蛛池模板: 郑州市| 新乐市| 汨罗市| 山东省| 府谷县| 遵化市| 盱眙县| 南京市| 莱州市| 新竹县| 南平市| 普定县| 虎林市| 马龙县| 高密市| 万源市| 衡水市| 长兴县| 富平县| 吴堡县| 亚东县| 临洮县| 定兴县| 葫芦岛市| 韶山市| 乡城县| 寻乌县| 民权县| 鹤岗市| 宣化县| 东源县| 咸宁市| 辽源市| 盐津县| 大丰市| 色达县| 顺平县| 鹰潭市| 和硕县| 贺州市| 神木县|