在讨论他们的区别时,我们要知道java中的内存,主要分为堆和栈。栈中一般存放的是java中的基本数据变量 比如 int,double,float 还存放了对象的引用变量 如 Person person =new Person() 中的 (Person person )。

而堆内存则存放了 new Person。

String s = “abc” :s是存储在栈里。
先在栈中创建一个对String类的对象引用变量s,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令s指向”abc”,如果已经有”abc” 则直接令s指向“abc”。例子如下:

String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2); //true

说明s1和s2指向同一个对象

String s = new String(“abc”) : s是存储在堆里。

每调用一次就会创建一个新的对象。 例子如下:

String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2); //true

说明s1和s2是不指向同一个对象的

String s1=new String(“abc“); 和String s1=“abc“区别相关推荐

  1. java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...

    这是以前刚学Java那会经常被问到的问题,并且也会经常出现在面试中.这个问题不仅仅只局限于Java,可以适用于其他大部分语言,正好最近有个小朋友在学编程,特此整理一下. String s1 = &qu ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式

    String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...

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

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

最新文章

  1. vue 手机键盘把底部按钮顶上去
  2. Tomcat 的数据库连接池设置与应用
  3. 苹果电脑安装python-mac电脑安装python
  4. NYOJ 214 单调递增子序列(二)
  5. PHP web应用的调试
  6. 保驾护航金三银四,万字解析!
  7. 怎样在ArcIMS 上实现专题图
  8. ELK学习遇到的问题3--ERROR pipeline/output.go:100 Failed to connect to backoff(elasticsearch..
  9. 如何在visio中画立体图形
  10. java isreachable_java-奇数InetAddress.isReachable()问题
  11. axure下移固定地方_axure固定元件位置 教程:使用axure动态面板制作一个返回顶部的按钮...
  12. 黄河金岸诗词大赛获奖作品选登(1)
  13. 新一届CMO获奖名单公布:人大附中、上海中学霸榜,深圳中学选手夺魁
  14. Android 获取SIM卡信号
  15. Java实现23种设计模式教程(作者原创)
  16. 基于matlab的禁止无功补偿,基于MATLAB的TSC-TCR型静止无功补偿器仿真研究.zip
  17. xxljob 配置具体定时任务_快速使用分布式定时任务 xxl-job
  18. 关于入户广州的政策条件?大学生毕业后如何正确处理档案户口的事项?
  19. 分区放映,实现互联网电影院新增量
  20. 夜深人静写算法(三十一)- 欧拉函数

热门文章

  1. vue的html自动刷新,Vue页面刷新记住页面状态的实现
  2. sim800 模式切换_SIM的完整形式是什么?
  3. 操作系统中的文件系统和访问方法
  4. 你以为用了BigDecimal后,计算结果就一定精确了?
  5. Windows系统端口转发
  6. Android开发教程:手机震动控制浅析
  7. 英语笔记:写作:Free admissionsto museums
  8. vb中picturebox透明时看到下面的picturebox中图片
  9. PyCharm运行出现 Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run
  10. SQL Server和MysQL中的联表更新sql示例