一、整数类型
1 整数类型包括:byte , short , int , long
2 整数型三种表示方式:
十进制 直接开始
八进制 以0开始
十六进制 以0x(或0X)开始
3 整数类型的赋值
byte , short :只要数值不超过范围,可以将整数数值直接赋值给其变量
long : 需要加上后缀L(或l)来进行赋值,如 long l = 125970L;
而int 范围内的数值会自动转换类型,也可以赋值,如 long l = 125970;
public class DataType {
/**
*学习数据类型的应用
* @param args
*/
public static void main(String[] args){
byte b = 127;//byte 类型,一位,8个字节,[-128,127];
short s = 666;//short 类型,两位,16个字节。
int i = 888888888;//int 类型,四位,32个字节。
long l = 88888888888L;//long 类型,八位,64个字节,需加l或L后缀(最好是L)。
long l1 = 130;//若字面值在int 类型范围内,会进行自动类型转换。(int ------> long)
// l1 = l + i;
//byte,short,char混合做运算时都会先转换成int类型。
//short + byte = int
//short s1 = s + b;
//高精度转换到低精度,不能自动转换,只能强制转换,不过可能会丢失精度。
int i1 = (int)l1;
}
}
二、浮点类型
1 浮点类型包括 :float , double
2 浮点类型的格式化输出
可以使用System.out.printf("%f",变量名);
通过改变%f中间的数值来控制浮点数的输出精度:
public class FloatPrintTest {
/**
* 测试浮点数的格式化输出
* @param args
*/
public static void main(String[] args){
double d = 1156413478.9874641354163;
//%f 用来输出浮点数,整数部分全部输出,小数部分输出前六位
System.out.printf("%f\n",d);
//%.mf 输出浮点数,小数点后保留m位
System.out.printf("%.2f\n",d);
//%m.nf 输出浮点数,m代表最少有m列(数值宽度大于m则不会改变),n代表小数点后保留n位,如数值宽度小于m左端补空格。
//注:还没摸太清!!!
System.out.printf("%16.2f\n",d);
System.out.printf("%6.2f\n",d);
}
}
三、布尔类型
1 只有两个值 :true 和 false
2 主要用在逻辑运算和条件控制语句中。
四、字符类型
1 关于char类型
char 类型是字符类型,java 中采用 UNICODE 编码。底层占用两个字节。
2 char 类型涉及到字符编码
2.1 字符编码是现实世界中的文字和计算机的表达方式的转换规则。
ASCII
‘a’ 97
‘A’ 65
‘0’ 48
ISO-8859-1
GB2312 < GBK < GB18030
unicode UTF-8 UTF-16 UTF-32
2.2 字符如果采用的编码和解码不一致的话,会出现乱码。
3 关于转义字符
\ 在Java语言中具有转义功能,可以将普通的字符,转换成不同的功能,如\t \n
public class CharTest {
/**
* 学习转义字符的使用
* @param args
*/
public static void main(String[] args){
//将普通字符转换成制表符\t
char c1 = '\t';
System.out.print(c1);
System.out.println("a\tb\tc");
//这是个普通的单引号'
char c2 = '\'';
System.out.println(c2);
//这是个普通的双引号"
char c3 = '\"';
System.out.println(c3);
//这是个普通的换行符
char c4 = '\n';
System.out.print("abc" + c4 + "bjhdkf" + c4);
}
}
五、基本数据类型转换
关于基本数据类型转换规则
-
8种基本数据类型除boolean类型之外都可以互相转换。
-
小容量像大容量转换叫做自动类型转换
byte < short < int < long < float < double
char <
-
byte , short , char 做混合运算的时候,各自都先转换成 int 在做运算
-
大容量向小容量转换是强制类型转换,需要加强制转换符,
编译虽然通过,运行期可能损失精度。
-
如果整数没有超过 byte , short , char 的取值范围,可以直接将这个整数数值赋值给byte , short , char
-
多种数据类型做混合运算,先转换成容量最大的那种再做运算。
小白一枚,正在学习Java,有错误请谅解,不喜勿喷。