zoukankan      html  css  js  c++  java
  • JAVA中for与while关于内存的细节问题

    文/朱季谦

         JAVA的程序结构有顺序结构,循环结构,分支结构,以及跳转结构,而循环结构里经常用到的无外乎有以下几种:for循环,while循环,以及do-while循环。本文主要讨论for循环与while循环的区别,其实,两者在日常编程过程里,都是可以互换的,唯一有区别的在于格式上,若需要通过变量来进行循环控制,而用到的变量只作为循环增量存在时,两者就会在内存上出现了差异。

       在用while来做循环时,需要用到变量进行循环控制时,往往会定义一个成员变量,例如截图里的i,它的值会存在堆内存里,会随着类的存在而一直存在,即使循环结束了,也不会自动释放,只有当类结束了才会消失,换言之,即会占用内存。

    而用for循环时,若需用到变量进行循环控制时,往往会定义一个局部变量,类似以下截图所示:

    这里的变量j属于局部变量,定义的值存放在栈内存里,当循环结束后,它会自动释放j的值,即不会继续占用空间。

    由此可知,for循环与while循环虽然两者都可以互换,但在细节方面上,其实还存在是否占用内存的问题,相对于while,for在需用到变量进行循环控制时,for比较少占用空间。关于空间占用问题,其实也需要关注才行,毕竟涉及到程序优化问题。

  • 相关阅读:
    一步一步写平衡二叉树(AVL树)
    sql关键字
    Remoting技术的应用
    算法:最大公约数
    算法冒泡排序
    C#编码好习惯
    利用VB.Net编程实现PC与掌上电脑PPC间的双向通信
    .Net Remoting与Server 对象详解
    算法迭代和递归
    SQL关键字系列之:minus与intersect
  • 原文地址:https://www.cnblogs.com/zhujiqian/p/10542231.html
Copyright © 2011-2022 走看看