带你入门学习java,从菜鸟逐渐变强第四天(数据类型、常量的引用、数据类型转换)Continuous update

第二章java基础语法

2.7数据类型

2.7.1数据类型的分类

数据类型.png

2.7.2数据类型之间的字节大小
类型名称数据类型所占空间大小
字节型byte1个字节8位
短整型short2个字节16位
整形int4个字节32位
长整型long8个字节64位
单精度float4个字节32位
双精度double8个字节64位
字符型char2个字节16位
布尔型boolean1个字节8位

注意:布尔类型分配是一个字节空间,但实际存储只是一位(true/false)

2.7.3数据类型的转换

在java中不同的数据类型之间是可以互相转换的,分为:自动类型转换强制类型转换

注意:大小数据类型可以通过数据类型所占空间的大小的大小来判断

i.自动类型转换
  • 定义:指小的数据类型向大的数据类型转换,可以自动进行转换
  • 语法规则:大的数据类型 变量名=小的数据类型的变量;
public class Demo01{
	public static void main(String[] args){
		//声明一个byte类型的变量
		byte b=100;
		//通过自动类型转换将byte类型的变量变为int类型
		int num=b;
		System.out.println("byte类型的变量b:"+b);
		System.out.println("int类型的变量num:"+num);
	}
}

捕获14.PNG

public class Demo02{
    public static void main(String[] args){
        double num=12*3+3.3f;
        System.out.println(num);
    }
}

捕获15.PNG

public class Demo03{
    public static void main(String[] args){
        char ch=65;
        byte a=20;
        short b=30;
        char ch=ch+a+b;
        System.out.println(ch);
    }
}

捕获16.PNG
注意事项:

  • java中整数类型数据默认类型是int,小数数据类型是double
  • 在给byte和short赋值时,只要保证数值在byte和short表示数范围之内
  • 在四则运算中,数据类型提升规则如下:
    • byte=>short=>int=>long=>float=>double
    • char=>int=>long=>float=>double
    • boolean不能参与转换,也不能参与四则运算
    • 所有的byte型、short型和char的值将被提升为int型
ii.强制类型转换
  • 定义:指大的数据类型向小的数据类型转换,无法自动转换,只能通过强制性转换
  • 语法规则:小数据类型 变量名=(小数据类型)大数据类型的变量;
public class Demo03{
    public static void main(String[] args){
        int a=30;
        //将int类型的变量强制转换成byte类型的变量
        byte b=(byte)a;
        System.out.println(b);
    }
}

捕获17.PNG

public class Demo03{
    public static void main(String[] args){
      	//声明一个int类型的变量
		int	num=129;
		//声明一个byte类型变量存储int变量中的值
		byteb=(byte)num;
		System.out.println("b="+b);  
    }
}

捕获18.PNG

  • 129=> 0000 0000 0000 0000 0000 0000 1000 0001(对应的int类型的补码)
  • =>byte 1个字节1000 0001(强制转换后,变成byte类型的补码)
  • =符号位是1(所有负数所有的数据都是补码存储原码展示)
  • =>1000 0001=>(反)1000 0000 ->原码1111 1111 -> -127(计算机输出原码给我们看)

注意事项:

  • 强制类型的转换有可能造成数错误,不推荐使用
  • 强转有风险,转换需谨慎
  • 计算机是以补码的形式存储,原码展示

2.8常量

2.8.1什么是常量?
  • 定义:在程序运行期间,其值不可以发生改变的变量。
2.8.2为什么需要常量?
  • 在软件开发的过程中,书写程序的过程中,有一些值是不允许或者是没有必要重新多次赋值的,对于这些值而言,我们可以通过常量来将其定义,防止在程序运行期间发生改变。
2.8.3常量的分类(个人定义,仅供参考)
  • 字面常量:看到什么就是什么。例如 int a=1;
  • 符号常量:通过final修饰的变量之后变为常量
2.8.4常量的用法
public class FinalVarTest01{
	public static void main(String[] args){
		//1:声明一个变量存放r
		int	r=10;
		//2:声明一个变量存放PI的值
		//当通过final修饰完pi之后,pi的值不能修改,不然程序编译报错。
		final double pi=3.14;
		//3:声明一个变量存放圆的面积
		double area=pi*r*r;
		System.out.println("area:"+area);
		//4:声明一个变量存放周长
		pi=3.1415926;
		doublezc=2*pi*r;
		System.out.println("zc"+zc);
	}
}

捕获19.PNG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QZP51ZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值