java吧 关注:1,292,311贴子:12,823,234

大佬们,这是为什么?想的头都大了

只看楼主收藏回复



IP属地:广东1楼2022-04-14 21:20回复
    1


    IP属地:广东2楼2022-04-14 21:48
    回复
      2025-12-23 17:06:47
      广告
      不感兴趣
      开通SVIP免广告


      IP属地:广东3楼2022-04-14 22:27
      回复
        s1和s2都在常量池,s3在堆内存


        IP属地:四川来自iPhone客户端4楼2022-04-14 23:26
        收起回复
          前面那个在编译阶段就合并成"ab"了,常量池里同一个,后面的this.s要到运行时调用字符串拼接,底层new了一个


          IP属地:陕西来自Android客户端6楼2022-04-15 00:05
          收起回复
            字面量赋值赋的是常量池里的引用,编译时纯字面量的拼接会优化成拼接后的字符串,赋的也是常量池的引用。
            this.s赋值赋的是堆内存里的引用(没有就新建一个),堆内存中字符串和常量池字符串拼接,拼接后的结果存储于堆内存,也就是说赋的是堆内存的引用。


            IP属地:山西来自Android客户端7楼2022-04-15 01:05
            回复
              cy


              IP属地:日本来自Android客户端8楼2022-04-15 01:30
              回复
                这个不是刚水完吗?


                IP属地:广东来自Android客户端9楼2022-04-15 03:22
                回复
                  2025-12-23 17:00:47
                  广告
                  不感兴趣
                  开通SVIP免广告
                  方法呢


                  来自Android客户端10楼2022-04-15 05:52
                  回复
                    this.s中s为属性,都没有定义就调用


                    来自Android客户端11楼2022-04-15 05:53
                    收起回复
                      天天水常量折叠


                      IP属地:安徽来自iPhone客户端14楼2022-04-15 08:57
                      回复
                        只能说避免头大尽量equals


                        IP属地:广东来自Android客户端15楼2022-04-15 08:57
                        回复
                          静态变量不能用this


                          IP属地:湖北来自Android客户端16楼2022-04-15 09:15
                          回复
                            编译完的静态常量都会被替换为他本身,而字符串"a""b"相+又会被优化成ab,最后都是取的常量池中的ab,所以地址是一样的,this.s不会优化,它被编译器认为是对象的属性了


                            IP属地:湖北来自Android客户端18楼2022-04-15 09:22
                            回复
                              2025-12-23 16:54:47
                              广告
                              不感兴趣
                              开通SVIP免广告
                              你比较的是类类型变量的值跟我字符串有什么关系


                              IP属地:广东来自Android客户端19楼2022-04-15 09:24
                              回复