`

String为什么使用final 修饰

阅读更多
主要是为了”安全性“和”效率“的缘故

1、由于String类不能被继承,所以就不会被修改,这就避免了因为继承引起的安全隐患;

2、String类在程序中出现的频率比较高,如果为了避免安全隐患,在它每次出现时都用final来修饰,这无疑会降低程序的执行效率,所以干脆直接将其设为final一提高效率;

常量池的使用,大量使用字符串之后,可以共享字符串的内容,提高效率,节省存储空间

博文参考:
String类为什么是final的?


使String可以像其他基本数据类型一样可以直接使用;
作为一个对象,在main方法中调用时不需要new 新的对象,通过句柄访问方法也不需要声明为static 的,来调用类的方法;

假设不是final的,
String2 extends String
String2 s 也可以声明字符串对象,不合规
main(String2 [] args) 编译不过
String类为什么是final



分享到:
评论

相关推荐

    final修饰类

    在Java编程语言中,`final`关键字有着重要的作用,它能用于修饰类、方法和变量,以限制它们的使用方式。下面将详细解释`final`修饰类、方法和变量的具体含义及其应用场景。 **final 修饰类** `final`修饰类的作用...

    java面向对象之final修饰符.docx

    【Java面向对象之final修饰符】 Java中的final关键字在面向对象编程中扮演着重要的角色,它主要用于修饰类、变量和方法,确保它们在程序运行过程中不可改变或不可重写。以下是对final修饰符的详细解释: 一、final...

    final修饰符与类型转化

    例如,`String`类就是`final`的,以防止对其内部实现的篡改。 - `final`方法:一个`final`方法不能被子类重写(override),这样可以确保特定的行为在继承链中保持一致。例如,如果你定义了一个关键算法的方法,并...

    java中final修饰符的使用方法

    此外,对于`final`基本类型的局部变量,JVM可能会使用标量替换(Scalar Replacement)优化,直接将变量拆分为其基本组成存储。 6. `final`和多线程: `final`关键字在多线程编程中也有一定作用。虽然`final`变量不...

    Java软件开发实战 Java基础与案例开发详解 6-6 final修饰符 共7页.pdf

    ### Java软件开发实战:Java基础与案例开发详解之final修饰符 #### 1. final修饰符概述 在Java中,`final`关键字是一种访问修饰符,它可以用来限制类、方法和变量的行为。当一个类、方法或变量被声明为`final`时,...

    Java final 修饰符知识点总结(必看篇)

    1. **final修饰类** 当`final`用于修饰类时,这个类就被声明为最终类,不允许其他类继承它。这是为了防止类结构的改变,确保类的封装性和安全性。例如,Java中的`String`类就是`final`的,因此我们不能创建一个新的...

    final关键字详细解读

    这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是用final修饰的。这样的设计通常是因为这些类已经足够通用和完备,不需要被其他类继承和修改,保证了代码的稳定性和可靠性。在实际...

    java中final修饰符实例分析

    例如,`s1 + s2`会在运行时创建一个新的`String`对象`s3`,而不是在编译时直接使用`s1`和`s2`的值,因此`str1 == s3`返回`false`。 理解`final`修饰符对于编写安全、可维护的Java代码至关重要。它可以用来保护数据...

    Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释.doc

    ### Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释 #### 背景介绍 在Java编程语言中,局部内部类(Local Inner Class)是一种特殊的内部类形式,它被定义在某个方法或构造器的内部。...

    Java 多线程与并发(6-26)-关键字- final详解.pdf

    * final修饰类:当某个类的整体定义为final时,就表明了你不能打算继承该类,且也不允许别人这么做。即这个类是不能有子类的。 * final修饰方法:final方法是可以被重载的,但不能被覆盖。 * final修饰变量:final...

    final关键字和static_用法

    #### 二、final修饰类 当一个类被声明为`final`时,意味着这个类不能再被继承。这样的设计主要是为了保护类的设计不被外部修改,同时也避免了不必要的继承带来的潜在问题。例如,在Java的集合框架中,`String`类...

    Java中final的深度剖析

    当final修饰方法时,表示该方法不能被子类重写。这有助于保护类的实现细节,确保行为的一致性。例如,`Object`类中的`toString()`方法就是final的。 ```java public final void myFinalMethod() { // 方法内容 ...

    day11【final、权限、内部类】1

    final 关键字的使用方式有三种:修饰类、修饰方法和修饰变量。 1. 修饰类:被 final 修饰的类不能被继承。例如,public final class String、public final class Math、public final class Scanner 等。 2. 修饰...

    面向对象修饰符public private protest super final abstract理解

    这些修饰符包括`public`、`private`、`protected`以及`final`和`abstract`等。下面将详细解释这些关键字的意义及其在面向对象设计中的作用。 ### 1. `public` `public`是最开放的访问修饰符,意味着无论在哪一个类...

    Java关键字final、static使用总结

    1. **final修饰变量** - `final`用于修饰变量时,该变量将变为常量,其值一旦初始化后便不能再更改。 - 如果是基本数据类型(如int, double等),那么其值不能改变;如果是引用类型(如String, Object等),则...

    java中final和static的区别

    3. final 修饰类(但不包括抽象类):该类不能被继承,所以类中的方法默认就是 final 方法(如:String 类)。 4. final 修饰方法(但不包括抽象方法、构造方法):该方法不能被子类覆写,但是该方法可以被子类继承...

    static与final的异同

    4. 使用`final`修饰一个方法,然后在子类中尝试覆盖这个方法,编译时会报错,因为`final`方法不允许被重写。 了解`static`和`final`的关键字用法对于编写健壮、可维护的Java代码至关重要。在设计类和接口时,明智地...

    Java中的final关键字

    例如,`java.lang.String`类就是`final`的,防止了对字符串操作的不当修改。 - `enum`枚举类型本质上也是`final`的,因为它们不能被继承。 4. **匿名内部类和final变量** - 在创建匿名内部类时,如果需要访问外部...

    jdk中String类设计成final的原由

    - **常量表示**:在Java中,`final`修饰的静态字段(尤其是字符串)会被编译器优化,将其值直接替换为字面量,避免了每次访问时的实例查找,提高了执行效率。 2. **安全性**: - **不可变性**:`String`类是不可...

    java中final与static的用法

    `final`关键字在Java中有多种用途,它可以用来修饰类、方法和变量,其主要目的是确保被修饰的对象具有不可变性或只读性。 #### 1. `final`修饰变量 当`final`用于修饰一个变量时,该变量成为常量,一旦赋值后就不...

Global site tag (gtag.js) - Google Analytics