zoukankan      html  css  js  c++  java
  • 浅谈C与Java

    Java的方法调用过程

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

    push

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

    pop

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

    C的函数调用过程

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

    push

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

    pop

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

    总结

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

  • 相关阅读:
    confluence --常用插件整合
    fuse--s3挂载到centos7.5服务器
    gvm--go版本管理工具
    等保1.0与等保2.0的区别
    postfix -- 发件调试
    postfix邮件服务器
    confluence -- 命令行备份还原
    浏览器使用小tip
    windows如何正确下载补丁包
    xwiki使用中的问题
  • 原文地址:https://www.cnblogs.com/zzzz76/p/8424926.html
Copyright © 2011-2022 走看看