String str=”kv”+”ill”+” “+”ans”为什么我感觉和String s = "a" + "b" + "c"是一样的。编译期就会把几个字符串合并成一个。final修饰的静态字段在编译期会被放在常量池中
解决方案 »
- 学生 求解
- 关于字符串转日期的问题
- 正则表达式 匹配某一网页内容里的一组字符串中的数字 比如 珠宝/钻石/翡翠/黄金(17048) 怎么把这个数字拿出来
- 我在创建对象输入流时,卡住了,怎么也过不去!谁能帮帮我呀!
- 高分请教高手JDBC的问题,实在不知道那里错了。。在线等
- 请教,如何得到一个表得主键是哪几列?使用jdbc,可以得到吗?我查了没查到.
- 好着急呀!
- 如何用java做一个能运行后呆在右下角菜单栏中的东东,类似qq ......
- 有时为什么需要一个类只产生唯一的实例呢?这样做有什么好处?
- 高手指点:::怎样在win2k下用ldap目录服务,我是新手
- 字符串 数组排序问题 求教
- 求用java框架写的网上选课系统代码
比如这个:http://zy19880423.iteye.com/blog/434179
【首先”kv”和”ill”生成了”kvill”存在内存中,然后”kvill”又和” ” 生成 “kvill “存在内存中,最后又和生成了”kvill ans】咳咳,楼主这个说法就太四个对象分别是kv,ill,ans和kvillans,字符串执行+操作时把String转为基本类型char来做的,一次就把三个对象拼成一个了。只要记住,常量池是编译期的事就好理解了。最后补充下,常量池是每个类都有的,当然这貌似是虚拟机要做的事了。
关于字符串常量池和如何验证只生成一个字符串对象,可以参考这篇文章。http://droidyue.com/blog/2014/12/21/string-literal-pool-in-java/final修饰的常量在编译时期放入类的常量池表,而常量池是类的常量池表的运行展示形式。了解运行时常量池,可以参考本文http://droidyue.com/blog/2014/12/21/java-runtime-data-areas/另外,关于字符串拼接的运行机制,可以查看这篇文章.http://droidyue.com/blog/2014/08/30/java-details-string-concatenation/