Java为什么要有基本数据类型和包装类型

Posted amcomputer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java为什么要有基本数据类型和包装类型相关的知识,希望对你有一定的参考价值。

作为面向对象语言为代表的Java, 在很多任务场景中经常看到它的身影。那么,Java为什么要有基本数据类型和包装类型? 这个问题看似简单,其实也不好回答。毕竟这个问题不仅你我感觉到困惑,许多大佬也感觉到困惑,一些人希望把基本数据类型剔除,一些人希望继续保留。

一 简单回顾

基本数据类型(8):byte,short,int,long, float, double,boolean,char

对应的包装类型,Byte,Short, Integer,Float,Double, Boolean, Charecter

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

二 一些见解汇总

反对者:由于Java的基本数据类型的使用,在一定程度破坏了面向对象过程。基本数据类型就想一颗耗子屎破坏了Java的面向对象思想。这个角度很好理解,因为基本数据类型应用场景一般是以数值计算为主,即经常用来面向过程的一些开发或者设计。所以基本数据类型就破坏了面向对象为核心的Java体系。

笔者比较赞同支持者,这里写主要2点。

支持者: 一切软件设计或者分析都要以性能的角度来考虑。留下基本数据类型的原因是它们能够带来系统性能的提高。可以从上述表格进行理解,对应基本数据类型int,占8个字节。而对于Interger类所创建的对象则需要int基本数据类型资源的3倍,因为创建管理的需要8个字节,创建出真正的对象也需要8个字节,另外创建引用也需要8个字节。同时,基本数据类型不需要垃圾回收,而对象还需要额外的系统资源来回收对象垃圾。  在另一方面,Java应用也有一些以数值计算为主的使用场景,如果剔除掉基本数据类型,可能会带来很多不方便。

 

故至今为止,我们还能看到Java的基本数据类型和包装类型一直都在Java.lang包中,笔者相信,在未来的时间里,基本数据类型也会一直在。

进一步阅读

以上是关于Java为什么要有基本数据类型和包装类型的主要内容,如果未能解决你的问题,请参考以下文章

java 面向对象(十八):包装类的使用

Java之数字处理类浅析

有了基本数据类型,为什么还需要包装类型

java包装器类型

Java基本数据类型与包装类型(转)

Java千百问_06数据结构(003)_什么是基本类型包装器