50 Java final 常量池 final方法
2014-02-09 07:27
218 查看
/* * java 会使用常量池来管理曾经用过的字符串直接量,例如,只想能够string a="java";语句之后 * 系统的字符串池中就会缓存一个字符串“java”;如果程序再次执行 String b=“java”,系统将会让 * b直接指向字符串池中的“java” 字符串,因此a==b将会返回true */ public class FinalReplaceTest { public static void main(String[] args) { // TODO Auto-generated method stub //下面定义了4个final “宏变量” final int a=5+2; final double b=1.2/3; final String str="科技"+"Java"; final String book="科技"+"Java:"+99.9; //下面的book2变量的值因为调用了方法,所以无法在编译时被确认下来 final String book2="科技Java:"+String.valueOf(99.9); System.out.println(book=="科技Java:99.9");//true System.out.println(book2=="科技Java:99.9");//false } }
final方法
/*
* final 修饰的方法不可被重写,如果处于某些原因,不希望自乐ichognxie弗雷的某个方法
* 可以用final修饰该方法
* 例如:Object类里就有个final方法:getClass(),
*/
//下面程序师徒重写final方法,将会引发编译错误
public class FinalMethod {
//用final修饰的方法
public final void test(){};
}
class Sub extends FinalMethod{
//下面方法定义将出现编译错误,不能重写final方法
public void text();//编译错误
}
/* * 对于一个private 方法,因为它仅 在当前类中可见,其子类无法访问该类方法,所以 * 子类无法重写该方法——如果子类中定义一个鱼弗雷private方法有相同方法名、相同 * 形参列表、相同返回值类型的方法,也不是方法重写,知识重新定义了一个新方法。 * 因此即使使用能够final修饰一个private访问权限的方法,依然可以在其子类中 * 定义与给方法具有相同方法名、相同形参列表、相同返回值类型的方法 */ /** * “重写”父类 private fianl 方法 * @author Administrator * */ public class PrivateFinalMethod { private final void test(){}; } class Sub2 extends PrivateFinalMethod{ //下面的方法定义不会出现问题 public void test(){}; } /** * final 修饰的方法知识不能被重写,完全可以被重载 * @author Administrator * */ class FinalOverload{ public final void test(){}; public final void test(String arg){ } }
fianl 类
/**
* fianl 修饰的类不可以有子类 例如java.lang.Math 就是一个final类,他不可以有子类
* 为了保证某个类不可被继承,则可以使用final修饰这个类
* @author Administrator
*
*/
public final class FinalExtends {
}
//下面的类定义将出现编译错误
class Sub3 extends FinalExtends{
}
相关文章推荐
- java: 封装缓存池(int与Integer)、常量池(拘留池)、static变量 static代码块 static方法、 final变量、final 方法、final类 整理
- java final方法执行效率测试
- Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)
- JAVA 多态、final关键字、抽象类和方法、 day10
- final方法、final变量、final类、final对象—Java
- java中final方法
- [Java]static、final修饰的方法是否可以被子类继承、是否可以被子类重写及final修饰详解
- Java笔记2 面向对象<3>final关键字、抽象类、模板方法模式、接口
- Java中final方法的几条规则
- 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例
- java 多线程10:synchronized锁机制 之 锁定类静态方法 和锁定类.Class 和 数据String的常量池特性
- Java方法参数(形参)被final修饰符修饰详解
- Java方法参数(形参)被final修饰符修饰详解
- java基础入门-final关键字在类、属性域、方法里面的使用
- java java面向对象-final类和final方法
- java.lang.System 的in是final的,为什么要有public static void setIn(InputStream in)方法?
- java中的修饰符static与静态方法及final的用法
- Java中final和static对修饰类、方法、属性的总结
- JAVA匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- java 方法的参数 使用 final修饰作用--- 防止方法体内部修改