黑马程序员技术交流社区

标题: 写出以下代码执行结果,分析为什么? [打印本页]

作者: 幺零夭夭    时间: 2015-11-3 22:04
标题: 写出以下代码执行结果,分析为什么?
public class Test7 {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String s = "abc";
        s.substring(1);
        s.replace("bc", "xyz");
        System.out.println(s);
        String value = new String ("abc");
        System.out.println(s == value);
        }
        /**
         * 结果分析:
         *                 1.为什么打印abc:因为s.substring(1);s.replace("bc", "xyz");
         *                 替换了值没有变量接收结果相当于值未改变,使用输出没有变化
         *                 例如:s=s.substring(1);和s=s.replace("bc", "xyz");即可变化
         *                 2.输出false:因为String s = "abc";在常量池中,
         *                 new String ("abc")在内存中开辟了空间地址
         *                 ==比的是地址,使用时false。
         *                 例如使用s.equals(value)即可为true
         */
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2