首页 > 编程语言 >Java基础语法 自动类型提升和强制类型转换

Java基础语法 自动类型提升和强制类型转换

时间:2022-09-25 00:46:20浏览次数:63  
标签:类型转换 short Java int System 语法 println byte out

基本数据类型转换

image-20220924233314310

强制类型转换

image-20220924233342604

package BasicGrammar;
/*
基本数据类型之间的运算规则:

前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。

1. 自动类型提升:
    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
	byte 、char 、short --> int --> long --> float --> double

	特别的:当byte、char、short三种类型的变量做运算时,结果为int型

2. 强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量



*/

public class VariableTest2 {
    public static void main(String[] args) {
        //自动类型提升:
        byte b1 = 2;
        int i1 = 129;
        //编译不通过(超出范围)
        //byte b2 = b1 + i1;
        int i2 = b1 + i1;
        long l1 = b1 + i1;
        System.out.println(i2);

        float f = b1 + i1;
        System.out.println(f);

        short s1 = 123;
        double d1 = s1;
        System.out.println(d1);//123.0
        System.out.println("=================================================================");

        //***************特别地*********************
        char c1 = 'a';//97
        int i3 = 10;
        int i4 = c1 + i3;
        System.out.println(i4);

        short s2 = 10;
        //char c2  = c1 + s2;//编译不通过

        byte b2 = 10;
        //char c3 = c1 + b2;//编译不通过

        //short s3 = b2 + s2;//编译不通过

        //short s4 = b1 + b2;//编译不通过
        //****************************************
        System.out.println("=================================================================");


        //强制类型转换:

        double f1 = 12.9;
        //精度损失举例1
        int e1 = (int)f1;//截断操作
        System.out.println(e1);//12

        //没有精度损失
        long l2 = 123;
        short s3 = (short)l2;

        //精度损失举例2
        int i5 = 128;
        byte b = (byte)i5;
        System.out.println(b);//-128



        //1.编码情况1:
        long l = 123213;
        System.out.println(l);
        //编译失败:过大的整数
        //long l11 = 21332423235234123;
        long l11 = 21332423235234123L;
        System.out.println("=================================================================");

        //变量运算规则的两个特殊情况
        //****************
        //编译失败
        //float f1 = 12.3;
        float f11 = (float)12.3;
        //2.编码情况2:
        //整型常量,默认类型为int型
        //浮点型常量,默认类型为double型
        byte b11 = 12;
        //byte b11 = b + 1;//编译失败

        //float f11 = b + 12.3;//编译失败
        System.out.println("=================================================================");






    }
}

标签:类型转换,short,Java,int,System,语法,println,byte,out
From: https://www.cnblogs.com/ljgjava/p/16727078.html

相关文章

  • Java基础语法 String类型变量使用
    packageBasicGrammar;/*String类型变量的使用1.String属于引用数据类型,翻译为:字符串2.声明String类型变量时,使用一对""3.String可以和8种基本数据类型变量做运......
  • Java中QueryWrapper的基本使用
    一、Java中QueryWrapper的基本使用 1.单表查询@GetMapping("/list")publicTableDataInfolist(Studentstudent){LambdaQueryWrapper<Student>lqw=newLambdaQ......
  • Java基本语法 变量定义和分类
    变量定义●变量的概念:➢内存中的一个存储区域➢该区域的数据可以在同一类型范围内不断变化➢变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值●变量......
  • Java8 提供的流式操作
    目录参考资料流式操作1.java.util.stream.Stream接口1.1Stream提供的方法2.Collection的流式操作参考资料https://docs.oracle.com/javase/8/docs/api/流式操作......
  • 正则表达式——Robyn编程学习(Java)
    正则表达式为什么我们要学习正则自然语言处理是计算机程序的重要组成部分,而正则表达式则是处理文本的利器,通过设置合适的正则表达式,可以快速处理文本,从而提高工作的效率......
  • 基于SSM的驾校预约系统的设计与实现Java驾校管理系统(源码调试+讲解+文档)
    ......
  • java五周目笔记
    数组—、数组的概述1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。2.数组相关的概念:......
  • Javaweb学习笔记第十一弹(内含Servlet相关知识呦!)
    Web核心静态资源:HTML,CSS,JavaScript,图片等,负责页面展现动态资源:Servlet,JSP等,负责逻辑处理数据库:负责存储数据HTTP协议:定义通信规则Web服务器:负责解析HTTP协议,解析请求......
  • vue3新语法糖——setup script
    前言vue3上线已经很久了,许多小伙伴应该都已经使用过vue3了。那么在使用vue3compositionAPI的时候有没有觉得整个过程会比较繁琐呢。比如当你定义了一个方法,然后发现模......
  • 第一次博客----markdown语法学习
    markdown语法学习字体样式粗体helloword!斜体helloword!粗斜体helloword!字体添加删除线helloword!引用20世纪初的一天,圣诞节快到了,......