Java 数据类型:
java 只有2中数据类型:基本数据类型:8种[布尔boolean,字符char,字节byte,短整形short,整形int,长整形long,单精度浮点float,双精度浮点double]
引用数据类型:4种[类class,接口interface,数组array, 枚举 enum]
详细介绍:http://blog.csdn.net/mazhimazh/article/details/16799925
Java 对象赋值时注意别名问题(C在函数调用时会参数对象副本, 但是Java 在函数调用是传递的是对象引用,函数题内对对象的修改,直接影响函数体外的该对象)
++i 和i++的问题:
++i:前序递增. i++:后序递增
int i =1;
System.out.println(++i); 2 先加再传值
System.out.println(i++); 1 先传值再加1
关系运算符:
Integer n1 = new Integer(10);
Integer n2 = new Integer(10);
System.out.println(n1 == n2);
System.out.println(n1.equals(n2));
false
true
equals()的缺省行为是拿references来比较,除非你在类中复写equals(),否者就得不到你想要的结果。 上例子说明Integer 中复写了 equals()方法;
位运算符:
&:同位都为1时,结果为1,否者结果为0;
|:同位数只要有1,结果就位1,否者为0;
^:异或:相同为0, 不相同为1。
位移运算符:
<<:左移运算符,低位补充0;
>>:有移运算符,高位看操作数正负判定补0 还是补1;
>>>:零扩展,不论原数是正是负,高位都补充0,注意下面的结果,不是简单的负数改成正数;(C,C++中不存在)
如果 位移对象是char,byte,short,在位移操作前,其值都会变成int类型
Java 允许你将任意基本类型转化为另一个基本类型,但是boolean 除外。他不接受任何转型操作。
Java 没有sizeof():C的基本类型在不同的操作系统的长度是不一样的,所以需要定义sizeof()函数,但是Java完全不需要,java 采用隔离操作系统的虚拟机实现,所以每个类型的大小在不同平台上都是一样的。
Math.random() 的输出结果为【0,1) 并不包括1;