Java是强类型语言
- 隐式类型转换
隐式是指源码中没有明显的类型转换代码,也就是说,一个变量,你可以直接给他赋值字符串,也可以直接给他赋值数值,还可以直接让字符串类型的变量和数值类型的变量相加,虽然得出的最终结果未必是你想象的那样,但一定不会报错 - 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
- 变量定义后,如果不经过代码显式转换(强制转换),就永远是这个类型,如果把它当做其他类型来用,就会报错
- 弱类型语言
- 变量只有符合规定,想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换
Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type)
数据类型的拓展
- 整型拓展:进制二进制、八进制(开头为数字0)、十六进制(开头为数字0和字母x)
- 浮点拓展:有限、离散、大约,接近但是不等于
- 最好完全避免使用浮点数进行比较
- 银行业务使用 BigDecimal(数学工具类)
- 字符拓展:所有的字符本质还是数字
- 编码 Unicoode表:U0000 - UFFFF
- 转义字符 : \t(制表符) \n(换行) ……
什么是字节
- 位(bit):是计算机内部 数据存储 的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示
- 1B(byte,字节)= 8Bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节 1B=8B
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
数据类型转换
- 由于Java是强类型语言,所有要进行有些运算的时候,需要用到类型转换。
//低 ---------------------------- 高
byte,short,char==>int==>long==>float==>double
- 运算中,不同类型的数据先转化为同一类型,然后进行运算。
- 强制类型转换:类型(变量名) 高--低
int i=128;
double b=i;//低到高,不需要强制转换
- 自动类型转换:低--高
- 注意点
- 不能对布尔型进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量存量转换到低容量的时候,强制转换
- 转换的时候可能此女子内存溢出,或者精度问题
- JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;