java 板


LINE

不好意思最近问题有点多... ex1: Integer a = 6; bytecode: 0: bipush 6 2: invokestatic #19// Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 5: astore_1 ex2: Integer a = new Integer(6): bytecode: 0: new #20 // class java/lang/Integer 3: dup 4: bipush 6 6: invokespecial #21 // Method java/lang/Integer."<init>":(I)V 9: astore_1 问题: 表面上看起来ex1好似没有new,但实际上进到valueOf看还是new了 请问这两个ex的差别在哪呢? 补充小问题: #数字:这个数字我查到的资料是说class里的第几个常量 可我不知道要怎麽利用这个变数debug... 可以举个例子说明吗? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.137.32.110
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1419253219.A.B48.html
1F:推 yyc1217: valueOf预设用到-128~127的值作的cache 12/22 22:54
2F:→ yyc1217: constructor则是保留原来new的方式 是问这个吗? 12/22 22:55
3F:→ kdok123: 是的! 可是做cache的方式还是new,想问的是这两种new法 12/23 09:46
4F:→ kdok123: 有什麽样的差异吗? (貌似ex1方法运行效率比较好?) 12/23 09:47
※ 编辑: kdok123 (60.250.185.98), 12/23/2014 09:47:54
5F:推 yyc1217: 前者是一开始就new好存起来用 後者是要用时才new 12/23 11:05
6F:→ ssccg: 一直new新的就占记忆体啊 12/23 12:42
7F:→ duckfly: -128~127一开始就在存於pool中了,不在这范围的当然要new 12/23 12:59
8F:→ duckfly: 而且a=6是直接从pool捞出来,并不是runtime才new, 12/23 13:03
9F:→ duckfly: valueOf原始码你在仔细看清楚一点,6在范围内不需要new 12/23 13:05
10F:→ kdok123: 我的意思是这样的... 每一次new都会对GC产生负担吧? 12/23 14:15
11F:→ kdok123: 如果Integer刚开始就new好了255个object(constant pool) 12/23 14:16
※ 编辑: kdok123 (223.136.244.216), 12/23/2014 14:17:17
12F:→ kdok123: ,这样GC是清不掉的? 12/23 14:17
13F:→ kdok123: 另外这样的动作compile time的时候执行了这麽多次,不会 12/23 14:17
14F:→ kdok123: 拖累效能吗? 12/23 14:18
15F:→ kdok123: 虽然runtime的时候可以直接呼叫new好的address 12/23 14:18
16F:→ kdok123: 可是这样比需要用的时候再new,对效能更好吗? 12/23 14:18
17F:→ duckfly: String pool是需要才new, integer pool则一开始就new完, 12/23 15:31
18F:→ duckfly: 因int有boxing,加上小整数的经常使用(如回圈i), 12/23 15:34
19F:→ duckfly: 因此"大部份"状况下小整数先new起来放是比较好的做法 12/23 15:35
20F:→ duckfly: 而int pool是属於permanet generation, GC是不会清的 12/23 15:37
21F:→ duckfly: 放在permanent的资料,GC是不会去扫描,也不会造成GC负担 12/23 16:32
22F:→ duckfly: (其实permanet区还是有major GC,但鲜少执行可视为无) 12/23 16:55
23F:→ Chikei: 1. Integer pool是Integer static field 12/23 19:33
24F:→ Chikei: 2. static field只有在class的class loader可以被gc的时候 12/23 19:34
25F:→ Chikei: 才会跟着变成可被gc 12/23 19:34
26F:→ Chikei: 3. Integer的class loader是Bootstrap,不会被gc(求反例? 12/23 19:36
27F:→ Chikei: 因为3,Integer class不会被gc,根据1/2,pool不会被gc 12/23 19:37
28F:→ swpoker: 我以为写java的人可以不用管这种层面的问题 12/24 09:56







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP