数据类型
1、数据类型有什么用?
数据类型用来申明变量,程序在运行过程中依据不同的数据类型调配不同大小的空间。
int i = 10;double d = 1.23;i变量和d变量类型不同,空间大小不同。
2、数据类型在java语言中包含两种:
第一种:根本数据类型
根本数据类型又能够划分为4大类8小种:
第一类:整数型
byte,short,int,long (没有小数的)
第二类:浮点型
float,double (带有小数的)
第三类:布尔型
boolean:只有两个值true和false,true示意真,false示意假
第四类:字符型
char:java中规定字符型字面量必须应用单引号括起来。属于文字。
8小种:
- byte,short,int,long
- float,double
- boolean
- char
第二种:援用数据类型
- 字符串型String属于援用数据类型。
- String字符串不属于根本数据类型领域。
- java中除了根本数据类型之外,剩下的都是援用数据类型。
- 援用数据类型前期面向对象的时候才会接触。
3、8种根本数据类型中
整数型:byte short int long有什么区别?
浮点型:float和double有什么区别?
区别:占用的空间大小不同。
对于计算机存储单位?
计算机只能辨认二进制。(1001101100...)
- 1字节 = 8bit(8比特)--> 1byte = 8bit
- 1bit就是一个1或0.
- 1KB = 1024byte
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
- byte b = 2; 在计算机中是这样示意的:00000010
- short s = 2; 在计算机中是这样示意的:00000000 00000010
- int i = 2;在计算机中是这样示意的:00000000 00000000 00000000 00000010
- ...
类型 占用字节数量(byte)
对于二进制?
二进制???
十进制转换成二进制
125 转换成二进制???
方法:除以2,而后余数逆序输入。
1111101
二进制转换成十进制
2的2次方 2的1次方 2的0次方
1 1 1
4 2 1
14 + 12 + 1*1 = 7
2的2次方 2的1次方 2的0次方
1 0 1
4 2 1
14 + 02 + 1*1 = 5
4、byte类型的取值范畴?
byte是 [-128 ~ 127] 共能够标识256个不同的数字。
byte类型的最大值是怎么计算出来的?
byte是1个字节,是8个比特位,所以byte能够存储的最大值是:
01111111
留神:在计算机当中,一个二进制位最右边的是符号位,当为0时示意负数,
当为1时示意正数。所以byte类型最大值是:01111111
那么是不是2的7次方-1呢?
是不是:10000000(前边是一个二进制) - 1
byte类型最大值是:2的7次方 - 1.
有几个取值范畴须要大家记住:
- (1个字节)byte: [-128 ~ 127]
- (2个字节)short:[-32768 ~ 32767] 能够示意65536个不同的数字
- (4个字节)int: [-2147483648 ~ 2147483647]
- (2个字节)char: [0~65535] 能够示意65536个不同的数字
- short和char实际上容量雷同,不过char能够示意更大的数字。
- 因为char示意的是文字,文件没有正负之分,所以char能够示意更大的数字。
5、对于8种根本数据类型来说:
其中byte,short,int,long,float,double,boolean,这7种类型计算机示意起来比拟容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上true和false别离在C++中对应的是1和0,1为true,false为0。
对于char类型来说计算机示意起来比拟麻烦,因为char对应的是文字,每一个国家的文字不一样,文字不能间接通过“天然算法”转换成二进制。这个时候怎么办?
字符编码诞生了。
什么是字符编码?
- 字符编码是人为的定义的一套转换表。
- 在字符编码中规定了一系列的文字对应的二进制。
- 字符编码其实实质上就是一本字典,该字段中形容了文字与二进制之间的对照关系。
- 字符编码是人为规定的。(是某个计算机协会规定的。)
- 字符编码波及到编码和解码两个过程,编码和解码的时候必须采纳同一套字符编码方式,不然就会呈现乱码。
对于字符编码的倒退过程?
起初的时候计算机是不反对文字的,只反对科学计算。实际上计算机起初是为了和平而开发的,计算导弹的轨道....
起初随着计算机的倒退,计算机开始反对文字,最先反对的文字是英文,英文对应的字符编码方式是:ASCII码。
ASCII码采纳1byte进行存储,因为英文字母是26个。(键盘上所有的键全副算上也超不过256个。1byte能够示意256种不同的状况。所以英文自身在计算机方面就占有优势。)
'a' --(采纳ASCII码进行编码)-> 01100001
01100001 --(采纳ASCII码进行解码)-> 'a'
如果编码和解码采纳的不是同一个编码方式,会呈现乱码。
'b' ---> 98
'c' ---> 99...
'a' ---> 97'A' ---> 65
'B' ---> 66
...'0' ---> 48 (这个'0'不是那个0,是文字'0')
'1' ---> 49
随着计算机语言的倒退,起初国际标准组织制订了ISO-8859-1编码方式,又称为latin-1编码方式,向上兼容ASCII码。但不反对中文。
起初倒退到亚洲,才反对中文,日文,韩文....
中文这块的编码方式:GB2312<GBK<GB18030 (容量的关系)
以上编码方式是简体中文。
繁体中文:big5(台湾应用的是大五码。)
在java中,java语言为了反对寰球所有的文字,采纳了一种字符编码方式
叫做unicode编码。unicode编码对立了寰球所有的文字,反对所有文字。
具体的实现包含:UTF-8 UTF-16 UTF-32....
须要记住:
- ASCII('a'是97 'A'是65 '0'是48...)
- ISO-8859-1(latin-1)
- GB2312
- GBK
- GB18030
- Big5
- unicode(utf8 utf16 utf32)
八种根本数据类型详解
- 字符型 char
- 整数型 byte short int long
- 浮点型 float double
- 布尔型 boolean
最初
举荐给大家个比拟具体的Java零基础教程,上面这个是我看过的感觉挺不错的,值得观看珍藏。
分享给大家,点这里
https://www.bilibili.com/vide...
看完如果对你有帮忙,感激点赞反对~