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值。

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

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

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


相关推荐

  • SpringBoot笔记(2)

    SpringBoot笔记(2)

    2021年11月12日
    51
  • directshow是什么_direction arrow

    directshow是什么_direction arrow3.1DirectShow的功用(1)保证数据量庞大的多媒体数据处理的高效性;(2)时刻保持音频和视频的同步;(3)用简单的方法处理复杂的媒体源问题,包括本地文件,计算机网络,广播电视以及其他数码产品;(4)处理各种各样的媒体格式问题,包括AVI,ASF,MPEG,DV,MOV等;(5)支持目标系统中不可预知的硬件;DirectShow的设计初衷就是尽量要让

    2022年10月12日
    3
  • java的rsa加密算法_用java编程实现RSA加密算法

    java的rsa加密算法_用java编程实现RSA加密算法RSA加密算法是目前应用最广泛的公钥加密算法,特别适用于通过Internet传送的数据,常用于数字签名和密钥交换。那么我今天就给大家介绍一下如何利用Java编程来实现RSA加密算法。一、RSA加密算法描述RSA加密算法是1978年提出的。经过多年的分析和研究,在众多的公开密钥加密算法中,RSA加密算法最受推崇,它也被推荐为公开密钥数据加密标准。由数论知识可知,若将一个具有大素数因子的合数进行分解是…

    2022年5月8日
    301
  • 经纬度距离计算 python_Python已知两坐标求距离

    经纬度距离计算 python_Python已知两坐标求距离#coding:utf-8#封装函数importmathdefcal_dis(latitude1,longitude1,latitude2,longitude2): latitude1=(Math.PI/180)*latitude1 latitude2=(Math.PI/180)*latitude2 longitude1=(Math.PI/180)*longitu

    2022年9月15日
    2
  • 图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别

    图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别android平台下基于Camera详解NV21(YUV420P)、NV12(YUV420SP)和RGBA、RGB、BGRA、BGR概述NV21参考:https://blog.csdn.net/leixiaohua1020/article/details/50534150https://blog.csdn.net/junzia/article/details/76315120https…

    2022年7月16日
    22
  • 冒泡排序详解_超详细电音

    冒泡排序详解_超详细电音1、什么是冒泡排序?冒泡排序的英文BubbleSort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。冒泡排序的原理:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第2位上的数归位,依次类推下去。如果有n个数进行排序,只需将n-1个数归位,也就是要进行n-1趟操作。而“每一趟”都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面

    2022年10月19日
    3

发表回复

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

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