java与C语言 变量初始化与默认值
发布日期:2021-06-20 05:37:03
浏览次数:6
分类:技术文章
本文共 541 字,大约阅读时间需要 1 分钟。
java与C语言 变量初始化与默认值
C语言中,定义局部变量时如果未初始化,则值是随机的,为什么?
- 定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的。
java 局部变量未赋值就初始化,编译报错,而类变量和实例变量被Java默认初始化为0值。
- Java全局变量和局部变量都是需要初始化的。这是因为使用没有初始化的变量是不安全的。只不过全局变量的初始化工作可以交给JVM。而为什么局部变量不可以呢。我认为是出于性能等多方面的考虑: 成员变量的值存放于堆中,JVM在分配内存时将整块区域置为零即完成了初始化,方便快捷。而局部变量运行时被分配于栈中,量大,生命周期短,如果由JVM完成初始化,将是一笔很大的性能开销。所以java明文规定局部变量必须初始化。
Java的全局变量分为:
- 普通变量:在类被实例化时初始化
- final修饰的变量:必须初始化,否则编译器报错
- static修饰的变量:在类加载的时候初始化
Java初始化的位置分为:
- 定义时初始化
- static代码块初始化
- 非静态代码块初始化
- 构造函数初始化
转载地址:https://blog.csdn.net/h2453532874/article/details/88086671 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月03日 22时07分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
写给木兰编程语言研发团队的公开信
2019-04-26
为什么要急着为「木兰」编程语言贴上“造假”的标签?
2019-04-26
编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不”
2019-04-26
各大媒体对「木兰」编程语言的不当言论盘点
2019-04-26
戳破针对「木兰」编程语言的拙劣谣言
2019-04-26
为「木兰」编程语言添加对中文命名标识符的支持
2019-04-26
悬赏万元,重现「木兰」编程语言编译器
2019-04-26
跳出编程语言本身看中文编程语言设计
2019-04-26
RPLY 入门例程中文化
2019-04-26
木兰编程语言入门教程之一——浅介
2019-04-26
木兰编程语言入门教程之二——控制走向
2019-04-26
基于「木兰」编译器,加十行代码实现 ∈ (属于集合)语法
2019-04-26
创建安卓键盘演示——“好不”
2019-04-26
木兰编程语言入门教程之三——函数和类型
2019-04-26
基于「木兰」逆向工程用 pyinstaller 生成可执行文件
2019-04-26
从微盟事件看商业数据公开化的必然趋势
2019-04-26
为新语言编写Visual Studio Code语法高亮插件
2019-04-26
手机编程环境初尝试-用AIDE开发Android应用
2019-04-26
Java关键字的汉化用词探讨
2019-04-26
程序员面试时用中文命名写白板代码的好处
2019-04-26