数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。
int i = 10;
double d = 1.23;
i变量和d变量类型不同,空间大小不同。
基本数据类型又可以划分为4大类8小种:
第一类:整数型
byte,short,int,long (没有小数的)
第二类:浮点型
float,double (带有小数的)
第三类:布尔型
boolean:只有两个值true和false,true表示真,false表示假
第四类:字符型
char:java中规定字符型字面量必须使用单引号括起来。属于文字。
8小种:
字符串型String属于引用数据类型。
String字符串不属于基本数据类型范畴。
java中除了基本数据类型之外,剩下的都是引用数据类型。
引用数据类型后期面向对象的时候才会接触。
整数型:byte short int long有什么区别?
浮点型:float和double有什么区别?
区别:占用的空间大小不同。
关于计算机存储单位?
计算机只能识别二进制。(1001101100...)
类型 占用字节数量(byte)
关于二进制?
二进制???
十进制转换成二进制
125 转换成二进制???
办法:除以2,然后余数逆序输出。
1111101
二进制转换成十进制
2的2次方 2的1次方 2的0次方
1 1 1
4 2 1
1*4 + 1*2 + 1*1 = 7
2的2次方 2的1次方 2的0次方
1 0 1
4 2 1
1*4 + 0*2 + 1*1 = 5
byte是 [-128 ~ 127] 共可以标识256个不同的数字。
byte类型的最大值是怎么计算出来的?
byte是1个字节,是8个比特位,所以byte可以存储的最大值是:
01111111
注意:在计算机当中,一个二进制位最左边的是符号位,当为0时表示正数,
当为1时表示负数。所以byte类型最大值是:01111111
那么是不是2的7次方-1呢?
是不是:10000000(前边是一个二进制) - 1
byte类型最大值是:2的7次方 - 1.
有几个取值范围需要大家记住:
其中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....
需要记住:
八种基本数据类型详解
推荐给大家个比较详细的Java零基础教程,下面这个是我看过的觉得挺不错的,值得观看收藏。
分享给大家,点这里
https://www.bilibili.com/video/BV1Rx411876f
看完如果对你有帮助,感谢点赞支持~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。