一直大概的知道final关键字的作用,但是自己实际工作中却很少用,除非在声明一些常量值的时候,今天忽然自己在项目中用一个map进行存储一些值.一开始我只是用private修饰的,心里想的是如果final修饰的话,应该不能修改了.毕竟被final修饰的变量不可变.今天回家后,做了下面的尝试,彻底暴露出自己基础的不扎实. final的作用 被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可变 实战演示 1.首先看下面代码 public class Fin
两种情况:如果是基本数据类型,被final修饰的变量一旦初始化就不能改变:如果是引用数据类型的变量,初始化之后不能指向另外一个对象. 基本数据类型: package cn.yqg.day2; public class StringTest { public static void main(String[] args) { final int a; ; a=b; System.out.println(a); } } 我们看到上面的代码a是final类型的,但是没有被初始化,所以可以给a赋值.如果
对于这个问题,我们不能只记结论,要拿实例说话,参看以下代码: public class Demo { public static void main(String[] args) { final StringBuilder sb = new StringBuilder("haha"); //同一对象的hashCode值相同 System.out.println("sb中的内容是:" + sb); System.out.println(sb + "的哈希编码
首先定义父类和子类 public class Parent { protected static String a = "static"; final String b = "final"; public static void staticMethod(){ System.out.println("this is a static method"); } public final void finalMethod(){ System.out.p
final修饰基本类型变量 当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变 final修饰引用类型变量 当使用final修饰引用类型变量时,它保存的仅仅是一个引用,final只能保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以改变 package com.j1803.finalTest; import java.util.Arrays; public class FinalReferenceTest { public
//final修饰基本类型变量和引用类型变量的区别 import java.util.Arrays; class Person { private int age; public Person(){} public Person(int age) { this.age = age; } public void setAge(int age){this.age = age;} public int getAge(){return age;} } public class FinalReferenc
1.什么时候可以选择final修饰符 如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰. 2.用final修饰的类 首先大家要明白,用final修饰的类是不能被继承的,下面来看一个错误案例. eg: final class Penguin { } class SubPenguin extends Penguin { } 此时这段代码的class SubPenguin extends Penguin这行代码会报错: The type SubPenguin canno