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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Excalibur 中级黑马   /  2015-7-15 11:07  /  359 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、下面语句声明了什么
     String s = "hello world!";
     这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指  向“hello world!”这个String类型的对象
2、“==”和“equals”方法究竟有什么区别
     ==操作符专门用来比较变量的值是否相等
       如int a = 10;  int b = 10;  则 a == b将是true
       比较难理解的地方
       String s1 = new String("hello");
       String s2 = new String("hello");
       则 s1 == s2; 结果将是false 。这是因为对象变量其实是一个引用,它们的值其实是指向对象所在的内存地址,而不是对象本身。s1和s2都使用了new操作符,意味着将在内存中产生两个内容为“hello”的字符串,它们处于不同的内存地址,s1和s2的值其实是两个不同的内存地址的值,所以比较结果为false
      equals方法是对象内容的比较;
      在Object中equals方法和==运算符作用一样,要进行内容的比较,需要对Object中得equals方法进行覆写,如String类的equals方法就已经覆写了Object中的equals方法
3、final修饰引用变量和基本数据类型的区别
     final 使得被修饰的变量“不变”
     这里的不变表示的变量的值不变,对于引用变量即是变量的引用对象不能改变,但变量引用对象的内容可以改变
     如final int[] a = {1,2,3};
        int[] b = {4,5,6};
        // a = b;  此处会出现编译错误:无法为最终变量a分配值 ,
        a[0] = 2;
        for(int n : a){
        System.out.print(n+", ");   //结果会输出2, 2, 3
        }

      







1 个回复

倒序浏览
很有帮助,感谢楼主分享!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马