首页 > 编程语言 >Java入门:02.java中数据的类型转换

Java入门:02.java中数据的类型转换

时间:2024-06-17 16:03:07浏览次数:25  
标签:02 类型转换 java int 数据类型 println 类型 byte

上两篇文章,大家了解到了常量与变量。以此为基础,我们引入了数据和数据类型的概念,今天我就和大家一起来更加深入的了解一下数据之间的类型转换吧。

还是这张图,我们可以看到,各个类型之间,每个关键字所占用得内容空间大小也是各不相同的,而在Java中,一些数据类型是可以进行转换的。

一、自动类型转换

在Java中,把数据范围更小的数值或变量赋给数据范围更大的变量,这种类型的转换是自动的,例:

double a = 5;
System.out.println(a);

将整数5赋给double类型的a,输出a,将会输出5.0;

二、强制类型转换

但如果我们需要把数据范围更大的数值或变量赋给数据范围更小的变量,我们就必须手动进行强制类型转换了,它的格式是这样的: 目标数据类型 变量名 = (目标数据类型)值或变量。

我们来举个例子:

int i;
double j = 5.5;
i=(int)j;
System.out.println(i);

double类型的5.5将被我们强制转换成int类型,小数点部分的值直接被舍弃了,所以我们输出的结果为:5。

三、需要补充的说明

1.char可以转成int

前面,我们可以看到,char类型的数据也是可以转成int类型的,那么它是根据什么实现的呢?

就是根据这张ASCII码表进行自动转换的

字符'0'对应的就是48,'A'对应65,'a'则对应97,举个例子,大家看一下:

int a='a';
int b='A';
int c='0';
System.out.println(a);
System.out.println(b);
System.out.println(c);

我们就能得到97,65和48。

2.运算时类型的自动转换

1)如果有高类型,低类型会自动转换成高类型

int a = 5;
double b = 5.0;
int c = a+b;

第三行就会报错,因为a先把自己转成了5.0再参与进运算当中,结果则为10.0,所以就不能赋给整数类型的c了

2)如果没有高类型,byte、short、char也会自动转换成int类型

byte a = 5;
byte b = 5;
byte c = a+b;

第三行也会报错,因为a和b会在运行过程中转换成int类型,得出的结果自然也是int类型,所以没办法赋给byte类型的c了,必须对c的数据类型进行更改或是手动的强制转换a+b后的值,(byte)(a+b)

但常量则不用考虑这个问题

byte a = 5+5;

 像这么写是可以的,因为整数的常量会自动的算出结果,并判断其值是否在byte的范围内,如果是的话就可以编译通过了

四、总结

今天我们主要了解到了以下几点:

1.自动类型转换:在赋值和运算过程当中,数据范围较小的将会自动向上进行转换

2.强制类型转换:如果我们需要将更大数据范围变小的话,我们则需要进行强制的类型转换,但会不可避免的出现一些数据丢失

今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~

标签:02,类型转换,java,int,数据类型,println,类型,byte
From: https://blog.csdn.net/a2018204587/article/details/139743599

相关文章

  • Linux上java-jar Spingboot项目
    百度的,后面再补一个Linux文档操作手册,是不是很大胆?准备工作1、首先得有两个软件Xftp(用来上传文件到)和XShell(连接服务器执行命令)2、Linux上有JDK(怎么安装可以转到Linux安装JDK流程)3、项目的JAR包项目jar包导jar<build><plugins><plugin><groupId......
  • git学习笔记——202406171525
    想将本地仓库代码提交到远程仓库,应注意:如果在新建远程仓库时里面还新建了文件,在本地提交代码时会显示两个分支是冲突的,git认为是两个不相关的仓库代码,会拒绝上传。解决方法是gitpullremotemaster拉取远程代码到本地,然后再gitpushremote-umaster相关链接:https://www.cn......
  • Javaweb实现简易记事簿 jdbc实现Java连接数据库
    //相关代码packageUserAct;importjakarta.servlet.;importjakarta.servlet.annotation.WebServlet;importjakarta.servlet.http.;importjava.io.;importjava.sql.;//登出@WebServlet("/UserAct.DeleteEvent")publicclassDeleteEventimplementsServlet{......
  • [javascript]何为变量提升?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18252500出自【进步*于辰的博客】关于编译与解释,详述可查阅博文《[Java]知识点》中的【编译与解释】一栏。参考笔记二,P43.3、P46.1、P9.3。目录1、什么是“变量提升?2、va......
  • 自动驾驶、AI、高端医疗……芯驿电子携 FPGA 创新成果亮相 2024 上海国际嵌入式展
      6月12日至14日,2024上海国际嵌入式展(embeddedworldChina)在上海世博展览馆正式举行。本届展会以“智慧赋能,科技全球”为主题,旨在打造嵌入式系统全产业链交流与合作平台。 作为中国嵌入式技术领域领先的FPGA方案商,芯驿电子科技(上海)有限公司携多款FPGA新品和行业方案......
  • Java速成笔记 2024.6.17版
    变量:可以变化的容器不同变量可以存储不同类型的值变量声明方法:变量类型变量名=初始值;E.G.inta=1;变量类型:整型:intlong浮点数:floatdouble布尔:boolean字符串:String字符:char变量命名注意事项:不能重名不能以数字开头常量:关键字:final语法:finalfl......
  • 国产最好用的EasyRecovery数据恢复软件2024中文电脑版下载
    EasyRecovery数据恢复软件,简直就是数据丢失者的救星!......
  • P10602 [CEOI 2009] Harbingers 题解
    小清新数据结构优化dp。思路考虑基本的dp式。\[\begin{aligned}f_{x}&=w_{x}+\max_{i是x的祖先}v_{x}\times(dep_{x}-dep_{i})+f_i\\&=w_{x}+v_{x}\timesdep_{x}+\max_{i是x的祖先}-dep_{i}\timesv_{x}+f_i\end{aligned}\]发现\(-dep_{i}\timesv_{x}+f_i\)是......
  • 基于Java+Vue的采购管理系统:实现采购业务数字化(全套源码)
    前言:采购管理系统是一个综合性的管理平台,旨在提高采购过程的效率、透明度,并优化供应商管理。以下是对各个模块的详细解释:一、供应商准入供应商注册:供应商通过在线平台进行注册,填写基本信息和资质文件。资质审核:系统对供应商提交的资质文件进行自动或人工审核,确保供应商符......
  • 山东大学2023-2024深度学习期末回忆及参考答案
    文章目录名词解释(3*8=24分)分布式表示超参数共现矩阵截断BPTTattention机制梯度确认疑惑度还有一个忘了简答(6题)1、说出训练数据测试数据验证数据的作用,为什么要分训练数据和测试数据?训练数据、测试数据、验证数据的作用为什么要分训练数据和测试数据2、为什么激活函数要......