zoukankan      html  css  js  c++  java
  • 《java入门第一季》之面向对象面试题(fianl关键字)

    /*
    	面试题: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);
    	}
    }

  • 相关阅读:
    在dotnet下用c#编写下载器(转载)
    hdu 1176
    hdu 1231(最大连续子序列)
    hdu 2571
    hdu 1087(最大递增子序列)
    hdu 1506(dp)
    hdu 1069
    hdu 2084(数塔经典dp)
    hdu 2602(01背包)
    hdu 1505
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299860.html
Copyright © 2011-2022 走看看