Java:成员变量、局部变量、局部变量数组的初始值
2022/4/22 14:12:55
本文主要是介绍Java:成员变量、局部变量、局部变量数组的初始值,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
看到一个题解,发现int[] a = new int[10];没有赋初值就直接用了,因为印象中局部变量没有默认值的。。。。
成员变量
- 成员变量如果未初始化,会有默认的初始值的:
boolean:false
byte:0
short:0
char:
int:0
long:0
float:0.0
double:0.0
String:null
String[]:null
- 有一点奇怪,char类型变量后面什么也没有输出。不过,这并不是char类型变量没有默认值,而是默认值为“空字符”,也就是‘\u0000’,数值为0,我们可以证明一下。
package deep; public class CharDefaultValue { static char c; public static void main(String[] args) { System.out.println((int) c); System.out.println(c == '\u0000'); } } //---------------------测试结果 0 true
局部变量
- 相对于成员变量,局部变量没有默认值(不管是什么类型),如果试图使用一个局部变量的值,而这个局部变量尚未初始化,就会产生编译错误,例如:
public static void main(String[] args) { int value; System.out.println(value); }
错误提示:
The local variable value may not have been initialized
局部变量\(\color{red}{数组}\)
- 对于数组而言,如果数组使用new在堆上分配了空间,则数组的元素就会获得默认值,即使数组变量为局部变量也是如此。
public static void main(String[] args) { int[] value = new int[10]; System.out.println(value[0]); } //结果:0 0 0 0 0 0 0 0 0 0
可以把数组的元素看作是
数组的成员变量(实际上不是)
,当数组分配空间
时,数组的元素(行为类似于成员变量)就可以获得默认的初始值
。不过,对于局部变量数组本身(即value),如果没有初始化,同样没有默认值。
(如下)String[] a = new String[10];//有 int[] b;//不new的话还是没有!!!!会直接报错 for( String i : a ) System.out.print( i + " " ); for( int i : b ) System.out.println(i + " " );
- 错误:
参考
这篇关于Java:成员变量、局部变量、局部变量数组的初始值的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding