首页 > 编程语言 >Java 类型转换

Java 类型转换

时间:2022-10-12 21:48:21浏览次数:55  
标签:类型转换 Java String int 数据类型 类型 byte

1、什么是类型转换?

在java中类型转换是一个非常重要的知识点。因为java是一门强类型语言,所以在数据运算中会存在类型转换,首先我们需要知道java中的类型转换一共分为两类:自动类型转换和强制类型转换。

 2、掌握常见数据类型的范围大小

如上图,表示的就是java中常见的7种基本类型之间范围关系,这7种基本数据类型存在类型转换。(可能会有人问为什么没有String类型,因为String类型不属于基本数据类型,它是jdk中封装好的一个类,数据转换时需要调用String类中相应的方法,String类型的转换后面我会单独发布一个文章去详解)

3、自动类型转换

3.1   int转换为double

把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。

例如我们定义了一个double类型的变量num  并把它赋值为10,并把它输出到控制台,那么它输出的结果为多少呢?10还是10.0?

public class Demo3 {
    public static void main(String[] args) {
        double num=10;
        System.out.println(num);
    }
}

输出结果 

 

很明显,因为num定义的就是double类型,int类型的int会被转型到double类型,可能会有同学疑惑并没有给它进行转型操作,为什么会被转换为double类型,这是因为int类型的范围是要比double类型的范围小的(由上图7种基本类型转换图可以得出)这个转换操作是由系统完成的,也就是JVM(java虚拟机)进行的,我们可以不用过多纠结这个。只需要记住小范围的数据类型转换为大范围数据类型就会自动转换,是不需要我们去操作的。

3.2  char转换为int类型

 在7种基本数据类型转换中,有一个类型转换比较特殊,就是char类型与int类型的转换,是根据ASCII码表进行转换的。下面就是我在百度图库找到的ASCII码。

我们定义一个int类型的a,并且赋值一个char类型的'a',那么结果为多少呢?照着上面的ASCII码表,结果应该是97。 

public class Demo3 {
    public static void main(String[] args) {
        int a='a';
        System.out.println(a);
    }
}

输出结果 

 

4、强制类型转换

动类型转换的概念明白以后,强制类型转换的概念与它相反,强制类型转换是大范围的数据类型转为小范围的数据类型时进行强制类型转换,需要自己去操作,这时系统就不会帮助我们去完成这个操作了。

4.1、强制类型转换格式

目标数据类型 变量名 = (目标数据类型)值或者变量;

例如我们定义了一个两个byte类型的变量a和b,我们需要让它们进行相加操作。

public class Demo3 {
    public static void main(String[] args) {
        byte a = 3;
        byte b = 4;
    }
}

我们让它们进行相加并赋值给byte类型的c变量,这时我们会发现,它尽然报错了,提示错误是需要定义一个int类型。

 

  当我们把byte类型的c改为int类型的c时,就没有报错了,这是为什么呢?因为a+b的时候就已经转为了int类型,a+b=7嘛,7肯定是个int类型,byte类型转换为int, 小转大,自动类型转换,所以int c=a+b才不会报错。

5、注意事项

1、 boolean类型不能与其他基本数据类型相互转换。

2、整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。

 

————————————————
版权声明:本文为CSDN博主「热爱编程的申同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/select_myname/article/details/125690021

标签:类型转换,Java,String,int,数据类型,类型,byte
From: https://www.cnblogs.com/big-keyboard/p/16786192.html

相关文章

  • Java中常用的几种for循环
    List<String>list=newArrayList<String>();list.add("HOLLEWORD!");list.add("HOLLEKITTY!");/***第一种循环方法......
  • Java枚举类的学习
    packagejava1;/***@author高槐玉*#Description:*枚举类的使用*1,枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类*2.当需要定义一姐常量时,强......
  • Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'pa
    1.报错图示:2.问题原因:3.问题解决:spring-cloud-nacos-config-namespace:命名空间的ID4.参考:https://www.bilibili.com/video/BV1LQ4y127n4/?p=26&vd_source=7d1......
  • vue+java AES 加密 解密
    后端:导入aes依赖<!--aes加密工具--><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.15</versi......
  • java反序列化漏洞及其检测
    1java反序列化简介java反序列化是近些年安全业界研究的重点领域之一,在ApacheCommonsCollections、JBoss、WebLogic等常见容器、库中均发现有该类漏洞,而且该类型漏洞容......
  • Java基础语法 数组的默认初始化值
    默认初始化值packagecom.ljg.java;/**⑤数组元素的默认初始化值* >数组元素是整型:0* >数组元素是浮点型:0.0* >数组元素是char型:0或'\u0000',而非'0'......
  • json操作 - 对象和json字符串 互转 JavaScript
    json操作-对象和json字符串互转JavaScript?12345678910111213141516171819<script>    //json数据转换    vardata={        name:'小明',......
  • Java图形化学生管理(一)
    JPanel和JFrame概述:AWT抽象窗口工具包,与本地图形界面进行交互的接口;Swing类相当与AWT类的扩展,Swing更加好用;1Swing中的容器:JPanel容器;中层容器;面板;不可独立JFrame......
  • Java的基本数据类型
    Java的基本数据类型类型的转换类型转换主要分为强制类型转换以及自动转换数据类型的精密度由高到低必须使用强制类型转换精密度排序如下(由低到高)xxxxxxxxxx......
  • docker-compose 启动 java 容器时报错 library initialization failed - unable to al
    问题:docker-compose启动java容器时报错libraryinitializationfailed-unabletoallocatefiledescriptortable-outofmemoryPickedupJAVA_TOOL_OPTIONS:......