基本数据类型
Java中有8种基本数据类型来存储数值、字符和布尔值。
数据类型 | 字节数 | 取值范围 | 例子 |
---|---|---|---|
byte | 1 | -128~127 | byte mybyte = 124; |
short | 2 | -32768~32767 | short myshort = 32564; |
int | 4 | -2147483648~2147483647 | int myint = 45784612; |
long | 8 | 很长 | long num = 21474836501L;(大于int型的最大值或者i小于int型的最小值,则需要在数字后加L或l,表示数值为长整数) |
float | 4 | 1.4E~3.4028235E38 | float f1 = 13.23f;(f或者F 必须有,否则系统会认为是double类型而出错) |
double | 8 | 也很长 | double d1 = 4562.12d(d或者D 可有可无) |
char | 2 | 存储单个字符 | char word = ‘a’; |
boolean | 1或4 | true或false | boolean b = true; |
整数类型在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。十十进制:如120、0、-127
八进制:如0123(十进制数为83)、-0123(十进制数为-83)。八进制必须以0开头。
十六进制:如0x25(十进制的37)、oXbole(十进制的45086)。十六进制必须以0X或者0x开头。
转义字符
转义字符是一种特殊的字符变量,它以反斜线“\”开头,后跟一个或多个字符。转义字符具有特殊的含义,不同于字符原有的意义,故称“转义”。
转义字符 | 含义 |
---|---|
\ddd | 1~3位八进制数据所表示的字符,如\456 |
\dxxxx | 4位十六进制所表示的字符,如\0052 |
\’ | 单引号字符 |
\\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
实例
char c1 = '\\';
char char1 = '\u2605';
System.out.println(c1);
System.out.println(char1);
//输出结果
// \
// ★
声明常量
常量在整个程序中只能被赋值一次。
语法:
final 数据类型 常量名称 [=值]
final double PI = 3.1415926D;
final boolean BOOL = true;
当定义的final变量属于“成员变量”时,必须在定义时就设定它的初值,否则将会产生编译错误。
变量有效范围
成员变量:在类体中所定义的变量,成员变量在整个类中都有效。
局部变量:在类的方法体中定义的变量(方法内部定义,方法的参数),局部变量只在当前代码块中有效。
静态变量:在成员变量前加关键字static,称为静态变量,静态变量的有效范围可以跨类,以“类名.静态变量”的方式在其他类中使用。
局部变量的生命周期取决于方法。当方法被调用时,Java虚拟机为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会销毁。
局部变量与成员变量可以同名,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
类型转换
两种方式:隐式类型转换、显示类型转换
隐式转换
从低级类型向高级类型的转换,系统将自动执行,程序员无需进行任何操作,这种类型的转换为隐式转换。
类型精度从低到高的排序:byte<short<int<long<float<double
int x = 50;
float y = x;
// y = 50.0
隐式转换规则表
操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
---|---|---|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int 、long | float | float |
byte、short、char、int 、long、float | double | double |
显式类型转换
当把高精度的变量的值赋值给低精度的变量时,必须使用显式类型转换运算(又称为强制类型转换)。
语法:
(类型名)要转换的值
当执行显式类型转换时可能导致精度损失。只要是boolean类型以外其他基本类型之间的转换,全部都能以显式类型转换的方法达到。
int a = (int)45.23; //a = 45
long y = (long)46.6F;// y = 46
int b = (int)'d'; // b = 100
当把一个整数赋值给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。例如:
byte b =(byte)129;