美丽涵涵童装店--说我博客名字,给你们打折!
随笔 - 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.blogjava.net/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 杨爱友 阅读(396) 评论(0)  编辑  收藏 所属分类: java相关技术

只有注册用户登录后才能发表评论。


网站导航:
 
美丽涵涵童装店
亲,说我博客名字,给你们打折!