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星
用户评分:
发表评论

评论

  • 暂无评论信息