资讯专栏INFORMATION COLUMN

常量池

DevTTL / 1812人阅读

摘要:池的概念多指代人工挖的小区域代码中同理认为划定的小区域既然知道了池的概念那么如何判断在中的这个区域呢在中有两种作用对于基本数据类型比较数值是否一致如等对于引用数据类型比较内存中位置是否一致如等因此只讨论引用数据类型中该问题池的出现总结对于引

池的概念

多指代人工挖的小区域,代码中同理, 认为划定的小区域

既然知道了池的概念,那么如何判断在Java中的这个区域呢?

==在java中有两种作用

对于基本数据类型比较数值是否一致, 如byte, short, int, float等

对于引用数据类型比较内存中位置是否一致, 如Integer, String等

因此只讨论引用数据类型中该问题

池的出现
Integer
Integer num1 = new Integer(1);
Integer num2 = new Integer(1);
System.out.println(num1 == num2);

OUTPUT: false

String
String str1 = new String("abc");
String str2 = new String("abc"):
System.out.println(str1 == str2);

OUTPUT: false

总结

对于引用数据类型需要格外注意 ==的使用, java会先在常量池中找寻已存在的数据, 降低常用数据的内存占用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75724.html

相关文章

  • 方法区到底是个什么鬼

    摘要:那方法区里都存着什么呢先抛结论静态变量常量类信息构造方法接口定义运行时常量池存在方法区中。动态常量池运行时常量池是方法区的一部分,是一块内存区域。文件常量池将在类加载后进入方法区的运行时常量池中存放。 一、方法区与永久代 这两个是非常容易混淆的概念,永久代的对象放在方法区中,就会想当然地认为,方法区就等同于持久代的内存区域。事实上两者是这样的关系: 《Java虚拟机规范》只是规定了有方...

    binaryTree 评论0 收藏0
  • 聊一聊让我蒙蔽一晚上的各种常量

    摘要:注意运行时常量池存在于方法区中。一个在堆中,一个在字符串常量池中。注意,是把这个对象添加到字符串常量池。内存中有一个基本类型封装类的常量池。需要注意的是,和这两个类并没有对应的常量池。 在写之前我们先来看几个问题,假如你对这些问题已经很懂了的话,那大可不用看这篇文章,如果不大懂的话,那么可以看看我的想法。 问题1: public static void main(String[] ar...

    Tamic 评论0 收藏0
  • String:字符串常量

    作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池: 字符串常量池的设计意图是什么? 字符串常量池在哪里? 如何操作字符串常量池? 字符串常量池的设计思想 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响程...

    lidashuang 评论0 收藏0
  • String 和常量

    摘要:方法就是扩充常量池的一个方法当一个实例调用方法时,会查找当前常量池中是否已有相同的字符串常量,如果有就返回其引用,如果没有就在常量池中添加对应的字符串,并返回对应字符串常量的引用。 常量池:在编译被确定,并保存在.class文件中的一些数据。jvm为每个类维护一个常量池,常量池就是该类型所用到的常量的一个有序集合。在程序执行的时候,常量池存储在方法区中。存在于.class文件中的常量池...

    vspiders 评论0 收藏0
  • 我终于搞清楚了和String有关的那点事儿。

    摘要:为了减少在中创建的字符串的数量,字符串类维护了一个字符串常量池。但是当执行了方法后,将指向字符串常量池中的那个字符串常量。由于和都是字符串常量池中的字面量的引用,所以。究其原因,是因为常量池要保存的是已确定的字面量值。 String,是Java中除了基本数据类型以外,最为重要的一个类型了。很多人会认为他比较简单。但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能...

    paulli3 评论0 收藏0
  • 在Java虚拟机中,字符串常量到底存放在哪

    摘要:的三种常量池此外,有三种常量池,即字符串常量池又叫全局字符串池文件常量池运行时常量池。开始虚拟机把字符串常量池位置从永久代挪到堆,又彻底取消,把诸如之类的元数据都挪到堆之外管理。 前言 前阵子和朋友讨论一个问题: 字符串常量归常量池管理,那比如 String str = abc; abc这个对象是放在内存中的哪个位置,是字符串常量池中还是堆? 这句代码的abc当然在常量池中,只有n...

    lewinlee 评论0 收藏0

发表评论

0条评论

DevTTL

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<