jdk8字符串常量池在哪里 字符串常量池到底存放的是字符串引用还是字符串对象?

字符串常量池到底存放的是字符串引用还是字符串对象?

如果你看字符串的源代码,你会发现它是一个对象

jdk8字符串常量池在哪里 字符串常量池到底存放的是字符串引用还是字符串对象?

!s=“123”

写这句话时,您将首先找出常量池中是否有字符串对象123。如果没有字符串对象123,他将开始提取,1,2,3

然后将其拼接成一个对象,即“123”

如果还有另一个对象也需要这个对象,例如S1=“123”

此时,操作S1时应先到常量池中查找是否有这个对象,如果有,取直接寻址,因为常量池数据是共享的,

如果此时S1=“1234”则常量池不存在,它将被再次提取,1、2、3、4,然后重新组装成常量池中的新对象

!字符串源代码有一个私有变量,一个字符类型数组,用来提取这些单个字符,然后拼接成一个字符串对象

java 1.8常量池会被gc吗?

由final或static声明的常量将不会被GC函数回收,并且正在运行的程序将始终存在于堆栈中。其余的类变量在运行时创建,并在必要时循环使用

string STR=“nihao”当程序开始执行此代码时,它必须创建一个对象,但对象创建后,它是一个常量,不能更改,并且此对象被放在字符串池中,这就是你说的常量池

如果我以后再写代码:String other=“nihao”

STR和other的地址是一样的,因为STR和other的声明方式是一样的。创建STR对象时,字符串池中没有“nihao”常量,所以在创建另一个对象时,创建一个,发现字符串池中已经存在常量“nihao”,所以可以直接使用

string B1=new string(“nihao”)

但是如果用上述方法直接新建string(),A1和B1引用的对象不在字符串池中,而是在堆中,但是new string()的参数“nihao”也是一个字符串,这个字符串从哪里来?如果我们拆分代码,我们会理解它:

string A1=new string(para)

我们会发现句子string A1=new string(“nihao”)实际上创建了两个对象,一个是存储在堆中的string对象,一个是string constant对象,它存储在字符串池中

Java常量池不在堆或堆栈中,这是独立的内存空间管理。

1. 堆栈:它存储基本类型变量数据和对象引用,但对象本身不存储在堆栈中,而是存储在堆(新对象)或常量池(字符串常量对象存储在常量池中)。堆:存储所有新对象。

3. 常量池:存储字符串常量和基本类型常量(publicstaticfinal)。

对于字符串:其对象的引用存储在堆栈中。如果它们是在编译时创建的(直接用双引号定义),则它们存储在常量池中。如果只能在运行时(New)确定它们,则将它们存储在堆中。对于相等的字符串,常量池中总是只有一个副本,堆中总是有多个副本。

标签:

最新文章

  1. seo 网站建设如何才能更好的进行SEO?2025-03-25
  2. 怎么用ai做出折叠效果 ai怎么做折叠封面?2025-03-16
  3. 优秀网站网页设计 网页设计代码文件的后缀是什么啊?2025-03-30
  4. 苹果5s手机截屏的方法2025-03-12
  5. 微信绑定邮箱有坏处吗 微信绑定QQ邮箱后不能绑定QQ怎么办?2025-03-18
  6. 武汉城市规划 武汉市硚口区十年以内的城市规划?2025-03-25
  7. 如何使用u深度u盘清理电脑无效盘符2025-03-08
  8. 打开Photoshop软件并选择字体工具2025-03-10
  9. 顺丰到付价格怎么收费 顺丰快递到付收费标准表?2025-03-23
  10. cad中怎么画垂直线 cad如何从一条线引出垂直线?2025-03-23
  11. 抖音同城广告怎么投放 抖音怎么找同城的聊天?2025-03-12
  12. 微信8.0动态如何设置全屏2025-03-15
  13. 鲸语官方通知启用指南:定制个性化消息体验2025-03-06
  14. 如何使用WPS 2019 Word制作工厂委外加工计划表2025-03-06
  15. 如何轻松查询车险保单2025-03-07
  16. 如何运用PS制作出令人眼前一亮的曝光效果2025-03-09
  17. xp系统找不到secureboot选项 宏碁台式机boot setup找不到硬盘选项?2025-03-16
  18. 上古世纪鱼饵怎么弄(上古钓甲鱼的配方?)2025-03-22
  19. python全栈工程师待遇 前端WEB好入门还是Python好入门?2025-03-28
  20. 手机没外音了如何恢复 华为nova7 pro突然没外音怎么回事?2025-03-14
  21. 地图怎么创建自己公司的位置 如何在腾讯地图上加商家名称?2025-03-11
  22. mysql存储过程获取异常信息 如何获取存储过程的返回值和输出值?2025-03-30
  23. 腾讯企业邮箱免费版注册 什么是企业邮箱?企业邮箱有什么作用?2025-03-31
  24. 如何查看Office2007的版本及其区别2025-03-07
  25. 红米note死机开不了机怎么回事 红米Note开不了机2025-03-14
  26. cdr怎么调出调色板2025-03-15
  27. 零食店 想用网络爬虫做毕业设计,有什么视频资源和学习网站可推荐吗?2025-03-31
  28. iphone不能切换深色模式 ios16深色浅色切换不过来?2025-03-22
  29. 服务器域名是什么? 如何在一个服务器上放两个网站,分别用不同的域名访问?2025-04-01
  30. cdr不封闭的形状填充颜色2025-03-13
