新人初学java,有几个问题一直搞不懂,所以求教各位,感激不尽
1.关于堆栈和堆得问题,现在有这样一种说法,说是变量的存储机制是根据他的作用域决定的,一个方法里定义的变量,则这个变量在这个方法结束后,就会被销毁,所以他的存储的生命期是定好的,所以会存到栈里(堆栈),然后如果是定义的全局变量,是放在堆里的,但是我又看到书上说一般基本数据类型(byte,short,int long,float,double,char)这些是存放在栈里的,而引用数据类型,数组,对象(new过得,分配过内存的),是存放在堆里的,这里我就不懂了,如果我在一个类的方法里定义了另一个类的对象,那这个对象到底是存放在栈里呢,还是堆里呢?有点糊涂,还有String这个类,他好像作为一个数据类型(String a = "xxxx")这种形式,是存放在常量池里,而(String a = new String)这种形式好像是存放在堆内存里,对于这个常量池的概念我不是很懂,还望各位解答,(好像finall,static定义的是放在这里的),还有一种说法,说是存放在堆里的数据,在栈里都有一个引用(地址)是指向这个堆内存的,不知道这么理解对不对.
java中的几个存储机制
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
悬赏问题
- ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
- ¥15 Matlab怎么求解含参的二重积分?
- ¥15 苹果手机突然连不上wifi了?
- ¥15 cgictest.cgi文件无法访问
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题