java数据类型

前言

当我们开始学习java的时候,除了一些相关术语,第一堂与java编程相关的就应该是学习java的数据类型了吧。可能当别人问起java有哪些类型时,你可能琅琅上口的背出:byte,short,char,int,long,float,double,boolean等。如果你能对类型进行详细归纳,并说出每种类型的取值范围,那么说明你对java的类型已经非常的熟悉了,你也可以选择继续看下去巩固一下基础知识,如果你对此还有些拿捏不清,那么我们一起来看一下java的类型。

1. java语言数据类型和java虚拟机数据类型

Java语言的类型与java虚拟机类型的区别在于,Java虚拟机数据类型包括一个returnAddress类型。returnAddress类型的值指向一条虚拟机指令的操作码。returnAddress类型在java语言之中并不存在,而且无法在程序运行期间进行更改。下面以java虚拟机类型进行讲解。

2. Java虚拟机数据类型

Java虚拟机数据类型可分为两大类:原始类型(primitive type,也经常翻译为原生类型或基本类型)、引用类型(reference type)。与之对应也存在原始值引用值两种类型的数值,它们可用于变量赋值、数值传递、方法返回、运算操作。

2.1 引用类型与值

Java虚拟机是直接支持对象的,这里的对象可以是指动态分配的某个类的实例,也可以指某个数组。Java虚拟机中用reference类型来表示对某个对象的引用。关于reference类型的值,你可以想象成指向对象的指针。每个对象可能存在多个指向它的引用,对象的操作、传递和检查都通过引用它的reference类型的数据进行。

Java虚拟机中有3种引用类型:类类型数组类型接口类型。这些引用类型的值分别指向 动态创建的类实例、数组实例和实现了某个接口的类实例或数组实例。

数组类型最外面那一维元素的类型。叫做该数组的组件类型。一个数组的组件类型也可以是数组。从任意一个数组开始,如果发现其组件类型也是数组,那么继续读取这个小数组的组件类型,不断执行这样的操作,最终可以遇到组件类型不是数组的情况,这时就把这种类型称为本数组类型的元素类型。元素类型必定是原生类型、类类型或者接口类型之一

在引用类型中还有一个特殊的值:null,当一个引用不指向任何对象的时候,它就用null来表示。引用类型的默认值就是null

2.2 原始类型

Java虚拟机支持的原始类型有3种:boolean类型数值类型returnAddress类型

2.2.1 数值类型与值

数值类型又分为:整数类型浮点类型

2.2.1.1 整数类型:

整数类型包括:

  • byte类型:值为8位有符号二进制补码整数,默认值为0,取值范围为[-128~127] (-27 ~ 27-1)
  • short类型:值为16位有符号二进制补码整数,默认值为0,取值范围为[-32768~32767] (-215 ~ 215-1)
  • char类型:使用16位无符号整数表示的、指向基本多文种平面的Unicode码点,以UTF-16编码,默认值为Unicode的null码点(’\u0000’),取值范围为[0~65535]
  • int类型:值为32位有符号二进制补码整数,默认值为0,取值范围为[-2147483648~2147483647] (-231 ~ 231-1)
  • long类型:值为64位有符号二进制补码整数,默认值为0,取值范围为[-9223372036854775808~9223372036854775807] (-263 ~ 263-1)
2.2.1.2 浮点类型:

浮点类型包括:

  • float类型:值为单精度浮点数集合中的元素,或者(如果虚拟机支持的话)是单精度扩展指数集合中的元素,默认值为正数0
  • double类型:值为双精度浮点数集合中的元素,或者(如果虚拟机支持的话)是双精度扩展指数集合中的元素,默认值为正数0
2.2.2 boolean类型:

boolean类型的值为true和false,默认值为false。虽然Java虚拟机定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有提供任何boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译后都是用Java虚拟机中的int数据类型值来代替。

2.2.3 returnAddress类型

returnAddress类型是指向某个操作码的指针,此操作码与Java虚拟机指令对应。在虚拟机支持的所有原始类型中,只有returnAddress类型是不能直接与Java语言类型的数据类型相对应的。

3. 总结

在本篇中我们详细介绍了Java虚拟机中的数据类型,及其默认的值,相信读完后对Java的数据类型有了一个更为深刻的认识。将上面的总结为一张图为:

Java数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值