java编程思想随笔(1)

对象赋值操作操作的是对象的引用,相当于别名。
所以在对一个赋值时另一个也会跟着改变。
对象传递给方法时也会产生该问题。


==以及!=默认是比较对象的引用(基本数据类型除外)
而equals是Object的方法,默认比较的也是对象的引用,在String等对象中由于被重写所以比较的是对象中的值。
基本数据类型之所以可以直接比较是因为基本数据类型是java特殊处理的,直接使用的是堆栈的内存空间,比较时可以直接比较对象。
而一般的对象,引用存放在堆内存空间中,而对象存放在堆栈内存空间中,比较时仅比较对象的引用,所以不能够直接比较。

this不仅可以获得当前对象的引用,还可以调用构造器。
但是只有构造器能够调用,且只能调用一次,而且必须置于最起始处。


自动初始化优先于构造函数中的初始化,因此在下面的类中,先初始化i=0,再在构造函数中变成7。这是为了确保初始化的完成。
public class Counter{
     int i ;
     Counter(){
          i=7;
     }
}

static 静态数据只有在第一次访问的时候会进行初始化。未访问或者第二三次访问均不会。

java初始化顺序
1.静态各种2.实例初始化3.构造函数

(Object ... args)
可变参数列表:实质是一个数组,允许参数为0个,在导入非Object数组如果有别的参数,则该数组也可能仅以引用成为一个参数。

printArray ((Object[])   new   Integer[]{45,23,234}, "sd"   );
输出为:[Ljava.lang.Integer;@1d209d56
sd

应该仅在一个版本的重载方法上使用可变参数列表。

switch 在jdk1.7中支持String,其实就是将String值的hashcode用来switch。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值