优质自媒体
优质自媒体 微信号:优质自媒体 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 seo具体怎么优化 网站首页如何优化?

    网站首页如何优化?网站首页的重要性不言而喻,用户在浏览网站的时候,首先看到的就是网站的首页,它不仅要把有价值的内容和网站的核心传达给用户,还要吸引用户,让用户长时间的停留在网站中,所以,在优化网站的过程中,一定要注重网站首页的优化。网站首页

  2. 2 hashcode是什么 hashCode相同,却不相等?

    hashCode相同,却不相等?首先,hashcode是相同的,表示相同的内存地址。Hashcode是一种根据对象属性的定义来判断对象是否相同的方法。如果hashcode相同,equal确定两个对象相同,即内存地址相同。如果两个对象相同,那

  3. 3 1一9的乘法口诀表 小学几年级学乘法口诀?

    小学几年级学乘法口诀?小学一年级 九九乘法口诀表。学基础加减乘,二年级完善乘法口诀表,学会混合运算,基础几何图形,三级乘法交换律,几何面积 周长 等,时间量及单位九九乘法口诀表,小孩子学习是横着念背诵好还是竖着念背诵好?我是小学老师,今年

  4. 4 万网域名交易 创建一个网站,购买域名需要花多少钱?

    创建一个网站,购买域名需要花多少钱?这个问题非常广泛。我不知道你们对网站域名是否有特殊要求。如果你没有任何旧域名,蝙蝠侠it会分别介绍它们的特点供你参考:1。新域名它不是新域名的特殊类型。它的价格更实惠。域名的价格主要由域名的后缀、长度和含

  5. 5 java中构造方法的定义 Java教程里抽象类的意义是什么?如何使用抽象类?

    Java教程里抽象类的意义是什么?如何使用抽象类?抽象类是将许多特定事物的共同特征和方法分离出来,可以提高代码的可重用性。同时,它可以把子类的具体方法留给子类,这样子类就不需要实现所有的方法,只需要实现自己的业务逻辑。通常,抽象类可以用在模

  6. 6 java的四种引用方式 java的基本数据类型有哪些

    在日本,我们通常用最重要的词。主要原因是多用糖,LINQ真的好用,下visualstudio。不过,为了进一步的目的,它是java。下面是一个小科托巴。>相互比较的能力没有差别。1) 至于小费,当然利润是好的,而且它在全国基本都是有用的,而

  7. 7 小程序制作一个需要多少钱 你用python写过哪些好玩的微信小程序?

    你用python写过哪些好玩的微信小程序?首先要明确Python是后台语言,不能直接用Python编写微信小程序。微信小程序是用JavaScript和CSS编写的。Python仅用于为小型程序提供背景数据。Java和PHP还可以为小程序提供

  8. 8 网络营销的要求 网络营销专业毕业,可以做什么工作?

    网络营销专业毕业,可以做什么工作?中国每年有数百万的毕业生。不管毕业生是什么专业,找到与自己专业相适应的工作对他们来说无疑是最好的。但现实情况是,大约70%的学生正在寻找与自己专业不符的工作。所以你不一定能在任何专业找到相应的工作。专业不分

  9. 9 公司财务报表软件 哪里可以找到优质的财务分析报告?

    哪里可以找到优质的财务分析报告?据我所知,许多金融平台提供这样的服务,但他们都是会员制的,必须付费。以旺德为例。基本会员的年费在5万元左右。服务内容包括行业信息、股票研究、政策解读、投资机会、风险评估等,对于个人投资者来说,成本太高,有些功

  10. 10 怎么知道是不是八进制数 如何判断一个数是八进制数?

    如何判断一个数是八进制数?第一个是字母O。由0-7组成的数字是八进制数。如果有8和9这样的数字,那么八进制数是错误的从八进制数本身的角度来看,只要值是由0到7组成的,就可以认为是一个合法的八进制数。合法的八进制数怎么判断?二进制是每2进位一

Copyright 2025 优质自媒体,让大家了解更多图文资讯!百度地图 360地图