`
aaronjiu_00
  • 浏览: 67918 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

奇怪的String

阅读更多

今天上午和同事讨论String的使用,众所周知,==比较两个字符串String的引用,equals比较两个字符串包含的值,那么大家看看,下面这几个的输出结果是什么样子呢?

	public static void main(String[] args) {
		String str = "hello";
		System.out.println(str == "hello");

		String str2 = new String("hello");
		System.out.println(str2 == "hello");

		String str3 = new String("hello");
		str3 = str3.intern();
		System.out.println(str3 == "hello");

	}

请大家给出运行结果,并给出为什么?

分享到:
评论
2 楼 qxd8304 2009-01-16  
同意楼上观点,打印结果:true false true
1 楼 kkito 2008-12-09  
虚拟机做的些优化
str1 = "hello"
会保存住这个hello
str2 = "hello"的时候不会去重新申请,把现有的引用给str2
这时候str1 == str2
但是用new的话铁定会新建一个

很多语言都有这样的特定,传说python初始化的时候会直接把1-100初始化
每次用到这些数时不会去重新新建,而是得到对应的引用

相关推荐

    javascript asp教程第三课 new String() 构造器

    开始:new String() 是本课程计划中较早出现的另一个让人感觉到奇怪的地方。但和转义字符一样, new String()是创建一个成功的asp javascript应用的必须元素。下面是本课的两个脚本:下面是实际上承担重量的脚本:...

    Python解析json时提示“string indices must be integers”问题解决方法

    import json,但是出现了一个奇怪的问题: string indices must be integers 这个错误告诉我,[ ]里面应该是数字而不是字符串,但是dict使用key访问也可以,这种错误感觉解析出来的结果像是一个list。 所以考虑是...

    JavaScript字符串String和Array操作的有趣方法

    字符串和数组在程序编写过程中是十分常用的类型,因此程序语言都会将...这些方法可能有些偏门有点奇怪,但有时在效率、可读性、复用性上表现得却更好。重复字符串 常常我们想要把字符串多次打印出来(比如想要个分割

    一个奇怪的SQL异常

    用了很久的一个框架,在开发的时候突然抛了一个sql的异常: Cannot create **bean.  开始还以为是sql语句写的有问题,但是sql都是代码... public Teachergroup(String teacherId, String groupId) { super(); th

    proposal-string-dedent:TC39关于具有自动边距剥离功能的多反引号模板的投标

    当前选项:看起来很奇怪的代码class MyClass { print ( ) { console . log ( `create table student( id int primary key name text)` ) }}外观合理的代码,在输出字符串中带有不必要的缩进class MyClass { print ...

    深入理解JavaScript中为什么string可以拥有方法

    JS中有五种基本类型:Undefined、Null、Boolean、Number和String。 引用类型的值是保存在堆内存中的对象,它的值是按引用访问的。引用类型主要有Object、Array、Function、RegExp、Date。 对象是拥有属性和方法的,...

    浅谈JavaScript中的string拥有方法的原因

    JS中有五种基本类型:Undefined、Null、Boolean、Number和String。 引用类型的值是保存在堆内存中的对象,它的值是按引用访问的。引用类型主要有Object、Array、Function、RegExp、Date。 对象是拥有属性和方法的,...

    C++调用Go方法的字符串传递问题及解决方案

    方案验证时,发现有奇怪的将std::string对象的内容传递给Go方法后,在Go方法协程中取到的值与预期不一致。 经过一段时间的分析和验证,终于理解问题产生的原因并给出解决方案,现分享如下。 背景知识 Go有自己的...

    一段base64—–奇怪的密码(Crypto–bugku)

    了解 string.fromCharCode() 是js 里面的函数就行了 给你个链接吧 .!? 是不是感觉像摩斯电码的变形!!!!!!! 哈哈,不对!! 其实,这还是 ook! 编码,直接ook!解码就行。 给你个在线ook!解密网址吧 +[]- 细心...

    asp.C#实现图片文件与base64string编码解码

    图片当然是存在那个js文件里面,于是我就打开了flashblocker.js,然后浏览一下,找到下面一句: ...总习惯保存为.mht格式,因为这样会把网页中的图片也保存下来,但是一直奇怪为何只有一</SPAN> view sourceprint?个.m

    editftp-pro

    //设置传输类型 5、mkdir("文件夹名") //在ftp当前目录下新建一个目录 问题: 利用此组件在测试过程中,发现当上传含有中文的文件名时会失败(FTPClient认为它不是一个文件,奇怪)! 完整程序: ...

    JavaScript包装对象使用介绍

    结果很简单,但是仔细想想还真奇怪,string不是值类型吗!怎么又有属性又有方法的! 内置对象 JavaScript有一系列内置对象来创建语言的基本功能,具体看一下 Boolean Boolean 对象表示两个值:”true” 或 “false”...

    string-theory-progbasic-python-codecool

    怪异的亿万富翁奥托·赖尼尔(Otto Reinier)有一个奇怪的爱好:。他喜欢玩单词,并渴望在文本中找到模式。他聘请您编写一个可以帮助他进行研究的图书馆。而且...好吧,他付了很多钱,所以您决定暂时处理字谜和其他...

    使用input type=text value=str取值不完全解决方案

    今天碰到一个很奇怪的问题,看看如下代码: SimpleDateFormat dateFormat = new SimpleDa 复制代码代码如下:teFormat(“yyyy年MM月dd日 E “); String date = dateFormat.format(new Date()); 本意是想要打印出来...

    Android开发ImageView图片无法显示解决过程

    今天碰到一个非常奇怪的问题: 在Android中ImageView无法显示加载的本地SDCard图片。 具体过程是:先调用本地照相机程序摄像,然后将拍摄的图片加载在ImageView中显示。 代码如下: public class ActiEnvi extends ...

    ERWin如何连接数据库(SQL2000、Oracle 10g)

    装了个ERWin,连数据库连了一个晚上,始终提示各种各样奇怪的错误,要么说我库不存在,要么说我库里没有表,这是能把人气死,后来发现只要注意到两点就可以正常连接数据库。

    asp.net中url地址传送中文参数时的两种解决方案

    在Web.comfig中配置 是一样的: ”gb2312″ ... 真是奇怪, 只好用了笨办法: 写参数: 代码如下: string strurl = PreUrl + “?word={0}&sort={1}✓={2}”; strurl = string.Format(strurl, HttpUtility

    ansible-cntlm:角色-CNTLM

    通过接受其假设,ansible-cntlm角色尝试从互联网下载最新的CNTLM版本将很奇怪。 角色变量 cntlm_package_file :配置软件包文件的路径(rpm或deb)(字符串,无默认值)。 如果未指定,则从sourceforge下载CNTLM。 ...

    PoShDoc:PowerShell 脚本和模块的简单文档生成器

    文档PoShDoc 是一个简单的项目,它作为一个脚本开始,以保​​存文档注释和自述文件中的重复文档。...wd %}构建文档.ps1 BuildDoc.ps1 -TemplateFile <String> [-OutputFile <String>] [-Modules <String>] []PowerSh

    面试要回答的委托.pdf

    //调用委托(奇怪:对象加括号 的方式调用?后面解释。) 输出:Hi~JamesZou! 2. 什么是委托? (1)概念:“C# 中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后调用该...

Global site tag (gtag.js) - Google Analytics