0基础java入门:第七节.Java中的数据类型

第六节.Java中的数据类型与变量

1. 什么是数据类型

数据类型是所有编程语言中都不可或缺的部分,我们研发程序的目的就是解决生活中的问题。而在生活中我们我们的数据也是分成多种的,例如年龄,性别,姓名,价格等,我们虽然在生活中没有具体的分类但是我们也能明白像价格,年龄这些数据是可以计算的数值类型。而性别和姓名这些数据是不可以进行计算的。而在程序中我们需要更加明确这些数据的用途,故而在编程语言中要对不同的数据进行区分。而java中的数据类型的种类很多很精细。我们一般说java是一门强数据类型的编程语言。当然有强数据类型就有弱数据类型语言比如:javascript脚本语言。下面让我们来详细了解一下java中的数据类型

2.Java中的数据类型分类

如上图所示:

Java中数据类型分成两个大的类型,基本数据类型引用数据类型。

基本类型

其中基本数据类型中又分成了 数值型,字符型,布尔型。

数值类型中又分成了 整数类型和浮点类型(小数类型)。其中整数类型中 有 byte 字节型 ,short短整型,int 整型,long 长整型 四种。浮点型中有 float 单精度,double双精度 两种,这些都是用来表示数值的。

字符类型为char 类型 用来表示任意一个字符或符号。 

布尔类型为Boolean 用来表示真 或 假,true表示真 fasle表示假。

引用类型

引用数据类型可以认为是由基本数据类型组合而来的类型,这里我们不做详细解释,之后的课程对数组 类 和接口都会详细学习。

class 类:Java中最常使用的引用类型 ,比如每一个基本数据类型都会对应一个包装类, String类字符串 等都是引用类型,而且我们学到面向对象之后可以自定义各种类,这些都属于引用类型在之后的课程中会详细的学习。

interface 接口:一种特殊的引用类型,主要作用是用来规范类的功能实现。这是我们学习面向对象之后需要了解的。在项目中我们也会经常使用到接口。后边课程由详细解释和学习。

array 数组 [] : 用来表述 一组多个数据的数据类型。这个后边的课程也有详细的解释。

在这里我们首先学习基本数据类型的使用。引用类型的使用会在之后的课程中逐步的展开。

3.基本数据类型详解

不同的数据类型在程序中表示不同的数据空间大小,和取值范围。(如果对于存储空间不是很了解我们可以先看本页的第5小节关于数据单位与存储空间)

类型

空间

取值范围

默认

包装类

整数

byte

1B

-128到127

0

Byte

short

2B

-2的15次方到2的15次方-1

0

Short

int

4B

-2的31次方到2的31次方-1

0

Integer

long

8B

-2的63次方到2的63次方-1

0

Long

小数

double

8B

1.7976931348623157E308到4.9E-324

0.0

Double

float

4B

1.4E-45到3.4028235E38

0.0

Float

字符

char

2B

一个中文或英文字符

空格

Character

布尔

boolean

1B

true/false

false

Boolean

 

整数 byte short int long 分别  1 2 4 8 字节

byte类型空间为 1字节 能存储值的范围 最大到127 最小到 -128 依次shrot类型 int类型 long类型 每个类型空间大小提高一倍。能存储的值的大小也诸葛增加。

小数 float 4字节 double 8字节

小数中float 4个字节 ,double8个字节。除了存储的最大值和最小值不同外,能存储小数的最大精度也不同。float最多存储6-7位有效数字 ,double最多存储15-16位有效数字

字符 char 2字节

字符类型 可以表示一个中文或英文都可以  但是只能表示一个,数据使用 单引号包裹 。如: 'a'  'B' '你'.

布尔 boolean 1字节

boolean类型只能表示真假 true 表示真 false 表示假。

4.基本数据类型常量演示

首先了解一下什么是常量。

常量:constant常量可以简单理解为是固定的值,不能改变的值。例如 1,2,0.9,你,a 等这些这些具体的数据我们称作常量。常量是在程序运行期间不会发生改变的值。下面我们学习各种类型的常量使用。

整数常量演示

Java中的整型常量可以有 二进制,八进制,十进制,十六进制 四种表现方式。

二进制: 由0,1组成。以0b和0B开头。(JDK7新特性)

八进制: 由0,1,…7组成。以0开头。

十进制 :由0,1,…9组成。整数默认是十进制。

十六进制: 由0,1,…9,a,b,c,d,e,f(大小写均可)组成。以0x或0X开头。

这里需要注意的是在程序中直接书写的整数常量默认最大是int类型。如果需要书写long类型的常量,需要在常量值后加上 L (或l小写 建议使用大写)

代码演示:

public class Demo1{
	public static void main(String[] args){
		// 整数常量演示
		System.out.println(0b10); // 二进制 10  = 十进制的 3
		System.out.println(017);  // 八进制 17  = 十进制的 15
		System.out.println(102);  // 十进制 102 
		System.out.println(0x1f); // 十六进制 1f  = 十进制的 31
		System.out.println(12312343423435L); // long类型常量  如果常量的值超过了int类型就必须加L
	}
}

执行结果:

小数常量演示

Java中的小数常量有 double 和float 两中类型,他们最大的不同在于保留的有效位数不同。double类型精度保留15到16位,float类型保留6到7位。double类型的小数常量可以D(或d)结尾,一般我们省略不写。float 类型的小数常量必须以F(或f结尾),这个是不能省略的

代码演示:

public class Demo1{
	public static void main(String[] args){
		// 小数常量演示
		System.out.println(2.01D);//默认小数double类型 可以不加D
		System.out.println(2.111111111111111111);// 默认小数类型是double类型 
		System.out.println(2.111111111111111111F);// 小数后添加F 表示float类型
		System.out.println(21111.11111111111111);// 默认小数类型是double类型 
		System.out.println(21111.11111111111111F);// 小数后添加F 表示float类型
	}
}

