【零基础】小声bb Java系列第三讲:Java的基本数据类型

在这里插入图片描述
大家好,我是浩哥。哎呀,好像好几天没更了。其实,写blog确实是一件不容易的活呀,坚持写更是不容易。找资料、打草稿、找图、修改、排版、同更几个平台(公众号、CSDN与知乎),每一道工序都十分耗费时间。

有朋友可能会疑惑:这个知识点那么简单,而且你自己本身已经会了,要讲岂不是轻轻松松,还用找资料?

要知道,这是教程,是教别人的,我要对我说的话的真实性、可靠性、准确性负责,而为了做到这一点,我就**不能单凭个人的片面理解来进行讲解,需要多方查找资料进行核实,以及对比权衡,看看哪种说法会更好更准确。**因此,看起来普普通通的一篇文章,背后可能要花上数个小时的时间去完成。

所以…

大家读完文章以后,不妨动一动手指头,帮忙点个在看,分享给更多的人?这将会成为我持续更新的无限动力!【露出阴险而不失礼貌的笑容】
在这里插入图片描述
(悄咪咪说一句,每看到平台增加哪怕一位粉丝,我都能乐上几天~)

咳咳,回归正题,今天这一讲,打算跟大家分享一波Java的基本数据类型是什么。话不多说,马上开始吧!

1
**Java的基本数据类型有四种,分别是逻辑类型、整数类型、字符类型与浮点类型。**就像人的语言,有数字,有字母,也有汉字。不懂?没关系!先初步认识一下,下面会详细介绍。
I
逻辑类型,所谓“逻辑”,无非就是对与错。(没错,就是非黑即白)
它的常量有true(对)与false(错)两种。而变量则是用关键字boolean来声明,一起来瞧瞧下面的例子。

boolean 浩哥无比机智 = true;

这句代码中,“浩哥无比机智” 是一个变量名(也就是前一讲提到的标识符,标识符其实可以是中文,但不提倡),前面的那个boolean起的是声明这个变量的作用,后面则是你想赋予给这个变量的值,true也行,false也行。(当然,我知道你发自内心想给true的)

下面再举一个例子。

boolean hahaha = false;

同样,“hahaha”是一个变量名,false是你赋给这个变量的值。

既然在这里说到变量名,就顺便提一下。我举例子时用的变量是随便命名的,但实际开发中,变量最好要结合其实际作用而命名,清晰明了,要让别人“闻其名而晓其人”,绝不能无厘头命名

俗话说的好,“一例胜千言”(其实就是我说的),我还是举个例子吧。

如果你是想用这个变量表示汉堡包,那你可以用它的英文进行命名“ham…”
emmm。。。
汉堡包英文怎么写来着?
忘了也没关系,你可以用拼音命名,如“han_bao_bao”。
如果有很多个汉堡包,那么你也可以用“han_bao_bao1”“han_bao_bao2”“han_bao_bao3”等等进行区分。
绝不能简简单单地命名为“a”“b”“c”等无厘头名字。

II
整数类型里面,又分为四种,分别是byte型、short型、int型和long型

byte型,也叫字节型,使用关键字byte声明变量。
short型,也叫短整型,使用关键字short声明变量。
int型,也叫整型,使用关键字int声明变量。
long型,也叫长整型,使用关键字long声明变量。

这四种类型的区别是什么呢?其实就是这四种类型的变量的取值范围大小不一样。byte型变量的取值范围最小,是-2727-1;比byte型更大的是short型,取值范围是-215215-1;比short型更大的是int型,范围是-231231-1;最大的就是long型了,范围是-263263-1。

那么知道他们的取值范围大小对实际操作有什么意义呢?我继续举例子。

int lalala = 1000000000000000;

以上代码中,赋给变量的值比int型规定的范围还要大,这时候就会出现溢出,说白了就是太多了,int容不下。
在这里插入图片描述
上图中,报错信息显示“out of range”,就是说超出应有的范围了。
所以,如果不想报错的话,就要乖乖的把变量值与变量定义类型的范围对应好哦。

