论坛首页 入门技术论坛

JAVA SE学习笔记03

浏览 2197 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-26  
今天来说一下JAVA中的修饰符和类的加裁机制。
首先来说一下修饰符吧就说几个面试常遇到的吧。
1、static修饰符:
static定义的是为整个类共有的一块存储区域。
1)当它修饰类的属性时,这个属性被称为类变量,为一个类共享的变量,它属于整个类。
可以直接通过类名来访问它。
2)修饰方法称为表态方法
可以直接通过类名来访问本方法。
但要注意的是:在本方法中只能访问其它的static成员,不能访问非static成员。但是在非static方法即可以访问非static的又可以访问static的成员。在static方法中不能出现this关键字。在重写上如果父类的方法是static的那么在子类中不可以将其重写为非static的。同样如果父类的方法是非static的那么在子类中也不可以将其重写为static的。也就是static的方法可以被重写,但是没有多态。
3)用static来修饰一段代码称为静态代码块
在这里要注意的是(1)被修饰的代码块是在类中的,而不是在方法中。
(2)静态的代码块只在类被加裁时执行一次,只后不会再被执行。
2、final修饰符:
1)修饰变量:叫作常量。修饰实例变量叫作实例常量。
(1)当修饰实例变量时,实例变量不会自动初始化为0。
(2)对于实例常量的赋值只有两次机会,一次是在初始化属性时,一次是调用构造方法时
(3)常和static、public配合来修饰一个实例常量
(4)修饰局部变量称为局部常量,修饰静态变量称为静态常量
(5)如果修饰方法那么该方法不会被重写。
(6)如果修饰类那么该类不能被继承。
3、abstract修饰符
1)修饰类被称为抽象类,那么该类不能被实例化但可以有构造方法,可以被继承。可以大其它类中声明一个该类的引用,只能做为编译时类型,不能做为运行时类型。
2)可以修饰方法
要记住:abstract不能和private、static、final同时出现。
4)interface(接口)
1)在接口中所有的方法都是public abstract的。
2)在接口中所有属性都是public static final的
3)接口可以实现多继承,接口可以继承接口
4)在接口中没有构造方法,不能实例化,但可以声明一个接口的引用
再来说一下类的加载机制
1、在虚拟机的生命周期中一个类只被加裁一次
2、加载的原则是:延迟加载
3、类加载的时机
1)当第一次创建对象时要加载
2)调用static方法时要加裁,访问static属性时要加裁,调用static代码块时要加载
3)当加载子类时会先加裁父类
4)创建对象引用时不加裁类
5)子类调用父类的static方法时会加裁
在这里要注意的是:当子类没有重写父类的static方法时,只加裁父类不加裁子类。当子类重写了父类的静态方法时既加裁父类又加裁子类。
6)访问static常量时,如果编译器在以计算出常量的值可以不加裁类,否则会加裁。
7)用Class.forName(类名)来显示的加载一个类
   发表时间:2007-10-26  
收藏!!!!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics