JavaBean】String类型所接收的字符串在哪进行存储?

2020-12-07 19:10发布

3条回答
summer
2楼 · 2020-12-08 10:33

如果使用常量的方式,该对象将被存储在常量池(永久代)

如果使用new的方式,该对象将被存储在堆


小微
3楼 · 2020-12-09 18:14

需要存储的代码元素有:

  • Class类文件

  • 方法,类的所以实例应该共用一段方法

  • static字段

  • 字符串常量

  • 值常量

  • 类实例

  • 各种引用

  • 基本变量
    他们各自有各自的存储位置,方法内的引用存在方法栈,类内的引用存在堆,类存储在堆上,方法中的局部基本变量存于栈但是类字段的基本变量存在堆上(方法区内)。
    值得一提的是方法区(又叫静态区),其存储值常量、字符串常量、方法、静态字段、.class文件,等只用一个备份的数据。
    栈和方法区都有共享数据的功能。
    因此使用简化方法构造String类的时候,在方法内和类内会将字符串存于栈/方法区,这无关紧要,重要的是,
    使用这种构造方法,如果没有所构造的字符串常量存在于内存中,那么会在栈/方法区中存上一份,然后再堆中新建一个String类,把String类的char[]引用指向在栈/方法区中的字符串常量;
    如果所构造的字符串常量已经存在于内存中,那么则会检索关联与之对应的堆中String实例,并直接使用这个String类实例。
    只有使用简化方法构造才能被栈/方法区记录下来,如果使用new则不行,这也是为什么上例即使先new,再使用简化构造相同字符串也不会引用相同。
    因为new出来的String实例的字符串常量存储在堆上,和栈/方法区无关。


天天
4楼 · 2020-12-13 19:38

字符串是由一个个字符组成的,一个个字符又组成了字符数组,在String类的底层,其实是把字符串转换成字符数组存放在堆中的。

相关问题推荐

  • 回答 9

    Java的线程生命周期有六种状态:New(初始化状态)Runnable(就绪状态)Running(运行状态)Blocked(阻塞状态)Terminated(终止状态)

  • 回答 7

    同步块是更好的选择,因为它不会锁住整个对象(当然你也可以让它锁住整个对象)。同步方法会锁住整个对象,哪怕这个类中有多个不相关联的同步块,这通常会导致他们停止执行并需要等待获得这个对象上的锁。...

  • 回答 6

    通过在线程之间共享对象就可以了,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞队列BlockingQueue就是为线程之间共享数据而设计的

  • 回答 16

            Vue.js是一款流行的JavaScript前端框架,一个用于创建用户界面的开源JavaScript框架,旨在更好地组织与简化 Web开发。        Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现...

  • 回答 9

    1、throw和throws两个都是Java语言中的关键字2、throw关键字是用来抛出异常对象,throws关键字是用来声明声明异常的类型3、throw只能抛出一个异常对象,throws可以抛出多个异常类型

  • 回答 4

    线程从创建到结束的一个过程就是线程的生命周期。在线程的生命周期中,有不同的状态来描述。状态的罗列:新建态:线程刚刚创建之后的状态就绪态:准备好了各种资源,等待cpu来临运行态:正在运行的状态阻塞态:线程休眠,IO,等到锁对象死亡态:线程正常执行...

  • 回答 4

    MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。

  • 回答 1

    都是为了完成数据的封装可以理解为一种数据结构

  • 回答 2

    就业老师会给讲怎样撰写简历,培训面试技巧,技术老师也会给梳理项目,整的明明白白的,然后进行多轮的模拟面试,后面就业老师也会一直跟踪班级学员情况,还会给推荐一些岗位,...

  • 回答 4
    已采纳

    由于我们是是刚开始学习java知识,对相应的知识点还不是太了解,这个时候我们需要制定一个详细的计划,根据自己能进行学习的时间和自己的学习能力实际情况进行确定,不要好高骛远,第一天要学习20个小时,然后接下来几天都觉得第一天学习太累,再休息几天,这...

没有解决我的问题,去提问