基本数据类型

基本数据类型

​在我们的日常生活中出现的数字有小数和整数之分,那么在程序中出现的数字我们是不是也有小数和整数之分呢?分别为什么类型呢?长度为多少呢?下面一一来看

一、基本数据类型的分类

​字节是计算机中存储的最小单位,一个字节等于八位。1字节 = 8 bit(对应二进制中的位数)

1.整数类型

​byte(字节型):1个字节8位

​取值范围:-128~127

​short(短字符型):2个字节16位

​int(整型):4个字节32位

​取值范围:-21亿~21亿

​long(长整型):8个字节64位

2.浮点类型

float(单精度浮点型):4个字节32位

​注意:float的值一定要加上 f

​double(双精度浮点型):8个字节64位

3.字符类型

​char(字符类型):2个字节16位

​取值范围:0~65535

​注意:必须使用单引号括起来,只能是一个字符,比如 ‘男’ 或 ‘女’

4.布尔类型

​boolean(布尔类型):4个字节32位,只有真-true 和 假-false

二、数字字面量

​理解:就是对应程序中出现的数字

​整数数字默认int类型

​小数数字默认double类型

三、数据类型的使用

public class Test01{
	public static void main(String[] args){

​		//整数类型 - byte(字节型)
​		byte b = 10;
​		System.out.println(b);//10
​		b = 20;
​		System.out.println(b);//20
​	
​		//整数类型 - short(短字符型)
​		short s = 30;
​		System.out.println(s);//30
​		s = 40;
​		System.out.println(s);//40
​	
​		//整数类型 - int(整型)
​		int t = 60;
​		System.out.println(t);//60
​		t = 70;
​		System.out.println(t);//70
​	
​		//整数类型 - long(长整型)
​		long i = 80;
​		System.out.println(i);//80
​		i = 90;
​		System.out.println(i);//90
​	
​		//浮点类型 - float(单精度浮点型)
​		float j = 111.111f;
​		System.out.println(j);//111.111
​		j = 222.222f;
​		System.out.println(j);//222.222
​	
​		//浮点类型 - double(双精度浮点型)
​		double f=333.333;
​		System.out.println(f);//333.333
​		f=444.444;
​		System.out.println(f);//444.444
​	
​		//字符类型 - char(字符类型)
​		char c='a';
​		System.out.println(c);//a
​		c='我';
​		System.out.println(c);//我
​	
​		//布尔类型 - boolean(布尔类型)
​		boolean bool = true;
​		System.out.println(bool);//真的
​		bool=false;
​		System.out.println(bool);//假的
	}

}

四、基本数据类型的转型

​取值范围的比较:byte<short<int<long<float<double

1.自动转型

​含义:取值范围小的转大的类型,底层使用最高位(符号位)补位。

public class Test01{
	public static void main(String[] args){
		byte b = 10;//1字节8位  0000,1010
		short s = b;//2字节16位 最高位补零 0000,0000,0000,1001
		int i = s;//4字节32位 0000,0000,0000,0000,0000,0000,0000,1001
		long l = i;//8字节64位
		float f = l;
		double d = f;
		System.out.println(d);
​		//可以直接转。
​		byte b1=123;
​		double d1=b1;
​		System.out.println(d1);
	}
}

2.强制转型

​含义:取值范围大的转换为取值范围小的。

​语法规则:变量=(强转类型)目标变量;

public class Test01{
	public static void main(String[] args){
    	double d = 123.123;
		float f = (float)d;//将double类型的变量d强转为float类型,再将强转后的数据复制给f
		long g = (long)f;
		int h = (int)g;
		short j = (short)h;
		byte k = (byte)j;
		System.out.println(k);
		
		//也可以直接强转
		double i = 123.123;
		byte j = (byte)i;
		System.out.println(j);
	}
}

3.特例

特例1

public class Test01{
	public static void main(String[] args){
       	 float f1 = 1;//int转float:自动转型,不会报错
		//float f2 = 1.0;//1.0属于double,所以double转flaot:强制转型,会报错
		//解决方案 两种:
		//float f2 = (float)1.0;//解决方案1 将double(64),转成float(32位)浪费空间
		float f2 = 1.0f;//解决方案2 直接将1.0认为是float(32位)类型,效率更高
		System.out.println(f1);
		System.out.println(f2);
	}
}

特例2

public class Test01{
	public static void main(String[] args){
		byte b1 = 1;//1为int类型的数字字面量,但是1在byte的取值范围内就直接赋值。
		//byte b2 = 128;//报错,1为int类型的数字字面量,但是128不在byte的取值范围内。
		byte b2 = (byte)128;//解决方案
		//底层分析:
		//128--int -- 32位 : 0000,0000,0000,0000,0000,0000,1000,0000
		//(byte)128 -- 8位 : 1000,0000 //最高位为符号位 1 为负号。
		System.out.println(b1);
		System.out.println(b2);//输出-128
	}
}

​ 今天就分享到这里啦~~~

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值