打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java基础之final关键字

  

一、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方法不能被改写

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

Public final void print(){};

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

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

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

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

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

三、final类不能被继承

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

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

四、 String 类

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);

}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java中的修饰符static与静态方法final的用法
java提高篇(十五)-----关键字final
深入理解Java中的final关键字
浅谈java中final数据
Java类的连接与初始化 (及2013阿里初始化笔试题解析)
Java基础知识面试题大集合
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服