Java的源码:关键字章

1.volatile:volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。
在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。
2.native是方法修饰符,native是由另外一种语言实现的本地方法
3.final关键字:修饰类、方法和变量(包括成员变量和局部变量)


    类:当用final修饰一个类时,表明这个类不能被继承。(final类中的成员变量可以根据需要设为final,但是final类中的所有成员方法都会被隐式地指定为final方法)
    方法:如果只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final的(private方法会隐式地被指定为final方法)
    
    变量:如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。(在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。只有在编译期间能确切知道final变量值的情况下,编译器才会进行这样的优化,但声明时调用了其他方法,获取的是返回值时,则不会宏替换)
4.static:
    成员变量:static修饰的成员称为类成员或者静态成员,static关键字可以修饰成员变量和方法,来让它们变成类的所属,而不是对象的所属,作用于成员变量用来表示只保存一份副本。


    方法:static修饰成员方法最大的作用,就是可以使用"类名.方法名"的方式操作方法,避免了先要new出对象的繁琐和资源消耗
    
    静态块:第一次去使用一个类时,就会触发该类的成员初始化。那就是当我们初始化static修饰的成员时,可以将他们统一放在一个以static开始,用花括号包裹起来的块状语句中
    
    总结:
    用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享;
    用来修饰成员方法,将其变为类方法,可以直接使用“类名.方法名”的方式调用,常用于工具类;
    静态块用法,将多个类成员放在一起初始化,使得程序更加规整,其中理解对象的初始化过程非常关键;
    静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。

5.abstract:抽象的

修饰方法和类;

修饰方法:方法只有定义没有实现,和final关键字冲突;

修饰类:当一个类中有一个方法被abstract修饰时,这个类也要被abstract修饰;这个类是抽象类;(当类中没有抽象函数时也可以用abstract修饰)

抽象类不能被new

如果一个子类继承了一个抽象类,就要实现所有的抽象方法,否则这个子类也被定义成抽象类;

6.this:

当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)

把自己当作参数传递时,也可以用this.(this作当前参数进行传递)。

有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。用外部类的类名加上 this 引用来说明要调用的是外部类的方法 (与内部类同名的方法)

在构造函数中,通过this可以调用同一类中别的构造函数(通过实参个数,类型,决定调用的是哪一个重载的构造函数)。

值得注意的是: 
  1:在构造调用另一个构造函数,调用动作必须置于最起始的位置(主调构造函数的第一行)。 
  2:不能在构造函数以外的任何函数内调用构造函数。 
  3:在一个构造函数内只能调用一个构造函数。

7.super:

super是当前对象里面的父对象的引用。

调用父类被子类隐藏的属性或者方法:当子类和父类有属性重名时,需要super才能调用到父类的属性

调用父类的构造器:子类的实例化依赖于父类的实例化,在构建子类时,必须要有父类实例,只能有了父类的实例,子类才能够初始化自己。所以子类构造器中的super调用必须放在第一行。

8.throw和throws

throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值