`
zhanghw0917
  • 浏览: 182958 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA中final修饰对象引用

    博客分类:
  • Java
阅读更多

原来我错了;

 

 final 修饰的量以视为常量,

 当修饰对象引用时,我错误的认为变量指向的对象是不可变的,然而对象是可变的,不可变只是“变量对对象的引用”

 

TestFinal

package src.test;

import java.util.HashMap;
import java.util.Map;

public class TestFinal {

	private String name  ;
	
	private Map map = new HashMap ();
	
	public TestFinal(){
		name = "li" ;
	}

	public void put(Object key , Object value){
		map.put(key, value);
	}
	
	public Object get(Object key ){
		return map.get(key);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
}

 

CodeTest1

public class CodeTest1 {
	final TestFinal tf = new TestFinal ();
	
	public static void main(String[] args) {	
		CodeTest1 ct1 = new CodeTest1 ();
		ct1.tf.setName("wew");
		System.out.println(ct1.tf.getName());
	}	
}

 

 

分享到:
评论

相关推荐

    Java中的final关键字详解及实例

    如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示 2.修饰方法 用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下...

    Java岗面试核心MCA版

    new关键字,new创建对象实例(对象实例在堆内存中),对象引用指向对象实 例(对象引用存放在栈 内存中)。一个对象引用可以指向0个或1个对象(一根 绳子可以不系气球,也可以系一个气球);一个 对象可以有n个引用...

    JAVA面向对象详细资料

    30.2 引用类型加final修饰表示引用不可变 44 31 static关键字 44 31.1 static关键字可以修饰4个地方 44 31.2 静态属性 44 31.3 静态的与实例的 45 31.4 静态代码块 45 31.5 静态方法 45 31.6 静态方法是不能被继承 ...

    《java面向对象程序设计-继承和多态》教案.doc

    声明抽象类语法: abstract class{…… } 使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方 法的实现细节 abstract 修饰符 3-2 抽象类可以具有指向子类对象的对象引用 abstract 修饰...

    初级Java程序员面试题

    final修饰的成员变量,必须在声明的同时赋值,一旦创建不可修改; final修饰的方法,不能被子类重写; final类中的方法默认是final的; private类型的方法默认是final的; java 中的 Math.round(-1.5) 等于多少...

    Java关键字总结

    1>对于基本类型前加以final修饰,表示被修饰的变量为常数,不可以修改。一个既是static有是final的字段表示只占据一段不能改变的存储空间。 2>final用于对象应用时,final使应用恒定不变。一旦引用被初始化指向一个...

    Java最全面试题200道

    1、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为...当使用final修饰方法时,这个方法将成为最终方法,无法被

    java面试真题整理

    栈内存:基本数据类型的变量,方法的返回值,对象的引用(对象的引用地址) 3.static:存放在静态域中和类属于同一个属性,修饰的方法:类名.static 4.Java多态的体现方式方法的重载,重写,对象的多态性 1.编译时...

    Java性能优化

    要知道,当某个对象被定义为stataic的变量所引用,那么GC通常是不会回收这个对象所占有的内存,如 public class A{ static B b = new B();} 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻...

    java 模拟 面试题 答案

    被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。方法的参数被final修饰表示在方法体内,该参数的值不可以被修改。 finally在异常...

    final、fianlly、finalize区别

    给定初值, 而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用, 不能重载。 finally:再异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会...

    Java面向对象程序设计.doc

    " "7.Final类中的属性和方法都必须被final修饰符修饰。 " "8.最终类不能派生子类,最终方法不能被覆盖。 " "9.子类要调用父类的方法,必须使用super关键字。 " "10.一个Java类可以有多个父类。 " " " "二、选择...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    然 new 运算符返回对一个对象的引用,但与 C、C++中的指针不同,对象的引用是指 向一个中间的数据结构,它存储有关数据类型的信息以及当前对象所在的堆的地址, 而对于对象所在的实际的内存地址是不可操作的,这就保证...

    21天学会java开发网络游戏

    被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,...

    Java面试题及答案(面试题集锦)

    被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。  finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个...

    常用JAVA面试题大全

    l的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用, 不能重载。 finally—在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的...

    深入理解Java final变量的内存模型

     在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个操作之间不能重排序  初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序  举...

    【05-面向对象(下)】

    final修饰基本类型和引用类型 •当使用final修饰基本数据类型时,不能对其重新赋值,不能被改变。 •但对引用类型的变量而言,它仅仅保存的是一个引用,final只能保证他的地址不变,但不能保证对象,所以...

    java基础.txt

    java中的类只有单继承,接口具有多继承 继承具有单根性,一个类只能有一个父类 不能继承父类的有三种情况 · 用private修饰的属性和方法 · 构造方法 · 用protected修饰的属性和方法,父类和子类不在同一包下...

    Java面向对象程序设计(“方法”相关文档)共57张.pptx

    第三章 Java面向对象程序设计 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第1页。 3.1 面向对象程序设计的基本概念 对象是客观世界中的某个具体事物。(客车) 事物的特性就是数据(载客数量、...

Global site tag (gtag.js) - Google Analytics