不一样

因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”)方式,则会被分到堆内存中。

    String str1 = "i";String str2 = "i";String str3 = new String("i");System.out.println(str1 == str2);//tureSystem.out.println(str2 == str3);//false

解释:

  • Java 虚拟机会将其分配到常量池中:常量池不会重复创建对象。

在String str1="i"中,把i值存在常量池,地址赋给str1。假设再写一个String str2=“i”,则会把i的地址赋给str2,但是i对象不会重新创建,他们引用的是同一个地址值,共享同一个i内存。

  • 分到堆内存中:堆内存会创建新的对象。

假设再写一个String str3=new String(“i”),则会创建一个新的i对象,然后将新对象的地址值赋给str3。虽然str3和str1的值相同但是地址值不同。

拓展:

堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。

常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。

8.String str=“i“与 String str=new String(“i”)一样吗?相关推荐

  1. istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

     1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> u ...

  2. java中String类是什么_Java中的String类

    /* String类用于描述字符串事物的 那么它就提供了多个方法对字符串进行操作 方法都会用,字符串这块就结束了 常见的操作有哪些? "abcd" 它应该具备什么功能,我们才能更好 ...

  3. string修饰的梦修改吗_Java String 对象,你真的了解了吗?

    String 对象的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一 ...

  4. python string模块template_Python标准库笔记(1) — string模块

    String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作. 1. 常用方法 常用方法描述str.capitalize()把字符串的首字母大写str.center(width) ...

  5. C++string类常用函数 c++中的string常用函数用法总结

    string类的构造函数: string(const char *s);    //用c字符串s初始化 string(int n,char c);     //用n个字符c初始化 此外,string类 ...

  6. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  7. string 包含_一文搞懂String常见面试题,从基础到实战,到原理分析和源码解析...

    01 string基础 1.1 Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 1.2 创建字 ...

  8. java string的某个字符_JAVA如何提取String中字符串的某个字符 具体内容

    今天小编和大家分享JAVA如何提取String中字符串的某个字符,希望对大家有所帮助. 工具/材料 PC 操作方法 01 java中提取特定字符前的字符串: String str = "房估 ...

  9. java string对象名称_java中常见对象——String

    字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. A:字符串字面值"abc"也可以看成是一个字符串对象. B:字符串是常量,一旦被赋值,就不能被改变. 构造方法: ...

  10. Java String到int,Java int到String

    Today we will look at Java String to int conversion and then java int to String conversion. Java pro ...

最新文章

  1. 推荐8个鲜为人知,但是很有意思的工具,简洁又好用!
  2. (操作系统)实验二 作业调度
  3. MapReduce操作HBase
  4. acer软件保护卡清除工具clear_使用Windows 10内置工具释放硬盘空间的最佳方法
  5. STM8学习笔记---union联合体的应用
  6. c语言程序设计万年历的显示,C语言程序设计万年历
  7. android 编译api,Android逆向利器,直接将apk转换为可二次开发Android工程,提供So hook Api,......
  8. archlinux mysql_在Arch Linux中安装MySQL
  9. android模拟器命令行,夜神安卓模拟器命令行整理贴
  10. 阿里第九版Java系统架构师+应用架构师面试突击宝典
  11. 多序列比对要多久时间_序列比对,几个常用的多序列比对软件
  12. 关于Excel表格快捷键
  13. Action Recognition——Deep Domain Adaptation in Action Space——BMVC2018
  14. request爬虫爬取电影并利用pyqt5进行本地播放(失败品)
  15. Redundant Paths
  16. AI-统计学习(11)-改进的迭代算法及拟牛顿法
  17. 光流的概念以及 Lucas-Kanade 光流法
  18. 韩式时尚大片《九月风》(出镜:马晓辉/徐嘉依)
  19. 成立两只产业基金,微盟如何布局SaaS生态?
  20. 微信8.0状态背景视频合集

热门文章

  1. Vue基础-输入文本框
  2. word,ppt等office文档转化为pdf进行展示(POI + iText)(亲测有效)
  3. 使用GetPixel要注意
  4. 【vue】设置网页的标题和图标
  5. 超详细的bat脚本常用命令及亲测示例
  6. linux常用命令(包含系统命令)
  7. C#实现贝塞尔曲线的算法
  8. 根据起始日期、起始时间、终止日期、终止时间计算天数
  9. 安卓游戏平台怎样对接游戏?
  10. 小程序实现图片双滑放大缩小