JAVA关键字整理:static & final & native

final

final关键字代表“最终的”,“无法改变”的含义,通过final的存在能够提高程序效率、更好的进行程序设计。

final修饰的类型有:类、变量、方法、参数

  • final类
    final类是不可被继承的,fianl类的成员变量也默认都是fianl。在设计类时,如果这个类不需要子类,类的实现细节不允许改变,就是用final类
  • final方法
    final方法不允许子类进行重写。final方法的作用在于:锁定方法,防止修改;提高效率,编译器在调用final方法时,直接转入内嵌机制。
  • final变量
    final变量就是常量,赋值后不可改变,常量必须使用全大写表示
    一个比较特殊应用叫做:final空白。就是定义final变量时不进行赋值,在使用前在进行初始化赋值。比如一个父类有一个final空白变量,那么他的子类就可以给这个final空白初始化赋值。为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。
  • final参数
    函数参数为final类型时,该参数无法被修改

static

static表示“全局”或者“静态”的意思。

static修饰的类型有:方法、变量、代码块、类

  • static变量
    static变量就是类变量(静态变量),在内存中只有一份拷贝,这个类的所有对象都是访问同一个类变量
  • static方法
    静态方法是属于类的方法,通过“类名.静态方法名”的方式调用,静态方法中无法访问非静态变量,因为静态方法属于类,而非静态变量属于对象
  • static代码块
    静态代码块将会在JVM的类加载的初始化阶段中,被收集到方法中执行,类的静态代码块只会运行一次
  • static类
    静态类只有一种存在的情况:静态内部类。
    • 静态内部类跟静态方法一样,只能访问静态的成员变量和方法,不能访问非静态的方法和属性,但是普通内部类可以访问任意外部类的成员变量和方法
    • 静态内部类可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法
    • 静态内部类可以单独初始化:
      //Outer是外部类,Inner是静态内部类,通过”外部类.内部类()”的方式初始化内部类
      Inner i = new Outer.Inner();

native

使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。 这些函数的实现体在DLL中,JDK的源代码中并不包含,你应该是看不到的。对于不同的平台它们也是不同的。这也是java的底层机制,实际上java就是在不同的平台上调用不同的native方法实现对操作系统的访问的。

native的意思就是通知操作系统, 这个函数你必须给我实现,因为我要使用。 所以native关键字的函数都是操作系统实现的, java只能调用。

比如Thread类中的:public static native Thread currentThread();方法就是native的,说明currentThread()方法是由操作系统实现的,java只是调用而已。


参考资料

http://www.cnblogs.com/Alex–Yang/p/3386863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值