III
字符类型它的常量是用单引号括起来的Unicode表(下面会解释)中的一个字符,变量则使用关键字char进行声明。
如:

char x = ‘a’;

那么x就是变量名,’a’就是赋给这个字符变量的值。

又如,

char earth = ‘地球’;

同理,earth是变量名,’地球’就是赋给字符变量的值。

至于Unicode表,我上维基百科(程序猿基本上都有用这个,比x度好点)搜了下它的官方解释,大家可以先看看大概了解下。
在这里插入图片描述
说白了就是,Unicode字符集中包含了世界上绝大部分语言中的字符,采用Unicode编码的语言(例如Java)可以对其中的字符进行编码,从而达到将文字解释为计算机可理解的语言的目的。

下图是Unicode编码集的一部分,可以欣赏一下。
在这里插入图片描述
IV
浮点类型里面,又分为两种,分别是float型和double型

float型,也叫单精度型。它的常量后面必须要有后缀“f”或“F”,如:

float  x =  23.33ffloat  y =  66.666F

变量则用关键字float进行声明。

**double型,也叫双精度型。它的常量后面可以有后缀“d”或“D”,“可以有”的意思就是可以省略。**如:

double x = 12.345;
double y = 12.345D;
double z = 12.345d;

以上三种表示方式都是可以的。
变量则是用关键字double进行声明。

单双精度的区别就在于,**双精度型变量的取值范围更广更精确。**单精度型变量的取值范围是10-381038和-103810-38;双精度型变量的取值范围是10-30810308和-10-30810308和-10-308~10308;

这些取值范围其实不需要我们记,我们只需要知道float变量在存储float型数据时保留8位有效数字,而double变量在存储double型数据时保留16位有效数字就可以了。简而言之,变量值要是保留8位以内的有效数字,就用关键字float去声明这个变量;要是保留8-16位有效数字,就用double去进行声明。(当然,保留8位以内有效数字的变量也可以用double声明的。)

为了方便大家理清上面提到的知识点的思路以及逻辑关系,我用X-Mind软件弄了以下思维导图供大家参考。
在这里插入图片描述
X-Mind这个软件做思维导图确实不错,有需要做思维导图的朋友可以去下载个。
(X-Mind非官方托就是我没错了)
在这里插入图片描述
2
上面提到那么多种基本数据类型,大家又是否知道他们之间是可以相互转换的呢?

我们先把这些类型按精度从低到高(依次为从左到右)排一个序:
byte、short、char、int、long、float、double;

因为byte、short、int、long都是整数类型,而float、double都是浮点类型(也就是精确到小数点后面),因此float、double精度理所当然比较高。然后整数类型里面,取值范围越大的类型,精度当然更高,所以byte、short、int、long这个次序也很好理解了。至于为啥char夹在short和int型之间,我就不太清楚了。

基本数据类型的转换有相关规则。
**I.当把级别低的变量的值赋给级别高的变量时,系统会自动将数据类型转换成级别高的一方。**这句话怎么理解呢?请看下例。

float x = 666; 

按照以上规则,如果输出x的值,结果将会是666.0;
因为变量值666是int型,级别比float型低,因此输出的数据将是float型。

**II.当把级别高的变量的值赋给级别低的变量时,要使用显式类型转换运算(也叫强制转换运算)。**什么是显式类型转换运算呢?它的应用格式如下:
(类型名)要转换的值;

举个例子你就懂了。

int x = (int)12.345;

12.345显然是float型,float型的级别比int型高,因此要把它转换成int型,就必须在变量值前加上你想转换的目标类型名

本讲就到这里了~如果觉得此文对你有所启迪,不妨点个赞,分享给更多的人?
在这里插入图片描述
部分资料参考:维基百科,搜狗百科,《Java面向对象程序设计(第2版)》

欢迎扫码关注微信公众号【码界萤火虫】,所有文章将首发于公众号~谢谢支持!
扫我的都是帅哥美女!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值