java中的数据类型[通俗易懂]

java中的数据类型[通俗易懂]java中的数据类型

大家好,又见面了,我是你们的朋友全栈君。

        在java中,数据类型分为基本数据类型和引用数据类型。今天我们主要介绍一下基本数据类型。java中有8中基本数据类型,分别用于存储整数、浮点数、字符数据和布尔类型的数据。下面的图列出了java中的基本数据类型,方便大家理解。

java中的数据类型[通俗易懂]

        从上图我们可以看出,基本数据类型分为4类(整型、浮点型、字符型和布尔型),整型又包含字节型、短整型、整型和长整型。浮点型包括单精度和双精度浮点型。这些数据类型之间有什么区别呢,个人认为是在内存中所占的存储空间不通,下面列出了8种数据类型的存储空间及使用场景:

java中的数据类型[通俗易懂]

        到这里不知道大家有没有疑问,比如说给了一个整数类型的数 10,那么这个10是short、int还是long?还有2.3是float类型的还是double类型的?这就有了直接量的概念:直接量就是直接写出的数。整数的直接量的类型默认为int类型,浮点数的直接量是double类型。

        不同的基本类型可以相互转化,主要有自动类型转换和强制转换两种方式。

自动类型转化:也称为隐式类型转换,就是从小类型到大类型可以自动完成。类型的大小关系如下图所示:

java中的数据类型[通俗易懂]

强制类型转化:从大类型到小类型需要强制转换符,转换的方法为在需要转换的变量前加上需要转换成的数据类型。

下面我们通过实例来加深对数据类型转换的理解

short a = 10;

short b = 20;

int c = a + b; 

在这个例子中,定义a和b是short类型的,最后他们两个的和赋值给int类型的c,a+b的值首先是short类型的,在赋值给c的过程中做了隐式转换。

int a = 10;

short b = a;  这样写编译不能通过,当大类型的值赋给小类型的变量时,需要进项强制类型转换,即 short b = (short) a;

还有这样一个例子:

short a = 1;

a = a + 2;

第一条语句首先定义了一个short类型的变量a,并给它赋值为1,第二条语句:在执行a + 2 的时候,2是默认的整数类型即 int 型的,而a 是short类型的,它们两个做加法首先 a 进行了隐式转化,short 类型的就变成了int类型,他们两个的和也是int类型的,而int类型的值时不能直接赋值给short类型的a的,所以在第二条语句这里需要就行强制转化,

a = (short) a + 2;这样才能编译通过。

         这块写的有点绕,不知道大家看懂了没。关于数据类型转换,我们明白两点然后去运用就好了,这两点就是:小类型的数据转到大类型的时候会进行隐式转换,把小类型提升为大类型的。大类型的数据向小类型的数据转化时要进行强制转化,这个时候要注意溢出的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105657.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • CPU五级流水线_五级流水线是什么

    CPU五级流水线_五级流水线是什么取指:指令取指(InstrucTIonFetch)是指将指令从存储器中读取出来的过程。译码:指令译码(InstrucTIonDecode)是指将存储器中取出的指令进行翻译的过程。经过译码之后得到指令需要的操作数寄存器索引,可以使用此索引从通用寄存器组(RegisterFile,Regfile)中将操作数读出。执行:指令译码之后所需要进行的计算类型都已得知,并且已经从通用寄…

  • IIC通信协议总结[通俗易懂]

    IIC通信协议总结[通俗易懂](1)概述I2C(Inter-IntegratedCircuit BUS)集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。经常IIC和SPI接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)和协议层(主机,从

  • Pytest(1)安装与入门「建议收藏」

    Pytest(1)安装与入门「建议收藏」pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

  • nextSibling 和nextElementSibling

    nextSibling 和nextElementSibling在使用DOM过程中发现一个问题:使用nextSibling属性返回指定节点之后紧跟的节点,在相同的树层级中。被返回的节点以Node对象返回。nextSibling属性与nextElement

  • 刘强东有多少人口_是谁在针对刘强东

    刘强东有多少人口_是谁在针对刘强东     刘强东的事情,我的文章已经说过,没啥好说的了,和我想的结果差不多。男人都没经得住美女的诱惑。关于刘强东的人品,没啥好评论的。离婚??小三??相爱了不能在一起??生活常常有。80后忙着离婚,90后忙着买房子,00后忙着谈恋爱。感慨一下就好了。      中国人口出生率断崖式跳水。2017年我国出生人口是1723万人,比2016年下降63万人。其中一孩只有724万,二…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号