String s="123"; 到底在栈中,堆中干了什么?

String s="123"; 到底在栈中,堆中干了什么?

这个是不是JVM的知识啊?我目前学了一些Java的基础语法,但是发现好多这种问题解决不了,想学更多知识,这个是不是学了JVM会好理解些还是学习什么?

还有String s=new String("123"); 在栈中,堆中干了什么?

求老师解答,谢谢。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
String s = new String("123");

你可以理解做了3件事,一是在栈中定义了一个引用类型的变量s,二是在堆中申请了一块内存把"123"保存进去,三是把堆中申请的这块内存的地址赋值给s。

另外和你说一下目前你就是学开车,这也是你以后的主要工作内容,JVM这种东西就和汽车是怎么造出来一样,诚然一流的赛车手对于汽车的各个配件都是非常了解的,但在学开车的初期千万别把注意力花在这上边,会给自己添加负担的。

初期看些入门些的书《Head First Java》或者《明解Java》都是可以的。

  • 慕容2892559 提问者 #1
    好的,知道了,谢谢你。那String s="123"; 这个是干了什么呢?
    2020-04-03 15:19:32
  • 苍星乱舞 回复 提问者 慕容2892559 #2
    一样的,因为创建字符串是常用操作,所以提供了一个简便写法。
    2020-04-03 15:22:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师