数据类型
强类型语言:安全性高,速度较慢
要求变量的使用要严格符合规定,所有变量都必须先定义之后才能使用
弱类型语言:
vb
JS
python
Java的数据类型分为两大类:
什么是字节:
位(bit):是计算机内部数据的最小单位,1000 1100 是8位二进制数
字节 (byte):是计算机中数据处理的基本单位, 一般用B来表示。
1B = 8bit
字符:计算机使用的字母、数字、字和符号
1bit = 一位
1Byte表示一个字节1B = 8bit
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
public class Demo03数据类型的拓展 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i =10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=====================================================================");
//float拓展 有限 离散 存在舍入误差,大约,接近但是不等于 不要用float比较大小
//BigDecimal 数字工具类
//浮点数拓展,银行业务怎么表示钱?
float f = 0.1f; //0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
float d1 = 1121313213123123f;
float d2 = d1+1;
System.out.println(d1 ==d2);
//============================================================================
//字符拓展? 所有的字符本质还是数字
//编码 Unicode 2字节 65536 表:97 = a 65 = A
//Excel 2的16次方 = 65536
//============================================================================
System.out.println("=====================================================================");
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
//U0000~~~UFFFF
char c3 = '\u0061';
System.out.println(c3);
//转义字符 \t 制表符。。。
System.out.println("Hello\tWorld\nasdasdaasdadsa");
}
}
类型转换
由于Java是强类型语言 所以运算有时候需要用到类型转换
低---------------------------------------->高
byte,short,char---->int—>long—>float—>double
不同类型的数据,先转换为同一类型,然后运算。
public class Demo05类型转换 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //强制转换 高到低
System.out.println(i);//128
System.out.println(b);//-128
//内存溢出:
double c = i;
System.out.println(c);//128.0
System.out.println((int)23.4);//23
System.out.println((int)-245.4234f);//-245
char d = 'a';
int e = d +1;
System.out.println(e);//98
System.out.println((char)e);//b
//操作比较大的数,出现溢出问题
//JDK7新特性数字之间可以用下划线分割
int money = 1_000_000_000;
int years = 20;
int total = money*years;
System.out.println( total );//计算的时候溢出了 -1474836480
System.out.println(money*(long)years);// 20000000000
}
}
/*
注意点:
1.不能对布尔值转换
2.不能把对象类型转换为不相干的类型
3.高容量内容转换到低容量的时候,强制类型转换----->可能内存溢出,或者精度问题
*/
// 20000000000
}
}
/*
注意点:
1.不能对布尔值转换
2.不能把对象类型转换为不相干的类型
3.高容量内容转换到低容量的时候,强制类型转换----->可能内存溢出,或者精度问题
*/