String对象的比较
public class StringTest {
/*
* equals 和 ==的区别
* 如果类中没有重写equals(),那么默认比较也是内存地址
* ==在基本数据类型中比较的是值!
* int a =10;
* int b=10;
* syso(a==b); true
* 在引用数据类型中比较的是地址!
*
* 为什么说 基本数据类型 ,对象和数组的引用 都存在栈中??
* 因为栈最大的优势: 存取的速度快!
*
* Student stu=new Student();
* stu: 对象的引用 栈中
* new Student(): 对象 堆
* new出来的数据都是存放在堆中!
*/ @Test
public void test01(){
String a ="abc";
String b =new String("abc");
System.out.println(a==b); //false
/*
* 01.首先会在栈中开辟一块空间给a
* 02.去常量池中查询有没有"abc"
* 03.因为没有"abc",所以在常量池中开辟一块空间给"abc"
* 04.栈中的a 指向了 常量池中 "abc"
* 05.会在栈中开辟一块空间给b
* 06.去常量池中查询有没有"abc",发现有了,就不会在常量池中创建
* 07.去堆中开辟一块空间存放"abc"
* 08.栈中的b 指向了 堆中 "abc"
* 09. 地址不一样 所以结果 false
*/
} @Test
public void test02(){
String a ="abc";
String b ="abc";
System.out.println(a=="abc");//true
System.out.println(a==b); //true
} @Test
public void test03(){
String a ="abc";
String b ="a"+"bc";
System.out.println(a==b); //true
} @Test
public void test04(){
String a ="abc";
String b ="a";
String c ="bc";
System.out.println(a==(b+c)); //false
/*
* 01.a的值是"abc"
* 02.编译期间 b ="a" c ="bc" 这个值 随时都可能改变!!
* 03.在编译期间(b+c)不会被优化成“abc” 就是因为值不确定
*/
}
@Test
public void test05(){
String a ="abc";
final String b ="a";
final String c ="bc";
System.out.println(a==(b+c)); //true
/*
* 01.a的值是"abc"
* 02.编译期间 b ="a" c ="bc" 这个值不可能改变!!
* 03.在编译期间(b+c)被优化成“abc” 就是因为值确定 final修饰的不可变
*/
} @Test
public void test06(){
String a =new String("abc"); //创建了几个对象?
}
}
String对象的比较的更多相关文章
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- js实用篇之String对象
概述 String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象. var s1 = 'abc'; var s2 = new String('abc'); typeof ...
- java 创建string对象机制 字符串缓冲池 字符串拼接机制
对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...
- 原生JS:String对象详解
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- JavaScript String 对象
JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...
- js String对象中常用方法小结(字符串操作)
1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...
- Javascript中String对象的的简单学习
第十一课String对象介绍1:属性 在javascript中可以用单引号,或者双引号括起来的一个字符当作 一个字符对象的实例,所以可以在某个字符串后再加上.去调用String 对象 ...
- JavaScript中的String对象
String对象提供的方法用于处理字符串及字符. 常用的一些方法: charAt(index):返回字符串中index处的字符. indexOf(searchValue,[fromIndex] ...
- JavaScript基础13——js的string对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- 版本控制-搭建git服务器
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...
- MySQL实用工具汇总
本文收录了mysql相关的实用工具.工具包括:性能测试,状态分析,SQL路由,及运维开发相关的所有工具,并会持续更新. 1.工具套件集 - percona-toolkit - oak-toolkit ...
- framework中编译anroid工程并在模拟器上运行
1.在eclipse下创建android工程Hello并拷贝到“源码目录/packages/experimental”下面 2.在Hello工程目录下面创建Android.mk文件,内容如下: L ...
- Codeforces Round #277.5 (Div. 2)C——Given Length and Sum of Digits...
C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabyte ...
- hihocoder编程练习赛91:相邻字符串
题目链接 给定一个长度小于1e5的字符串s,s中字符全是大写英语字母.现在要寻找s中有多少组邻近的"hio"字符串,邻近的定义如下:hi距离+io距离+ho距离小于k.输入k和s, ...
- android保持服务不休眠(持续运行)以及唤醒屏幕的方法
假设有这样一个应用场景,一个服务一直在默默的工作(比如即时地获取服务器的消息),即使在屏幕已经因为长时间无操作而关闭,或者用户按了电源键让屏幕关闭,手机进入休眠状态,他必须依然在工作中.一旦从服务器获 ...
- [Aaronyang] 写给自己的WPF4.5 笔记11[自定义控件-AyImageButton的过程 1/4]
我的文章一定要对读者负责-否则不是好文章 ---- www.ayjs.net aaronyang技术分享 文章导航: 介绍vs2013 WPF开发,属性代码相关技巧 实战AyImage ...
- 11G新特性 -- Result Cache
共享池存放sql语句的解析和编译版本,以便数据库能快速执行频繁执行的sql语句和plsql. 在11g中,数据库使用result cache来存放sql和plsql的执行结果. result cach ...
- 如何测试hello world
最近在跟敏捷专家聊到了单元测试的相关内容. 我的问题主要集中在如何推广单元测试. 我们发现在很多团队,开发人员并不是十分愿意去写单元测试,我认为主要的原因是学习写单元测试是有成本的,很多开发同学并不愿 ...
- Nginx 状态信息功能配置
Nginx 状态信息功能介绍 Nginx 有一个 ngx_http_stub_status_module 模块,主要功能是记录 Nginx 的基本访问状态信息,让使用者了解 Nginx 的工作状态 要 ...