菜鸟老王的第四天

变量与数据类型转换指南
本文详细解析变量使用规范,包括命名唯一性、赋值要求、作用域限制及多变量创建建议。深入探讨数据类型转换,涵盖自动与强制转换规则,特别强调精度损失与数据溢出风险。

使用变量的时候,有一些注意事项:
1, 如果创建多个变量,那么变量之间的名称不可以重复。
2, 对于float 和long 类型来说,字母后缀F和L 不要丢掉。
3,如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型范围
4, 变量一定那个还要先赋值,在使用。没有赋值的变量,不能直接使用;一定要赋值之后,才能使用。
5,变量使用不超过作用域的范围
【作用域】从定义变量的一行开始,一直到直接所属的大括号结束为止。
6,可以通过一个语句创建多个变量,但是一般情况下不推荐这么写。

public class Demo03VariableNotice{
    public static void main(String[] agrs){
        int num1 = 10;//创建了一个变量
        //int num1 = 20;//又创建了一个变量,名字一样,错误写法
	int num2 = 20;

	int num3;
	num3 = 30;

	int num4;//定义了一个变量,但是没有进行赋值
	//System.out.println(num4);// 直接使用打印输出就是错误的

//System.out.println(num5);//在创建变量之前不能使用这个变量

	int num5 = 500;
	System.out.println(num5);//500
	
	{
	   int num6 = 60;
	   System.out.println(num6);//60

        } 
        
        /*System.out.println(num6);//已经超出了大括号的范围,超出了作用域,变量不能在使用了*/

	int a, b, c,
	//各自赋值
	a = 10;
	b = 20;
	c = 30;
	System.out.println(a);//10
	System.out.println(b);//20
	System.out.println(c);//30

	//同时创建三个int变量,并且同时各自赋值
	int x = 100, y = 200, z = 300;
	System.out.println(x);//100
	System.out.println(y);//200
	System.out.println(z);//300
 }


}

数据类型转换:
当数据类型不一样时,将会发生数据类型转换。

自动类型转换(隐式)
1,特点:代码不需要进行特殊处理,自动完成
2,规则:数据范围从小到大。(与它的字节数不一定相关)

强制类型转换(显式)

public class Demo01DataType{
   public static void main(String[] args){
       System.out.println(1024);//这就是一个整数,默认int类型
       System.out.println(3.14);//一个浮点数,默认就是double类型
       //左边是long类型,右边是默认的int类型,左右不一样
       //一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存
       //储
       //int --> long,符合从小到大的要求。
       long  num1 = 100;
       System.out.println(num1);//100

	//左边的double类型,右边是float类型,左右不一样
	//float --> double, 符合从小到大的规则
	//也发生了自动转换
	double num2 = 2.5F;
	System.out.println(num2);//2.5

	//左边是float类型,右边是long类型,左右不一样
	//lang -- > float,范围是float更大一些,符合从小到大的规则
	//也发生了自动类型转换
	float num3 = 30L;
	System.out.println(num3);//30.0
	
	
}

}

强制类型转换
1, 特点:代码需要进行特殊的格式处理,不能自动完成
2,格式:范围小的类型 范围小的变量名 =(范围小的类型)原本范围大的数据;

注意事项:
1,强制类型转换一般不推荐使用,因为有可能发生精度损失,数据溢出。
2,byte/short/char这三种类型都可以发生数学运算,例如加法"+"
3,byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后计算。
4,boolean 类型不能发生数据类型转换。

public class Demo02DataType{
    public static void main(String[] args){
    	//左边是int类型,右边是lang类型,不一样
    	//lang -- > int ,不是从小到大
    	//不能发生自动类型转换
        //int num = 100L;
        //System.out.println(num);//报错
        //格式:范围小的类型 范围小的变量名 =(范围小的类型)原本
        //范围大的数据。
        int num = (int) 100L;
        System.out.println(num);//100
        
        //long强制转换成为int类型
        int num2 = (int) 6000000000L;
        System.out.println(num2);//1705032704 数据溢出了

        //double --> int,强制转换
        int num3 = (nit) 3.5;
        System.out.println(num3);//3,这不是四舍五入,所有的小数位          	//都会被舍弃掉,这就是精度损失。
        char zifu1 = 'A';//这是一个字符型变量,里面是大写字母A
        System.out.println(zifu1 + 1);//66 也就是A 被当作65处理了
        //计算机的底层会用一个数字(二进制)来代表字符A,就是65
        //一旦char类型进行了数学运算
        //那字符就会被按照一定的规则翻译成为一个数字
        
	byte num4 = 40;//注意,右侧的数值大小不能超过左侧的类型范围
	byte num5 = 50;
	//byte + byte --> int + int -->int
	int result1 = num4 + num5;
	System.out.println(result1);//90
	
        short num6 = 60;
        //byte + short --> int + int -->int
        //int强制转换为short:注意必须保证逻辑上真实大小本来就没有
        //超过short范围,否则会发生数据溢出。
        short result2 =(short) num4 + num6;
        System.out.println(result2);//100
}


}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值