`
aaronjiu_00
  • 浏览: 68917 次
  • 性别: 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初始化
每次用到这些数时不会去重新新建,而是得到对应的引用

相关推荐

    有关java中的Date,String,Timestamp之间的转化问题

    Java 中的 Date、String 和 Timestamp 之间的转换问题 Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取...

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

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

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

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

    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 ...

    一个简单的奇怪的计算器

    你可能还使用了`onClick()`事件监听器来响应按钮点击,以及`String`和`Integer`类型之间的转换来处理输入和结果显示。 此外,你可能会学到如何在AndroidManifest.xml文件中配置应用的权限和活动(Activity),以及...

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

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

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

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

    javascript中一些数据类型以及奇怪的特性

    - **String**:字符串,由一串字符组成,可以使用单引号或双引号定义。 - **Symbol**(ES6新增):唯一的标识符,用于创建不可变对象属性。 2. **引用数据类型** - **Object**:这是JavaScript中最复杂的数据...

    奇怪的字符wp1

    在实际操作中,可以利用编程语言(如Python)的内置库(如`base64`库进行Base64编码和解码,`string`库进行凯撒加密的解密)或在线工具来辅助解密过程。对于复杂的解密任务,可能还需要结合密码学原理、模式识别和...

    一段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)有一个奇怪的爱好:。他喜欢玩单词,并渴望在文本中找到模式。他聘请您编写一个可以帮助他进行研究的图书馆。而且...好吧,他付了很多钱,所以您决定暂时处理字谜和其他...

    java读写大全

    sb.append("这是第" + i + "行: 前面介绍的各种方法都不管用, 为什么总是遇到奇怪的问题"); out.write(sb.toString().getBytes("utf-8")); } out.close(); } ``` #### 四、文件重命名 在Java中,可以通过...

    malloc内存泄漏

    - **不稳定**:内存泄漏可能导致程序行为异常,例如出现奇怪的错误或者程序突然崩溃。 #### 三、内存泄漏的检测方法 检测内存泄漏的方法主要分为两大类:编译器辅助工具和第三方库。 ##### Windows下的内存泄漏...

    JSP乱码终极攻略和AJAX初步运用

    如果尝试使用GBK解码,可能会遇到奇怪的问题,例如最后一个汉字显示为问号。这是因为UTF-8编码的中文字符在传输时会带有字节顺序标记(BOM),即`EF BB BF`,在解码时如果不正确处理,会导致解码失败。 为了解决这...

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

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

Global site tag (gtag.js) - Google Analytics