Java 数组的声明方式

来源:互联网 发布:西部域名怎么解析 编辑:程序博客网 时间:2024/05/01 19:58

转载自:http://zzqrj.iteye.com/blog/572554

Java 数组的声明方式

 

二维数组的声明和定义方式

public class Java 数组声明 {

    public static void main(String[] args) {

       Java 数组声明 at = new Java 数组声明 ();

       /* 一维数组的声明方式 */

       int [] a = new int [4];

       a[0] = 1;

       a[1] = 3;

       // int [] a2=new int [4]{1,4};

       int [] a1 = new int [] { 1, 4 };

       int [] b = { 1, 3 };

       // 错误 int [] c; c={1,4};

       /*

         * 总结:如果定义时候确定长度 那么付值只能一个一个的赋,

         * 如果定义时候不确定长度,那么付值也一下赋完 , 定义的时候等号右边不能为空

         */

 

       /*

         * 二维数组的声明和赋值

         * Java 中二维数组的声明和初始化应按照从高维到低维的顺序进行 .

         */

       // 不能如此声明: int a[1][1]=new int [][];

       // 不能如此声明: int a[][]=new int [][1];

       int a0 [][] = new int [1][2];

       int a3 [][] = {{1,2},{3,4,5,6},{7,8,9}} ;

       int a4 [][];

       a4= new int [5][3];

       int a2[][] = new int [2][];

       a2[0] = new int [2];

       a2[1] = new int [3];

       for int i = 0; i < a2. length ; i++)

           for int j = 0; j < a2[i]. length ; j++)

              System. out .println( "I:" + i + " J:" + j + "=" + a2[i][j]);

 

    }

}

 

String 和 StringBuffer

   

String 是个不可变类

对于已经存在的 String 对象的修改都是重新创建一个新的对象 , 然后把新的值保存进去 .

String 是 final 类 , 不能被继承 .

    使用包含变量的表达式来创建 String 对象,则不仅会检查维护 String 池,而且还会在堆栈区创建一个 String 对象

         String   a   =   "abc" ;  

         String   b   =   "ab" ;  

         String   ab=   "ab" + "c" ;  

          System.out.println(a==ab); //true  

         String   a1   =   "abc" ;  

         String   b1   =   "ab" ;  

         String   ab1=   b+ "c" ;  

         System.out.println(a1==ab1); //false

 

Stringbuffer 是个可变的类。

stringbuffer 会改变缓冲区内的字符串内容。

它只能通过构造函数来建立 , StringBuffer 类有 3 个构造方法 :

         StringBuffer() // 默认 16 个字符空间

         StringBuffer( int size) //size 个空间

         StirngBuffer(String s) //s.length()+16 个空间

         StringBuffer sb = new StringBuffer();

         注意 : 不能通过赋值符号对他进行赋值 .

         sb = "welcome to here!" ; //error

    对象被建立以后 , 在内存中就会分配内存空间 , 并初始保存一个 null.

    向 StringBuffer 中付值的时候可以通过它的 append 方法 .

         sb.append( "hello" );

    StringBuffer 对象可以通过 length() 放发获取实体存放的字符序列长度。通过 capacity() 方法获取当前实体的实际容量。  

    String 覆盖了 Object 类的 equals ()方法,而 stringbuffer 没有覆盖了 Object 类的 equals ()方法

         StringBuffer str1 = new StringBuffer( "lgl669" );

         StringBuffer str2 = new StringBuffer( "lgl669" );

         str1.equals(str2) // 为什么是 false

         String str1 = new String( "lgl669" );

         String str2 = new String( "lgl669" );

         str1.equals(str2) // 为什么是 true

因为没有覆盖 equals ()方法, StringBuffer 调用 Object 中的 equals ()方法,根据引用 ( 地址 ) 进行比较,所以为 false ; String 重写了 equals () 方法,根据值进行比较,所以为 true 。

 

String textString = new String( "java" );

       StringBuffer textBuffer = new StringBuffer( "java" );

       stringReplace (textString);

       bufferReplace (textBuffer);

       System. out .println(textString + “,” +textBuffer);//java , javaC

public static void stringReplace(String text) {

           text = text.replace( 'j' , 'i' );

           System. out .println( "text:" + text);

        }

        public static void bufferReplace(StringBuffer text) {

           text = text.append( "C" );

        }

 

 

intern

public String intern()
http://www.cnblogs.com/wanlipeng/archive/2010/10/21/1857513.html

0 0
原创粉丝点击