美麗涵涵童裝店--說我博客名字,給你們打折!
          隨筆 - 82  文章 - 266  trackbacks - 0
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678


          點擊這里給楊愛友發消息
          美麗涵涵童裝店
          說我博客名字,給你們打折!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章檔案

          好友的BLOG

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1、public/private/protected/默認修飾符
             有如下一段程序:

          package a.b.c;
             
          public class Test{
                 String name
          ="BlueDavy";
                 
          protected String desc="blog.bluedavy.cn";
             }
             
          package a.b.c;
             
          public class TestA{
                 
          private String name;
                 
          private String desc;
                 
          public TestA(){
                     Test test
          =new Test();
                     name
          =test.name;
                     desc
          =test.desc;
                 }
             }
             
          package a.b.c.d;
             
          public class TestB{
                  
          private String name;
                  
          private String desc;
                  
          public TestB(){
                     Test test
          =new Test();
                     name
          =test.name;
                     desc
          =test.desc;
                  }
             }
             
          package a.b.c.d;
             
          import a.b.c.Test;
             
          public class TestC extends Test{
                  
          private String cname;
                  
          private String cdesc;
                  
          public TestC(){
                     cname
          =name;
                     cdesc
          =desc;
                  }
             }

          請問以上TestA、TestB、TestC能編譯過嗎,如編譯不過,原因是什么?
          2、static/final修飾符
             有如下一段程序:

          package a.b.c;
             
          public class Test{
                 
          private static int i=0;
                 
          public int getNext(){
                    
          return i++;
                 }
             }
             
          package a.b.c;
             
          public class TestB{
                 
          public static void main(String[] args){
                     Test test
          =new Test();
                     System.out.println(test.getNext());
                     Test testObject
          =new Test();
                     System.out.println(testObject.getNext());
                     System.out.println(test.getNext());
                 }
             }

          請問最后打印出來的是什么,為什么?(這里其實還潛在的考察了i++和++i的不同)  
          3、集合
             有這樣一段程序:

          package a.b.c;
             
          public class Test{
                 
          public static void main(String[] args){
                     List list
          =new ArrayList();
                     list.add(
          "a");
                     list.add(
          "b");
                     list.add(
          "a");
                     Set set
          =new HashSet();
                     set.add(
          "a");
                     set.add(
          "b");
                     set.add(
          "a");
                     System.out.println(list.size());
                     System.out.println(set.size());
                 } 
             }

          請問運行上面的程序后會打印出的是什么,為什么?
          4、字符串操作
             有這么一段程序:
                     String a=new String("a");
                     String b="b";
                     String c=a+b;
                     StringBuffer strBuf=new StringBuffer();
                     strBuf.append("a");
                     strBuf.append("b");
                     String d=strBuf.toString();
                     StringBuilder strBuilder=new StringBuilder();
                     strBuilder.append("a");
                     strBuilder.append("b");
                     String e=strBuilder.toString();
             請問以上程序片段中c、d、e的字符串的創建各有什么不同?
          5、對象比較
             有這么一段程序:

           package a.b.c;
             
          public class Test{
                 
          public String name="BlueDavy";
             }
             
          package a.b.c;
             
          public class TestA{
                 
          public static void main(String[] args){
                     Test test
          =new Test();
                     Test testB
          =new Test();
                     System.out.println(test.equals(testB));
                     System.out.println(test.name.equals(testB.name));
                 }
             }

          請問以上程序執行的結果是,為什么?
             潛在問題,如要test.equals(testB)為true,需要怎么做?
          以上考察變量作用域知識,protected受保護的,保護給朋友和子女;默認情況下為friendly,友好、朋友,同包、同胞,一個包內的才可以訪問,子女不算朋友。注意默認情況下為friendly,只是這么說,但 java中并沒有這個修飾符。
          -------------------------------------------------------------------------------
          6.字符串類型對象創建及存儲知識

          public class String1 {
           
          /*
            * 1.String使用private final char value[]來實現字符串的存儲,也就是說String對象創建之后,
            * 就不能再修改此對象中存儲的字符串內容,就是因為如此,才說String類型是不可變的(immutable)。
            * 2.String類有一個特殊的創建方法,就是使用""雙引號來創建.例如new String("i am")實際
            * 創建了2個String對象,一個是"i am"通過""雙引號創建的,另一個是通過new創建的.
            * 只不過他們創建的時期不同, 一個是編譯期,一個是運行期!
            * 3.棧中存放基本類型變量和對象的引用;堆中存放類的對象。
            
          */
           
          public static void main(String[] args){
            String a 
          = new String("123");
            String b 
          = new String("123");
            System.out.println(
          "a == b is:" + (a == b));
            System.out.println(
          "a.equals(b) is: " + a.equals(b));
            System.out.println(
          "a.hashCode() == b.hashCode() is: " + (a.hashCode() == b.hashCode()));
           
            String c 
          = "123";
            String d 
          = "123";
            System.out.println(
          "c == d is: " + (c == d));
            System.out.println(
          "c == a is: " + (c == a));
            
            String e 
          = "456";
            String f 
          = "123456";
            String g 
          = c + e;
            System.out.println(
          "g == f is: " + (g == f));
           }
          }


          【參考文章】
          http://www.moon-soft.com/doc/24701.htm
          http://it.kswchina.com/java/zd/421167.html
          http://www.aygfsteel.com/xcp/archive/2008/08/10/stack.html
          ---------------------------------------------------------------
          7.構造函數的調用順序

          package test;

          class FatherClass {
              
          public FatherClass(){
                  System.out.println(
          "Father");
              }
          }

          class ChildClass extends FatherClass{
              
          public ChildClass(){
                  System.out.println(
          "Child");
              }
          }

          public class Test {

              
          public static void main(String[] args){
                  
                  FatherClass a 
          = new FatherClass();
                  ChildClass b 
          = new ChildClass();//若B無沒有顯示的構造函數,會去調用A的構造函數???
              }
              
          }
          運行結果為
          Father
          Father
          Child
          --------------------------------------------------------------
          8.java參數傳遞
          package test;

          public class Test {

              
          public static void main(String[] args){
                  Test test 
          = new Test();
                  String[] arr 
          = {"yang","aiyou"};
                  test.swap(arr[
          0],arr[1]);
                  System.out.println(arr[
          0+ "," + arr[1]);
                  test.swap(arr,
          0,1);
                  System.out.println(arr[
          0+ "," + arr[1]);
              }
              
              
          public void swap(String s1,String s2){
                  String temp 
          = s1;
                  s1 
          = s2;
                  s2 
          = temp;
              }
              
              
          public void swap(String[] arr,int index1,int index2){
                  String temp 
          = arr[index1];
                  arr[index1] 
          = arr[index2];
                  arr[index2] 
          = temp;
              }

          }

          運行結果為:
          yang,aiyou
          aiyou,yang
          ------------------------------------------------------------
          posted on 2008-10-17 23:24 楊愛友 閱讀(412) 評論(0)  編輯  收藏 所屬分類: java相關技術
          美麗涵涵童裝店
          親,說我博客名字,給你們打折!
          主站蜘蛛池模板: 东至县| 宁都县| 凉山| 南陵县| 鲜城| 祁东县| 贵德县| 广水市| 舒城县| 稻城县| 元朗区| 南城县| 安丘市| 万安县| 成武县| 金坛市| 临安市| 西林县| 牡丹江市| 南澳县| 泽库县| 江油市| 西峡县| 如皋市| 墨江| 贺州市| 新河县| 鹤峰县| 志丹县| 东乡县| 桑日县| 交口县| 泸溪县| 六盘水市| 沐川县| 织金县| 祥云县| 日土县| 阳高县| 稷山县| 微博|