java基本数据类型有哪些_java中有八种基本数据类型

java基本数据类型有哪些_java中有八种基本数据类型在java中有八种基本数据类型对应每种基本类型又有八种包装类型:基本类型:boolean,char,int,byte,short,long,float,double包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double从上面我们可以看到除了char和int其它的包装类型名称和对应的基本类型一样只是首字母大写了。既然有了基本…

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

在java中有八种基本数据类型对应每种基本类型又有八种包装类型:

基本类型:boolean, char, int, byte,short,long, float,double

包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double

从上面我们可以看到除了 char和int其它的包装类型名称和对应的基本类型一样只是首字母大写了。

既然有了基本类型为什么还要有包装类呢?我们在使用的过程中究竟用基本类型还是包装类呢?

JAVA是一个面向对象的语言,而基本的数据类型是值类型,在很多情况下是没法直接用值类型的。比如集合里面的类型是Object不能接受值类型。

还有一种情况,假设我们要定义一个变量表示分数 如果用基本类型表示的话:int score;

默认值为零,如果我想表示分数为空也就是没有参加考试就没法表现了因为值类型是无法赋空值的。

正是因为值类型的这些缺失,所以java中对应每种值类型给了一个包装类型:包装类型是引用类型,说白了就是一个类,既然是类,里面可以有属性和方法,它里面有哪些属性和方法呢?每个包装类型和基本数据类型都是大同小异的,我们拿Integer 和 int来举例说明:

假设有这样一个场景,我接收到一个String型的数据想把它转换为整型,如果没有包装类这个操作是无法完成的,有了包装类我们可以这样做:

String num1 = “123”;

int num2 = Integer.parseInt(num1);

parseInt就是Integer包装类提供的一个将字符串转成int型的方法。

那么具体什么时候使用基本数据类型什么时候使用包装类呢?

我们要知道,基本数据类型是保存在栈中的,而包装类型是保存在堆中的,包装类型占用的空间比基本数据类型大,执行的效率也比基本数据类型要低,所以优先使用基本数据类型,在基本数据类型满足不了需求的情况下再考虑包装类型。除了上面提到的场景还有一个典型的场景,比如在控制器中接收一个参数该参数定义成了基本数据类型int那么传过来的参数如果为空则会报空指针错误,如果定义为其包装类型Integer则不会报错,而是得到一个null值。

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

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

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

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

(0)


相关推荐

  • FVWM_fw一流是什么意思

    FVWM_fw一流是什么意思国庆期间,把自己的FVWM好好整理了一下,现在我的桌面看上去是这个样子滴(点击可放大):我的.fvwm2rc可以下载。我的部分FVWM笔记:***   如何使用托盘      $sudoapt-getinstalltrayer      $trayer–widthtypepixel–width128–height32–edgebottom&***  

  • lnk2019无法解析的外部符号_declspec_无法解析的外部符号lnk2001

    lnk2019无法解析的外部符号_declspec_无法解析的外部符号lnk2001VisualStudio2015编译中出现此问题:errorLNK2019:无法解析的外部符号__vsnprintf,该符号在函数xxxx中被引用解决方案:1、可能是由于某些头文件的函数或者未连接某些链接库所引起,故将头文件和链接库包含进去就OK。2、在项目工程属性中将MFC的使用变为“在共享DLL中使用MFC”3、编译时加入以下代码#include<Windows.h…

  • SpringBoot——ResponseBody

    SpringBoot——ResponseBody很多情况下我们希望后端的调用结果能直接写入Http的响应体中以供前端获取来更新页面显示,此时需要我们在以@controller为注解的类中对相应方法加上@ResponseBody注解:@ControllerclassHelloWorldController{@RequestMapping(“/hello”)@ResponseBodypublicStringhello(){return”HelloWorld!”;}}我们也可

  • [转载]下载网页中的ts视频文件

    [转载]下载网页中的ts视频文件目前来说,网上视频下载主要分为两大类,一类是大型正规网站,另一类就是第三方视频,基本上都是个人网站或者个人上传到网上的视频。第一类视频下载非常好办,只要下载安装官方客户端即可。第二类目前稍微复杂,目前主要的下载手段有通过浏览器视频嗅探插件、视频解析下载工具还有IDM嗅探下载。大家都知道,现在的视频网站播放技术主要以m3u8为主,这样的好处是用户点击暂停时即停止视频缓存,不造成宽带流浪占用浪费,同时也减轻了服务器的访问请求压力。这样做的坏处也很明显,嗅探软件不能嗅探完整的视频文件,嗅探到的也都是每

  • java工程师薪资待遇_java软件工程师一个月挣多少钱

    java工程师薪资待遇_java软件工程师一个月挣多少钱Java软件工程师工资待遇详解时间:2018-08-16来源:未知Java软件工程师工资待遇情况怎么样?Java软件工程师的工资水平与哪些因素有关呢?今天小编从这两方面和大家来进行分析一下Java工程师工资待遇。Java软件工程师工资待遇情况据有关数据显示,目前,我国对软件人才的需求已达20万,并且以每年20%左右的速度增长。在未来5年内,合格软件人才的需求将远大于供给。2016年的时候…

  • S3C2440 LED驱动总结

    S3C2440 LED驱动总结1.电路图2.使用说明此驱动实现二种操作模式: 普通操作模式:./LedTest<led1/led2/led3><on/off> 点亮或熄灭某个LED灯 掩码操作模式:./LedTestled_mask led_mask只能是:000、001、010、011….111 可以同时设置三个LED,对应1位置的LED被点亮,对应0位置熄灭…

发表回复

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

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