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对象的比较的更多相关文章

  1. JavaScript String对象

    本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...

  2. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  3. js实用篇之String对象

    概述 String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象. var s1 = 'abc'; var s2 = new String('abc'); typeof ...

  4. java 创建string对象机制 字符串缓冲池 字符串拼接机制

    对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...

  5. 原生JS:String对象详解

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  6. JavaScript String 对象

    JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...

  7. js String对象中常用方法小结(字符串操作)

    1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...

  8. Javascript中String对象的的简单学习

    第十一课String对象介绍1:属性    在javascript中可以用单引号,或者双引号括起来的一个字符当作    一个字符对象的实例,所以可以在某个字符串后再加上.去调用String    对象 ...

  9. JavaScript中的String对象

        String对象提供的方法用于处理字符串及字符. 常用的一些方法: charAt(index):返回字符串中index处的字符. indexOf(searchValue,[fromIndex] ...

  10. JavaScript基础13——js的string对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. [Android] 关于Android的问号?和@符号的用法

    @表示引用资源,声明这是一个资源引用-随后的文本是以@[package:]type/name形式提供的资源名.@android:string表明引用的系统的(android.*)资源@string表示 ...

  2. grid - 它和flex布局有何区别?

    Flexbox布局(Flexible Box)模块旨在提供一个更加有效的方式制定.调整和分布一个容器里的项目布局(基于一维),即使他们的大小是未知或者是动态的.(这里我们称为Flex). Flex布局 ...

  3. vue Object.defineProperty Proxy 数据双向绑定

    Object.defineProperty 虽然已经能够实现双向绑定了,但是他还是有缺陷的. 只能对属性进行数据劫持,所以需要深度遍历整个对象 对于数组不能监听到数据的变化 虽然 Vue 中确实能检测 ...

  4. hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】

    Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  5. alter日志报WARNING: too many parse errors

    数据库版本:12.2.0 操作系统版本:RHEL7.2 最近观察到一个数据库alert日志老是报硬解析太多错误,且对应的sql语句都是查看数据字典表: 2017-06-16T08:46:46.4174 ...

  6. 门户级UGC系统的技术进化路线 [转]

    原文链接   :http://weibo.com/p/1001603789147444803230 新闻门户网站的评论系统,或者称为跟帖.留言板,是所有门户网站的核心标准服务组件之一.与论坛.博客等其 ...

  7. Atitit 医学之道 attilax总结

    Atitit 医学之道 attilax总结 1. 相关的学科3 1.1. 口腔医学  ok3 1.2. 人体解剖学  ok3 1.3. 生理学  ok3 1.4. 病理学  ok3 1.5. 骨伤科学 ...

  8. [ci] jenkins kubernetes插件配置(容器模式)-通过jnlp

    有个小伙用sh结合jenkins搞的k8s cicd还不错 jenkins kubernetes插件 首先插件管理,搜索kubernetes plugin安装 配置kubernetes云 配置项目 执 ...

  9. https://stackoverflow.com/questions/51751426/failed-to-run-the-da-platform-trial-vm

    https://stackoverflow.com/questions/51751426/failed-to-run-the-da-platform-trial-vm {  "annotat ...

  10. 常用七种排序的python实现

    1 算法复杂度 算法复杂度分为时间复杂度和空间复杂度.其中, 时间复杂度是指执行算法所需要的计算工作量:而空间复杂度是指执行这个算法所需要的内存空间. 算法的复杂性体现在运行该算法时的计算机所需资源的 ...