键盘手C 2016-05-10 10:02 采纳率: 60%
浏览 1091

java中的几个存储机制

新人初学java,有几个问题一直搞不懂,所以求教各位,感激不尽
1.关于堆栈和堆得问题,现在有这样一种说法,说是变量的存储机制是根据他的作用域决定的,一个方法里定义的变量,则这个变量在这个方法结束后,就会被销毁,所以他的存储的生命期是定好的,所以会存到栈里(堆栈),然后如果是定义的全局变量,是放在堆里的,但是我又看到书上说一般基本数据类型(byte,short,int long,float,double,char)这些是存放在栈里的,而引用数据类型,数组,对象(new过得,分配过内存的),是存放在堆里的,这里我就不懂了,如果我在一个类的方法里定义了另一个类的对象,那这个对象到底是存放在栈里呢,还是堆里呢?有点糊涂,还有String这个类,他好像作为一个数据类型(String a = "xxxx")这种形式,是存放在常量池里,而(String a = new String)这种形式好像是存放在堆内存里,对于这个常量池的概念我不是很懂,还望各位解答,(好像finall,static定义的是放在这里的),还有一种说法,说是存放在堆里的数据,在栈里都有一个引用(地址)是指向这个堆内存的,不知道这么理解对不对.

  • 写回答

3条回答

  • 温柔狠角色 博客专家认证 2016-05-10 12:40
    关注

    存放在堆里的数据,在栈里都有一个引用(地址)是指向这个堆内存的 这句话OK

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug