聊聊 Java 数据类型的那些事

举报
小Bob来啦 发表于 2021/08/13 23:33:12 2021/08/13
【摘要】 大家好,我是小 Bob,一个关注软件领域而又执着于计算机底层的开发者~前面一篇文章说了Java的变量,我们通过定义变量得到一个名字,然后将某个数据存储在这个变量中,简单来说,这也是变量所承担的任务。那么,接下来我们来聊聊Java的数据类型。在定义变量时我们会在变量名前面说明变量的类型,比如是数字类型或者是字符类型?那么接下来我们来看看Java有哪些数据类型吧~一.基本数据类型在Java中,数...

大家好,我是小 Bob,一个关注软件领域而又执着于计算机底层的开发者~

前面一篇文章说了Java的变量,我们通过定义变量得到一个名字,然后将某个数据存储在这个变量中,简单来说,这也是变量所承担的任务。

那么,接下来我们来聊聊Java的数据类型。在定义变量时我们会在变量名前面说明变量的类型,比如是数字类型或者是字符类型?那么接下来我们来看看Java有哪些数据类型吧~


一.基本数据类型

在Java中,数据类型分为基本数据类型和引用数据类型两大类。

我们在定义变量时经常用到的基本数据类型包含了八种,一般的类型分别是整型、浮点型、 字符型、布尔型

整型中,我们会接触到byte、short、int、long这四种类型,其中byte所占比特位最小,仅占一个字节,其次是short,占两个字节;int类型占四个字节;long类型最大,占了8个字节。

下面将以表格的形式展示:

整形之间的差别便是位数的多少,即所占位数的大小决定你存储数字的大小。


浮点类型中,我们用的比较多的是float和double,前一个是单精度,后一个是多精度。单精度可以简单理解为精确到小数点后面的几位,而多精度可以精确到小数点后面更多的位数。

浮点类型中float占四个字节,为32位;double占八个字节,64位。在Java类型中,定义浮点数默认为double类型,如果要定义成float类型,在定义时需要在数字后面加上后缀f,比如:

float a=123.34f;
float a=123.34;


字符型则最简单,只有一个char,定义字符比如英文字母,常用单引号括起来。其中字符存放在单引号括起的单个字符,占两个字节,取值范围为[0,65535]。

谈到字符类型,则不可避免的要编码的概念:计算机内部使用二进制数,一个字符在计算机中是以0和1构成的序列形式来存储的。将字符映射到它的二进制形式的过程称为编码。

字符有多种编码方式,如常用的utf-8、GBK等,编码表定义了如何编码每个字符。


在Java还有布尔类型Boolean,当然在别的语言中也有。boolean类型只有两个值:false和true,常用于判定逻辑是否正确。如下:

boolean a=false;
boolean b=true;


我们在敲代码的时候,可能会遇到将整数类型转换成字符类型,或者字符型转换成整数类型,这时候我们的解决方案绝不是删掉重来,而是转换,在Java中,我们将转换分成自动转换类型和强制转换类型。

自动转换类型中,我们经常把一个表示数据范围小的数值赋值给另一个表示数据范围大的变量,该转换方式是自动的,直接书写即可。

另一种强制转换类型,则是把一个表示数据范围大的数值或者变量赋值给数值范围小的变量。

语法格式:目标数据类型 变量名=(目标数据类型)值或者变量。


二.引用类型

Java中的引用类型,在C和C++里通过指针操作内存中的元素,在Java中是通过引用。在Java中一切被视为对象,但我们操作的标识符实际上是对象的一个引用。

引用数据类型包括数组、接口、类,这些引用数据类型的初始值为null

那么何为String字符串呢?Java将由多个字符组成的字符序列称为字符串。

字符串类型由String关键字表示,其所表示的若干个字符序列必须包含于

英文双引号内。如:"阴天快乐"等。

比如我们用字符串定义一个s变量,那么s中存放的并不是字符串,而是内存地址,栈内存中存放变量的地址,堆内存中存放字符串。

继续干Java~

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。