java基础语法——数据类型和类型转换

数据类型

java是一门强类型语言,所有的数据都有其指定的类型。

java中数据类型的分布:
基本数据类型:
	数值型
		整数型
			字节型: byte
			短整型:short
			整形:int
			长整型:long
		浮点型
			单精度:float
			双精度:double
		逻辑型
			boolean:
		字符型
			char:
引用类型: 类 接口 数组
数据类型符号所占空间数据范围
字节型byte1字节-128~127
短整型short2字节+ - 3W
整型int4字节+ - 21亿
长整型long8字节负的2的63次方~2的63次方-1
双精度double8字节小数点后15-16位
单精度float4字节小数点后6位
字符型char2字节0-65536
布尔型boolean1位ture or false

实际上布尔类型所占空间为1字节

整型:
public class Demo{
	public static void main(String[] args){
        
		//1:声明一个byte类型的变量
		byte num = 120;
		System.out.println("byte类型的变量num的值是:num="+num);
        
		//2:声明一个short类型的变量
		short sh = 10000;
		System.out.println("shrot类型的变量sh = "+sh);
        
		//3:声明一个int类型的变量
		int in = 123456789;
		System.out.println("int类型的变量in = "+in);
        
		//4:声明一个long类型的变量
		long l = 12345678900L;
		System.out.println("long类型的变量l = "+l);
	}
}

整型通常会出现的错误:

超过byte范围的数据无法正常给byte数据类型赋值

超过short范围的数据无法正常给short数据类型赋值

所有的整数默认的数据类型是int,当把超过int范围的字面值
赋值给long类型变量时,需要在字面值后加"l"或者"L",建议用"L"
注意当给byte和short赋值时,只要数值不超过byte和short的
取值范围,就可以正常赋值。
对于某些特别大的整数值,long类型也是无能为力的。
后期通过BigDecimal、BigInteger去存储。

浮点型:
public class Demo{
	public static void main(String[] args){
        
		//声明一个小数
		double d = 3.12;
		System.out.println(10/3.0);
        
		//声明一个小数
		float f = 3.12F;
		System.out.println(f);
		double num = 0.3;
		System.out.println(num==(0.1+0.2));
        
		//System.out.println(10/0);
		System.out.println(10/0.0);
		System.out.println(-10/0.0);
		System.out.println(-0.0/-0.0==0.0/0.0);// NaN非数 一个自己和自己不相等
	}
}

浮点型数据类型注意事项:

java中的小数默认类型是double,当把一个double类型的字面值
赋值给float变量存放的时候,要在字面值后加"F"或者"f"
System.out.println(10/0.0); 正无穷
System.out.println(-10/0.0); 负无穷

0.0/0.0为NaN

System.out.println(-0.0/-0.0==0.0/0.0); false

NaN:表示未定义或不可定义的值,NaN不等于任何数。


类型转换

自动转换:

自动转换是按字节数由小到大进行转换的

byte-->short-->int-->long-->float-->double

除了long转为float是字节数由大转小

而char类型的数据可以从int类型开始自动转换

布尔类型不可以进行数据转换

public class Demo{
	public static void main(String[] args){
        
		//声明一个byte类型的变量
		byte b = 12;
        
		// 声明一个int类型的变量存放byte类型的数据
		int num = b;//把变量b中的值赋值给int类型的变量num存放
        
		//声明一个boolean类型的变量
		boolean f = true;
        
		//num = f; 
        
		//声明一个char类型
		char ch = 'a';
		num = ch;
		System.out.println(num);
	}
}

强制转换:

强制转换有一定的风险,容易丢失数据,所以强制转换需要谨慎。

小数据类型 变量名 = (小数据类型)大数据类型的变量。

如果大数据类型变量的数据超过了小数据类型的数据范围,那么结果就会出现问题。

public class Demo05{
	public static void main(String[] args){
	
		//创建一个int类型的变量
		int num1 = 100;
		
		//将int类型的值赋值给byte
		byte result1 = (byte)num1;
		System.out.println(result1);
		
		//创建一个int类型的变量
		int num2 = 300;
		
		//将int类型的值赋值给byte
		byte result2 = (byte)num2;
		System.out.println(result2);

	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值