在java编程中new有分配内存的作用,那么为什么要分配内存呢?

 我来答
nklnklnklnkl
2013-02-12 · 超过14用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:42.4万
展开全部
...................根据冯诺依曼结构(现代计算机基础架构),所有程序和数据的运行都必须在内存完成(因为cpu指令长度只能编址内存,硬盘就太大了而且也太慢),所以你要初始化程序中的变量就必须首先给予其一定的内存空间,这就是new的作用。
小童鞋_成er
2013-02-12 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
您好,提问者:
因为内存是用二进制来表示的,如果是java中int类型的,那么就占2个字节,比如:int a = 1;那么在内存中表示就是0 1!
如果提问者对这块不懂,那么请去看JVM运行原理!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-02-12 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:679万
展开全部
这个和国家为什么要分配你房子一个道理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7c4d02b
2013-02-12 · 超过17用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:26.6万
展开全部
吃饭。会占用自己肚子的空间。。为什要占肚子的空间呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
与沫__
2013-02-12 · TA获得超过229个赞
知道答主
回答量:75
采纳率:100%
帮助的人:72.3万
展开全部
任何程序想要执行,都要转化为进程态,计算机的取指令操作是针对内存里的内容进行操作的,也就是说,所有运行的程序都必须在内存中才可以被CPU读取以及修改等。
在java中,基本数据类型,比如int,double这类,不占用太多内存空间,所以声明的时候也就在虚拟机中分配了一块内存空间。而我们知道java是面向对象的语言,所以类以及对象,是我们操作的主要内容。而一个对象则可能非常复杂,占用的内存空间也可能非常的大。而实际工作中,我们发现,并非所有的对象都需要重新独立的申请一块内存空间,而是有很大一部分对象引用的是用一个对象的数据,所以只需要引用就可以满足,有些对象仅仅是起到了声明作用,也不需要实际分配内存空间。所以,在java中,采用new操作符来分配内存空间,这是对内存优化的一种重要功能。

下面我举个例子:
Employee A = new Employee("Jack");
Employee B = new Employee("Jack");
Employee C = A;
private Employee D;

这四个语句,前两个尽管都创建了同样一个员工对象,名字是JACK,但是在内存中A和B分别被分配了两块不同的区域来存储,对A或者B进行操作不会改变另一个的值和状态。C被赋值为A,而C没有通过new操作符申请新内存,所以他和A共享一块内存空间,修改C的值也会同时改变A的值。
第四条语句,这是一个实例域的声明语句,他只是声明了D标识符可以代表一个Employee对象,而这个语句执行完,没有实际分配内存,只有在程序运行初始化时,通过new操作符才真正的为它开辟一块内存空间。

如果不用new来进行限制,所有的对象都立刻分配内存的话,那么程序启动会会瞬间占满内存,计算机速度性能受到很大影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式