- 浏览: 208729 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (267)
- java.lang (8)
- 问题汇总 (21)
- 异常记录 (20)
- 功能实现 (19)
- 面试总结 (25)
- 技巧总结 (8)
- 常用代码 (4)
- 编程习惯 (3)
- 编码规则 (3)
- java.util (10)
- java.io (1)
- JavaWeb (9)
- MySQL (16)
- SVN (3)
- MyBatis (11)
- Velocity (7)
- 其他知识 (10)
- 人生哲理 (1)
- 人生故事 (1)
- 自我感悟 (1)
- shiro (3)
- 基础知识 (0)
- 问题总结 (1)
- Spring 标签 (1)
- Spring (3)
- 点滴生活 (1)
- DOS (1)
- CAS (4)
- Linux (9)
- Storm (6)
- Shell (1)
- regex (1)
- Collection (4)
- poi (1)
- 经典语句 (1)
- NIO (5)
- concurrent (14)
- RPC (1)
- zookeeper (3)
- 待整理 (2)
- Hadoop (9)
- RabbitMq (2)
- flume (1)
- hive (7)
- hbase (4)
- kafka (1)
- scala (1)
- GC (0)
- java.util.concurrent.atomic (1)
- java.lang.ref (6)
- JVM (2)
- algorithm (1)
- conception (1)
- java key word (1)
- sun.misc (1)
最新评论
主要是为了”安全性“和”效率“的缘故
1、由于String类不能被继承,所以就不会被修改,这就避免了因为继承引起的安全隐患;
2、String类在程序中出现的频率比较高,如果为了避免安全隐患,在它每次出现时都用final来修饰,这无疑会降低程序的执行效率,所以干脆直接将其设为final一提高效率;
常量池的使用,大量使用字符串之后,可以共享字符串的内容,提高效率,节省存储空间
博文参考:
String类为什么是final的?
使String可以像其他基本数据类型一样可以直接使用;
作为一个对象,在main方法中调用时不需要new 新的对象,通过句柄访问方法也不需要声明为static 的,来调用类的方法;
假设不是final的,
String2 extends String
String2 s 也可以声明字符串对象,不合规
main(String2 [] args) 编译不过
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
发表评论
-
京东商城--商城研发部面试
2017-12-01 19:30 5822017年12月01日 笔试题目 1. final fina ... -
海量日志数据,提取出某日访问百度次数最多的那个IP
2017-11-29 21:18 2214问题:一个的日志文件中存放IP地址,按照访问量对IP地址取访问 ... -
输出十进制数字的二进制数的表示
2017-11-03 23:16 1093一、代码如下: public static void m ... -
将数组中的内容随机打乱
2017-10-27 22:45 505问题:斗地主游戏,开局会将纸牌重新打乱,请用数组的随机排序实现 ... -
JVM基础
2017-10-26 22:41 414一、Java 运行时区域 《 ... -
沐金地面试记录
2017-10-25 22:15 49810.25 下午同事帮忙投递的,约在晚上面试,下班之后赶紧去了 ... -
JD广告部面试经历
2017-10-23 16:46 423同事的同事招聘,于是同事帮忙推荐了一下! 2017年10月1 ... -
编程题目(一)
2017-09-28 22:28 3921.函数:参数为两个字符串a,b ,判断 b 中是否包含 a ... -
值传递与引用传递
2017-05-30 12:25 322一、值传递与引用传递 其实按值还是按引用的区别在于“是否在传 ... -
装箱与拆箱
2016-10-24 22:46 523public class IntegerTest { ... -
可变性与不可变性
2015-06-01 20:55 439String StringBuilder StringBuff ... -
CS架构和BS架构的区别
2015-05-25 08:50 475一、简介 1.C/S结构,即 ... -
HTTP常见响应状态码
2015-05-20 08:26 412问题:程序调试过程中 ... -
JIT的概念
2015-05-19 18:48 700参考文献: http://blog.csdn.net/yan ... -
JDK与JRE与JVM的区别
2015-05-19 18:45 10901.JDK (1)概念 JDK : Java Developm ... -
运行时与编译时
2015-05-17 18:05 532运行时与编译时 博文转载:http://www.import ... -
System.exit(0)与return的区别
2015-05-17 16:49 1015问题:System.exit(0)与return的区别 1. ... -
重载(overloading)与重写(overriding)
2015-05-17 15:50 634问题:重载(overloading)与重写(overridin ... -
==和equals
2015-05-15 20:07 646参考文献: http://www.cnblogs.com/zh ... -
return finally 与 System.exit(n)
2015-05-10 18:00 661问题:System.exit(n);的含义以及作用 说明: ...
相关推荐
在Java编程语言中,`final`关键字有着重要的作用,它能用于修饰类、方法和变量,以限制它们的使用方式。下面将详细解释`final`修饰类、方法和变量的具体含义及其应用场景。 **final 修饰类** `final`修饰类的作用...
【Java面向对象之final修饰符】 Java中的final关键字在面向对象编程中扮演着重要的角色,它主要用于修饰类、变量和方法,确保它们在程序运行过程中不可改变或不可重写。以下是对final修饰符的详细解释: 一、final...
例如,`String`类就是`final`的,以防止对其内部实现的篡改。 - `final`方法:一个`final`方法不能被子类重写(override),这样可以确保特定的行为在继承链中保持一致。例如,如果你定义了一个关键算法的方法,并...
此外,对于`final`基本类型的局部变量,JVM可能会使用标量替换(Scalar Replacement)优化,直接将变量拆分为其基本组成存储。 6. `final`和多线程: `final`关键字在多线程编程中也有一定作用。虽然`final`变量不...
### Java软件开发实战:Java基础与案例开发详解之final修饰符 #### 1. final修饰符概述 在Java中,`final`关键字是一种访问修饰符,它可以用来限制类、方法和变量的行为。当一个类、方法或变量被声明为`final`时,...
1. **final修饰类** 当`final`用于修饰类时,这个类就被声明为最终类,不允许其他类继承它。这是为了防止类结构的改变,确保类的封装性和安全性。例如,Java中的`String`类就是`final`的,因此我们不能创建一个新的...
这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是用final修饰的。这样的设计通常是因为这些类已经足够通用和完备,不需要被其他类继承和修改,保证了代码的稳定性和可靠性。在实际...
例如,`s1 + s2`会在运行时创建一个新的`String`对象`s3`,而不是在编译时直接使用`s1`和`s2`的值,因此`str1 == s3`返回`false`。 理解`final`修饰符对于编写安全、可维护的Java代码至关重要。它可以用来保护数据...
### Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释 #### 背景介绍 在Java编程语言中,局部内部类(Local Inner Class)是一种特殊的内部类形式,它被定义在某个方法或构造器的内部。...
* final修饰类:当某个类的整体定义为final时,就表明了你不能打算继承该类,且也不允许别人这么做。即这个类是不能有子类的。 * final修饰方法:final方法是可以被重载的,但不能被覆盖。 * final修饰变量:final...
#### 二、final修饰类 当一个类被声明为`final`时,意味着这个类不能再被继承。这样的设计主要是为了保护类的设计不被外部修改,同时也避免了不必要的继承带来的潜在问题。例如,在Java的集合框架中,`String`类...
当final修饰方法时,表示该方法不能被子类重写。这有助于保护类的实现细节,确保行为的一致性。例如,`Object`类中的`toString()`方法就是final的。 ```java public final void myFinalMethod() { // 方法内容 ...
final 关键字的使用方式有三种:修饰类、修饰方法和修饰变量。 1. 修饰类:被 final 修饰的类不能被继承。例如,public final class String、public final class Math、public final class Scanner 等。 2. 修饰...
这些修饰符包括`public`、`private`、`protected`以及`final`和`abstract`等。下面将详细解释这些关键字的意义及其在面向对象设计中的作用。 ### 1. `public` `public`是最开放的访问修饰符,意味着无论在哪一个类...
1. **final修饰变量** - `final`用于修饰变量时,该变量将变为常量,其值一旦初始化后便不能再更改。 - 如果是基本数据类型(如int, double等),那么其值不能改变;如果是引用类型(如String, Object等),则...
3. final 修饰类(但不包括抽象类):该类不能被继承,所以类中的方法默认就是 final 方法(如:String 类)。 4. final 修饰方法(但不包括抽象方法、构造方法):该方法不能被子类覆写,但是该方法可以被子类继承...
4. 使用`final`修饰一个方法,然后在子类中尝试覆盖这个方法,编译时会报错,因为`final`方法不允许被重写。 了解`static`和`final`的关键字用法对于编写健壮、可维护的Java代码至关重要。在设计类和接口时,明智地...
例如,`java.lang.String`类就是`final`的,防止了对字符串操作的不当修改。 - `enum`枚举类型本质上也是`final`的,因为它们不能被继承。 4. **匿名内部类和final变量** - 在创建匿名内部类时,如果需要访问外部...
- **常量表示**:在Java中,`final`修饰的静态字段(尤其是字符串)会被编译器优化,将其值直接替换为字面量,避免了每次访问时的实例查找,提高了执行效率。 2. **安全性**: - **不可变性**:`String`类是不可...
`final`关键字在Java中有多种用途,它可以用来修饰类、方法和变量,其主要目的是确保被修饰的对象具有不可变性或只读性。 #### 1. `final`修饰变量 当`final`用于修饰一个变量时,该变量成为常量,一旦赋值后就不...