String的那点小事儿
1、== 比较的是什么?
1 package xupengwei.string;
2 /**
3 * @describe:
4 * @author chenmo-xpw
5 * @version 2014年5月22日 下午1:00:42
6 */
7 public class StringDemo {
8 public static void main(String[] args) {
9 String s1 = "hello chenmo";
10 String s2 = "hello chenmo";
11
12 System.out.println(s1 == s2);
13
14 String s3 = new String("hello chenmo");
15 String s4 = new String("hello chenmo");
16
17 System.out.println(s3 == s4);
18 }
19 }
结果
true
false
2、其实,这些不难,只是细节问题。
对于(字符串) s1、 s2,当且仅当, s1 和 s2 的内容相同,且 s1 和 s2 的地址相同时, s1 == s2。
可能,你有些疑问了,为什么在下面的代码,s1 和 s2 是同一个对象
String s1 = "hello chenmo"; String s2 = "hello chenmo"; 这涉及到 JVM 对字符串的处理方式了,对于字符直接量(如上的“hello chenmo”),JVM 会使用一个字符串池来缓存它们,当第一次使用该字符直接量时,
JVM会将它放入字符串池。当我们再次使用该字符串时,无须重新创建一个新的字符串,而是直接让引用指向字符串池中已有的字符串。所以,上面的s1 、 s2
都是指向同一个对象,既然是同一个对象,地址就相同了。所以s1 == s2 。那 s3 != s4,这又是为什么么?很简单,s3、s4 都是 通过new来创建新对象,
很自然,s3、 s4指向的对象是不同的!
String的那点小事儿的更多相关文章
- 《java入门第一季》之类(String类常见方法小叙)
String类下面的构造方法和一些常见的方法: /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,可以知道 * A:字符串字面值"abc&quo ...
- 我终于搞清楚了和String有关的那点事儿。
String,是Java中除了基本数据类型以外,最为重要的一个类型了.很多人会认为他比较简单.但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能都答对: Q1:String s ...
- 关于String的一些基础小题目
需求一:从键盘输入一串字符串,统计数字,字母,空格,其它字符的个数 import java.util.Scanner; public class Q1 { public static void mai ...
- 转:关于Android机型适配这件小事儿
http://www.umindex.com/devices/android_resolutions 大家都知道Android机型分裂严重,在开发Android App的时候永远都面临适配N多机型的问 ...
- JAVA String类型的一些小操作
String类型是否包含某个String类型的函数:源字符串.contains(包含字符串) 返回值为:boolean类型(true或false) String类型把某个字符替换成另一个字符:源字符 ...
- String的那一大堆事儿--1
perfTimeStr = perfTimeStr.replace(perfTimeStr.substring(0,4), "____"); perfTimeStr = perfT ...
- centos的那些小事儿!
操作系统:centos7 1.[root@chaoge ~]# ifconfig-bash: ifconfig: 未找到命令 安装net-tools即可: [root@chaoge ~]# yum i ...
- std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
Copy-on-write(以下简称COW)是一种很重要的优化手段.它的核心思想是懒惰处理多个实体的资源请求,在多个实体之间共享某些资源,直到有实体需要对资源进行修改时,才真正为该实体分配私有的资源. ...
- alibaba fastjson List<Map<String, String>>2Str
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; impo ...
随机推荐
- Hive 接口介绍(Web UI/JDBC)
Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanl ...
- 函数buf_LRU_free_from_common_LRU_list
/******************************************************************//** Try to free a clean page fro ...
- net remoting 服务器端订阅客户端(附源代码)
remoting 在分布式应用中逐渐在企业级应用发展开来,最初提出分布式应用,主要目的是为了降低服务器的压力,将耗性能的处理放在另外一个程序中,然后将计算结果发送到另外一个应用中.而remoting就 ...
- Jquery拖拽原理
/* onmousedown : 选择元素 onmousemove : 移动元素 onmouseup : 释放元素 */ 查看Demo:拖拽图片 function drag(obj) { obj.on ...
- android ListView详解
转自:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 在android开发中ListView是比较常用的组件,它以列表的形式展 ...
- application/x-www-form-urlencoded等字符编码的解释说明
关于application/x-www-form-urlencoded等字符编码的解释说明 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏 ...
- win7下代替IDM的下载工具
EagleGet 批量下载干刚刚的!!!!! 立马卸载IDM,哈哈哈 下载地址(免费软件) http://pan.baidu.com/s/1ntupiZJ
- MSP430的比较器
这两天研究了一下430的比较器,开始的时候,没有看懂是怎么一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了 其实这里就是看懂一幅图,两个寄 ...
- Unicode中跟汉字相关的一些内容的总结陈词
UniHan 这几天琢磨着怎么方便的给汉字注音, 因为要知道具体哪些Unicode是给汉字用的, 就读了读Unicode的官方文档. 目前unicode已经发展到了7.0. 不看不知道, 发现Unic ...
- js 中&& 与 ||
/*** 几乎所有语言中||和&&都遵循“短路”原理,* 如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反.* js也遵循上述原则.* 当||时,找到为 ...