什么时候用new创建对象,什么时候用一般声明的形式
来源:互联网 发布:应届毕业生 知乎 编辑:程序博客网 时间:2024/04/30 17:43
【jixingzhong】:
事实上 没有绝对的分界线 ~~
你可以 new ,
也可以 局部定义 ~~
只要注意一下对象的生命期就可以了
【jixingzhong】:
在一些情况下,
new 具有优势,
比如 new 得到的对象在 堆空间,
在 堆 上可以存放比较多的内容 ~~
直接定义对象是在 栈 上,
可能空间不足,
但是栈上对象的操作过程会更迅速 ~~
【owlling】:
这个问题光有语言的知识是很难理解的,这样说吧。程序在内存里运行有个单位,这个单位叫做进程,进程呢,有三个部分,分别叫做静态储存区,栈,堆。
静态储存区呢,主要放的是全局变量和静态变量(还包括字符串常量等等)。他们的生存期是涵盖整个程序的
栈呢,放的是局部变量,他的生存期就是他所处的语句块(也就是离他最近的一对{}),离开了他的生存期他就失效了,你所谓的一般声明形式就是这种情况
最后,由于栈的空间是非常有限的,又是完全归系统管理的,所以当不够大,或者需要自己管理内存的时候。你就得使用堆上的空间所以你要用new申请,用delete或者delete[]归还,在进程的范围内,该内存的生存期就完全由你操作了;
==================================
欢迎访问我的个人主页:http://www.lingjie.net/
==================================
事实上 没有绝对的分界线 ~~
你可以 new ,
也可以 局部定义 ~~
只要注意一下对象的生命期就可以了
【jixingzhong】:
在一些情况下,
new 具有优势,
比如 new 得到的对象在 堆空间,
在 堆 上可以存放比较多的内容 ~~
直接定义对象是在 栈 上,
可能空间不足,
但是栈上对象的操作过程会更迅速 ~~
【owlling】:
这个问题光有语言的知识是很难理解的,这样说吧。程序在内存里运行有个单位,这个单位叫做进程,进程呢,有三个部分,分别叫做静态储存区,栈,堆。
静态储存区呢,主要放的是全局变量和静态变量(还包括字符串常量等等)。他们的生存期是涵盖整个程序的
栈呢,放的是局部变量,他的生存期就是他所处的语句块(也就是离他最近的一对{}),离开了他的生存期他就失效了,你所谓的一般声明形式就是这种情况
最后,由于栈的空间是非常有限的,又是完全归系统管理的,所以当不够大,或者需要自己管理内存的时候。你就得使用堆上的空间所以你要用new申请,用delete或者delete[]归还,在进程的范围内,该内存的生存期就完全由你操作了;
==================================
欢迎访问我的个人主页:http://www.lingjie.net/
==================================
- 什么时候用new创建对象,什么时候用一般声明的形式
- c++里面创建对象,什么时候应该用new什么时候应该直接创建?
- C++什么时候用new,什么时候不用new
- C#中的interface一般在什么时候用
- 什么时候用表达式方法声明函数
- JSON对象的遍历,什么时候用点.什么时候用中括号[]?
- 什么时候用Application的Context,什么时候用Activity的Context
- 什么时候用Application的Context,什么时候用Activity的Context
- 什么时候用指针的指针 **
- mybatis的jdbcType什么时候用?
- 探讨声明UI控件属性 什么时候用weak什么时候用strong
- c++中,什么时候用 A a;和什么时候用A a=new A;
- c++中,什么时候用 A a;和什么时候用A a=new A;
- c++中,什么时候用 A a;和什么时候用A a=new A;
- c++中,什么时候用 A a;和什么时候用A a=new A;
- 关于application,session,request对象什么时候创建、销毁的问题
- 什么时候用抽象类,什么时候用接口
- 什么时候用GET?什么时候用POST?
- Registering the File Types Your App Supports
- TortoiseSVN使用教程
- cmwap与cmnet的区别
- java.util.ConcurrentModificationException错误的解决方法
- Vi使用方法
- 什么时候用new创建对象,什么时候用一般声明的形式
- 今天更新SDK到11
- Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解 .
- 串讲23种设计模式
- Android 使用系统限制的权限的apk应安装到 /system/app 目录下
- ssd2531 Capacitive Touch Panel driver
- C/C++语言Windows编程基础 - 概述
- 设计模式笔记之工厂模式--简单工厂模式(Simple Factory Pattern)
- (转)C语言写文件或日志