什么是数据类型:
百度说:数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
简单理解 : Java对数据进行了分类,存在不同的数据类型
- 为什么需要数据分类:不同的数据类型占用的存储空间不一样,为了更好的利用计算机内存空间
在 Java 的领域里,
- 基本数据类型变量: 存的是数据值本身,
- 引用数据类型变量: 存的是保存数据的内存空间地址。
- 学习数据类型基本认识:
- Java中每个变量都有一种类型,类型限制了变量可以存放那些值的类型
-
-
-
-
- 示例:比如整数 浮点数
-
-
-
-
- 引用数据类型 类(class ):一个类就是一个数据类型
- 计算机存储数据:存储在硬盘【磁盘】,硬盘中的方式都是用的二进制数据的方式进行存储
-
01010101010101010101010101010101
今天我们重点讲 基本数据类型,讲 基本数据类型 之前,因为计算机本质存储的是二进制数据!所以我们先来了解下 进制!
- 为什么要了解二进制?
因为计算机底层本质存储的数据形式就是二进制数据:例如 0101010101010101
- 进制的概念
10进制 (逢10进1)(计数) 在我们生活中最常用,同样,在我们写代码中也最常用。
其中的符号可以是 :1 2 3 4 5 6 7 8 9 0
2进制 (逢2进1) 10
其中的符号可以是: 1 0
8进制 (逢8进1)10
其中的符号可以是: 0 1 2 3 4 5 6 7
16进制(逢16进1)10 :
0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15)
其中的符号可以是:
示例:2A
- 进制转换:
- 不同进制在代码中的表示方式
- 默认的进制10进制
- 二进制: 是 0b 或者 0B卡头
- 八进制: 是0开头
- 十六进制: 0X (0x) 开头
注意:上面不同进制在Java代码中输出的结果都是 10进制
- 基本数据类型(8种)
|
1024T
1T = 1024G
1G = 1024MB
1M = 1024KB
1KB=1024Byte
1Byte = 8 bit【1个bit就是一个二进制位】00001111
|
- 为什么会有不同大小的类型,举个例子比如存 5 这个数据怎么存的?
byte(8位,范围是-128到127)
short(16位)
int(32位)
long (64位)
- 上面的byte short int long 最大长度可以通过jdk文档去找到 具体的范围。
- 如果值比long还大,怎么办?
Java提供了一个类:BigInteger:用于处理较大整数:目前知道就好不必深究
- long赋值时,因为整数默认是int类型,要转换为long类型的值,后面加上l或L
- 同一个整数可以使用不同的进制表示:(System.out.println(0b101)需jdk1.7才能按照十进制输出)
- Java7 开始 支持数字之间用 _ 分割(12_34_56输出123456)
- 浮点型 float double 其实就是小数
-
float(单精度32位)
直接给变量赋值时必须在浮点类型数据后面加上f 或F
[ 表示该数据是一个浮点类型数据 ]
double( 双精度64位)
单精度双精度区别:
- 对于单精度浮点数,运行速度相比double更快,占内存更小,
- 但是当数值非常大或者非常小的时候会变得不精确。
- 2.双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。
-
默认浮点数的类型是 double
表现形式:
常规 3.14 3.14f
科学计数法
例如 3.14e2 3.14*10^2 3.14e-2
注意:表的时候会有精度损失 [ 使用浮点数的时候需要注意 ]
例如 double num= 1.0, 是一个无限接近1.0的一个值
示例 Java代码:1.3*1.4
结论:浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是 因为数的大小,而是因为数的精度。因此,产生的结果接近但不等于想要的结果。尤其在使用 float 和 double 作精确运 算的时候要特别小心。
那怎么更精确的表示浮点数呢?
Java提供了一个类BigDecimal来表示更精准的浮点数:目前知道就好不必深究
- 字符char [了解]
- 什么是字符:单引号引起来的一个符号就是字符数据 例如:’A’
- 存储单位16 位[0-65535] [2个字节,16位]。字符常量使用单引号 ‘’包裹起来。
- 表现形式:
- ‘A’最常用,最直观的方式
- 使用一个数字表示,对应有一个ASCII码表[ 字符编码 ]
-
例如:char c = 65;//表示 ‘A’ 这个字符
- 16进制表现形式
-
‘A’-》65(10进制)
'A' -》0x41(16进制)怎么表示? ‘\u0041’
- 特殊符号(需要使用转义符号转义)
-
\’ \” \\ \r(回车) \n(换行) \t(制表符Tab)
- 字符数据可以当成一个整数来使用,
- 什么是asscii表,就像化学元素周
4)布尔类型boolean |
值只有两个 true false,不能使用 0 1表示
- 引用类型
1.引用类型String |
- String是 java中已经设计好的一个类,表示的值是字符串,是字符串数据类型
[注意:Java中设计的类和我们自己设计的类的性质是一样的]
- 常见形式:String s = “你好”;
- 当String 和 + 一起使用的时候,这时候+ 是拼接字符串的功能
System.out.println(“你好”+2);//结果为 你好2
int a = 5;
int b = 10
System.out.println(“a=”+a+”,b=”+b); //结果为a=5,b=10
2.一个类其实就是一种引用数据类型 |
- 自己写的一个类也是一种数据类型,类型为类名
- 误区 : 很多人一开始觉得 Java中提供的类才是一种类型,而我们自己写觉得不是!
我们自己写的类和Java已经写好的,性质一样