基本数据类型也称为简单数据类型,Java语言中有八种基本数据类型,
分别为 boolean、byte、short、char、int、long、float、double,这八种基本数据类型通常分为四大类型;
- 逻辑类型(布尔类型):boolean;
- 整数类型 :byte、short、int、long;
- 浮点类型 :float、double;
- 字符类型 :char;
以下进行逐一介绍这八种基本数据类型:
一、逻辑类型(布尔类型):boolean ;
特点:
- 声明与使用布尔类型的变量时,只能对其赋予true、false;
- 在声明的同时也可以直接赋予初值;
- 逻辑类型的变量在声明时没有默认值,所以当没有进行赋予初值时,是不能输出与使用的;
public class Basic_data_type {
public static void main(String[] args) {
//Java八种基本数据类型
//一、逻辑类型:Boolean;(也称为布尔类型)
boolean test1 = false , test2 = true , test3 ;
//报错:The local variable test3 may not have been initialized
if(test3){
System.out.println("测试Boolean类型3:"+test3);
}
System.out.println("测试Boolean类型1:"+test1);
System.out.println("测试Boolean类型2:"+test2);
}
}
二、整数类型:byte ;
特点:
1、Java中不存在byte型常量的表示法(常量后缀),但可以把一定范围内的int型常量赋值给byte型变量;
常量的表示法指:在常量的后缀加上特定的字母 ;
如:整数类型中的long和浮点类型中的double等,他们在声明一个变量并赋予初值时,可以加上常量后缀来表示常量的数据类型。long test1 = 100L; double test2 = 2.22D ; 其中的L于D就是以上说的常量后缀了,使用小写l、d也是可以的;
2、byte型变量,Java为其分配了1个字节内存,占8位,因此在对byte型变量赋值时范围要在-128~127之间;(-2^7~2^7-1)
3、当需要强调一个整数是byte类型时,可以使用强制类型转换;
如:int test4 = (byte)128; // 虽然128超出了byte的范围,但是它会自动将128转换成范围之间的-128;所以test3的值为-128而不是128;
public class Basic_data_type {
public static void main(String[] args) {
//Java八种基本数据类型
//一、整数类型:byte ;
byte test2 = -128;
double test1 = 2.22D ;
long test3 = 30L ;
int test4 = (byte)128;
System.out.println("测试byte类型1:"+test1);
System.out.println("测试byte类型2:"+test2);
System.out.println("测试byte类型3:"+test3);
System.out.println("测试byte类型4:"+test4);
}
}
二、整数类型:short;
特点:
1、Java中不存在short型常量的表示法(常量后缀),但可以把一定范围内的int型常量赋值给short型变量,和byte是一样的;
2、short型变量,Java为其分配了2个字节内存,占16位,
因此在对short型变量赋值时范围要在-32768~32767之间;(-2^15~2^15-1)
如:short a = 32767,b=-32768,c ;
3、当需要强调一个整数是short类型时,可以使用强制类型转换;(与byte是一样的道理)
如:int test2 = (short)32768; // 虽然32768超出了short的范围,但是它会自动将32768转换成范围之间的-32768;所以test2 的值为-32768而不是32768;
二、整数类型:int;
特点:
1、Java中不存在int型常量的表示法(常量后缀);
2、int型变量,Java为其分配了4个字节内存,占32位,
因此在对int型变量赋值时范围要在-2147483648~2147483647之间;(-2^31~2^31-1)
如:int a = 2147483647,b=-2147483648,c ;
二、整数类型:long;
特点:
1、Java中存在long型常量的表示法(常量后缀),如:long test = 100L;
2、long型变量,Java为其分配了8个字节内存,占64位,
因此在对long型变量赋值时范围要在-9223372036854775808~9223372036854775807之间;(-2^63~2^63-1)
如:long test_max= 9223372036854775807 //因为long是64位的,所以直接使用9223372036854775807 赋值是错误的 ;
* 需要详细了解long的最大值与最小值问题,请访问链接:https://mp.csdn.net/postedit/104056886
总结以上四种整数类型之间取值范围规律:
byte : -2^7~2^7-1 ; short :-2^15~2^15-1 ; int:-2^31~2^13-1 ;long:-2^63~2^63-1
从short开始2的次幂都是 7*2+1 = 15 、15*2+1 = 31、31*2+1 = 63 进行依次计算的;
三、浮点类型:float(单精度类型);
特点:
1、Java中存在float型常量的表示法(常量后缀),而且在声明并赋予初值时,常量后面必须要有后缀l或者L,否则会因为常量默认是double类型而报错,如:float test = 100.123; //错误Type mismatch: cannot convert from double to float
2、float型变量,Java为其分配了4个字节内存,占34位,
因此在对float型变量赋值时范围要是 (1.4E-45 ~ 3.4028235E38) 和 (-3.4028235E38 ~ -1.4E-45 )之间;
如:folat test = 22.76f , test1 = 1234.123f , test2 = 1.4E-45F ; //其中 1.4E-45 指 (1.4 * 10 的 -45 次方)
3、float变量在存储float型数据时默认保留8位有效数字,有效数字是从常量的第一数字开始算起;
如:float test3 = 1234.123456789f ; //则系统存储的是:1234.1234 ;
*当存在0开头的赋值时,则从与数字相邻的第一个0开始算起,一共取8位;
如:float test4 = 0.0123456789 ; //则系统存储0.01234567 ;float test4 = 0.00123456789 ; //则系统存储0.001234567 ;
三、浮点类型:double (双精度类型);
特点:
1、Java中存在float型常量的表示法(常量后缀),使用d或者D来表示,也可以省略该后缀;
如:double test = 23.332d , test1 = 11.111D , test2 = 45.454 ;
2、double型变量,Java为其分配了8个字节内存,占64位,因此在对double型变量赋值时范围要是 :
(4.9E-324 ~ 1.7976931348623157E308) 和 (-1.7976931348623157E308 ~ -4.9E-432 )之间;
3、double变量在存储double型数据时默认保留16位有效数字,有效数字是从常量的第一数字开始算起,相当于float类型存储的有效数字长度更长,进行计算有效数字时,与上面float是一样的;(排除因为去掉16位后的小数大于5,而出现向前进位的情况;如:double test1 = 0.4000000059604640044 , test2 = 0.4000000059604640089; //test1与test2的存储输出结果是不一样的)
四、字符类型:char ;
特点:
1、Java中不存在char型常量的表示法(常量后缀);赋值时用 'a'、'B'、'!'、'好'、'11'、'\n'、'\t' 等,即用单引号扩起 Unicode表中的任意一个字符;
2、char型变量,Java为其分配了2个字节内存,占16位,在对char型变量赋值时范围要是 :0~65535 ; char是没有负数的;
如:char test = 'A' , test1 = '为' , test2 = 97 ;
3、有些字符是不能通过键盘输入到字符串或者程序中的,这时可以使用转义的字符常量;
如:\n(换行)、\b(退格)、\t(水平制表)、\'(单引号)、\''(双引号)、\\(反斜线)等;
public class Basic_data_type {
public static void main(String args[]) {
//Java八种基本数据类型
//一、字符类型:char ;
char test = 'A' , test1 = '家',test2 = 65 ;
int test3 = '家';
int test4 = (char)23478;
System.out.println("测试\'char\'类型test:"+test);
System.out.println("测试char\t类型test1:"+test1);
System.out.println("测试\\char\\类型test2:"+test2+"\n");
System.out.println("测试\''char\''类型test3:"+test3);
System.out.println("测试\''char\''类型test4:"+(char)test4);
}
}
以上是本人对Java八种基本数据类型进行的总结,如读者有任何问题,欢迎在下方进行留言。