不一样

因为内存的分配方式不一样。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. Android EditText 编辑框 获取焦点的方法
  2. 如何限制IP,通过SSH登陆linux服务器
  3. 心脏病预测模型(基于Python的数据挖据)
  4. sql server 2008 您所做的更改要求删除并重新创建以下表
  5. csh for循环_shell中的for循环用法详解_linux shell
  6. C++程序员笔试复习概要(一)
  7. 《机器学习导论》和《统计机器学习》学习资料:张志华教授
  8. 数据结构与算法 | 堆
  9. unet训练自己的数据集_基于UNet网络实现的人像分割 | 附数据集
  10. SpringCloud 从菜鸟到大牛之三 服务拆分 理论
  11. 记一次ZABBIX监控JMX故障
  12. 吴恩达深度学习4.2练习_Convolutional Neural Networks_Happy House Residual Networks
  13. 确认和回调_右侧突破但是不能追买,等待回调确认,圣诞节附近接回,波段反弹到大寒附近将是一波好收成,但是大寒又是顶部区域需要高抛。...
  14. 07.electron-(渲染进程和主进程)通信
  15. 【Latex】Latex小论文模板
  16. C++语法知识复习2(黑马程序员教程P109-p146)
  17. e^(At)求解方法及其含义–线性微分方程的求解
  18. 为河南小伙恩辉舍己救人点赞<原创>
  19. xtraReport的简易使用方法
  20. 银行招计算机专业算什么岗,银行计算机专业岗位全方位分析

热门文章

  1. 1.16. BIP39协议:使用助记词生成确定性钱包
  2. 将小写人民币转换成大写
  3. Leetcode 2127. 参加会议的最多员工数
  4. C语言-让生活更美好
  5. 各大门户免费登录入口
  6. python简易版爬虫
  7. 多元线性回归方程原理及其推导
  8. 零基础玩转C语言系列第一章——初始C语言(上)
  9. 软渲染器(Directx11)三之世界矩阵,相机变换矩阵,透视投影矩阵,透视除法,视口变换矩阵
  10. UE4 材质 溶解材质