A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

// String类面试题
        /*
         * * 1.判断定义为String类型的s1和s2是否相等 String s1 = "abc"; String s2 = "abc";
         * System.out.println(s1 == s2); //false,比较的是两个常量区的地址值
         * System.out.println(s1.equals(s2)); //true ,equals方法比较的是具体的值
         */

        /*
         * 2.下面这句话在内存中创建了几个对象? String s1 = new String("abc"); //创建了两个对象,new abc
         * 在堆内存中 ,s1 在常量池中
         */
        /*
         * 3.判断定义为String类型的s1和s2是否相等 String s1 = new String("abc"); String s2 =
         * "abc"; System.out.println(s1 == s2); //false ,
         * 堆内存中的对象地址值和常量池中的对象地址值比较,肯定不相同 System.out.println(s1.equals(s2));
         * //true , equals方法比较具体的值
         */

        /*
         * 4.判断定义为String类型的s1和s2是否相等 String s1 = "a" + "b" + "c"; String s2 =
         * "abc"; System.out.println(s1 == s2); //true ,
         * 常量优化机制,编译时s1="abc",创建s2时,找到了已经创建的"abc",直接将地址值赋值给s2
         * System.out.println(s1.equals(s2)); //true , equals方法比较具体的值
         */
        /*
         * 5.判断定义为String类型的s1和s2是否相等 String s1 = "ab"; String s2 = "abc"; String
         * s3 = s1 + "c"; System.out.println(s3 == s2); //false,
         * StringBuffer内组合成
         * "abc",再调用toString方法转成String型,s3是toString方法的地址值,s2是常量池地址值
         * System.out.println(s3.equals(s2)); //true , equals方法比较具体的值
         */

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马