首页 > 编程语言 >Java笔记2

Java笔记2

时间:2022-09-30 20:24:04浏览次数:47  
标签:调用 Java 变量 静态 初值 局部变量 笔记 函数

静态变量 类型说明符是static。


静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。

另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。

所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。

静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。



一、静态局部变量:

1、 Static类内部变量同auto自动变量(即未加 Static 声明的局部变量)一样,是某个特定函数的局部变量,即只能在定义该变量的函数内使用该变量,2者作用域相同;两者的不同在于:auto自动变量会随着函数 被调用和退出而存在和消失,而static类局部变量不会,它不管其所在的函数是否被调用,都将一直存在;不过,尽管该变量还继续存在,但不能使用它。倘 若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。换言之,Static类型的内部变量是一种只能在某个特定函数中使用,但一 直占据存储空间的变量。

2、函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)。而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。

3、静态局部变量的初始化表达式必须是一个常量或者常量表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。而对自动变量auto来说,如果不赋初值则它的值将是个不确定的值。

4、当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

注:局部静态变量占用内存时间较长,并且可读性差,因此,除非必要,尽量避免使用局部静态变量。

标签:调用,Java,变量,静态,初值,局部变量,笔记,函数
From: https://www.cnblogs.com/YFLZ/p/16746003.html

相关文章

  • Java实现6种常见排序
    1.冒泡排序(BubbleSort)第0轮3141592653589第1轮1314526535899第2轮1134255356899第3轮11324535568......
  • 《代码大全2》阅读笔记
    《代码大全》看完前面觉得有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍。本书的思想管理软件项目的本质是管理复杂性。代码承载的是人与人之间的交流。在......
  • java多线性--线程创建
    java多线性--线程创建什么是多线程:不同的功能同时进行Process(进程)与Thread(线程)进程是执行程序的一次执行过程,是一个动态的概念。是系统分配资源的单位。一个进程分为......
  • 代码大全1第二篇阅读笔记
    第二章:用隐喻更充分的理解软件开发1、当将软件的构建过程比作房屋的构建过程时,可以发现,仔细的准备是必要的,发生变动时最贵的成本是人的时间,而大型项目和小型项目之间也有差......
  • java字符串输入然后语音输出
    1.将jacob.jar考到项目中进行构建路径。2.将jacob-1.17-M2-x32.dll或者jacob-1.17-M2-x64.dll,考到系统盘:\Windows\System32\下面。3.将jacob-1.17-M2-x32.dll或者jacob-......
  • 《程序员修炼之道:从小工到专家》九月份阅读笔记篇一
    本篇是关于此书第一章《注重实效的哲学》的相关阅读笔记一、我的源码让猫给吃了书中说,依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负......
  • 代码大全1第一章阅读笔记
    第一章:欢迎进入软件构建的世界1、什么是软件构建?开发计算机软件已是一个复杂的过程,在过去的25年间,研究者已经认识到在软件开发过程中的各种不同活动。主要分为:定义问题,......
  • 《代码大全2》阅读笔记-9月part2
    四部分是语句,这是构建程序主体的基本构成单元,比变量又高了一级。这部分主要描述语句的组织结构,比如直线型、循环控制、条件控制、表驱动等。一般的方法比如条件循环等等,大......
  • java 前后端开发模式简单说明
    实际上我以前写过一个简单的web前后端部署模式的说明,以下简单说明下关于java语言的,毕竟这个使用人群比较多参考图前后端彻底分离模式(都独立部署)  web使用基于......
  • 《代码大全2》阅读笔记-9月
    一部分是打好基础,本部分主要是软件构建前期的工作,以及对一些基本概念的介绍,具体包括如何选择编程语言和构建实践方法,如何理解软件开发的过程。软件开发本质上说就是工程,书......