final static 修饰(转载)】的更多相关文章

出现问题的场景是这样的: 项目中有个专门放流程Key值常量的类FlowConstants.java,其中这些常量都用了final static 修饰.某天因为修改了流程,相应的key值也改变了,所以直接更新了FlowConstants.java中对应的key值. 重新部署为了方便直接将这个常量类编译后的class文件将服务器上的文件替换了,重启服务,运行项目发现流程获取的key值仍然是之前未修改的值,多次替换重启后仍是这样,最后直接将项目重新整体打包发布后才算正常了. 为什么导致这样的显现,参考…
static修饰符        static修饰符能够与属性.方法和内部类一起使用,表示静态的.类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员,所以,static修饰的变量又称作“类变量”. static属性的内存分配 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间. static的变量是在类装载的时候就会被初始化,即,只要类被装载,不管是否使用了static变量,都会被初始化…
static静态修饰符(使用static修饰符修饰的成员变量.常量.和成员方法成为静态变量.常量和方法,他们统称为静态成员,归整个类所有,不依赖于类的特定实例,被类的所有实例共享,只要这个类被加载,JVM就可以根据类名在运行时数据区的方法区找到他们) 静态变量 对于静态变量,运行时,JVM只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配.在类的内部,可以在任何方法内直接访问静态变量:在其他类中,可以通过类名访问该类中的静态变量. 静态变量可以被类的所有实例共享,因此静态变量可以作…
JAVA 修饰符public final static abstract transient  关键字: public final static abstract ...  1.public protected default private 组 位置                        private      默认      protected        public  同一个类                    是            是         是      …
Java中static 和final的区别 final定义的变量可以看做一个常量,不能被改变: final定义的方法不能被覆盖: final定义的类不能被继承. final static 就是再加上static的特性就可以了 static 和final是没有直接关系的 static 是在内存中分配一块区域,供整个类通用,所有的类的对象都享有它的共同的值 static 和final的区别 一.static : 什么情况下我们要使用static呢? 1.只想用一个存储区域来保存一个特定的数据——无论…
本文目标 static final: 权限修饰符:public,private,protected,缺省 1.static 静态修饰符,被static修饰的变量或者方法会被加载进静态区内存,不需要创建对象就可以调用此方法或变量 2.final: final修饰类不能被继承,修饰方法不能被重写,修饰变量不能被改变且必须初始赋值 3.权限修饰符: public: 可以被任意调用 private:可以被本包或者不同包的子类调用 protected:只能被本类调用 缺省:只能本包调用…
一.final final是不变的,最终的意思.可以用来修饰变量,方法,类. 1. 修饰变量 private final int a = 2; private final int b; // final 空白,必须在构造函数中指定初始值. // 因为static 的缘故,必须在定义时指定初始值,不能在构造函数中指定初始值. // 因为访问static 变量根本不用调用构造函数啊,笨蛋! private static final int c = 3; 2. 修饰方法 表示该方法不能被子类重写.使用…
static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 如果这个静态函数出现在类里,那么它是一个静态成员函数: 静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员. 其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问:非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问. 如果它不是出现在类中,那么它是一个普通的全局的…
自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方…
Sealed与Final修饰符其实并不是一个语言平台的产物,他们有着各自所属的语言环境,但这两个关键字都是.Net平台中不可或缺的,那么二者用法几何,随本文一探究竟. 一.Sealed sealed 修饰符可以应用于类.实例方法和属性.用于类时,该类被称为密封类,密封类不能被继承:用于方法时,该方法被称为密封方法,密封方法会重写基类中的方法:sealed修饰符应用于方法或属性时,必须始终与override一起使用:结构是隐式密封的,因此它们不能被继承. ● 描述方法: //Error: cann…
function test(){ var a = b = 10; } test( ); alert(b); 由上一篇博客说起,最后输出的是10.引起歧义的原因是全局变量和局部变量的关系.顺着这个话题,说说java中的这块儿.总--分--总结构来叙述一下. 参考博客: static 详细分析 实例构造器是不是静态方法 总:java中没有全局变量这个概念,只有局部变量和成员变量两个说法. java中没有“全局变量”的概念.而是有“静态”这个概念. 1.static 修饰成员变量. 2.static…
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参或类变量):引用不可以被修改该.当作为类变量时, 其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中,这两个地方只能选其一.  2.当修饰一个方法时,该方法在子类中将不能被重写.    通常,如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为f…
一,抽象类:abstract 1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类; 2,抽象类中可以有具体的实现方法; 3,抽象类中可以没有抽象方法; 4,抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类 5,抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为; 6,要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的抽象方法,通过子类的实例去调用; 二,接口:interfac…
final关键字: 这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的.final方法不能被子类的方法覆盖,但可以被继承.final成员变量表示常量,只能被赋值一次,赋值后值不再改变.final不能用于修饰构造方法.注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的. final变量定义的时候,可以先声明,而不给初值,这中变量也称为fi…
http://www.111cn.net/phper/php/38976.htm 首先来说说final 1.final不能用来修饰成员属性 2.final只能修饰类和方法 作用:被修饰的类不能被子类所继承:被修饰的方法不能被子类的方法覆盖. < ?PHP final class BaseClass { public function test() { echo "BaseClass::test() calledn"; } final public function moreTes…
10.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 答:引用不能变,不能将引用再次指向另一个新的对象,但引用所指向的对象中的内容是可以改变的. 补充: 1.对于基本类型,final使数值恒定不变,而用于对象引用,final使引用恒定不变. 2.一个既是static又是final的域只占据一段不能改变的存储空间. 3.定义为public,则可以被用于包之外:定义为static,则强调只有一份:定义为final,则说明他是一个常量. 4.带有恒定初始值(即编译其常量)的f…
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如…
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类,非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的. final方法不能被子类的方法覆盖,但可以被继承. final成员变量表示常量,只能被赋值一次,赋值后值不再改变. final不能用于修饰构造方法. 注意:父类的private成员方法是不…
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是…
final: 修饰类:类不能被继承 修饰方法:方法不能被重写 修饰变量:不能修改变量的指向,且只能赋值一次 全局变量是有默认值的,所以如果用final修饰全局变量,能在定义的同时赋值,或在构造函数中赋值(注意,其他方法不能给final全局变量赋值,会报错) 局部变量不会默认赋值,因此如果用final修饰,可以初始化一次 注意:final变量是不能修改指向(即地址),但不代表不能改值,引用类型的话是可以改值的 代码: 1.赋值问题 final变量可以在构造函数内赋值,这个特性可能会使人疑惑. 因为…
先看一道题 public class HasStatic{ private static int x=100; public static void main(String args[]){ HasStatic hs1=new HasStatic(); hs1.x++; HasStatic hs2=new HasStatic(); hs2.x++; hs1=new HasStatic(); hs1.x++; HasStatic.x--; System.out.println("x="+…
JAVA方法中的参数用final来修饰的原因   很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改,其实也就是这个原因,但理解起来可能会有歧义,有的人认为是调用语句的地方的变量的实际值不会被修改,另一种理解就是仅在调用方法内部不能被修改. 实际上第一种理解是有错误的,对于基本类型来说在调用的地方,用不用final来修饰都是一样的效果,如下面的代码: publi cstatic void main(String hh[])       {             …
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置为false;所有对象变量设置为null; PS: 只有在类中没有其它构造器的时候,系统才会提供默认构造器.如果你希望用户能能够调用不带参数的构造器,那么你就必须自己实现一个. extends[继承]: java中的继承,和C++中是有差别的.比如JAVA不支持多重继承.但是JAVA可以通过impl…
/* * 问题:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 * 答: * 使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的. */ public class Test10 { // final修饰基本类型的变量 public static final char CHAR = '中'; // final修饰引用类型的变量 public static final StringBuffer a = new StringBuf…
今天我们谈谈为什么抽象类中不能有静态的抽象方法以及static修饰的方法不能被重写可以被继承 1 static修饰的方法不能被重写可以被继承我们知道static修饰的方法为静态方法,可以直接使用类名.方法名进行调用,即该方法不属于某个对象属于该类. 我们根据下面的例子在看看static修饰的方法是否可以被重写:--------------------- public class StaticLearnig { public static void main(String[] args) { Su…
final可以修饰类.属性.方法. 当用final修饰类的时候,此类不可被继承,即final类没有子类.这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生. 当利用final修饰一个属性(变量)的时候,此时的属性成为常量. JAVA利用final定义常量(注意在JAVA命名规范中常量需要全部字母都大写): Final int AGE=10: 常量的地址不可改变,但在地址中保存的值(即对象的属性)是可以改变的. Final可以配合static使用. ? Static fin…
01final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后, 就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变. final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. 02final修饰类义 * A: final 修饰类 final修饰类不可以被继承…
[abstract]抽象的 1. abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法.抽象类不一定有抽象方法,但拥有抽象方法的类一定是抽象类: 2. 被abstract修饰的类不能直接实例化,需要通过子类实现,所以抽象类一定有子类: 3. 继承抽象类的子类必须要重写抽象类中被abstract修饰的抽象方法,如果不继承就必须要把自己变成抽象的子类. [final]最终的 1. final可以修饰类,成员变量,成员方法,局部变量/形参…
一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.         final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不能用于修饰构造方法.      …
一.final 1.final修饰变量(常量) final修饰的成员变量表示常量,一旦给定初值既无法改变 2.final方法 final修饰方法,表示该方法不能被子类重写 好处:比非final方法要快,因为在编译时已经静态绑定了,不需要在运行时在动态绑定. 3.final类 final修饰类,表示该类不能被继承,因此该类的所有方法也不能被重写 4.final参数 final修饰函数参数时,表示该参数可以被调用,但是不能被修改其值 二.static static一般表示“静态”的意思,用来修饰成员…