首先我们来认识下什么是数据类型?
百度百科是这样解释的: 数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
我自己的简单理解:
1. Java对数据进行了分类,存在不同的数据类型
2. 为什么需要数据分类:不同的数据类型占用的存储空间不一样,为了更好的利用计算机内存空间。
在 Java 的领域里存在两种数据类型:
1. 基本数据类型变量: 存的是数据值本身,
2. 引用数据类型变量: 存的是保存数据的内存空间地址。
学习数据类型基本认识:
-
Java中每个变量都有一种类型,类型限制了变量可以存放那些值的类型
示例:比如整数 浮点数(就是小数) -
引用数据类型
示例:类(class ):一个类就是一个数据类型
我们要了解:
计算机存储数据:存储在硬盘【磁盘】,硬盘中的方式都是用的二进制数据的方式进行存储
01010101010101010101010101010101
因为计算机本质存储的是二进制数据!所以我们先来了解下 进制是什么? -
进制的概念
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)
(有兴趣的朋友可以查阅一下网上进制的转换计算方法,了解一下)
-
不同进制在代码中的表示方式
默认的进制10进制
二进制: 是 0b 或者 0B卡头
八进制: 是0开头
十六进制: 0X (0x) 开头
注意:上面不同进制在Java代码中输出的结果都是 10进制 -
基本的数据类型(8种):
整数类型:byte 、short 、int(系统默认) 、long
浮点类型:float、double(系统默认)
字符:char
引用数据类型:class、string
-
计算机中的存储单位
1024T
1T = 1024G
1G = 1024MB
1M = 1024KB
1KB=1024Byte(字节)
1Byte = 8 bit【1个bit就是一个二进制位】00001111
(这里我们要了解到,不同的数据类型,它们能储存的值的大小是不同的) -
整数类型
byte(8位,范围是-128到127)
short(16位)
int(32位)
long (64位)
【这里说的位,,是指二进制位;范围表示能储存数值的大小区间】
除了上面所提到的4种,Java还提供了一个类:BigInteger:用于处理较大整数(超过long类型能处理的数值):目前知道就好不必深究
注:
1. 使用long赋值时,因为整数默认是int类型,要转换为long类型的值,后面加上l或L
2. 同一个整数可以使用不同的进制表示
3. Java7 (jdk7)开始 支持数字之间用 _ 分割(12_34_56输出123456)
4. 浮点型 float double 其实就是小数
- 浮点类型
float(单精度32位)
注:直接给变量赋值时必须在浮点类型数据后面加上f 或F( 表示该数据是一个浮点类型数据) double( 双精度64位)
单精度双精度区别:
1. 对于单精度浮点数,运行速度相比double更快,占内存更小,
2.但是当数值非常大或者非常小的时候会变得不精确。
3.双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。
4.默认的浮点数的类型是 double
5.浮点数表示的不是一个精确数字(只是一个无限接近该数字的值)
结论:浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是 因为数的大小,而是因为数的精度。因此,产生的结果接近但不等于想要的结果。尤其在使用 float 和 double 作精确运 算的时候要特别小心。
注:Java提供了一个类BigDecimal来表示更精准的浮点数:目前知道就好不必深究
-
字符char
什么是字符?
单引号引起来的一个符号就是字符数据 例如:’A’存储单位16 位 [2个字节,16位]。字符常量使用单引号 ‘’包裹起来。
表现形式:
‘A’最常用,最直观的方式;
使用一个数字表示,对应有一个ASCII码表[ 字符编码 ](了解就好)
例如:char c = 65;//表示 ‘A’ 这个字符其中部分特殊符号(需要使用转义符号转义)
\’
\”
\
\r(回车)
\n(换行)
\t(制表符Tab)
同时:字符数据可以当成一个整数来使用 -
布尔类型boolean
值只有两个 true false,不能使用 0 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
- String是 java中已经设计好的一个类,表示的值是字符串,是字符串数据类型
一个类其实就是一种引用数据类型
自己写的一个类也是一种数据类型,类型为类名
误区 : 很多人一开始觉得 Java中提供的类才是一种类型,而我们自己写觉得不是!
好了!今天的数据类型就是这样,最后祝大家“好好学习,天天肝码”!