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;这样才能编译通过。

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stm32数据手册boot_stm32f103中文手册.pdf

    stm32数据手册boot_stm32f103中文手册.pdfstm32f103中文手册STM32F103x6STM32F103x8STM32F103xB增强型,32位基于ARM核心的带闪存、USB、CAN的微控制器7个定时器、2个ADC、9个通信接口功能初步信息■核心−ARM32位的Cortex™-M3CPU−…

    2022年10月16日
    2
  • 腾讯云免费ssl_腾讯云ssl证书申请

    腾讯云免费ssl_腾讯云ssl证书申请1.点此进入SSL证书产品页面2.点击立即选购,进入产品配置界面。3.选择自定义配置–>国际标准–>域名型免费版,点击免费快速申请。4.进入登录界面,用微信扫二维码。5.填写域名相关信息,点击下一步6.选择域名的验证方式,推荐DNS验证,点击下一步。7.打开域名管理后台,根据上一步获得的域名解析信息,增加一条TXT类型的解析记录。8.回到腾讯云SSL证书申请界面,查看域名验证结果,验证成功会收到一条短信,反之会有提示错误。9.申

    2025年10月17日
    2
  • vector 的六种 创建和初始化方法「建议收藏」

    vector 的六种 创建和初始化方法「建议收藏」C++的初始化方法很多,各种初始化方法有一些不同。(1):vector<int>ilist1;  默认初始化,vector为空,size为0,表明容器中没有元素,而且capacity也返回0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。(2):vector<int>ilist2(ilist);vector&lt…

    2022年9月18日
    2
  • 无需请求号直接修改QAS/PRD程序【…

    无需请求号直接修改QAS/PRD程序【…为了偷懒,不再来回申请cr,有些测试程序可以这么干,直接在测试环境修改代码,但是正式的项目程序,严谨修改,不然……经理会很生气,后果…很严重……代码很简单:REPORTZLM_MOD.”变量定义data:beginofitaboccurs0,    line(200)TYPEc,    “如果代码中某行大于了200个字符,请重新设定值,   

    2022年6月28日
    23
  • 从最初的什么都不懂到现在自己研究SEO开发出快速排名程序「建议收藏」

    从最初的什么都不懂到现在自己研究SEO开发出快速排名程序「建议收藏」话说SEO,一般人的思维就两个:外链与内容。他们观念中的外链是指到其它网站发外链。当然,笔者不否则这种SEO模式可以提升排名与网站权重。但是,除了发外链与每天更新内容外就没有其它的SEO手法可以有效地

    2022年7月2日
    39
  • node.js安装及环境配置超详细教程【Windows系统安装包方式】

    node.js安装及环境配置超详细教程【Windows系统安装包方式】简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeJavaScript运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

    2022年5月23日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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