看图有助于理解:

String a =new String(“abc”)实际上是创建了两个对象(假设之前String的常量池中没有创建任何对象),一个是“abc”,是new String()。“abc”创建后就会放入常量池中(下次创建 String对象时先查找常量池 有需要的就使用, 没有就重新创建并存入常量池),而String a=new String(“abc”)这是在堆里面创建了一个空白对象 ,并将a初始化(如图),在去查找常量池是否有“abc”。因之前已创建,所以就直接使用常量池中的“abc”的一份拷贝(副本)放人对应堆中地址(这两块内存中的内容是一眼的,用equals()可以得出)。

可参考==与equals:http://blog.csdn.net/fiempty/article/details/8640605

初学java以上说明如有不妥之处,请见谅。

String a =new String(“abc”);和String b=”abc”;的区别相关推荐

  1. String str =new String(“abc“)和 String str = “abc“的比较

    String是一个非常常用的类,应该深入的去了解String 如: String str =new String("abc") String str1 = "abc&qu ...

  2. java中String s=abc及String s=new String(abc)详解

    java中String s="abc"及String s=new String("abc")详解 1.   栈(stack)与堆(heap)都是Java用来在R ...

  3. 怎么做到new String(abc) == new String(abc)双等号为true呢?不是使用equals哦

    正常情况 如果按照正常情况,你面试的时候,看到这个代码,你肯定会说:结果是false. 如果我要他们是true,应该怎么做呢?有什么方法吗? String str4 = new String(&quo ...

  4. java中String s=abc及String s=new String(abc)的区别

    <String的特性> 1.String类是final的,不可被继承. 2.String类是的本质是字符数组char[], 并且其值不可改变. 3.Java运行时会维护一个String P ...

  5. String s=“abc“ 和 String s1=new String(“abc“)和String s2=new String(“abc“)之间的关系

    这篇文章针对困扰新手初学java基础时常遇到的难以理解的一个问题!!! ==∶它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较 ...

  6. c++ string replace_JAVA应用程序开发之String类常用API

    [本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 API ( Application Interface 应用程序接口)是类中提供的接口, ...

  7. c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...

    1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...

  8. 请别再拿“String s = new String(xyz);创建了多少个String实例”来面试了吧---转

    http://www.iteye.com/topic/774673 羞愧呀,不知道多少人干过,我也干过,面壁去! 这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的.  本来因为见得太 ...

  9. java string string_深入理解Java:String

    在讲解String之前,我们先了解一下Java的内存结构. 一.Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配. JVM主要管理两 ...

  10. String的内存模型,为什么String被设计成不可变的

    String是Java中最常用的类,是不可变的(Immutable), 那么String是如何实现Immutable呢,String为什么要设计成不可变呢? 前言 关于String,收集一波基础,来源 ...

最新文章

  1. Android AOSP 编译sdk
  2. 关于html5和css3的新特性
  3. Spring集成TestNg测试
  4. 带你了解无线网络渗透测试——无线网络嗅探工具Kismet
  5. linux zip打包_还在百度Linux命令?推荐一套我用起来特顺手的命令!(JAVA)
  6. Cocos2d JS 之消灭星星(九) 处理星星类之——移动和消灭星星
  7. android:paddingtop 百分比,相对层中的百分比宽度
  8. 【精彩实况】第三届大数据科学与工程国际会议
  9. linux中MySQL密码的恢复方法
  10. java周志第二周_第二周JAVA学习日志
  11. 基于点云的视觉引导系统
  12. 【HTML】【简易电子相册】overflow:hidden;
  13. 极限压缩----压缩至原视频的五分之一
  14. 浅谈csdn写博客几年来的感受———已结题
  15. 淘宝口令生成器,批量生成
  16. 儿童专注力训练——虚线描成实现
  17. JDK1.8的Lambda表达式使用(一)
  18. JAVA 整形 getbytes_Java getBytes() 方法
  19. qt 在ubuntu下的下载安装及测试
  20. Day05_Manuals for Python@lisongye-元组/字典

热门文章

  1. 打印机队列堵死快速解决方法
  2. 《Win32多线程程序设计》-侯杰【最后更新日期:16/02/23
  3. 基于Java+SQL server的会展中心管理系统
  4. 【基础】开关电源电路图讲解
  5. 软考:信息安全工程师4(系统安全)
  6. 四年级上用计算机算的题,2019-2020年四年级数学上册11.1用计算器计算练习题及答案...
  7. shell 删除重复文件
  8. 树莓派(Linux)音频输出接口(HDMI和3.5mm耳机接口)相互切换方法
  9. java 像素矩阵_Java图片读取之BufferedImage得到像素矩阵的两种方式
  10. 为统一规划思想、知识、事情而设计的笔记软件