2021-04-22

java语言基础

5.数据类型

(1)数据类型的作用:

​ 程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同。

​ 数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间。

(2)java中的数据类型包括两种:

  • 基本数据类型
  • 引用数据类型 【类,接口,数组……】

(3)基本数据类型:

  • 基本数据类型包括四大类八小种

​ 第一类:整数型

​ byte,short,int,long

​ 第二类:浮点型

​ float,double

​ 第三类:布尔型

​ boolean

​ 第四类:字符型

​ char

(4)字符串“abc”不属于基本数据类型,属于“引用数据类型”,字符属于基本数据类型:

  • ​ 字符串使用双引号 “abc"
  • ​ 字符使用单引号 ‘a’

(5)基本数据类型各自占用空间大小

基本数据类型 占用空间大小【单位:字节】
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2

(6)计算机在任何情况下都只能识别二进制。例如:只认识1000111000111……

【现代的计算机底层采用交流电的方式,接通和断开就两种状态,计算机只识别1和0,其它不认识】

(7)二进制:

  • 数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。
  • 十进制:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ……
  • 二进制:0 1 10 11 100 110……

​ 0 1 2 3 4 6 ……

(8)字节byte:

​ 1 byte = 8 bit 【1个字节 = 8个比特位】1个比特位表示一个二进制位:1/0

​ 1 KB = 1024 Byte

​ 1 MB = 1024 KB

​ 1 GB = 1024 MB

​ 1 TB = 1024 GB

​ 1 TB = 1024 * 1024 * 1024 * 1024 * 8

(9)整数型当中的byte类型,占用1个字节,所以byte类型的数据占用8个比特位。

那么byte类型的取值范围:

  • 关于java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称为“符号位”。并且这个“符号位”在所有二进制位的最左边,0表示正数,1表示负数。
  • bety类型最大值:01111111【10000000(二进制) - 1】
  • byte类型的最大值:2的7次方 - 1 ,结果是:127
  • byte类型的最小值:-128【具体的怎么用二进制表示,这个和原码、反码、补码有关】
  • byte的取值范围:【-128~127】
  • byte类型可以表示256个不同的数字【256个不同的二进制】

(10)二进制和十进制之间的转换规则:

  • 二进制转换成十进制
  • 十进制转换成二进制

(11)计算机只认识二进制,那么计算机是怎么表示现实世界当中的文字的?

  • 八种基本数据类型当中,byte,short,int,long,float,double,boolean这七种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的转换规则。
  • 但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间“默认”情况下是不存在任何转换关系的。
  • 为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好“文字”和“二进制”之间的对照关系。这种对照转换关系被称为:字符编码。
  • 计算机最初只支持英文,最先出现的字符编码是:ASCII码

​ ‘a’——97【01100001】

​ ‘A’——65

​ ‘0’——48

​ ‘a’——(解码)——01100001

​ 01100001——按照ASCII编码 ——‘a’

​ * 编码和解码的时候采用同一套字典/对照表,不会出现乱码。

​ * 编码和解码的时候采用不是同一套字典/对照表,会出现乱码问题。

(12)随着计算机的发展:

后来出现了一种编码方式,是国际化标准组织ISO制定的,这种编码方式支持西欧语言, 向上兼容ASCII码【采用一个字节编码】,仍然不支持中文,这种编码方式是:ISO-8858-1,又被称为latin-1。

(13)随着计算机向亚洲方向发展:

计算机开始支持中文、日文、韩文等国家文字,其中支持简体中文的编码方式:GB2312<GBK<GB18030

(14)支持繁体中文:

     大五码<big5>

(15)后来出现了一种编码方式统一了全球所有的文字,容量较大,这种编码方式叫做:unicode编码

​ unicode编码方式有多种具体的实现:

  • UTF-8

  • UTF-16

  • UTF-32

  • ……

(16)java语言源代码采用的是 unicode编码方式,所有“标识符”可以用中文。

【现在在实际开发中,一般使用UTF-8编码方式较多。“统一编码方式”】

(17)八种基本数据类型的取值范围

类型 取值范围
byte 【-128~127】
short 【-32768~32768】
int 【-2147483648~2147483647】
long
float
double 【true,false】
char 【0~65535】

【注意】:short和char所表示的种类总数是一致的,只不过char可以表示更大的正整数。因为char没有负数。

(18)关于八种基本数据类型的默认值

数据类型 默认值
byte,short,int,long 0
float,double 0.0
boolean false【在c语言中,true是1,false是0】
char \u0000

【记住】:八种基本数据类型的默认值是一切向0看齐。

/*
    关于八种基本数据类型的默认值
*/

public class Var
{
	//这里的static必须加,
	static int k = 1000;

    //变量还是遵守这个语法,必须先声明,再赋值,才能访问。
    //成员变量没有手动赋值系统会默认赋值【局部变量不会】
    static int f;//成员变量

	public static void main(String[] args){
		/*
	    int i;//局部变量
			System.out.println(i);
			*/

            System.out.println(k);


            System.out.println(f);//0

	}
}

猜你喜欢

转载自blog.csdn.net/m0_53181852/article/details/116003846