基本数据类型有:整数类型、浮点类型、字符类型、布尔类型
整数类型用来存储整数数值,即没有小数部分的数值。与C、C++语言相同,整数在Java语言中有3种表示形式:十进制、八进制和十六进制。
十进制整数:以1~9开头的数,如123、456、0。
八进制整数:以0开头且其后由0~7范围(包括0和7)内的数组成的整数,如01011和031,分别表示十进制数521和25,
计算方式如下。01011转换为十进制数,1 * 83 + 0 * 82 + 1 * 81 + 1 * 80 = 521 031转换为十进制数:3 * 81 + 1 * 80 = 25。
十六进制整数:以0x或0X开头且其后由0~9、a~f(包括0和9、a和f)组成,如0x25、0Xb01e,分别表示十进制数37和45086,计算方式如下。 0X25转换为十进制数:2 * 161 + 5 * 160 = 37; 0Xb01e转换为十进制数:11 * 163 + 0 * 162 + 1 * 161 + 14 * 160 = 45086。
注意:
在十六进制数中,0~9由数字表示,10~15分别由a、b、c、d、e、f代替。无论是十进制数、八进制数还是十六进制数,计算机会先将它们转换成二进制数,再进行计算。
下面是基本数据类型的取值范围↓
数 据 类 型 |
关 键 字 |
占用内存 |
取 值 范 围 |
默 认 值 |
|
整数类型 |
字节型 |
byte |
8位 |
-27~27-1 |
0 |
短整型 |
short |
16位 |
-215~215-1 |
0 |
|
整型 |
int |
32位 |
-231~231-1 |
0 |
|
长整型 |
long |
64位 |
-263~263-1 |
0 |
|
浮点类型 |
单精度型 |
float |
32位 |
IEEE754 |
0.0f |
双精度型 |
double |
64位 |
IEEE754 |
0.0d |
|
字符类型 |
字符型 |
char |
16位 |
16位的Unicode字符 |
'\u0000' |
布尔类型 |
布尔型 |
boolean |
8位 |
true和false |
false |
可以根据这些类型定义相应的整型变量,定义方法如下:
byte a // 定义变量a并指定为byte型
short b // 定义变量b并指定为short型
int c // 定义变量c并指定为int型
long d // 定义变量d并指定为long型
意思就是 类型+变量名
在为这些整型变量赋值时,既可赋值为十进制的整数,也可赋值为八进制或十六进制的整数,但要注意变量能够接受的最大与最小值,否则会出现错误。对于long型值,若赋予的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或l(小写的L),表示该数值为长整型,例如,long num=2147483649L。
对变量赋值后,通过输出语句会自动地将变量值转换为十进制整数输出。
分别为字节型变量a赋值为十进制数123、短整型变量b赋值为八进制数045、整型变量c赋值为十六进制数0xb12f、长整型变量d赋值为十六制数0x160000000L,然后输出这些变量值。
public class Test { public static void main(String[] args) { byte a = 123; // 定义byte型变量a, 并赋给十进制数值123 short b = 045; // 定义short型变量b, 并赋给八进制数值045 int c = 0xb12f; // 定义int型变量c, 并赋给十六进制数值0xb12f long d = 0x160000000L; // 定义long型变量d, 并赋给十六进制数值0x160000000L System.out.println(a); // 输出结果为: 123 System.out.println(b); // 输出结果为: 37 System.out.println(c); // 输出结果为: 45359 System.out.println(d); // 输出结果为: 5905580032 } }
说明: 赋给long型变量d的十六进制数0x160000000转换为二进制数后,需要占用内存36位(由左向右,每位数字转换成4位的二进制数,如0x39将转换为0011 1001),而Java中规定int型数据占用的内存为32位,所以十六进制数0x160000000超出了int范围,需要在数字后加L或l(小写的L)表示它是一个长整型数,计算机将为其分配64位内存空间进行存储。
在Java中,默认情况下小数都被看做double型,占用内存64位,若想使用float型小数,则需要在小数后面添加字母F或f,如1.23F,它占用内存32位。
计算机计算出的小数点后的n位,与实际的数值会有一定的误差,它只能尽量地去接近实际值,所以位数越多越精确。通常float型就足够了,若要求更精确的计算,可以使用double型,但也要考虑节约资源。
定义浮点类型的方法:
float a // 定义变量a并指定为float型
double b // 定义变量b并指定为double型
在为浮点型变量赋值时,既可以赋值为以十进制形式表示的小数,又可以赋值为以科学记数法形式表示的数值。对于float型,必须在数值后加F或f,表示该数值为单精度浮点数。
为单精度浮点型变量a1赋值以十进制形式表示的小数12.34F,为单精度浮点型变量a2赋值以科学记数法形式表示的数值1.234E1F,为双精度浮点型变量b1赋值以十进制形式表示的小数56.78,为双精度浮点型变量b2赋值以科学记数法形式表示的数值567.8E-1,然后输出这些变量值。
public class Test { public static void main(String[] args) { float a1 = 12.34F; // 为float型变量a1赋值为十进制表示的单精度小数(在数字后加F) float a2 = 1.234E1F; // 为float型变量a2赋值为科学记数法表示的单精度小数(在数字后加F) double b1 = 56.78; // 为double型变量b1赋值为十进制表示的双精度小数 double b2 = 567.8E-1; // 为double型变量b2赋值为科学记数法表示的双精度小数 System.out.println(a1); // 输出结果为: 12.34 System.out.println(a2); // 输出结果为: 12.34 System.out.println(b1); // 输出结果为: 56.78 System.out.println(b2); // 输出结果为: 56.78 } }
Java语言中的字符类型用来存储单个字符,它占用16位(两个字节)的内存空间,使用关键字char进行标识。定义字符类型的变量,可以通过关键字char来进行,定义方法如下:
char c1 // 定义字符型变量c1
char c2 // 定义字符型变量c2
分别为字符型变量a赋值'm'、字符型变量b赋值'明'、字符型变量c赋值'9'、字符变量d赋值'@',然后输出。
public class Test { public static void main(String[] args) { char a = 'm'; // 为字符型变量ch1赋值字符常量'm' char b = '明'; // 为字符型变量ch1赋值字符常量'明' char c = '9'; // 为字符型变量ch1赋值字符常量'9' char d = '@'; // 为字符型变量ch1赋值字符常量'@' System.out.println(a); // 输出结果为: m System.out.println(b); // 输出结果为: 明 System.out.println(c); // 输出结果为: 9 System.out.println(d); // 输出结果为: @ } }
分别为字符型变量ch1赋值十进制数97、字符型变量ch2赋值八进制数0142、字符型变量ch3赋值十六进制数0x63,然后输出。
public class Test { public static void main(String[] args) { char ch1 = 97; // 为字符型变量ch1赋值十进制数97 char ch2 = 0142; // 为字符型变量ch2赋值八进制数0142 char ch3 = 0x63; // 为字符型变量ch2赋值十六进制数0x63 System.out.println(ch1); // 输出结果为: a System.out.println(ch2); // 输出结果为: b System.out.println(ch3); // 输出结果为: c } }
布尔型数据只有两个值:true和false,分别代表布尔逻辑中的“真”和“假”,且布尔值不能与整数进行转换,通常布尔型数据在流程控制中作为判断条件。
定义布尔型变量,可以通过关键字boolean来定义,定义方法如下:
boolean b1; // 定义boolean型变量b1
boolean b2; // 定义boolean型变量b2
布尔型数据只存在true和false数值,所以在为boolean型变量赋值时,除这两个值外的其他任何数值都是非法的
为布尔型变量married赋值false,为alive赋值true,然后输出。
public class Test { public static void main(String[] args) { boolean married = false; boolean alive = true; System.out.println("已婚:" + married); // 输出结果为: false System.out.println("生命:" + alive); // 输出结果为: true } }
JAVA_SE基础——8.基本数据类型 到这里算是结束了 不会的,或者有问题的,或者有同学想和我交流的,可以加我QQ654249738 或者 留言——ThesCript_j