Java编程思想学习(1)

来源:互联网 发布:2016年学java有前途吗 编辑:程序博客网 时间:2024/06/16 10:56

1、基本语法


1. ==equals()


(1)       对于= =,如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;

如果作用于引用类型的变量,则比较的是所指向的对象的地址

(2)      对于equals方法,注意:equals方法不能作用于基本数据类型的变量

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如StringDate等类对equals方法进行了重写的话,比较的是所指向的对象的内容。


2. shortbyte的无符号右移问题(>>>)


shortbyte在进行移位的时候都是先转化为int,再在int型上进行移位,其移位结果是int型。

1. == 和equals()
(1) 对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址
(2) 对于equals方法,注意:equals方法不能作用于基本数据类型的变量
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
2. short和byte的无符号右移问题(>>>)
short和byte在进行移位的时候都是先转化为int ,再在int型上进行移位,其移位结果是int型。
 


byte1个字节,short是两个字节,int4个字节,若移位的位数小于24(对于byte)或16(对于short)的话,如果使用了>>>=,则是将int型的移位结果进行低位截取8位(对于byte)或16位(对于short)重新赋给shortbyte型。

如上图的例子,当右移了10位后,byte截取了低8位,所以其结果还是b = -1,输出的结果还是32位的1。而最后一行语句中,b直接进行移位并输出,不转化回byte,即这个过程一直是以int型进行的移位,其结果就为22位的1


3. final

类常量无需构造对象,可直接引用,“static final”;一般常量要构造对象,“final”。





0 0