执行结果:

通过代码和结果,仔细观察有效位数的变化规律。

字符常量演示

字符常量用于表示一个字符,一个字符常量要用一对英文半角的单引号 '  ' 包裹起来,它可以是英文字母,数字,标点符号以及由转义字符表示的特殊字符。

代码演示:

public class Demo1{
	public static void main(String[] args){
		// 字符常量演示
		System.out.println('a');//用单引号包裹的一个字符
		System.out.println('你'); 
		System.out.println('$');
		// 从这里向下的代码中 单引号内包裹的并不是一个字符 但是也可以编译执行?
		System.out.println('\'');
		System.out.println('\u0000');
		System.out.println('\\');
	}
}

执行结果:

上面事例中,’\u0000’ 表示的是一个空白符,也可以理解是一个空格。这种以 \ 开始的字符在java中叫做转义字符。转义字符是一些有特殊意义的符号。如下:

\u0000 表示一个空白符号 即一个空格

\n 换行

\r 从当前行的最前端输出

\t 从下一个制表位输出

\b 退格 相当于Backspace

\’ 因为‘单引号本身就是特殊字符所以需要加一个 \ 转义成普通字符

\” 因为“单引号本身就是特殊字符所以需要加一个 \ 转义成普通字符

\\ 因为  \单引号本身就是特殊字符所以需要加一个 \ 转义成普通字符

注意:除了这些特殊字符外,任何情况都不能在单引号中间书写多个字符。

布尔常量演示

布尔型常量即boolean类类型的两的值 true和false,该常量是用来区分真与假的

代码演示:

public class Demo1{
	public static void main(String[] args){
		// 布尔常量演示 boolean类型只有两个值 
		System.out.println(true);//这个常量代表真
		System.out.println(false);//这个常量代表真
	}
}

运行结果:

空常量

null常量只有一个值,表示对象的引用为空。关于null我们会在以后的课程中详细介绍。null常量是不能输出使用的。他也是Java中的一个关键字。

字符串常量演示

字符串常量用于表示一串连续的字符或多个字符。一个字符串常量要用一对英文半角格式的双引号 ” ” 引起来。

代码演示:

public class Demo1{
	public static void main(String[] args){
		// 字符串常量演示  
		System.out.println("hello world !!!");//只要是被双引号包裹了就都是字符串
		System.out.println("好好学习");
		System.out.println("Never give up");
		System.out.println("每天看一节 轻松学代码");
	}
}

运行结果:

5.关于数据单位与存储空间(不明白什么是字节Byte的可以先看看这里)

在这个小节我们来理解一下数据的衡量单位。这个数据的衡量单位由很多。其实数据的衡量单位离我们的生活也很近,最常见的就是手机流量的使用。比如我们手机卡的流量每月是1个G,那么这一个G的流量我能看一篇多少字的小说呢?

首先我们需要先从计算机的存储方式讲起。我们现在使用的计算机和手机都是二进制存储方式进行存储的,这里我们现需要理解一下进制是什么以及进制转换的简单逻辑。

进制

进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法)。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。在开发过程中我们会用到 十进制,二进制,八进制,十六进制等。其实我门可以这样理解进制,几进制就是 一个位置上可以出现的数字个数,如果超出了就需要多加一位。注意数数儿的时候我们要从0开始数。比如我们常用的十进制,在一位数上有 0,1,2,3,4,5,6,7,8,9 这十个数字 如果在向下数 十就需要两位表示 10 ,也就是逢十进一。二进制一位上的数字只有 0 , 1 二就需要 10 来表示 ,逢二进一。八进制 一位上有0,1,2,3,4,5,6,7 ,八就需要两位表示就是 10。十六进制的一位上有 0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15),十六就需要用两位10表示。

数值    /   进制

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

十一

11

1011

13

B

十二

12

1100

14

C

十三

13

1101

15

D

十四

14

1110

16

E

十五

15

1111

17

F

十六

16

10000

20

10

十七

17

10001

21

11

十八

18

10010

22

12

十九

19

10011

23

13

二十

20

10100

24

14

在上图我们可以看到个中进制之间相同值的不同展示方式。例如十进制的8在计算机存储的就是 二进制的1000 。其实不管是数字还是其它数据最终在计算机中存储的都是二进制。也就是只有0和1.

数据空间的表示

而这些二进制数据如何在计算机上存储的?计算机中每一个0或1占的位置叫做bit(比特binary digit 二进制数字)。八个bit 就是一个B(Byte字节)。下边是数据单位的转换。

1B=8bit  : 1个字节是 8个 bit

1KB=1024B :1KB(千字节) 是 1024字节

1MB=1024KB : 1MB(兆字节)是 1024KB

1GB=1024MB : 1GB(吉字节)是 1024MB 这个就是我们手机流量总说的一个G

1TB=1024GB :1TB(太字节) 是 1024GB

1 PB = 1024 TB

1 EB = 1024 PB

1 ZB = 1024 EB

1 YB = 1024 ZB

如果我们看小说?一个汉字需要用两个字节表示,那么我们能看多少个字的小说的最多?

二进制与十进制的转换方式

在计算机内,定点数有3种表示法:原码、反码和补码
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

十进制的转换二进制规则 阶梯法

如上图将十进制的50转换成二进制的数字使用阶梯法。每次除以2结果去的是余数。出到结果为0停止。倒叙排列余数就是二进制的值。

二进制转换十进制的规则

二进制的数字从又向左每个位分别代表10进制的 2的1次方,2的2次方,2的3次方以此类推。将每个结果都累加在一起就是十进制的结果。注意二进制的位上是0的话十进制的值就不累加。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值