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

纯情花心男

中级黑马

  • 黑马币:1

  • 帖子:80

  • 精华:0

写代码时的一些小知识:          
             a:  String s = new String("hello")和String s = "hello"的区别。
                          答:new String(“hello”)在内存中创建了1个或两个对象,为什么..
                              “hello”在内存中创建了0个或一个对象,为什么…
               b:请写出结果:
                    String s1 = new String("hello");
                    String s2 = new String("hello");
                    System.out.println(s1==s2);//结果false
                    System.out.println(s1.equals(s2));//结果true;

                    String s3 = new String("hello");
                    String s4 = "hello";
                    System.out.println(s3==s4);/结果false
                    System.out.println(s3.equals(s4));//结果true;

                    String s5 = "hello";
                    String s6 = "hello";
                    System.out.println(s5==s6);//true;
                    System.out.println(s5.equals(s6));//true
             c : ""和null的区别
                 最本质的区别是否在内存中开辟内存空间,"'会开辟内存空间,而null不会,在开发的时候要养成良好的习惯用null

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,是从常量池里面获取的。

评分

参与人数 4技术分 +1 黑马币 +40 收起 理由
lwj123 + 1
~谢绝勾引~ + 10 赞一个!
贾晓军 + 10 就是这么任性
高光天 + 20 很给力!

查看全部评分

45 个回复

正序浏览
学到了赞一个
回复 使用道具 举报
学习了,赞一个!
回复 使用道具 举报
赞一个 加油吧
回复 使用道具 举报
楼主说的很到位,这个老师刚讲过,没想到已经搬到论坛了
回复 使用道具 举报
一起分享,一起学习
回复 使用道具 举报
学习了,本来都不知道的
回复 使用道具 举报
常用字符与ASCII代码对照表

1246092297eJFuxXCM.jpg (162.78 KB, 下载次数: 25)

1246092297eJFuxXCM.jpg
回复 使用道具 举报
涨姿势了
回复 使用道具 举报
as604049322 发表于 2015-5-17 20:00
不存在这样的东西,只是Integer类的静态代码快里面创建了byte范围大小的一个数组,创建了一堆对象。。可 ...

高手在民间啊:lol
回复 使用道具 举报
之前学过,但是忘了,看了这个又记起这个了
回复 使用道具 举报
~谢绝勾引~ 发表于 2015-5-15 21:50
byte 常量池这个第一次听说啊
涨姿势了  
楼主威武

不存在这样的东西,只是Integer类的静态代码快里面创建了byte范围大小的一个数组,创建了一堆对象。。可以理解为一个缓存,但并不是什么高级玩意,就是一个数组
回复 使用道具 举报
今天敲代码出现最多的错误就是忘了写main方法就运行了
回复 使用道具 举报
敲了一天的代码;咋办,敲会了后面忘了前面
回复 使用道具 举报
Dracove 发表于 2015-5-17 08:55
总结的很好,感谢楼主!

谢谢支持
回复 使用道具 举报
时光匆匆 发表于 2015-5-16 10:55
new 就得去堆内存拉

是啊,只要是new出来的都会在堆内存
回复 使用道具 举报
总结的很好,感谢楼主!
回复 使用道具 举报
还是继续更新中,正所谓温故而知新:
猜出结果:
                public static void main(String[] args) {
                        String s = "abc";
                        change(s);
           System.out.println(s);
                }
                public static void change(String s) {
    s += "hello";
          }
                注:
        基本类型 -- 形式参数改变不影响实际参数。
               引用类型 -- 形式参数改变直接影响实际参数。
               但是,字符串是特殊的引用类型,实参传递到形参时,实际上是把                                值传递给了形参。
-- 这道题的结果是:abc;因为字符串一旦被赋值,就不能被改变;
                  记住:虽然字符串的值不能给改变,但其引用类型是可以改变的;
        -- 注:如果是StringBuffer.则打印的是abchello。因为StringBuffer容量可变。

回复 使用道具 举报
学习之余放松下,今天星期六,去看了晚上九点的<<复仇者联盟2>>不过个人感觉不咋滴.........
回复 使用道具 举报
顶一个!!!
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马