数据类型
目录
-
JAVA是一种强类型语言,要求变量的使用要严格规定所有变量定义后才可用使用。
-
优点:安全性高
-
缺点:速度慢
-
-
弱类型语言:与强类型相反
-
Java的数据类型分为两大类
-
基本类型(primitive type)
-
整数、浮点数、字符
-
-
引用类型(refernce type)
-
类(比如字符串)
-
接口
-
数据
-
-
计算机存储单位
-
位(bit):计算机最小的单位
-
字节(byte):计算机基本处理单位
-
1b = 8bit
-
字符:计算机使用的字母、数字、符号。
-
1bit表示1位
-
1Byte表示1字节
-
1024b = 1kb
-
1024kb = 1Mb
-
1024Mb = 1G
-
1024G = 1T
-
有时候我们在购买U盘或者是一些其他的存储设备时标注的储存大小和实际应用不一样其实这只是他的转换方式有问题
正确的转换方式:32G = 274,877,906,944bit ==> 8 * 1024 * 1024 * 1024 * 32 商家用的转方式:274,877,906,944bit ==>274,877,906,944 ➗ 1000 ➗1000 ➗1000 ➗ 8 = 34.359738368G
数字类型
-
类型大小及范围
类型名称 | 字节数 | 取值范围 |
---|---|---|
byte | 1 | -128~127 |
short | 2 | -32768~32767 |
int | 4 | -2147483648~2147483647 |
long | 8 | -9223372036854775808~9223372036854775807 |
-
用法(一般的话我们使用int就足够使用了)
// 整数 int num1 = 10; //常用 byte num2 = 20; short num3 = 30; long num4 = 30L; // long类型需要加L
浮点数(小数)
-
范围与整数(int、long)一致
类型 | 字节数 |
---|---|
float | 4 |
double | 8 |
-
用法(常用float)
float num5 = 50.1F; // float类型需要加L double num6 = 3.14159261231231231;
字符
-
只能打印单个字符(一个字)
char name = '小';
字符串
-
是个类不是类型没有字数限制
String name1 = "大傻比是你不是我";
布尔值
-
只有是非两种值(true、false)
-
一般用于程序执行与否
boolean flag = true;
拓展
整数拓展
-
进制
-
二进制用0b代表
-
十进制
-
八进制用0代表
-
十六进制用0x代表
-
-
一般来说带上前面的进制后默认输出的是十进制(转换成十进制)
浮点数拓展
-
BigDecimal数学工具类
-
最好完全使用浮点数进行比较
-
float类型与double即使输入的是同一个数字但是最后的结果并不相等。
-
我们假设两种类型输入的都是0.1
float b1 = 0.1f; double b2 = 0.1;
-
float:是一个有限的离散的类型会有一个舍入误差虽然接近但是不等于 如:0.1222323223≈0.1
字符拓展
-
char是可以强制转换的造成最后的输出结果是数字
char c1 = 'a'; System.out.println((int)c1); 打印结果:\u0061
-
编码问题 Unicode编码占用两个字节 最高有0~65536
-
Unicode:编码表每个数字对应着一个字
-
也就是说字符的本质就是数字编码
-
Unicode表示方式
char c1 = '\u0061' System.out.println(c1); 打印结果:a
布尔值扩展
-
代码的内容是可省略的(部分)
boolean flag = true; if (flag == true){ System.out.println("对你不聪明"); }
上面的代码和下面的执行结果是一样的
boolean flag = true; if (flag){ System.out.println("对你不聪明"); }
因为程序一开始就被定义好了这个结果是对,第一个代码只是起到了强调的作用。
常用转义字符
转义符 | 功能 |
---|---|
\t | 制表符 |
\n | 换行符 |
\b | 退格 |
\r | 回车 |
\a | 响铃 |