1.拆分字符串
          遇到特殊字符,比如:對‘$’符號,就應該使用‘\\$’,后總結可以加個方括號如 "[.]"。

          2.遍歷HASHMAP
          Iterator itr = map.keySet().itrator();
          while(itr.hasNext())
          {
          ??? Object temp1 = itr.next();
          ??? Object temp2 = tab.get(temp1);
          }

          3.日歷操作
          Calendar c = Canlendar.getInstance();
          c.get(c.YEAR);//獲取年份,其他同理
          c.add(c.MONTH,-1);//上個月的日期
          ?
          4.隨機數
          Random random = new Random();
          int ran = random.nextInt(100);
          注意:范圍[0,100)

          5.讀取配置文件
          對于ini 文件或者 properties文件,其實只要內容是 ds=dfjh或者 kd: ksadkf這種,就可以用
          Properties pro = new Properties();
          //pro.load (Main.class.getResourceAsStream("/test.properties"));或者
          //pro.load (new FileInputStream ("test.properties"));
          pro.getProperty ("test")

          6.遍歷vector
          兩種方式:
          //??????? for (Enumeration e = v.elements ();e.hasMoreElements ();)
          //??????? {
          //???????????? System.out.println (e.nextElement ().toString ());
          //??????? }?? ?
          ?????? Iterator item = v.iterator ();
          ?????? while(item.hasNext ())
          ?????? {
          ?????????? System.out.println (item.next ().toString ());
          ?????? }

          7.JAVA在WINDOWS下調用其他程序
          try
          {
          ??? Process p = Runtime.getRuntime().exec("mspaint");
          ??? p.waitFor();
          }catch ...

          8.獲取鍵盤輸入
          BufferedReader input = new BufferedReader(new InputStream(System.in));
          String s = input.readLine();

          9.子類無參構造會隱式super(),若父類沒有聲明無參構造函數,而且有含參數構造函數,程序編譯不通過。

          10.命令提示符下,編譯java文件 建議使用"javac -d . xxx.java" 能自動生成程序中的包。而運行只需要"java packname.mainclass".

          11.使用 "pack200 x.gz y.jar"則將jar文件壓縮成gz文件,對class文件壓縮率極高,解壓縮使用"unpack200 x.gz y.jar".

          12.代碼中'@'標記符號使用,例如@ Override 在方法前面,表示此方法是覆蓋父類方法,那么在編譯時會自動檢查父類中是否有該方法。

          13.周期性事件:
          private java.util.Timer timer;
          timer.schedule(new java.util.TimerTask()
          {
          ?? public void run()
          ?? {
          ?????? //……要做的事
          ?? }
          },0,5*60*1000);
          timer本身是多線程同步的,不需要自己啟動線程。

          14.介紹下JDK5.0 新特性

          1.枚舉類型:
          public class EnumDemo
          {
          ?enum MyColors
          ?{
          ?? red,
          ?? black,
          ?? blue,
          ?? green,
          ?? yellow
          ?};
          ?public static void main(String args[])
          ?{
          ??? MyColors color = MyColors.red;
          ??? //for 也是JDK 5中新特性
          ??? for(MyColors option : color.values())
          ??? {
          ? ?? ?System.out.println(option);
          ??? }
          ?? switch(color)
          ?? {
          ?? ?case red:
          ?? ??? ? System.out.println("best color is "+color.red);
          ?? ??? ? break;
          ?? ? default:
          ?? ? ??? ?System.out.println("What");
          ?? ? ??? ?break;
          ?? }
          ?}
          }
          幾點注意:1. enum不能寫成局部變量。
          ?? ?? 2. switch()參數為枚舉常量。
          ?? ?? 3. case 后red實際是 color.red(由于其機制強制省略color)而其他地方是不能直接用red的.

          15.正則表達式:(檢驗郵箱)
          ?? String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$" ;
          ?? Pattern regex = Pattern.compile (check) ;
          ?? Matcher matcher = regex.matcher (Emailname) ;
          ?? boolean isMatched = matcher.matches () ;

          16.序列化
          ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
          ObjectOutputStream out = new ObjectOutputStream(byteOut);
          out.writeObject(combo);
          ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
          ObjectInputStream in =new ObjectInputStream(byteIn);
          JComboBox comb2 = (JComboBox)in.readObject();

          17.數據庫操作
          Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
          Connection m_objConnection = DriverManager.getConnection (jdbc:odbc:smstransmitDB;uid=sa;pwd=leslie);
          /*
          Statement objStatement = m_objConnection.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
          */
          String m_objDelSql = "delete from " + m_objTable +
          " where " + m_objFldTagId + "=?";
          PreparedStatement objStatement = m_objConnection.prepareStatement (m_objDelSql);
          objStatement.setInt (1, objSms.id);
          objStatement.execute ();
          /*executeQuery()返回ResultSet結果*/


          18.JAVA 截取小數位數
          float a = 1234.5678f;
          java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
          String a=df.format(a);
          System.out.println(a); //1234.56
          //寫#的是有值就寫值,沒值就不寫
          //寫0的是有值就寫值,沒值就寫0


          19.大小寫互換

          public static void main (String[] args)
          {?
          ?????????Scanner sc = new Scanner (System.in);?
          ?????????sc.useDelimiter ("\n");?
          ?????????String temp = sc.next ();?
          ?????????chang_two(temp);?
          ?????????sc.close ();
          }

          //大小寫 互換
          public staic void chang_two (String text)
          {?
          ??????char tem [] = text.toCharArray ();?
          ??????for (int i = 0; i <tem.length;i++)?
          ??????{?
          ????????????if(tem[i]>=97&&tem[i]<=122)?
          ????????????{?
          ??????????????????tem[i]=(char)(tem[i]-32);

          ??????????????}else if (tem[i]>=65&&tem[i]<=90)?
          ????????????{?
          ??????????????????tem[i]=(char)(tem[i]+32);?
          ????????????}?
          ??????}

          ???System.out.println(new String (tem));
          }
          20.java中格式化輸出數字

          在實際工作中,常常需要設定數字的輸出格式,如以百分比的形式輸出,或者設定小數位數等,現稍微總結如下。
          主要使用的類:java.text.DecimalFormat
          1。實例化對象,可以用如下兩種方法:
          DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
          DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
          因為DecimalFormat繼承自NumberFormat。
          2。設定小數位數
          系統默認小數位數為3,如:
          DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
          System.out.println(df.format(12.3456789));
          輸出:12.346
          現在可以通過如下方法把小數為設為兩位:
          df.setMaximumFractionDigits(2);
          System.out.println(df.format(12.3456789));
          則輸出為:12.35
          3。將數字轉化為百分比輸出,有如下兩種方法:
          (1)
          df.applyPattern("##.##%");
          System.out.println(df.format(12.3456789));
          System.out.println(df.format(1));
          System.out.println(df.format(0.015));
          輸出分別為:1234.57% 100% 1.5%
          (2)
          df.setMaximumFractionDigits(2);
          System.out.println(df.format(12.3456789*100)+"%");
          System.out.println(df.format(1*100)+"%");
          System.out.println(df.format(0.015*100)+"%");
          輸出分別為:
          1,234.57% 100% 1.5%
          4。設置分組大小
          DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
          df1.setGroupingSize(2);
          System.out.println(df1.format(123456789));
          輸出:1,23,45,67,89
          還可以通過df1.setGroupingUsed(false);來禁用分組設置,如:
          DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
          df1.setGroupingSize(2);
          df1.setGroupingUsed(false);
          System.out.println(df1.format(123456789));
          輸出:123456789
          5。設置小數為必須為2位
          DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance();
          df2.applyPattern("0.00");
          System.out.println(df2.format(1.2));
          輸出:1.20

          21.遍歷VECTOR

          for(int i = 0; i<v.size ();i++)
          {
          System.out.println (v.elementAt (i));
          }

          posted on 2007-02-07 10:39 -274°C 閱讀(12005) 評論(15)  編輯  收藏 所屬分類: JAVA


          FeedBack:
          # re: JAVA 一句話技巧(不斷補充中)
          2007-03-09 14:11 | BeanSoft
          呵呵, 也不能說這叫鉆牛角尖吧, 但是讀取配置文件之類的的確是經常會用到的功能代碼, 還有解析 XML.  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-03-11 06:39 | Joe
          8.獲取鍵盤輸入 就不要用了, JDK5.0后就有Scanner 了  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-03-23 16:51 | wangsoft
          遍歷map是不是應該這樣好一點?
          for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
          Map.Entry element = (Map.Entry) iter.next();
          Object strKey = element.getKey();
          Object strValue = element.getValue();
          }

          或者
          Iterator iter = map.entrySet().iterator();
          while (iter.hasNext()) {
          Map.Entry element = (Map.Entry) iter.next();
          Object strKey = element.getKey();
          Object strValue = element.getValue();
          }
            回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-04-24 14:11 | JAVA-HE
          JAVA中日期格式化 分類:java 基礎時間格式化
          一、JAVA中日期的獲取、設置和格式化
          1)JAVA提供了3個日期類:Date、Calendar和DateFormat。
          Date()方法主要用于創建日期對象并獲取日期;
          Calendar()方法主要用于獲取和設置日期;
          DateFormat()方法主要用于創建日期格式化器,然后再由格式化器將日期轉換為各種日期格式串輸出。
          2)JAVA語言規定的基準日期為格林尼治標準時間1970.1.1.00:00:00,當前日期是由基準日期開始所經歷的毫秒數轉換出來的。
          3)DateFomat類在java.text包中,Date和Calendar類在java.util包中。
          4)實例如下:
          import java.util.*;
          import java.text.*;

          public class DisplayDate {
          public static void main(String[] args){
          Date today;
          Calendar now;
          DateFormat f1,f2;
          String s1,s2;

          System.out.println("\n顯示Date類的相關用法");

          today = new Date();
          System.out.println("new Date()= \t"+ today);

          System.out.println("\n用DateFormat類顯示各種日期格式");

          //顯示各種日期格式
          f1 = DateFormat.getDateInstance();
          s1 = f1.format(today);
          System.out.println("DateFormat.getDateInstance()= \t"+s1);

          f1 = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA)= \t"+ s1);

          f1 = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA)= \t"+ s1);

          f1 = DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINA)= \t" + s1);

          System.out.println("\n用DateFormat類顯示各種時間格式");

          //顯示各種時間格式
          f1 = DateFormat.getTimeInstance();
          s1 = f1.format(today);
          System.out.println("DateFormat.getTimeInstance()= \t"+s1);

          f1 = DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA)= \t"+s1);

          f1 = DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA)= \t"+s1);

          f1 = DateFormat.getTimeInstance(DateFormat.SHORT,Locale.CHINA);
          s1 = f1.format(today);
          System.out.println("DateFormat.getTimeInstance(DateFormat.SHORT,Locale.CHINA)= \t"+s1);

          System.out.println("\n顯示Calendar的相關時間用法");

          now = Calendar.getInstance();
          today = now.getTime();
          System.out.println("Calendar.getInstance().getTime()= \t"+ today.toString());

          }
          }

          程序運行結果顯示如下:

          顯示Date類的相關用法
          new Date()= Fri May 02 13:29:32 CST 2003

          用DateFormat類顯示各種日期格式
          DateFormat.getDateInstance()= 2003-5-2
          DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA)= 2003年5月2日
          DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA)= 2003-5-2
          DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINA)= 03-5-2

          用DateFormat類顯示各種時間格式
          DateFormat.getTimeInstance()= 13:29:32
          DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA)= 下午01時29分32秒
          DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA)= 13:29:32
          DateFormat.getTimeInstance(DateFormat.SHORT,Locale.CHINA)= 下午1:29

          顯示Calendar的相關時間用法
          Calendar.getInstance().getTime()= Fri May 02 13:29:33 CST 2003

            回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-04-24 14:34 | JAVA-HE
          java中關于時間日期操作的常用函數
          1.計算某一月份的最大天數
          Calendar time=Calendar.getInstance();
          time.clear();
          time.set(Calendar.YEAR,year);
          time.set(Calendar.MONTH,i-1);//注意,Calendar對象默認一月為0
          int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數
          注:在使用set方法之前,必須先clear一下,否則很多信息會繼承自系統當前時間
          2.Calendar和Date的轉化
          (1) Calendar轉化為Date
          Calendar cal=Calendar.getInstance();
          Date date=cal.getTime();
          (2) Date轉化為Calendar
          Date date=new Date();
          Calendar cal=Calendar.getInstance();
          cal.setTime(date);
          3.格式化輸出日期時間
          Date date=new Date();
          SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
          System.out.println(df.format(date));
          4.計算一年中的第幾星期
          (1)計算某一天是一年中的第幾星期
          Calendar cal=Calendar.getInstance();
          cal.set(Calendar.YEAR, 2006);
          cal.set(Calendar.MONTH, 8);
          cal.set(Calendar.DAY_OF_MONTH, 3);
          int weekno=cal.get(Calendar.WEEK_OF_YEAR);
          (2)計算一年中的第幾星期是幾號
          SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
          Calendar cal=Calendar.getInstance();
          cal.set(Calendar.YEAR, 2006);
          cal.set(Calendar.WEEK_OF_YEAR, 1);
          cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
          System.out.println(df.format(cal.getTime()));
          輸出:
          2006-01-02
          5.add()和roll()的用法
          (1)add()方法
          SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
          Calendar cal=Calendar.getInstance();
          cal.set(Calendar.YEAR, 2006);
          cal.set(Calendar.MONTH, 8);
          cal.set(Calendar.DAY_OF_MONTH, 3);
          cal.add(Calendar.DATE, -4);
          Date date=cal.getTime();
          System.out.println(df.format(date));
          cal.add(Calendar.DATE, 4);
          date=cal.getTime();
          System.out.println(df.format(date));
          輸出:
          2006-08-30
          2006-09-03
          (2)roll方法
          cal.set(Calendar.YEAR, 2006);
          cal.set(Calendar.MONTH, 8);
          cal.set(Calendar.DAY_OF_MONTH, 3);
          cal.roll(Calendar.DATE, -4);
          date=cal.getTime();
          System.out.println(df.format(date));
          cal.roll(Calendar.DATE, 4);
          date=cal.getTime();
          System.out.println(df.format(date));
          輸出:
          2006-09-29
          2006-09-03
          可見,roll()方法在本月內循環,一般使用add()方法;
          6.計算兩個任意時間中間的間隔天數
          (1)傳進Calendar對象

          /** *//**計算兩個時間之間相隔天數
          * @param startday 開始時間
          * @param endday 結束時間
          * @return
          */
          public int getIntervalDays(Calendar startday,Calendar endday)...{
          //確保startday在endday之前
          if(startday.after(endday))...{
          Calendar cal=startday;
          startday=endday;
          endday=cal;
          }
          //分別得到兩個時間的毫秒數
          long sl=startday.getTimeInMillis();
          long el=endday.getTimeInMillis();

          long ei=el-sl;
          //根據毫秒數計算間隔天數
          return (int)(ei/(1000*60*60*24));
          }

          (2)傳進Date對象
          /** *//**計算兩個時間之間相隔天數
          * @param startday 開始時間
          * @param endday 結束時間
          * @return
          */
          public int getIntervalDays(Date startday,Date endday)...{
          //確保startday在endday之前
          if(startday.after(endday))...{
          Date cal=startday;
          startday=endday;
          endday=cal;
          }
          //分別得到兩個時間的毫秒數
          long sl=startday.getTime();
          long el=endday.getTime();

          long ei=el-sl;
          //根據毫秒數計算間隔天數
          return (int)(ei/(1000*60*60*24));
          }同理,可以用相同的方法計算出任意兩個時間相隔的小時數,分鐘數,秒鐘數等
          注:以上方法是完全按時間計算,有時并不能令人滿意,如:
          startday="2006-10-11 20:00:00"
          endday="2006-10-12 8:00:00"
          計算結果為0,但是我們也許相讓計算結果變為1,此時可以用如下方法實現:
          在傳參之前,先設定endday的時間,如:
          endday.set(Calendar.HOUR_OF_DAY, 23);
          endday.set(Calendar.MINUTE, 59);
          endday.set(Calendar.SECOND, 59);
          endday.set(Calendar.MILLISECOND, 59);
          這樣再傳進去startday,endday,則結果就如我們所愿了。不過,如果嫌以上方法麻煩,可以參考以下方法:
          (3)改進精確計算相隔天數的方法
          public int getDaysBetween (Calendar d1, Calendar d2) ...{
          if (d1.after(d2)) ...{ // swap dates so that d1 is start and d2 is end
          java.util.Calendar swap = d1;
          d1 = d2;
          d2 = swap;
          }
          int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
          int y2 = d2.get(Calendar.YEAR);
          if (d1.get(Calendar.YEAR) != y2) ...{
          d1 = (Calendar) d1.clone();
          do ...{
          days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到當年的實際天數
          d1.add(Calendar.YEAR, 1);
          } while (d1.get(Calendar.YEAR) != y2);
          }
          return days;
          }  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-05-03 03:15 | 我們走在JAVA的光明大道上
          很好的收集資料啊!  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-05-07 22:54 | 菜鳥
          我來了這幾次了 能告訴我背景音樂叫什么嗎?? 謝謝了。。。。。
          你們寫得很好 繼續加油補充~~!  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-05-08 00:52 | αβγ
          心愿 四個女生唱的。曾經我在it blog也用作背景音樂。  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-05-08 21:21 | 菜鳥
          哦 謝謝 呵呵 想起了以前N多 童年 少年 青少年 初中 高中 大學 。。。

          大家共勉~!!!!努力JAVA!  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-05-12 23:39 | L2
          very good!
            回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)
          2007-07-13 14:56 | 歡歡~
          樓主 謝謝了~好人,好文,好思想……  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-08-10 13:21 | -274°C
          @歡歡

          客氣了。  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-09-18 23:50 | -274°C
          @Joe

          雖然Scanner可以不用進行顯示的聲明異常,但是遇到非法的用戶輸入時程序就直接退出去了。這在實際的用戶程序中是不行的,也就是說容錯處理不好!所以建議還是用BufferedReader  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-09-18 23:51 | -274°C
          好想前面寫掉了東西。。BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));  回復  更多評論
            
          # re: JAVA 一句話技巧(不斷補充中)[未登錄]
          2007-09-23 23:16 | -274°C
          class A{
          int a = 10;
          void a(){
          }
          }
          class B{
          int b = 20;
          void b(){
          }
          }
          public class Ex_instanceOf extends A{

          public static void main(String[] args) {
          A b = new A();
          System.out.println(b instanceof A);
          }
          }
          以上代碼會輸出true,但是將代碼System.out.println(b instanceof A);
          改為System.out.println(b instanceof B);并不會輸出false,而是不能通過編譯請問怎么樣才能達到輸出false的效果呢!!!

          答:
          一般instanceof用在未知類型(比如Object)之間的比較。由于b顯式定義為class A,而A與B之間顯式沒有繼承關系,所以,編譯器會報錯。你把A b= new A();改成Object b = new A();就行了  回復  更多評論
            

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916109
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 平顺县| 阜新| 营口市| 重庆市| 肃北| 波密县| 彰武县| 平阴县| 石柱| 会昌县| 三亚市| 华宁县| 元氏县| 嘉善县| 含山县| 获嘉县| 博罗县| 丘北县| 通道| 井研县| 潼关县| 台东市| 屏东市| 伊吾县| 从江县| 东方市| 新密市| 上虞市| 枞阳县| 广河县| 色达县| 沈阳市| 聂荣县| 灵山县| 九台市| 六盘水市| 克什克腾旗| 扶绥县| 任丘市| 安阳市| 钦州市|