隨筆 - 24  文章 - 0  trackbacks - 0
          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          public class Test {

           /**
            * @param args
            * @throws java.text.ParseException
            */

           public static void main(String[] args) throws java.text.ParseException {
            // Date dateNow = new Date();
            //
            // String dateNowStr = dateFormat.format(dateNow);
            // System.out.println(dateNowStr);

            final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
              "星期六" };
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");

            Calendar calendar = Calendar.getInstance();
            Date date = new Date();
            String datarq = dateFormat.format(date); //日期
            
            calendar.setTime(date);
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            if (dayOfWeek < 0)
             dayOfWeek = 0;

            System.out.println(datarq + "  " + dayNames[dayOfWeek]);

           }

          }

          posted @ 2011-12-22 15:07 馮占科 閱讀(146) | 評論 (0)編輯 收藏

          開始–運行–cmd 進入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之后在任務管理器中找到這個PID所對應的程序如果任務管理器中沒有PID這一項,可以在任務管理器中選”查看”-”選擇列”

          經常,我們在啟動應用的時候發現系統需要的端口被別的程序占用,如何知道誰占有了我們需要的端口,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用。

          我們需要確定誰占用了我們的80端口

          在windows命令行窗口下執行:
          C:\>netstat -aon|findstr “80″
           TCP    0.0.0.0:19780             0.0.0.0:0                    LISTENING         2044
           TCP    10.72.224.5:2558       96.17.109.8:80          ESTABLISHED     2044
           TCP    10.72.224.5:2757       60.210.176.209:80    TIME_WAIT         0
           TCP    10.72.224.5:3956       125.46.1.234:80        ESTABLISHED     2044
           TCP    10.72.224.5:3959       125.46.1.234:80        ESTABLISHED     2044
           UDP    0.0.0.0:2280               *:*                                                       3700

          看到了嗎,端口被進程號為2044的進程占用,繼續執行下面命令:
          C:\>tasklist|findstr “2044″
          avp.exe                     2044 Console                 0     37,680 K
          很清楚吧,avp 卡巴監聽80端口,調整卡巴網絡監聽設置。
          當然,如果你的80端口被其他程序占用,kill掉或者調整端口。


          posted @ 2011-01-17 16:20 馮占科 閱讀(486) | 評論 (0)編輯 收藏

          package l6;
          /**
           * 實現棧的數據結構
           */
          import java.util.LinkedList;

          public class MyStack {
           LinkedList mylist = new LinkedList();

           public void push(Object o) {
            mylist.addFirst(o);
           }

           public Object pop() {
            return mylist.removeFirst();
           }

           public Object peek() {
            return mylist.getFirst();
           }

           public boolean empty() {
            return mylist.isEmpty();
           }
           
           
           public static void main(String[] args) {
            MyStack  ms = new MyStack();
            ms.push("1");
            ms.push("2");
            ms.push("3");
            ms.push("4");
            
            System.out.println(ms.pop());
            System.out.println(ms.pop());
            System.out.println(ms.peek());
            System.out.println(ms.empty());
           }
          }




          package l6;

          import java.util.LinkedList;

          /**
           * 實現隊列的數據結構
           *
           */
          public class MyQueue {

           private LinkedList ll = new LinkedList();

           public void put(Object o) {
            ll.addLast(o);
           }

           public Object get() {
            return ll.removeFirst();
           }

           public Object peek() {
            return ll.getFirst();
           }

           public boolean empty() {
            return ll.isEmpty();
           }

           /**
            * @param args
            */
           public static void main(String[] args) {

            MyQueue mq = new MyQueue();
            mq.put("1");
            mq.put("2");
            mq.put("3");
            mq.put("4");
            mq.put("5");
            mq.put("6");

            System.out.println(mq.get());
            System.out.println(mq.get());
            System.out.println(mq.get());
            System.out.println(mq.get());
            System.out.println(mq.peek());
            System.out.println(mq.empty());
           }

          }

          posted @ 2011-01-13 22:48 馮占科 閱讀(249) | 評論 (0)編輯 收藏

          //學生類
          package l6;

          import java.util.Comparator;

          public class Student implements Comparable {

           public int num;
           public String name;
           

           public Student(int num, String name) {
            this.num = num;
            this.name = name;
           }

           public int compareTo(Object o) {
            Student s = (Student) o;
            if (num > s.num) {
             return 1;
            } else if (num == s.num) {
             return 0;
            } else {
             return -1;
            }
           }

           public String toString() {
            return "num:" + num + " name:" + name;
           }

           public int compare(Object o1, Object o2) {
            // TODO Auto-generated method stub
            return 0;
           }
          }

          //學生比較器

          package l6;

          import java.util.Comparator;

          public  class StudentComparator implements Comparator {

           public int compare(Object o1, Object o2) {
            Student s1 = (Student) o1;
            Student s2 = (Student) o2;
            if (s1.num > s2.num) {
             return 1;
            } else if (s1.num < s2.num) {
             return -1;
            } else {
             return s1.name.compareTo(s2.name);
            }
           }
          }


          //測試類
          package l6;

          import java.util.ArrayList;
          import java.util.Collection;
          import java.util.Collections;
          import java.util.Iterator;

          public class ArrayListTest {

           /**
            * @param args
            */

           public static void main(String[] args) {

            ArrayList<Student> slist = new ArrayList<Student>();
            Student s1 = new Student(1, "z1");
            slist.add(s1);
            Student s3 = new Student(2, "z3");
            slist.add(s3);
            Student s2 = new Student(2, "z2");
            slist.add(s2);
            Student s5 = new Student(2, "z5");
            slist.add(s5);
            Student s4 = new Student(4, "z4");
            slist.add(s4);

             // Collections.sort(slist); //未使用比較器
              Collections.sort(slist, new StudentComparator());//未使用比較器
            PaintE(slist);

           }

           public static void PaintE(Collection c) {
            Iterator it = c.iterator();
            while(it.hasNext()){
             System.out.println(it.next().toString());
            }
            

           }

          }


           

           

          posted @ 2011-01-12 23:01 馮占科 閱讀(216) | 評論 (0)編輯 收藏


          //All the divs on the page:
          $$('div');

          //All the divs and paragraphs
          //note: this returns an array with all the divs first,then all the paragraphs:
          $$('div', 'p');

          //All the divs with the css class 'myClass':
          $$('div.myClass')

          /All the paragraphs that are inside divs:
          $$('div p');

          //All the bold tags in paragraphs with Class 'foo' in divs with class 'myClass':
          $$('div.myClass p.foo b');

          posted @ 2011-01-11 22:50 馮占科 閱讀(215) | 評論 (0)編輯 收藏


          <1>hasClass 應用
          Examples:
          HTML
          <div id="myElement" class="testClass"></div>
          JavaScript
          $('myElement').hasClass('testClass'); // returns true

          <2>addClass 應用

          Examples:
          HTML
          <div id="myElement" class="testClass"></div>
          JavaScript
          $('myElement').addClass('newClass');

          <3>removeClass 應用
          Examples:
          HTML
          <div id="myElement" class="testClass newClass"></div>
          JavaScript
          $('myElement').removeClass('newClass');
          Resulting HTML
          <div id="myElement" class="testClass"></div>

          <4>toggleClass 應用
          Adds or removes the passed in class name to the Element, depending on whether or not it's already present.
          Examples:
          HTML
          <div id="myElement" class="myClass"></div>
          JavaScript
          $('myElement').toggleClass('myClass');
          Resulting HTML
          <div id="myElement" class=""></div>

          JavaScript
          $('myElement').toggleClass('myClass');
          Resulting HTML
          <div id="myElement" class="myClass"></div>

           

          posted @ 2011-01-11 22:21 馮占科 閱讀(1303) | 評論 (0)編輯 收藏
                  打印集合類的對象,將調用所有元素的toString()方法,如果是自己寫的類,則要實現toString()方法;
          posted @ 2011-01-05 22:40 馮占科 閱讀(137) | 評論 (0)編輯 收藏
           

          Java關鍵字finalstatic使用總結

          Java關鍵字final有“這是無法改變的”或者“終態的”含義,它可以修飾非抽象類、非抽象類成員方法和變量。你可能出于兩種理解而需要阻止改變:設計或效率。

          final類不能被繼承,沒有子類,final類中的方法默認是final的。

          final方法不能被子類的方法覆蓋,但可以被繼承。

          final成員變量表示常量,只能被賦值一次,賦值后值不再改變。

          final不能用于修飾構造方法。

          注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認是final類型的。

          1final

           final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,默認都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,并且確信這個類不會載被擴展,那么就設計為final類。

          2final方法

          如果一個類不允許其子類覆蓋某個方法,則可以把這個方法聲明為final方法。

          使用final方法的原因有二:

          第一、把方法鎖定,防止任何繼承類修改它的意義和實現。

          第二、高效。編譯器在遇到調用final方法時候會轉入內嵌機制,大大提高執行效率。

          3final變量(常量)

           用final修飾的成員變量表示常量,值一旦給定就無法改變!

           final修飾的變量有三種:靜態變量、實例變量和局部變量,分別表示三種類型的常量。

          4final參數

          當函數參數為final類型時,你可以讀取使用該參數,但是無法改變該參數的值。

          二、static

           static表示“全局”或者“靜態”的意思,用來修飾成員變量和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全局變量的概念。

           static修飾的成員變量和成員方法獨立于該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享。只要這個類被加載,Java虛擬機就能根據類名在運行時數據區的方法區內定找到他們。因此,static對象可以在它的任何對象創建之前訪問,無需引用任何對象。

           public修飾的static成員變量和成員方法本質是全局變量和全局方法,當聲明它類的對象市,不生成static變量的副本,而是類的所有實例共享同一個static變量。

           static變量前可以有private修飾,表示這個變量可以在類的靜態代碼塊中,或者類的其他靜態成員方法中使用(當然也可以在非靜態成員方法中使用--廢話),但是不能在其他類中通過類名來直接引用,這一點很重要。實際上你需要搞明白,private是訪問權限限定,static表示不要實例化就可以使用,這樣就容易理解多了。static前面加上其它訪問權限關鍵字的效果也以此類推。

           static修飾的成員變量和成員方法習慣上稱為靜態變量和靜態方法,可以直接通過類名來訪問,訪問語法為:

          類名.靜態方法名(參數列表...)

          類名.靜態變量名

           用static修飾的代碼塊表示靜態代碼塊,當Java虛擬機(JVM)加載類時,就會執行該代碼塊(用處非常大,呵呵)。

          1static變量

           按照是否靜態的對類成員變量進行分類可分兩種:一種是被static修飾的變量,叫靜態變量或類變量;另一種是沒有被static修飾的變量,叫實例變量。兩者的區別是:

           對于靜態變量在內存中只有一個拷貝(節省內存),JVM只為靜態分配一次內存,在加載類的過程中完成靜態變量的內存分配,可用類名直接訪問(方便),當然也可以通過對象來訪問(但是這是不推薦的)。

           對于實例變量,沒創建一個實例,就會為實例變量分配一次內存,實例變量可以在內存中有多個拷貝,互不影響(靈活)。

          2、靜態方法

           靜態方法可以直接通過類名調用,任何的實例也都可以調用,因此靜態方法中不能用thissuper關鍵字,不能直接訪問所屬類的實例變量和實例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態成員變量和成員方法。因為實例成員與特定的對象關聯!這個需要去理解,想明白其中的道理,不是記憶!!!

           因為static方法獨立于任何實例,因此static方法必須被實現,而不能是抽象的abstract

          3static代碼塊

           static代碼塊也叫靜態代碼塊,是在類中獨立于類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內,JVM加載類時會執行這些靜態的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現的先后順序依次執行它們,每個代碼塊只會被執行一次。

           利用靜態代碼塊可以對一些static變量進行賦值,最后再看一眼這些例子,都一個staticmain方法,這樣JVM在運行main方法的時候可以直接調用而不用創建實例。

          4staticfinal一塊用表示什么

          static final用來修飾成員變量和成員方法,可簡單理解為“全局常量”!

          對于變量,表示一旦給值就不可修改,并且通過類名可以訪問。

          對于方法,表示不可覆蓋,并且可以通過類名直接訪問。

          posted @ 2011-01-05 21:51 馮占科 閱讀(214) | 評論 (0)編輯 收藏

            

          為了獲取對象的一份拷貝,我們可以利用Object類的clone()方法。
          在派生類中覆蓋基類的clone()方法,并聲明為public。
          在派生類的clone()方法中,調用super.clone()。
          在派生類中實現Cloneable接口。

          為什么我們在派生類中覆蓋Object的clone()方法時,一定要調用super.clone()呢?在運行時刻,Object中的clone()識別出你要復制的是哪一個對象,然后為此對象分配空間,并進行對象的復制,將原始對象的內容一一復制到新對象的存儲空間中。


            Student s1 = new Student("gaoer", 14);
            System.out.println("s1name=" + s1.getName());
            
            Student s2 = s1; // 未使用clone,他倆使用一個地址,
            s2.setAge(12);
            s2.setName("zhangsan");
            System.out.println("s1name=" + s1.getName());

            Student s3 = (Student) s1.clone();
            s3.setAge(12);
            s3.setName("lisi");
            System.out.println("s1name=" + s1.getName());


          package l4;
          /**
           *
           * @author Administrator
           * 當沒有引用類型的變量時,為淺層次的拷貝
           *
           */
          public class Student implements Cloneable {
           private String name;
           private int age;

           public Student(String name, int age) {

            this.name = name;
            this.age = age;
           }

           public String getName() {
            return name;
           }

           public void setName(String name) {
            this.name = name;
           }

           public int getAge() {
            return age;
           }

           public void setAge(int age) {
            this.age = age;
           }

           protected Object clone() throws CloneNotSupportedException {

            Object o = null;
            o = super.clone();
            return o;
           }

          }







          package l4;
          /**
           *
           * @author Administrator
           * 當沒有引用類型的變量時,為淺層次的克隆
           * 當有引用類型的變量時,為深層次的克隆
           */
          public class Student implements Cloneable {
           private String name;
           private int age;
           Point pt;

           public Student(String name, int age) {

            this.name = name;
            this.age = age;
           }
           public Student(String name, int age,Point pt) {

            this.name = name;
            this.age = age;
            this.pt = pt;
           }


           public String getName() {
            return name;
           }

           public void setName(String name) {
            this.name = name;
           }

           public int getAge() {
            return age;
           }

           public void setAge(int age) {
            this.age = age;
           }

           protected Object clone() throws CloneNotSupportedException {

            Student o = null;
            o = (Student)super.clone();
            o.pt = (Point)pt.clone();
            return o;
           }

          }




          package l4;

          public class Point implements Cloneable {
           public int x;
           public int y;

           @Override
           public String toString() {
            return "x=" + x + "y=" + y;
           }

           protected Object clone() throws CloneNotSupportedException {
            Object o = null;
            o = super.clone();
            return o;
           }
          }


          posted @ 2011-01-04 22:16 馮占科 閱讀(167) | 評論 (0)編輯 收藏
          java 函數參數傳遞都是傳值
          對于基本數據類型,傳遞的是數據的拷貝;
          對于引用類型,傳遞的是引用的拷貝; 

            int x = 3;
            int y = 4;
            change(x, y);
            System.out.println("x=" + x + "y=" + y);
            //不可交換

            int[] num1 = new int[]{3,4};
            change(num1);
            System.out.println("num x=" + num1[0] + "num y=" + num1[1]);
            //可交換

            Point pt = new Point();
            pt.x = 3;
            pt.y = 4;
            change(pt);
            System.out.println("pt.x=" + pt.x + "pt.y=" + pt.y);
          //可交換

          public static void change(int x, int y) {
            x = x + y;
            y = x - y;
            x = x - y;
           }

           public static void change(int[] num) {
            num[0] = num[0] + num[1];
            num[1] = num[0] - num[1];
            num[0] = num[0] - num[1];
           }

           public static void change(Point pt) {
            pt.x = pt.x + pt.y;
            pt.y = pt.x - pt.y;
            pt.x = pt.x - pt.y;
           }


          posted @ 2011-01-04 21:14 馮占科 閱讀(182) | 評論 (0)編輯 收藏

          Eclipse快捷鍵大全
          Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了)
          Ctrl+D: 刪除當前行
          Ctrl+Alt+↓ 復制當前行到下一行(復制增加)
          Ctrl+Alt+↑ 復制當前行到上一行(復制增加)
          Alt+↓ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)
          Alt+↑ 當前行和上面一行交互位置(同上)
          Alt+← 前一個編輯的頁面
          Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)
          Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性
          Shift+Enter 在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最后)
          Shift+Ctrl+Enter 在當前行插入空行(原理同上條)
          Ctrl+Q 定位到最后編輯的地方
          Ctrl+L 定位在某行 (對于程序超過100的人就有福音了)
          Ctrl+M 最大化當前的Edit或View (再按則反之)
          Ctrl+/ 注釋當前行,再按則取消注釋
          Ctrl+O 快速顯示 OutLine
          Ctrl+T 快速顯示當前類的繼承結構
          Ctrl+W 關閉當前Editer
          Ctrl+K 參照選中的Word快速定位到下一個
          Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)
          Ctrl+/(小鍵盤) 折疊當前類中的所有代碼
          Ctrl+×(小鍵盤) 展開當前類中的所有代碼
          Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
          Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)
          Ctrl+J 正向增量查找(按下Ctrl+J后,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)
          Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從后往前查)
          Ctrl+Shift+F4 關閉所有打開的Editer
          Ctrl+Shift+X 把當前選中的文本全部變味小寫
          Ctrl+Shift+Y 把當前選中的文本全部變為小寫
          Ctrl+Shift+F 格式化當前代碼
          Ctrl+Shift+P 定位到對于的匹配符(譬如{}) (從前面定位后面時,光標要在匹配符里面,后面到前面,則反之)

          下面的快捷鍵是重構里面常用的,本人就自己喜歡且常用的整理一下(注:一般重構的快捷鍵都是Alt+Shift開頭的了)
          Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節省很多勞動力)
          Alt+Shift+M 抽取方法 (這是重構里面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
          Alt+Shift+C 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定)
          Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數字和字符串抽取成一個變量,尤其是多處調用的時候)
          Alt+Shift+F 把Class中的local變量變為field變量 (比較實用的功能)
          Alt+Shift+I 合并變量(可能這樣說有點不妥Inline)
          Alt+Shift+V 移動函數和變量(不怎么常用)
          Alt+Shift+Z 重構的后悔藥(Undo)

          編輯
          作用域 功能 快捷鍵
          全局 查找并替換 Ctrl+F
          文本編輯器 查找上一個 Ctrl+Shift+K
          文本編輯器 查找下一個 Ctrl+K
          全局 撤銷 Ctrl+Z
          全局 復制 Ctrl+C
          全局 恢復上一個選擇 Alt+Shift+↓
          全局 剪切 Ctrl+X
          全局 快速修正 Ctrl1+1
          全局 內容輔助 Alt+/
          全局 全部選中 Ctrl+A
          全局 刪除 Delete
          全局 上下文信息 Alt+?
          Alt+Shift+?
          Ctrl+Shift+Space
          Java編輯器 顯示工具提示描述 F2
          Java編輯器 選擇封裝元素 Alt+Shift+↑
          Java編輯器 選擇上一個元素 Alt+Shift+←
          Java編輯器 選擇下一個元素 Alt+Shift+→
          文本編輯器 增量查找 Ctrl+J
          文本編輯器 增量逆向查找 Ctrl+Shift+J
          全局 粘貼 Ctrl+V
          全局 重做 Ctrl+Y

           
          查看
          作用域 功能 快捷鍵
          全局 放大 Ctrl+=
          全局 縮小 Ctrl+-

           
          窗口
          作用域 功能 快捷鍵
          全局 激活編輯器 F12
          全局 切換編輯器 Ctrl+Shift+W
          全局 上一個編輯器 Ctrl+Shift+F6
          全局 上一個視圖 Ctrl+Shift+F7
          全局 上一個透視圖 Ctrl+Shift+F8
          全局 下一個編輯器 Ctrl+F6
          全局 下一個視圖 Ctrl+F7
          全局 下一個透視圖 Ctrl+F8
          文本編輯器 顯示標尺上下文菜單 Ctrl+W
          全局 顯示視圖菜單 Ctrl+F10
          全局 顯示系統菜單 Alt+-

           
          導航
          作用域 功能 快捷鍵
          Java編輯器 打開結構 Ctrl+F3
          全局 打開類型 Ctrl+Shift+T
          全局 打開類型層次結構 F4
          全局 打開聲明 F3
          全局 打開外部javadoc Shift+F2
          全局 打開資源 Ctrl+Shift+R
          全局 后退歷史記錄 Alt+←
          全局 前進歷史記錄 Alt+→
          全局 上一個 Ctrl+,
          全局 下一個 Ctrl+.
          Java編輯器 顯示大綱 Ctrl+O
          全局 在層次結構中打開類型 Ctrl+Shift+H
          全局 轉至匹配的括號 Ctrl+Shift+P
          全局 轉至上一個編輯位置 Ctrl+Q
          Java編輯器 轉至上一個成員 Ctrl+Shift+↑
          Java編輯器 轉至下一個成員 Ctrl+Shift+↓
          文本編輯器 轉至行 Ctrl+L

           
          搜索
          作用域 功能 快捷鍵
          全局 出現在文件中 Ctrl+Shift+U
          全局 打開搜索對話框 Ctrl+H
          全局 工作區中的聲明 Ctrl+G
          全局 工作區中的引用 Ctrl+Shift+G

           
          文本編輯
          作用域 功能 快捷鍵
          文本編輯器 改寫切換 Insert
          文本編輯器 上滾行 Ctrl+↑
          文本編輯器 下滾行 Ctrl+↓

           
          文件
          作用域 功能 快捷鍵
          全局 保存 Ctrl+X
          Ctrl+S
          全局 打印 Ctrl+P
          全局 關閉 Ctrl+F4
          全局 全部保存 Ctrl+Shift+S
          全局 全部關閉 Ctrl+Shift+F4
          全局 屬性 Alt+Enter
          全局 新建 Ctrl+N

           
          項目
          作用域 功能 快捷鍵
          全局 全部構建 Ctrl+B

           
          源代碼
          作用域 功能 快捷鍵
          Java編輯器 格式化 Ctrl+Shift+F
          Java編輯器 取消注釋 Ctrl+\
          Java編輯器 注釋 Ctrl+/
          Java編輯器 添加導入 Ctrl+Shift+M
          Java編輯器 組織導入 Ctrl+Shift+O
          Java編輯器 使用try/catch塊來包圍 未設置,太常用了,所以在這里列出,建議自己設置。
          也可以使用Ctrl+1自動修正。

           
          運行
          作用域 功能 快捷鍵
          全局 單步返回 F7
          全局 單步跳過 F6
          全局 單步跳入 F5
          全局 單步跳入選擇 Ctrl+F5
          全局 調試上次啟動 F11
          全局 繼續 F8
          全局 使用過濾器單步執行 Shift+F5
          全局 添加/去除斷點 Ctrl+Shift+B
          全局 顯示 Ctrl+D
          全局 運行上次啟動 Ctrl+F11
          全局 運行至行 Ctrl+R
          全局 執行 Ctrl+U

           
          重構
          作用域 功能 快捷鍵
          全局 撤銷重構 Alt+Shift+Z
          全局 抽取方法 Alt+Shift+M
          全局 抽取局部變量 Alt+Shift+L
          全局 內聯 Alt+Shift+I
          全局 移動 Alt+Shift+V
          全局 重命名 Alt+Shift+R
          全局 重做 Alt+Shift+Y

          posted @ 2011-01-03 19:56 馮占科 閱讀(80) | 評論 (0)編輯 收藏

          <數據類型>[] 變量名 = new <數據類型>[數組長度]
          int[] a = new int[5]
          int a[1]=1;
          int a[2]=2;
          int a[3]=3;
          int a[4]=4;
          int a[5]=5;

          int[] a = {1,2,3,4,5,6}

          posted @ 2010-12-30 22:09 馮占科 閱讀(106) | 評論 (0)編輯 收藏
           

          抽象類:

          absstract定義的類為抽象類,抽象類可以包含抽象方法也可以包含具體的方法;

          沒有方法體的方法為抽象方法;

          抽象的類不能創建對象,只能通過繼承使用這個類;

          只用覆蓋了父類中的方法后,才能實例化,才能使用;

          模板方法,用來定義規則;

          接口:

          接口就是特殊的類;

          接口內沒有具體的方法,只能包含抽象的方法;

          接口內默認就是抽象方法,不用加abstract;

          接口內的方法默認是公用的,不用加public

          接口不能實例化;

          接口可以被繼承,產生子接口,子接口也不能創建對象;

          通過implements實現接口;

          接口可以出現變量,但都是常量,用final定義,在聲明的時候就賦值,默認是finalstatic

          final最終的,不允許修改;

          父類能適用的地方,子類也能適用;

          posted @ 2010-12-23 22:30 馮占科 閱讀(90) | 評論 (0)編輯 收藏

          Linux下可以超過3G,Windows下最大也就1.6G左右(x86)。

          一般32位的機器做大只能用到2G內存,4G內存可以跑2個tomcat,通過Apache做cluster.

          posted @ 2010-12-22 14:43 馮占科 閱讀(2801) | 評論 (0)編輯 收藏
           

          一些新手朋友對選擇器一知半解,不知道在什么情況下運用什么樣的選擇器,這是一個比較頭疼的問題,針對新手朋友,對CSS選擇器作一些簡單的說明,希望能對大家的學習工作有一定的幫助,更多的CSS知識請參考Webjx.com的其他文章。

            準確而簡潔的運用CSS選擇器會達到非常好的效果。我們不必通篇給每一個元素定義類(class)或ID,通過合適的組織,可以用最簡單的方法實現同樣的效果。在實際工作中,最常用的選擇器有以下五類:

          一、標簽選擇器:

            顧名思議,標簽選擇器是直接將HTML標簽作為選擇器,可以是ph1dlstrongHTML標簽。如:

          p { font:12px;}

          em { color:blue;}

          dl { float:left; margin-top:10px;}

          二、id選擇器:

            我們通常給頁面元素定義id。例如定義一個層 <div id="menubar"></div> 然后在樣式表里這樣定義:

          #menubar {

          margin:0 auto;

          background:#ccc;

          color:#c00;

          }

            其中"menubar"是你自己定義的id名稱。注意在前面加"#"號。

          id選擇器也同樣支持后代選擇器,例如: #menubar p { text-align:center; line-height:20px;; } 這個方法主要用來定義層和那些比較復雜,有多個“唯一后代”的元素。

          三、類(class)選擇器:

            在CSS里用一個點開頭表示類別選擇器定義,例如:

          .da1 {

          color:#f60;

          font-size:14px ;

          }

            在頁面中,用class="類別名"的方法調用: <span class="da1">14px大小的字體</span> 這個方法比較簡單靈活,可以隨時根據頁面需要新建和刪除。但需要避免多class綜合癥。

          四、群組選擇器:

            當幾個元素樣式屬性一樣時,可以共同調用一個聲明,元素之間用逗號分隔。如:

          p, td, li {

          line-height:20px;

          color:#c00;

          }

          #main p, #sider span {

          color:#000;

          line-height:26px;

          }

          .www_52css_com,#main p span {

          color:#f60;

          }

          .text1 h1,#sider h3,.art_title h2 {

          font-weight:100;

          }

            使用組群選擇器,將會大大的減化CSS代碼,將具有多個相同屬性的元素,合并群組進行選擇,定義同樣的CSS屬性,這大大的提高了編碼效率與CSS文件體積。

          五、后代選擇器:

            后代選擇器也叫派生選擇器。可以使用后代選擇器給一個元素里的子元素定義樣式,例如這樣:

          li strong {

          font-style:italic;

          font-weight:800;

          color:#f00;

          }

          #main p {

          color:#000;

          line-height:26px;

          }

          #sider .con span {

          color:#000;

          line-height:26px;

          }

          .www_52css_com p span {

          color:#f60;

          }

          #sider ul li.subnav1 {

          margin-top:5px;

          }  第一段,就是給li下面的子元素strong定義一個斜體加粗而且套紅的樣式。其他以此類推。

            后代選擇器的使用是非常有益的,如果父元素內包括的HTML元素具有唯一性,則不必給內部元素再指定classid,直接應用此選擇器即可,例如下面的h3ul就不必指定classid

          <div id="sider">

          <h3></h3>

          <ul>

          <li>...</li>

          <li>...</li>

          <li>...</li>

          </ul>

          </div>

            在這里CSS就可以及樣寫:

          #sider h3 {...}

          #sider ul {...}

          #sider ul li {...}

            結合使用上面的四種CSS選擇器,基本滿足了CSS布局的需要,主要在于靈活的使用,特別是后代選擇器的使用能大大的簡化HTML文檔,使HTML做到結構化明確,最小的代碼實現同樣的效果。

            CSS中用四個偽類來定義鏈接的樣式,分別是:a:linka:visiteda:hovera : active

            例如:

          a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;}

          a:visited {font-weight : bold ;text-decoration : none ;color : #c30 ;}

          a:hover {font-weight : bold ;text-decoration : underline ;color : #f60 ;}

          a:active {font-weight : bold ;text-decoration : none ;color : #F90 ;}

               以上語句分別定義了"鏈接、已訪問過的鏈接、鼠標停在上方時、點下鼠標時"的樣式。注意,必須按以上順序寫,否則顯示可能和你預期的不一致。記住它們的順序是“LVHA”。

          posted @ 2010-12-21 09:31 馮占科 閱讀(97) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 拜城县| 四会市| 伊春市| 南投县| 河东区| 峨眉山市| 麦盖提县| 昌邑市| 道孚县| 若尔盖县| 彰化县| 高平市| 荥阳市| 遂平县| 天门市| 西平县| 浮梁县| 桐庐县| 高邮市| 泊头市| 日土县| 区。| 六盘水市| 开封县| 禹州市| 彩票| 安阳市| 新闻| 合山市| 阿拉尔市| 临沂市| 富民县| 时尚| 牡丹江市| 洛川县| 彰化县| 偏关县| 乐清市| 登封市| 高密市| 张家港市|