一、数据类型
Java支持两种数据类型:基本类型和引用类型。基本类型有布尔(boolean)类型和数值类型,数值类型有整数类型(byte、short、char、int、long)和浮点数类型(float、double),其中char也称为字符类型,统称八大基本数据类型。byte型整数在内存中占8位,short型整数在内存中占16位,int型整数在内存中占32位,long型整数在内存中占64位,float型数值在内存中占32位,double型数值在内存中占64位。按取值范围从小到大排列为:byte<short<char<int<long<float<double。因此byte->short(char)->int->long->float->double可以自动类型转换,而从右往左则需要强制类型转换,强制类型转换可能会引起溢出,造成数据丢失。例如:
public class Test {
public static void main(String[] args) {
int iVal = 250; // 二进制为 0000 0000 0000 0000 0000 0000 1111 1010
byte bVal = (byte)iVal; // 强制截断前24位 1111 1010,其中最高位为符号位。计算机以补码形式保存所有整数,正数的补码与原码一样,负数的补码等于原码的反码加1,反码为原码除符号位取反。
System.out.println(bVal); // 该负数的原码为1000 0110,因此结果为-6
}
}
二、基础语法注意点
1、一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型会发生自动提升。byte、short、char被提升到int,整个算术表达式的类型会自动提升到表达式中最高等级的类型。
2、单目运算--、++,如果放在左边,先把操作数加1再放入表达式中运算,如果放在右边,先把操作数放入表达式中运算再加1。
3、<<左移运算符(空位用0补),>>右移运算符(空位用最高位补),>>>无符号右移运算符(空位用0补)。
4、计算机以补码形式保存所有整数,正数的补码与原码一样,负数的补码等于原码的反码加1,反码为原码除符号位取反。
5、数组初始化方式有静态初始化和动态初始化两种方式。静态初始化指定初始值,由系统决定数组长度,而动态初始化则指定数组长度,由系统分配初始值。值得注意的是引用类型动态初始化,初始值为null。
6、包装类装箱的过程其实相当于创建一个对象,因此比较两个包装类的值是否相等("=="比较的是引用地址的值)的时候要注意。
原文地址:http://www.cnblogs.com/firstsheng618/p/3854002.html