从头开始学Java(二)
整型变量
类型 | 占用存储空间 | 范围 |
---|---|---|
byte | 1字节,8位 | -128~127 |
short | 2字节,16位 | -215~215-1 |
int | 4字节,32位 | -231~231-1 |
long | 8字节,64位 | -263~263-1 |
整型变量用于表示整数
n = 类型所占位数
数据类型所表示的范围=-2(n-1)~2(n-1)-1
变量被赋予的值不能超出它的类型所能表示的范围
long型变量必须以l或L结尾,但为了防止与1混淆,推荐使用以L结尾
通常情况下使用int型定义整型变量
浮点型变量
float(单精度)
只能保留8位有效数字
尾部必须接有f或F
double(双精度)
只能保留16位有效数字
尾部接上的d或D可省去不写
通常使用浮点型类型时选择double
字符型变量
只能被赋予一个字符,可以为空格,但不能不写。
转义字符也是一个字符
char底层的实现也是数字类型,所以他可以和int类型相互转化,也因此,char类型字符可以进行运算。最终运算结果将转换为int类型。
例如:
char a = ‘a’;
char b = 97;
字符变量a和字符型变量b最终的输出结果一致都为a。
Java中还允许使用Unicde值表示字符型变量
例如:
char c = ‘\u0061’;
最终输出的结果也是a。
实际上Java中的字符转化成int整型数值后,再将其转化后的整型数值从10进制转化成16进制就是该字符相对应的Unicode值。
所以我们可以通过Integer.toHexString(“a”.charAt(0))方法来获取字符的Unicode值。
public class Char_test {
public static void main(String[] args) {
char a = 'a';
char b = 97;
char c = '\u0061';
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println("a的Unicode编码为"+Integer.toHexString("a".charAt(0)));
System.out.println("a的ASCII编码为"+(int)'a');
}
}
布尔型变量
只有true和false两个值
自动类型转换
自动类型转换
当取值范围小的数据类型与取值范围大的数据类型在做运算的时候,结果将自动提升为取值范围大的数据类型
byte——>short——>int——>long——>float——>double
byte、short、char相互进行运算时应该用int类型数据接收,这三种自身与自身进行运算也需要使用int类型数据接收。
强制类型转换
强制类型转换会导致丢失精度,但并不是一定会发生。
强制类型转换进行的是截取操作。
例如double类型的24.9被强制转换为int类型的值是24
String类型运算
String类型可以和其他类型数据进行运算,但运算都是连接运算,结果都为String类型。
String类型可以与其他类型数据进行运算,但是不能被直接赋予其他类型数据的值。可以通过与字符串运算的方式或String java.lang.String.valueOf()的方式进行赋值。
从第一个String变量参与运算后,之后所有的运算都为连接运算,但是在第一个String变量之前的运算还是按照常规运算顺序来
上一篇: 构造函数和图形界面开发
下一篇: Roll A Ball