C++与Java的区别
来源:互联网 发布:淘宝权微博 编辑:程序博客网 时间:2024/06/05 02:54
毕设写是cocos, 用到的语言自然是C++,之前用的是Java,在写C++时,发现Java把局部变量的概念削弱了(C++ 确实比 Java 难写)
先列出几个定义
栈:函数运行时静态变量存放的地方,由于是静态变量,在编译时就已经给定了。
堆:函数运行时动态变量(即 new malloc),在运行时存放在堆中。
回收:栈的话,在运行这个函数之后,所有空间将被回收。给下一个函数存放。堆的话,除非delete,将一直存在,直到这个程序退出。(其实 内存泄漏,是针对这个程序而言的)
关于栈如下图所示:
运行hello()
运行结束,清空栈相关区域(所谓的“清空“并非清洗,数据仍在,只是置为可写,下次写入即替代掉)
运行world()
运行结束,清空栈相关区域
这就是静态变量,栈之间的关系。
上面有一处值得注意:
stu在运行hello结束之后即被回收,如果我在main中有一变量vector, 在hello中push(stu),执行hello结束后会怎么样呢?
想想如果发生在java上,会是如何?
这就是Java削弱了局部变量的概念,或者说Java将所有变量(至少类变量)都存放在堆上,所以无需考虑这东西
如果觉得有误的地方,欢迎指正。
如果觉得有道理,看在我画图的份上(LibreOffice画的,你懂的),给个赞。
0 0
- java与C的区别
- C与java的区别
- C与Java的区别
- 初学java java与C的区别
- C++与C的区别, C++ 与Java区别
- java与C区别
- Java与C及C++的区别
- Java与C/C++的区别
- java与c中数组的区别
- java与c,c++的区别
- Java与C/C++的区别
- C#与C++、JAVA的区别
- [zt] Java与C/C++的区别
- JAVA 中printf与c的区别
- JAVA与C/C++的区别
- Java与C语法上的区别
- Java与C/C++的区别
- java与c、c++的区别
- RecyclerView 添加 Footer and Header
- UIAppearance 基本使用
- Android签名制作,keystore文件转换格式为pk8+x509.pem
- CSS强制设置样式
- Android关于身份证号码的验证
- C++与Java的区别
- Java使用jdbc连接数据库
- 七大常用PHP算法
- Bootstrap Datetimepicker 年月日时分秒控件
- ipconfig查询时默认网关会出现0.0.0.0问题的解决
- 红黑树
- Gson解析
- XSS的原理分析与解剖(第二篇)
- 装箱和拆箱