【Java学习笔记】【基础篇】02.数据类型
数据类型
Java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type)。

1.八大基本类型
//整数
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L;  //long类型要在数字后面加L
//浮点数
float num5 = 50.1F;   //float类型要在数字后面加F
double num6 = 3.1415926;
//字符
char name1 = 'A';
char name2 = '中';
//字符串,String不是关键字,它是一个类
//String name3 = "Amazing Ming";
//布尔值
boolean flag = true;
//或boolean flag = false;
2.整数拓展
表示不同进制:
十进制整数,如:99,-500,0
八进制整数,要求以0开头,如:015
十六进制整数,要求0x或0X开头,如:0x15
例如:
int i = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);  //10
System.out.println(i2); //8
System.out.println(i3); //16
3.浮点数拓展
金融行业面试官问:银行金融业务用什么类型表示?
float f = 0.1f;
double d = 1.0/10;
System.out.println(f);  //0.1
System.out.println(d);  //0.1
System.out.println(f == d);  //false
float d1 = 123123123145f;
float d2 = d1 + 1;
System.out.println(d1 == d2);  //true
原因:由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示,其结果只能是接近,但不等于;二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。
因此,浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。 如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
最好避免使用浮点数进行比较!
4.字符型拓展
‘A’是一个字符,“A”表示一个字符串
char 类型用来表示在Unicode编码表中的字符。
Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符。
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(c2);       //强制类型转换↓
System.out.println((int) c1); //97
System.out.println((int) c2); //20013
Unicode具有从0到65535之间的编码,他们通常用从’u0000’到’uFFFF’之间的十六进制值来表示(前缀为 u表示Unicode)
char c3 = '\u0061';
System.out.println(c3);  //a
5.转义字符
| 编号 | 转义字符 | 说明 | Unicode | 
|---|---|---|---|
| 1 | \n | 换行 | \u000a | 
| 2 | \r | 回车 | \u000d | 
| 3 | \b | 退格 | \u0008 | 
| 4 | \t | 制表符(tab) | \u0009 | 
| 5 | \f | 走纸换页 | |
| 6 | \" | 双引号 | \u0022 | 
| 7 | \' | 单引号 | \u0027 | 
| 8 | \\ | 反斜杠 | \u005c | 
| 9 | \xxx(三位数) | 八进制转义符 | |
| 10 | \uxxxxx | 十六进制转义符 | 
6.相关知识
位(bit):是计算机内部数据储存的最小单位。如:11001100是一个八位二进制数。
字节(Byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,1B (byte,字节)= 8bit(位)。
字符:是指计算机中使用的字母、数字、字和符号。
ASCIIS码:
1个英文字母=1个字节的空间                                                                                                                                                                                     1个中文汉字 =2个字节的空间
1个ASCII码=1个字节
UTF-8编码:
1个英文字符=1个字节                                                            														                                                                              1个英文标点=1个字节
1个中文(含繁体)=3个字节                                                                                                                                                                                        1个中文标点=3个字节
Unicode编码:
1个英文字符=2个字节                                            																																					  1个英文标点=2个字节
1个中文(含繁体)=2个字节                                                                                                                                                                                        1个中文标点=2个字节
电脑的32位和64位的区别:
1.32位操作系统只可以使用32位的CPU,而64位的CPU既可以安装32位操作系统也可以安装64位操作系统;                                                 2.寻址能力简单点说就是支持的内存大小能力,64位系统最多可以支达128 GB的内存,而32位系统最多只可以支持4G内存;
3.32位操作系统只可以安装使用32位架构设计的软件,而64位的CPU既可以安装使用32位软件也可以安装使用64位软件。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号