java中容易混淆的区别

     本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言!


    final和static的差别:

   1,final的英语意思“最后的”,在java中修饰类,方法和变量。

(1)final定义的变量可以看做一个常量,不能改变。如果final定义的变量没有赋予初值,其他方法就必须给他赋值,而且只能赋值一次。

(2)final修饰的方法不能被继重写。

(3)final修饰的类不能被继承。在当初面试中我记得一个问答题是“string类可不可以被继承,为什么?”。答案是否定的,因为java.lang.string是一个final类。

   2,static     static 可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。

(1)static修饰的方法称之为静态方法,这类方法访问时不需要依赖任何对象。由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员变量和非静态成语方法必须依靠对象才能访问。但是,在非静态成员方法中可以访问静态成员方法和静态成员变量的。

 (2)static修饰的变量也称为静态变量。静态变量和非静态变量的区别是:静态变量被所有的对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

 (3) static还有一个作用就是优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。


String、StringBuffer和StringBuilder的区别:

再次就推荐一篇博友的文章,写得很详细,我就不再多写了。点击打开链接


后文待续。。。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值