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;//低到高,不需要强制转换
  • 自动类型转换:低--高
  • 注意点
  1. 不能对布尔型进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量存量转换到低容量的时候,强制转换
  4. 转换的时候可能此女子内存溢出,或者精度问题
  5. JDK7新特性,数字之间可以用下划线分割
    int money = 10_0000_0000;