java支持的数据类型有哪些|分为基本数据类型和引用数据类型两大类

java支持的数据类型有哪些|分为基本数据类型和引用数据类型两大类

初学Java的时候最头疼的就是数据类型区分,写代码频繁报错,彻底搞懂java支持的数据类型有哪些,是敲好每一行基础代码的前提。之前总凭着模糊的认知随便定义变量,导致程序运行时出现类型不匹配、数值溢出、空指针等一堆莫名其妙的问题,改bug的时间比写代码的时间还要久。

最开始写数值计算代码时,所有数字变量全都用int类型,根本不知道不同数值范围要对应不同基本数据类型。上次做一个统计用户订单金额的小demo,订单金额有小数,强行用int接收数据,运行后所有小数直接被截断,原本几十块的金额变成整数,统计数据完全失真,整段业务逻辑直接作废。

后来试着逐个测试基础类型,才发现Java的八大基本数据类型各有固定的取值范围和使用场景。byte占1个字节,取值范围很小,只适合存储极小的整数数据,一般用来节省内存空间。short适用场景也比较窄,日常开发里几乎很少用到,基本可以忽略。int是最常用的整型类型,占4个字节,日常普通整数运算、变量定义用它完全足够。

长数值运算必须用long类型,定义变量的时候必须在数值末尾加L后缀,不加的话编译器会默认当成int处理,数值过大就会直接溢出。浮点型分float和double,float需要加F后缀,精度较低,只适合简单小数存储,而double精度更高,绝大多数小数计算、金额统计都会优先使用它。

字符类型char只能存储单个字符,不管是字母、数字还是符号,只能存一个,当初试过把一串文字赋值给char变量,直接编译报错,反复调试才记住它的使用限制。布尔类型boolean最简单,只有true和false两个值,专门用来做条件判断、状态开关,是分支语句、循环语句的核心基础类型。

基本数据类型是Java的底层基础,存储的都是具体的数值,而除此之外的所有数据类型,全部归为引用数据类型。

之前一直分不清两种类型的核心区别,直到一次数组赋值操作出错才彻底通透。引用数据类型不存储具体数值,只存储数据的内存地址,常见的数组、字符串、类、接口、集合都属于这类。

上次定义String字符串变量时,没有赋值直接调用方法,程序直接抛出空指针异常。当时排查了很久,才明白引用类型的默认值是null,和基本数据类型有固定默认值完全不同,这也是引用类型最容易报错的地方。

很多新手会误以为String是基本数据类型,这是高频误区。String本质是一个类,属于引用数据类型,只是使用场景太多,语法简化后看起来和基础类型用法相似,本质上完全不一样。

日常写代码的时候,基本数据类型用来存储单个固定数值,占用内存小、运行效率高。引用数据类型用来存储一组数据、文本内容、自定义对象,功能更丰富,但内存占用更高,还需要注意空值判断。

现在写代码定义变量前,都会先预判数据类型。整数默认用int,超大整数用long,小数统一用double,单个字符用char,状态判断用boolean,文本、数组、对象全部使用对应的引用类型。

最近实操项目里,批量定义变量时,再也没有出现过类型匹配错误的问题,只保留了引用类型偶尔空值未判断的小问题,接下来准备针对性补齐空值校验的编码习惯。

了解更多百科知识请访问 百科