码迷,mamicode.com
首页 > 编程语言 > 详细

《java入门第一季》之面向对象面试题(fianl关键字)

时间:2016-05-06 12:12:42      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

/*
	面试题:final修饰局部变量的问题
		基本类型:基本类型的值不能发生改变。
		引用类型:引用类型的(地址值)(不能发生改变),但是,该对象的堆内存的值是可以改变的。
*/
class Student {
	int age = 10;
}

class FinalTest {
	public static void main(String[] args) {
		//局部变量是基本数据类型
		int x = 10;
		x = 100;
		System.out.println(x);
		final int y = 10;
		//无法为最终变量y分配值
		//y = 100;//y是最终的,不能再次被赋值!/基本类型的值不能发生改变
		System.out.println(y);
		System.out.println("--------------");
		
		//局部变量是引用数据类型
		Student s = new Student();
		System.out.println(s);
		System.out.println(s.age);
		s.age = 100;//堆内存中的值可以改变的
		System.out.println(s.age);
		s = new Student();////重新分配内存空间,new一次就重新分配一次内存空间。此时改变了地址
		System.out.println(s);
		System.out.println("--------------");
		
		final Student ss = new Student();//引用类型被fianl修饰后,ss的地址不会再发生改变。不能再new一个值给ss了
		 System.out.println(ss);
		System.out.println(ss.age);
		ss.age = 200;//对象对应的堆内存中的值可以改变的
		System.out.println(ss.age);
		
		
		//无法为最终变量ss分配值
		ss = new Student();////重新分配内存空间错误,不能再new了,final修饰之后就限定 地址不再变化不能再new了。
		 //System.out.println(ss);
	}
}

《java入门第一季》之面向对象面试题(fianl关键字)

标签:

原文地址:http://blog.csdn.net/qq_32059827/article/details/51328630

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!