Java学习里程-----Java基础_2数据类型

一、什么是数据类型

说到数据类型,这个还得将一下计算机,计算机是采用二进制来进行计算,处理的机器,所以我们所看到的一些文字、数字、这个其实在计算机里面是二进制存储。

知道了这个之后,我们再来说数据类型,数字1、汉字“我”,这个对于人来说,是很简单的,1就是数字,“我”是一个汉字,但是对于计算机来说,它并不知道这个是什么玩意,所以你得告诉它,1这个东西是个数字,“我”这个是个汉字。数据类型就是对于数据类型的定义。

二、数据类型有那些

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

三、基本数据类型

Java中给定了 8 个基本数据类型,分别是:

byte  short  int  long float double char boolean

其中byte、short、int、long被称为整数类型;

float、double被称为浮点型;

char被称为字符类形;

boolean是布尔类型;

每一种数据类型都有他们的大小和定义方式,包括取值,废话不多说,直接上图:

Java学习里程-----Java基础_2数据类型

当然,在这里还得说一个东西,叫字节,我这个图里面没有说。

字节:字节(Byte )是计算机中用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。

(注意 Byte 和 byte 这个是两种东西,别弄混了!!!)

四、引用数据类型

除去这些个基本数据类型,剩下的可以被称为引用数据类型。

他们可以包括  类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型

举例:String 这个就是个典型的引用数据类型!

五、基本数据类型的定义和使用

(原本这个应该分开说,后来想想算了,一起来吧)

1.整数类型(以下的四个都是整数!!)

上面我们说了,整数类型有四个:byte、short、int、long

 

byte:比特,这个是一个常见 的基本数据类型,你在学习IO的时候,会经常用这个东西。byte定义的长度是 负128~正127,占用字节大小是1字节,大约存储在计算机是这个样子的:

1byte 最小:11 111 111 这个第一个1 代表着符号,表示负,计算是 2的7次方 也就是 -128

1byte 最大:01 111 111这个第一个0 代表着符号,表示正,计算是 2的7次方减1 也就是 128-1=127

因为第一位数字不做计算,所以不计入次方中,也就是2最高也就7次方,所以最小的值是负的2的7次方

但是又因为0这个特殊的数字,我们将0给了最小的里面,所以最大的要减1。

排序:-128 .........0 1 2 3 ...... 127是这样滴。

它的默认值是0!(别以为默认值不重要,一定要牢记这些,对你以后的开发会有很大的好处!)

 

short:这个我是不咋常见,貌似也就当时学习的时候用了一下,然后。。。short定义的长度是-32768到32767,这个相比这个byte长了很多很多,它在计算机中占用2个字节,也就是16位,所以要比这个byte长很多很多。

这个玩意和byte一样,数字的第一位是控制符号的:

最小值:2的15次方(负的)

最大值:2的15次方-1

它的默认值也是0!

int:这个在Java中经常用,它在计算机中占用了4个字节,占用位数32位,它相比前俩,大的已经够够的了,我个人觉得已经很大了。

最小值:- 2,147,483,648  这个是 负的2的 31次方

最大值:2,147,483,647 这个是2的31次方减一

它的默认值也是0!

long:Java中常用,但是,一般int就够用了,反正我是不用,这个太大了~~~,继续说,这个占用8字节!8字节啊,占用位数64位。属于这几个当中的大哥人物。

最小值:-9,223,372,036,854,775,808 (反正我已经数不过来了)负的2的63次方

最大值:9,223,372,036,854,775,807 (哦买噶) 2的63次方-1

默认值是 0L (注意,不是0,而是0L!!!)

2.浮点类型(是我们说的那些个带小数点的)

浮点型的有俩,一个是float,一个是double

float占用4个字节,和int占用大小一样,同样也是32位的;

double占用的是8字节,和long占用大小一样,同样也是64位的;

float有效的小数位是6-7位,而double是15位!所以相应的,float被称为单精度浮点数,而double是双精度浮点数

 

在Java中默认声明的小数是double类型的,如double d=4.0,如果声明: float x = 4.0则会报错,需要如下写法:float x = 4.0f或者float x = (float)4.0,其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义

3.字符类

char,就这一个字符类型的基本数据类型,我们来说说它。

在Java中,char占2个字节,16位;这个里面也可以放数字,也可以放文字,比如说汉字、英语字母等

而且,每一个char只能定义一个字符,不能有多个:

char a=‘a’;这个是对的

char b = ‘ab’ 这个是错误的

还要说明的一点,有一些字符、操作需要转移才可以输出,不然无法输出你所需要的,可能我说的不明确,来,直接看代码

Java学习里程-----Java基础_2数据类型

报错了,错误原因:Invalid character constant,google翻译->无效的字符常量

这会儿你就需要转移字符了

Java学习里程-----Java基础_2数据类型

OK,编译器通过,并且完美输出,像这样的转移字符,有很多,我就不列举了,直接百度查找,关键字:Java转义字符

除去这个转移字符之外,还有一个叫做Unicode码,这个码是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

这个Unicode码有一个表的,我用别人的去说一下吧:

https://www.cnblogs.com/whiteyun/archive/2010/07/06/1772218.html

Java学习里程-----Java基础_2数据类型

看,如果我现在想输出第一行,倒数第二个字:与,我应该怎么输出?废话不说,直接上代码:

Java学习里程-----Java基础_2数据类型

\u  + 4e00 中的 4e0 + 列 E 组合成 \u4e0E

大家可以找找自己的名字所对应的字是那个,将他输出出来

4.布尔类型

这个类型只有两个值,一个true,一个false,要么是对,要么是错;

这个是很特殊的类型,仅占一个字节,8位。

这个经常使用,要知道,就两个值!!

 

我觉得这个介绍已经可以了,大家可以好好看看,慢慢来消化,打好基础!