数据类型
-
字节
位(bit):计算机内部数据最小存储单位,10001111是一个八位二进制
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,如:1B、3B
字符:是指计算机中使用的字母、数字、符号和字
1bit表示1位
1byte表示一个字节1B=8bit
1024B=1KB
1024KB=1M
1024M=1G -
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义再使用。
比如:java、c -
弱类型语言
-
JAVA语言的数据类型分为两大类
-
基本数据类型(primitive type)
boolean类型:占一位;要么true要么false。
数值类型:(整数四个、浮点两个、字符一个)
类型 | 范围/类型 |
---|---|
byte(1字节) | -128~127 |
short(2字节) | -32768~32767 |
int(4字节) | -2147483648~2147483647 |
long(8字节) | -9223372036854775808~9223372036854775807 |
float(4字节) | 单浮点型 |
double(8字节) | 双浮点型 |
char(2字节) | 字符型 |
- 引用数据类型(Reference Type)
类
接口
数组
//八大基本数据类型
//整数
byte number1 = 10;
int number2 = 10;//最常用
short number3 = 30;
long number4 = 40L;//Long类型要在最后加上一个L
//浮点型(小数)
float number5 = 88.8F;//float类型要在最后面添加一个F
double number6 = 88.8888888888888;
//字符
char name = 'a';
//字符串:String不是关键字,是一个类
//String name = "中国";
//布尔值:boolean(对错)
boolean flag = true;
//boolean flag = false;
拓展
//整数拓展
//进制表示:二进制0b 十进制 八进制0 十六进制0x
int num1 = 10;
int num2 = 0b10;//二进制
int num3 = 010;//八进制
int num4 = 0x10;//十六进制
System.out.println(">>>num1="+num1);//>>>num1=10
System.out.println(">>>num2="+num2);//>>>num2=2
System.out.println(">>>num3="+num3);//>>>num3=8
System.out.println(">>>num4="+num4);//>>>num4=16
//浮点数拓展
//float 有限 离散 舍入误差 大约 接近但不等于
//总结:尽量避免使用浮点数进行比较
//银行业务(钱):推荐使用BigDecimal(大数) 数学工具类
float f = 0.1f;
double d1 = 0.1;
double d2 = 1.0/10;
System.out.println(f == d1);//false
System.out.println(f == d2);//false
float f1 = 222222222222222222221f;
float f2 = f1 + 1;
System.out.println(f1 == f2);//true
//字符拓展
//字符对应Unicode编码
char c1 = 'a';
char c2 = 'A';
//转义字符
//\t 制表符(Tab)
//\n 换行
char c3 = '\u0061'
System.out.println((int)c1);//97
System.out.println((int)c2);//65
System.out.println(c3);//a
//字符串拓展
//new开辟新的地址,比较的是两个对象的地址
String s1 = new String("java");
String s2 = new String("java");
System.out.println(s1 == s2);//false
//比较的是值
String s3 = "java";
String s4 = "java";
System.out.println(s3 == s4);//ture
//涉及对象的内存分析,后面内容会慢慢理解
//布尔值拓展
boolean bo = true;
if(bo){
System.out.println("true才能执行我")
}
- 类型转换
byte,short,char-> int-> long-> float-> double(低到高)
不同类型数据在进行计算之前,需要转化为统一类型,再进行计算
两种转换方式:强制类型转换(高到低)、自动类型转换(低到高)
强制类型转换格式 (类型)变量名
double d = 128.00;
int i = (int)d;
System.out.println(i);//128