Comments (4)
严谨一点应该这么问:
Java 程序在 JVM 中运行时,全局变量和局部变量在虚拟机的什么位置?
粗略回答:一个是堆一个是栈。
from android-discuss.
java中没有全局变量这一说吧?
from android-discuss.
@zimoguo 其实就是静态变量,Java 程序一旦加载完毕就能获取到的变量。
from android-discuss.
这个问题太难回答了...
静态变量的话
粗暴一点你可以说是 堆
但是你也可以说在 Permanent Generation 或者 Method Area(方法区)
糟糕的是,对于不同虚拟机实现,Permanent Generation实现方式可能不同,或者根本不存在
Method Area也是个很暧昧的东西。
局部变量
我觉得不是很对...
稍微详细一点讲。。
在方法调用时,会首先载入 方法的帧栈,局部变量在方法帧栈的局部变量区中。
如果局部变量是个基本数据类型,那么直接在帧栈中。
如果是非基本类型,那么会在堆中创建对象,帧栈中持有该对象的引用。
糟糕的是,引入JIT以后,编译器可能会对这部分代码进行优化,引入一个叫 栈上分配 的优化策略。
在该策略下,本来应该在堆中创建的对象可能会被拆解成基本类型并直接在帧栈上分配。
from android-discuss.
Related Issues (20)
- 微信朋友圈是怎么做到点击图片看大图可以一直滑,查看你的所有图片的(从你的第一条可以一直滑到最后一条),是不是做了数据库缓存,然后分页拿?不然这么多数据 intent 传值也会超过限制大小吧。会是什么策略呢? HOT 1
- 【求助】Android9.0 AudioManager丢失音频焦点无效问题
- Retrofit GsonConverterFactory 解析带有转义符的数据 HOT 3
- 各位遇到过对自己的内部存储空间没有访问权限的情况吗? HOT 16
- 【求助】gradle中的依赖报错,已经配置了项目仓库但是还是无法解析是什么原因?
- 华为P20 QQ 微信打开文件-其他应用打开,显示不出自己的应用图标是咋回事 HOT 6
- 怎么在VS上打开github考下来的项目?需要哪些软件?
- 【问答】国产手机如何获取锁屏通知、横幅通知权限是否打开? HOT 5
- 【提问】为什么 codekk 需要 github 用户所有的写入权限
- 【问答】Android 中通过MediaPlayer播放视频如何切换原伴唱 HOT 2
- [问答] 使用蓝牙耳机的麦克风录音的方案有哪些?
- [问答]Android SN就是存储在/vendor/nvdata/APCFG/APRDEB/PRODUCT_INFO的前64位吗?
- []
- [问答] 如何让自己的 app 中禁用第三方软件的 AccessibilityService 对其操作。
- 短视频模替换素材是怎么实现的?
- 怎么限制FlexboxLayout 一行显示的个数再换行
- Android组件化后 本地数据库如何设计 HOT 2
- 怎么限制FlexboxLayout的行数,并且多出的部分在末尾显示.....? HOT 1
- vivo 应用市场的包,无法自动更新 HOT 1
- room 存取操作
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from android-discuss.