关键字:被Java赋予特殊含义的字符串叫关键字。 (备注:所有关键字都是小写的) 保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使 用。自己命名标识符时要避免使用这些保留字“goto 、const”。 标识符:凡是自己可以取名字的地方都叫标识符。 比如:类名、变量名、方法名、包名、接口名等等。 标识符命名规则: 标识符命名规范:
基本数据类型转换 1)自动类型转换:容量小的类型自动转换为容量大的数据类型。 数据类型按容量大小排序为: 特别的:当byte、short、char三者在计算时首先都转换为int类型(包含例如byte和byte之间进行计算)。 2)强制类型转换:将容量大的数据类型转换为容量小的数据类型。 (备注:可能造成精度降低或溢出)
Java中为什么给float类型变量赋值需要加F,而给byte、short赋值的时候却不需要呢? JVM规范中所说,并没有说float,int,byte等占多少个字节,而是真正的有效位是多少。比如byte的有效位是1个字节,也就是-128到127。使用Java编程的时候,就只能用byte表示-128到127之间的数,而真正JVM实现,一般byte还是占用和int一样大小:4个字节。 也就说在JVM看来,short,byte,int都是同一个东西。 这也就解释了为什么byte,short使用int字面量赋值的时候会不用强制转型。 因为编译器在编译的只需要根据字面值3,字面值2来确定是否超过有效值即可,并不用做深入的检查,因为他们在JVM存在的类型也是一样的。 同时在通过JVM在操作byte,short,int都是用的相同的指令:iconst,bipush等也能证明。
然而double和float在JVM中存储是不一样的。 因此在使用double给float赋值的时候,会报错的。