java基础面试题:如何把一段逗号分割的字符串转换成一个数组? String s = "a" +"b" + "c" + "d";生成几个对象?

package com.swift;

public class Douhao_String_Test {

    public static void main(String[] args) {
        /*
         * 如何把一段逗号分割的字符串转换成一个数组?
         * String s = "a" +"b" + "c" + "d";生成几个对象?
         */
        
        String str="sdjkfl,sldfj,abc,ei3,239d";
        String[] arr=str.split(",");
        
        for(String s:arr) {
            System.out.println(s);
        }
        
        String s1 = new String("hello");   //新对象不同堆空间
        String s2 = new String("hello"); 
        String ss1 = "hello";              //指向同一常量池
        String ss2 = "hello"; 
        System.out.println(s1==s2);
        System.out.println(ss1==ss2);
        
        String t1= "a";
        String t2= t1 + "b";
        String t3= "a" + "b";
        System.out.println(t2== "ab");  //t1 是final类型字符串 不能改变,如要改变要创建新对象 t2是新对象
        final String tt1="a";
        String tt2=tt1+"b";             //编译器优化把能确定的tt1当成了"a" 所以tt2=tt1+"b" 成了tt2="ab";
        System.out.println(tt2=="ab");
        System.out.println(t3== "ab");  //编译器把String t3= "a" + "b"; 优化成String t3="ab";
        
        String s = "a" +"b" + "c" + "d";
        System.out.println(s =="abcd");//只生成一个对象"abcd"
    }

}

 

posted @ 2018-01-23 11:48  Advancing-Swift  阅读(1680)  评论(0编辑  收藏  举报