笔记6:Java数据类型

一. 数据类型概述
1、数据类型有什么用?
数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。int i=10;
double d = 1.23;
i变量和d变量类型不同,空间大小不同。

2、数据类型在java语言中包括两种:
第一种:基本数据类型
基本数据类型又可以划分为4大类8小种:
第一类:整数型
第二类:浮点型
第三类:布尔型
第四类:字符型
8小种:
byte, short, int, long,float, double
boolean
char
第二种:引用数据类型
字符串型string属于引用数据类型。string字符串不属于基本数据类型范畴.
Java中除了基本数据类型之外,剩下的都是引用数据类型。引用数据类型在面向对象的时候会接触到。
二. 计算机存储单位
1.整数型:byte,short,int,long,有什么区别?浮点型:float,double有什么区别?
占用空间大小不同:
1byte=8bit(8比特,1比特就是一个0或1)
笔记6:Java数据类型
1KB=1024byte,1MB=1024KB,1GB=1024MB,1TB=1024GB
byte b=2;在计算机中的表示: 00000010
short s=2;在计算机中的表示:00000000 00000010
int i=2;在计算机中的表示:00000000 00000000 00000000 00000010
三. 数据取值范围
笔记6:Java数据类型
byte类型的取值范围是怎么算出来的?
byte是[-128 ~ 127],可以一共标识256个不同的数字。
byte类型的最大值127是怎么计算出来的?
byte是1个字节,是8个比特位,所以byte可以存储的最大值是:
01111111(注意:在计算机当中,一个二进制位最左边的是符号位,当为0时表示正数,当为1时表示负数。所以byte类型最大值是: 01111111)
byte类型最大值是: 2的7次方- 1.
我们可以看到字节数相同的数据类型容量是一样的:
(2个字节) short: [-32768 ~ 32767],可以表示65536个不同的数字
(2个字节) char: [0~65535],可以表示65536个不同的数字
short和char实际上容量相同,不过char 可以表示更大的数字。因为char表示的是文字,文字没有正负之分,所以char可以表示更大的数字。.
四.字符型的转换
对于8种基本数据类型来说:其中byte , short, int, long, float , double ,boolean,这7种类型计算机表示起来比较容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上true和false分别在C++中对应的是1和0,1为true, false为0。
对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家的文字不一样,文字不能直接通过"自然算法"转换成二进制。于是产生了字符编码.

  1. 什么是字符编码?
    字符编码是人为的定义的一套转换表。在字符编码中规定了一系列的文字对应的二进制。字符编码其实本质上就是一本字典,该字典中描述了文字与二进制之间的对照关系。字符编码是人为规定的。(是某个计算机协会规定的。)

字符编码涉及到编码和解码两个过程,编码和解码的时候必须采用同一套字符编码方式,不然就会出现乱码。

  1. 关于字符编码的发展过程?
    起初的时候计算机是不支持文字的,只支持科学计算。实际上计算机起初是为了战争而开发的,计算导弹的轨道…后来随着计算机的发展,计算机开始支持文字,最先支持的文字是英文,英文对应的字符编码方式是: ASCII码。
    ASCII码采用1byte进行存储,因为英文字母是26个。( 键盘上所有的键全部算上也超不过256个。1byte可以表示256种不同的情况。所以英文本身在计算机方面就占有优势。)
    ‘a’ – (采用ASCII码进行编码) -> 01100001.
    01100001 – (采用ASCII码进行解码)-> ‘a’
    ‘a’ —> 97
    ‘b’ —> 98
    ‘c’ —> 99… .
    ‘A’ —> ‘65’
    ‘B’---->‘66’
    ‘0’—> 48(注意这个‘0’是字符0,不是数字0)

随着计算机语言的发展,后来国际标准组织制定了ISO-8859-1编码方式,又称为latin-1编码方式,向上兼容ASCII码。但不支持中文。后来发展到亚洲,才支持中文,日文,韩文.
简体中文的编码方式: GB2312<GBK<GB18030 ( 容量的关系)
繁体中文: big5 (*使用的是大五码。)
在java中,java语言为了支持全球所有的文字,采用了一种字符编码方式叫做unicode编码。unicode编 码统一了 全球所有的文字,支持所有文字。具体的实现包括: UTF-8 UTF-16 UTF-32…