浅谈C与Java

Java的方法调用过程

Java变量:基本类型变量、指针变量

push

  • 压入新的栈桢
  • 在栈桢内部创建局部基本类型变量,接收参数值
  • 在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向堆上实例

pop

  • 弹出栈桢
  • 基本类型变量和指针变量均被销毁
  • 弹出原始栈桢
  • 指针变量被销毁,堆上实例被垃圾回收
  • 当然如果上层栈桢有接收,此实例将不会被回收

C的函数调用过程

C变量:基本类型变量、结构体、枚举、指针变量

push

  • 压入新的栈桢
  • 在栈桢内部创建局部基本类型变量,接收参数值
  • 在栈桢内部创建局部结构体变量,接收参数值(内存重复消耗,未面向对象)
  • 在栈桢内部创建局部枚举变量,接收参数值(内存重复消耗,未面向对象)
  • 在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向原始栈桢上的基本类型变量、结构体、枚举、指针变量

pop

  • 弹出栈桢
  • 该栈桢上的所有变量均被销毁
  • 弹出原始栈桢
  • 原始栈桢上的基本类型变量、结构体、枚举、指针变量被销毁
  • 当然手动申请和初始化的空间不手动处理是无法回收的

总结

C比Java更精致,自己看着用。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值