设为首页 加入收藏

TOP

java中final关键字的用法
2014-11-23 17:52:02 来源: 作者: 【 】 浏览:18
Tags:java final 关键字 用法

当利用final修饰一个属性(变量)的时候,此时的属性成为常量。


注意JAVA命名规范中常量全部字母大写:


Final int AGE=10;


常量的地址不可改变,但在地址中保存的值(即对象的属性)是可以改变的。


在JAVA中利用public static final的组合方式对常量进行标识(固定格式)。



Final变量是在整个类被创建时候被赋值,之后就不能改变了。


对于final变量,如果在声明的时候和构造的时候均不进行赋值,编译出错。



对于利用构造方法对final变量进行赋值的时候,此时在构造之前系统设置的默认值被覆盖。



常量(这里的常量指的是实例常量:即成员变量)赋值:


①在初始化的时候通过显式声明赋值。Final int x=3;


②在构造的时候赋值。


Class A{


Final int x=3;


Public A(){


x=4;


}


}


利用final定义方法:这样的方法为一个不可覆盖的方法。


Public final void print(){};


为了保证方法的一致性(即不被改变),可将方法用final定义。


如果在父类中有final定义的方法,那么在子类中继承同一个方法。


如果一个方法前有修饰词private或static,则系统会自动在前面加上final。即private和static方法默认均为final方法。



注:final并不涉及继承,继承取决于类的修饰符是否为private、default、protected还是public。也就是说,是否继承取决于这个类对于子类是否可见。


Final和abstract永远不会同时出现。


final修饰类的时候,此类不可被继承,即final类没有子类。这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生。


String 类数据final类 ,目的是提供效率保证安全。




String 的声明:public final class String 无法继承,强不变模式


字符串池―――――――――――――>池化思想 数据库连接池,EJB池


public class TestString {


public static void main(String[] args){


String s1=new String(“abc”);


String s2=s1;


s1+=”d”;


System.out.println( s1 );


System.out.println( s1==s2 );


}


}


便于实例重用


不要轻易在heap里创建空间


intern() 返回池地址



对于字符串连接



str=”123”+”456”+”789”+“123”;


产生:


123456


123456789


123456789123


产生多余对象



应该使用 StringBuffer(线程安全的) 或者 StringBuilder(线程不安全的)


String str=”hello:nihao:happy”;


StringTokenizer st=new StringTokenizer(s,”:”);


while(st.hasMoreTokens()){


String str=st.nextToken();


System.out.println(str);


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇记百度腾讯实习生面试经历-web前.. 下一篇内部推荐Web前端开发人员工程师, ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: