找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[ java面试解惑 ] 【 守望者 java面试解惑】02_Java面试迷惑试题解析对于String创建个数的问题 ... ... ...

2014-09-18 14:23| 发布者: zhouy | 查看: 1500 | 收藏

摘要: 内容简介:介绍Java面试迷惑试题解析对于String创建个数的问题,包括字符串的创建方式以及存储方式.以及字符串池的概念.

关于String面试经典题目的解惑,创建了多少个String对象.

1.字符串的创建方式:

  1)通过new 进行创建,这个时候创建的对象我们放在堆里面
  2)“”方式创建对象,这个对象是放在字符串的常量池中.

2.字符串是一个不变的量,一旦创建后呢不会被修改.因为String是用final修饰

1)String   str1=”helloworld”;
2)String  str2=new  String(“helloworld”)
1)和2)由于存储位置不一样,那么他们是不相等的,代表不同的对象.
4)String  str4=str3+”world”;
6)String str6 = "hello" + "world";
4)Str3是变量,“hello" 是常量。这个时候常量的编译的时候已经确定了他是helloworld字符串,他会去常量池中找helloworld是否存在?由于我们的str1=”helloworld“ 已经在常量池中,那么就直接返回.
Str3是变量还无法在编译时确认是helloworld的字符串,所以说需要创建不同的hello,和world对象,然后在拼接在一起。所以说他们不相等
5)对于1)和5)而言由于5)中有部分对象是放在堆里面,那么整个hello world就是不同的对象.所以说不相等.
6)对于String对象我们用什么方法来操作常量池呢?
Intern方法:当对象在常量池的时候,我们直接返回,当对象不存在的时候,先创建,然后在返回.


会员评论  

已有0参与评论

推荐阅读

行业聚焦  面试交流  职位推荐  开发视频   技术交流  腾讯微博  新浪微博

友情链接:课课家教育  阿里云  鲜果  W3Cfuns前端网  中国企业家  环球企业家  投资界  传媒梦工场  MSN中文网  Android开发者社区  cnbeta  投资中国网  又拍云存储  美通说传播  IT茶馆  网商在线  商业评论网  TechOrange  IT时代周刊  3W创新传媒  开源中国社区  二维工坊  Iconfans  推酷  智能电视网  FreeBuf黑客与极客  财经网  DoNews  凤凰财经  新财富  eoe移动开发者社区  i黑马  网易科技  新浪科技  搜狐IT  创业家  创业邦  腾讯财经  福布斯中文网  天下网商  TechWeb  雷锋网  新浪创业  和讯科技  品途O2O  极客公园  艾瑞网  抽屉新热榜  卖家网  人民网通信频道  拉勾网  创新派  简单云主机  

手机版|黑名单|守望者在线 在线教育 linux 高级程序设计 C/C++ 大数据 ( 蜀ICP备14029946号

成都守望者科技有限公司 © 2013-2016 All Rights Reserved