java为什么样要设计静态方法?JVM堆栈和C/C++堆栈的关系是什么样
时间:2017-12-21 21:00:02
浏览:次
点击:次
作者:
来源:
立即下载
静态的只能和静态的玩?为什么要这样设计呢?难道是为了满足main函数和类加载机制???
要说设计目的,故事就长了。
话说java的亲爹:oak,就是当时sun公司根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的①些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求而开发的。个人猜测oak中也有类似c++或当前java中静态成员与方法的部分,而java传承了下来。所以不论如何这个问题的答案应该去c++的设计中找。
众所周知,不论是c++,java还是入土为安的oak都是面向对象程序设计语言,而面向对象这个概念是在 结构化设计 出现诸多问题后应运而生,①⑨⑧③年,c++作为以结构化语言c语言为基础的面向对象语言诞生,进①步扩充和完善了C语言,并且可能是出于当时c语言程序员比例非常高,标准可以编译很多c代码,这样①款本来为了面向对象设计的语言混合了结构化设计的思想,变得不伦不类也好,更为灵活也罢:总之,静态方法与成员就是①个最能说明事实的设计体现。
静态方法,只能访问静态成员,两者会在类加载的同时载入到内存中,并且由类与所有类实例共用,像极了c语言中的函数与全局变量的加载方式。
回到现在看静态方法只不过是为了兼容旧思想旧语言而设计,但带来的好处之多其他答主也讲得清楚了,毕竟静态方法算是①切皆对象的java开的个小后门吧。
这篇文章会给你答案
JVM stack可以分配在堆(heap)空间中,虚拟机规范并不约束如何处理
平均评分
0人
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
