java 中char 的初始值
jdk官方教程里有写
Default Values(缺省值)
-----------------------------------------------------
|Data Type |Default Value (for fields)|
-----------------------------------------------------
|byte | 0 |
|short | 0 |
|int
| 0 |
|long | 0L |
|float | 0。
0f |
|double | 0。0d |
|char | '\u0000' |
|String (or any object) | null |
|boolean | false |
-----------------------------------------------------
这里,char型的缺省值为'\u0000'
然后再查Unicode编码表
得出,'\u0000'的编码值为NUL,表示的意思就是空字符。
由于你输出时的语句为 intln("char "+b);
字符b前用字符串"char "连接,所以将后面跟的字符转型为字符串后连接,这个Unicode码转为字符串后就是""(空字符),所以程序输出结果就是""(空字符)。
[展开]
我只想说 你没给他们赋值,你想让他们有什么样的初始值呢? 当然是空的了,总不能在所有字符集里随便挑一个给你吧
初始化为空格
加了点东西,自己跑一下
class Valuement
{
boolean a;
char b;
byte c;
short d;
int e;
long f;
float g;
double h;
void print()
{
System。
out。println("Data type Inital value");
System。out。println("boolean "+a);
System。
out。println("看看b是什么。。。。。。");
System
。out。println("char "+b+"XXXXXXX");
System。 out。
println("byte "+c);
System。out。println("short "+d);
System。out。println("int "+e);
System。out。
println("long "+f);
System。 out。println("float "+g);
System。out。println("double "+h);
}
}
public class InitVal
{
public static void main(String[]args)
{
Valuement value=new Valuement();
value。
print();
}
}。
[展开]
类的成员变量java虚拟机会自动进行初始化,char类型变量默认初始值为0(ASCII码),这是一个空终止符,不会看到任何输出的(也有人说看到一个小方块 - -# 或许是不同输出环境的原因吧…)
声明变量的时候给char一个初始值. 如char b='c'
google "java 缓冲池"