1. 以下的运行结果是什么?要达到预想结果应该怎么做。
public static void main(String[] args)
{
         String classPath = "java.lang.String";
         System.out.println(classPath.replaceAll(".", "/"));

 
2.   以下的运行结果是什么?
public static void main(String[] args) 
{
         final String pig = "length: 10";
         final String cat = "length: 10";
         final String dog = "length: " + pig.length();
         
         System.out.println("Animals are equal: " + pig == cat);     
         System.out.println("Animals are equal: " + pig == dog);
         System.out.println("Animals are equal: " + pig.equals(dog));
}

解决方案 »

  1.   


    String classPath = "java.lang.String";
            System.out.println(classPath.replaceAll("\\.", "/"));
      

  2.   

    这个与智力无关吧~~囧第一题:
    意图是把包路径换为系统文件夹路径格式
    但是replace使用的应该是正则,.在里面都是特殊字符
    改为
    public static void main(String[] args)
    {
             String classPath = "java.lang.String";
             System.out.println(classPath.replaceAll("\\.", "/"));
    }  
    第二题:
    考察是string在内存中存储,
    但是陷阱却在打印的地方,运算符优先级
    +号大于==,所以前两个打印是先将两个字串相加后与最后一个字串相比,结果为fasle结果:
    false
    false
    Animals are equal: true改为:
     System.out.println("Animals are equal: " + (pig == cat));     
             System.out.println("Animals are equal: " + (pig == dog));
             System.out.println("Animals are equal: " + pig.equals(dog));结果:
    Animals are equal: true
    Animals are equal: false
    Animals are equal: true第一个为true,二者内存地址是一样的,为什么?自己去看java中string的存储方式
    第二个因为dog是拼的,地址肯定不同
    第三个,equals比较的是字符串,一样的,true
    就这么多
      

  3.   

    第一、跑了一下才知道
    因为"."匹配除了换行符(\n)以外的任意一个字符,所以匹配"java.lang.String"的每一个字符,都替换为"/",打印出16个"/"
    解决方法:
    classPath.replace(".", File.separator)第二
    false
    false
    true
    主要是优先级问题
    +的优先级比==高
    .和()的优先级比==高可以结贴了,哈哈~~~