字符串赋值
Sting 类保存字符串只是保存所有单单的字符串;
而 char[] 字符数组 会在最后自动加上'\n';
所以B:t.equals(c)会返回fasle;
所以 答案B
而 char[] 字符数组 会在最后自动加上'\n';
所以B:t.equals(c)会返回fasle;
所以 答案B
=========================================================================================
- String a = "hello" ; // 先在栈中创建一个对String类的对象引用变量a,然后通过符号引用去字符串常量池里找有没有"hello",如果没有,则将"hello"存放进字符 串常量池 ,并令a指向"hello",如果已经有"hello"则直接将a指向"hello" --> 产生1个对象及1个引用
- String b = "hello" ; // 先在栈中创建一个对String类的对象引用变量b,然后通过符号引用去字符串常量池里找有没有"hello",因为之前在常量池中已经 有"hello",所以直接将b指向"hello" --> 因为不需要在常量池产生"hello",所以只是在栈中产生1个引用
- String newA = new String( "hello" ); // 先在栈中创建一个对String类的对象引用变量newA,然后new()操作会在heap堆中产生一个新的对象"hello",并将newA指向堆中 的"hello",同时检查String pool常量池中是否有对象"hello",如果没有也产生一个对象"hello",如果有则不产生,因为这里 之前已经在常量池中产生过了,所以 --> 只需要产生1个对象及1个引用
- String newB = new String( "hello" ); //因为new每次都会保证在heap堆内存中产生新的对象,并将栈中的引用指向对应的堆中的地址,所以此语句同上一条的处理
=========================================================================================