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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shuguang 中级黑马   /  2015-8-11 21:48  /  643 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、byte常量池面试题
          Integer i1 = new Integer(127);
          Integer i2 = new Integer(127);
          System.out.println(i1 == i2);  // false
          System.out.println(i1.equals(i2));  // true

          System.out.println("--------");

          Integer i3 = new Integer(128);
          Integer i4 = new Integer(128);
          System.out.println(i3 == i4);  // false
          System.out.println(i3.equals(i4)); // true
          Integer i5 = 128;
          Integer i6 = 128;
          System.out.println(i5 == i6);  // false
          System.out.println(i5.equals(i6)); // true

          System.out.println("--------");

          Integer i7 = 127;
          Integer i8 = 127;
          System.out.println(i7 == i8); // true
          System.out.println(i7.equals(i8)); // true

          结论:byte范围内的值(-128 ~ 127),java提供了一个常量池。直接赋值给Integer,是从常量池里面获取的。

2、String类面试题
          1.     
          public static void main(String[] args) {
               String s = "abc";
               change(s);
               System.out.println(s);
          }
          public static void change(String s) {
               s += "hello";
          }
          注:基本类型 -- 形式参数改变不影响实际参数。
               引用类型 -- 形式参数改变直接影响实际参数。
               但是,字符串是特殊的引用类型,实参传递到形参时,实际上是把值传递给了形参。
         
          -- 如果是StringBuffer.则打印的是abchello。StringBuffer容量可变。
         


          2. 字符串拼接问题
          public static void main(String[] args) {
               String s1 = "a";
               String s2 = "b";
               String s3 = "ab";
               System.out.println(s3 == s1 + s2); // false
               System.out.println(s3 == "a" + "b"); // true,常量的运算会在编译期间就计算,所以"a"+"b"在编译后就是"ab"
          }
          注:JVM对于字符串引用,由于在字符串的"+"连接中,有字符串引用存在,而引用的值在程序编译期是无法确定的。
               JVM对于字符串常量的"+"号连接,在程序编译期,JVM就将常量字符串的"+"连接优化为连接后的值。

评分

参与人数 1黑马币 +5 收起 理由
mmppp + 5

查看全部评分

18 个回复

倒序浏览
看着感觉好难啊,还没有学,希望以后能看懂
回复 使用道具 举报
很好,很赞。。
回复 使用道具 举报
今天学的内容,刚好到能看懂程度咯
回复 使用道具 举报
很好,赞赞。。。。。
回复 使用道具 举报
很好,赞赞。。。。
回复 使用道具 举报
这是哪个阶段的内容???
回复 使用道具 举报
没有看懂,希望以后能看懂
回复 使用道具 举报
这是你面试的题还是黑马面试的题??
回复 使用道具 举报
很好,赞赞。。。。
回复 使用道具 举报
基本数据类型参数传递
回复 使用道具 举报
Glc90 中级黑马 2015-8-12 09:56:37
12#
。。。。。。还看不懂中
回复 使用道具 举报
byte范围这个。还真疏忽了。
回复 使用道具 举报
总结的很好,是一个好贴
回复 使用道具 举报
今天刚好看到这里
回复 使用道具 举报
String类的第一题,我是这样理解的:因为字符串变量s的值是不能被修改的,如果说change方法返回一个新的String变量s1的话,那么打印s1就是abchello。而把s传递进change方法中,其改变后的值是一个新的String对象,其作用于也是在change的方法内。这些是我的理解。
回复 使用道具 举报
风华正茂 来自手机 中级黑马 2015-8-12 12:34:45
17#
谢谢楼主分享,楼主辛苦了
回复 使用道具 举报
很有想法嘛
回复 使用道具 举报
ligy 中级黑马 2015-8-12 13:01:34
19#

谢谢楼主分享,楼主辛苦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马