`
冇心人
  • 浏览: 56455 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java常见笔试面试题目解析(八):final与static final变量(引用类型)的引用不变

阅读更多
public class FinalReferenceTest {  
    public static final StringBuffer sb = new StringBuffer();  
    public static void main(String[] args){  
        sb.append("hello");  
    }  
}  
public class FinalReferenceTest {
 public static final StringBuffer sb = new StringBuffer();
 public static void main(String[] args){
  sb.append("hello");
 }
}
问题1:上面的程序能否编译通过?如果能,说明理由,如果不能,请说明理由。
解答:能编译通过。
分析:对于final修饰的引用类型,到底这个引用不能变还是这个引用指向的对象的内容不能变?答案是引用不能改变,而引用指向的内容是可以改变的。

问题2:上面的程序在语句sb.append("hello");后面添加语句 sb = new StringBuffer()能否编译通过?如果能,说明理由,如果不能,请说明理由。
解答:不能编译通过。
分析:由于对于final修饰的引用类型,是引用不能改变,而引用指向的内容是可以改变的。因为sb已经指向了第一次new...产生的对象,已经不能改变,所以在语句sb.append("hello");后面添加语句 sb = new StringBuffer()是不能编译通过的。

总结:对于final类型的引用变量来说,所谓的不能改变指的是该引用不能改变。
分享到:
评论

相关推荐

    Java笔试面试题目汇总

    Java编程语言在面试和笔试中常常涉及众多知识点,以下是对提供的题目进行的详细解析: 1. **final, finally, finalize的区别** - **final**:用于声明类、变量或方法,表示不可改变或不可继承。类声明为final,...

    java的笔试面试题目

    1. **Java基础语法**:这是面试的起点,包括变量声明、数据类型(基本类型与引用类型)、运算符、流程控制语句(if, switch, for, while等)、方法定义与调用、类和对象的创建、封装、继承和多态等概念。此外,深入...

    java面试笔试宝典

    以下是一些常见的Java面试和笔试题目及其解析: 1. 一个".java"源文件中可以包含多个类,但只能有一个公共类(public class),其他非公共类(非内部类)的数量不受限制,但需注意每个类必须有自己的命名空间。 2....

    java编程常见面试题目

    Java 编程语言中,面试时常会涉及到许多关键概念和技术,以下是对这些面试题目的详细解释: 1. **final, finally, finalize的区别** - `final`:用于声明类、方法或变量,表示不可变性。对于类,禁止继承;对于...

    java常见笔试面试题

    ### Java常见笔试面试题知识点详解 #### 一、final, finally, finalize的区别及Anonymous Inner Class的理解 1. **final**:此关键字用于定义不可变变量或类。当应用于变量时,意味着一旦为该变量分配了一个值,则...

    JAVA笔试题目面试题目集合

    Java笔试和面试题目是评估求职者Java编程技能的关键环节,涵盖了许多核心概念和技术。下面将对部分题目进行解析,帮助理解Java语言的关键知识点。 1. 事件监听接口中的方法通常没有返回值,因此正确答案是C. void。...

    java常见笔试题目总结

    ### Java常见笔试题目总结 #### 1. `super()`与`this()`的区别? - **`super()`**:在子类的构造方法中调用父类的构造方法,必须作为第一行代码出现。它用于初始化继承自父类的成员变量。 - **`this()`**:在同一...

    java面试笔试大全(包含所有java面试笔试题目)

    - 数据类型:熟悉基本数据类型与引用类型,了解自动装箱拆箱机制。 - 运算符:掌握各种运算符的使用,包括赋值、比较、逻辑等。 - 流程控制:理解if、switch、for、while等语句的用法。 - 异常处理:知道如何...

    JAVA面试笔试题汇总-6

    根据给定文件中的标题、描述以及部分内容,我们可以总结并扩展出以下有关JAVA面试笔试题的知识点: ### 知识点1:Static关键字的理解与应用场景 #### 题目概述: 在给定的内容中提到了“static”关键字及其应用...

    java程序员经典笔试面试题汇总

    ### Java程序员经典笔试面试题汇总知识点解析 #### 一、程序执行顺序与静态变量初始化 **题目背景**:本题目旨在考察Java程序中类的加载过程以及不同成员(如静态变量、非静态变量等)的初始化顺序。 **题目示例*...

    java笔试面试题目

    根据给定文件的信息,我们可以提炼出以下详细的IT知识点,这些知识点主要围绕Java编程语言的核心概念、异常处理机制、与C++的区别、字符串操作、多线程管理、错误与异常的区别,以及final关键字的使用场景。...

    (完整版)二期JAVA语言及数据库笔试题目答案解析.doc

    Java 语言及数据库笔试题目答案解析 本文档提供了 Java 语言及数据库笔试题目的答案解析,涵盖了 Java 面向对象编程、Java 编程实践、TSQL 数据库编程等方面的...知识点:Java 变量定义、static 关键字、final 关键字

    Java高级工程师岗位笔试题目.docx

    **Java高级工程师岗位笔试题目** **一、选择题(每题2分,共20分)** 1. 下列哪个类是所有Java类的父类(除了Object类本身),即使是那些没有明确使用extends关键字的类? A. Cloneable B. Serializable C. ...

    JAVA面试笔试题大全

    JAVA面试笔试题大全 在 Java 中,final、finally 和 finalize 三个概念经常被混淆,但它们的作用和用途完全不同。 首先,final 是一个修饰符(关键字),如果一个类被声明为 final,意味着它不能再派生出新的...

    java面试笔试题整合

    Java面试和笔试题是评估求职者技能的重要工具,下面是对几个关键知识点的详细解析: 1. **final, finally, finalize的区别** - **final**:final关键字用于声明类、方法或变量不可变。对于类,它禁止继承;对于...

    Java经典题目_新手笔试使用

    3. **常用包**:Java中常见的包有`java.lang`(包含基本类型和对象的基类)、`java.util`(提供集合框架、日期时间API等)、`java.io`(输入输出流处理)、`java.sql`(数据库连接)、`java.awt`和`javax.swing`...

    Java面试笔试题集

    2. **接口与C++虚类的比较**:Java的接口是一种完全抽象的类型,没有实现代码,用于定义行为规范。一个类可以实现多个接口,而C++的虚类则支持单继承。接口中的方法默认为public,属性默认为public static。 3. **...

    java就业笔试大全(很全面)

    1. **JAVA的基本数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long),浮点型(float, double),字符型(char)和布尔型(boolean)。String并不是基本数据类型,它是一个对象,属于引用类型...

    Java笔试面试题详解

    Java作为一门广泛使用的编程语言,其面试和笔试题目往往涵盖了多个方面,包括设计模式、并发控制、内存管理、数据库优化、网络通信等。以下是对这些知识点的详细解释: 1. **MVC设计思想**:MVC(Model-View-...

    2015Java面试笔试考点

    10. **引用类型与基本类型**:基本类型直接存储值,而引用类型存储对象地址。 11. **String对象**:`new String()`创建两个对象,一个在栈内存,一个在堆内存。 12. **访问修饰符**:private、friendly(包级私有...

Global site tag (gtag.js) - Google Analytics