近期写项目遇到一个问题,来回折腾了几次,最终探究清楚了.不废话.上样例. 背景:由于项目小,没有使用配置文件,全部静态常量都放在Config.java里面了 public class Config { public static final String URL="http://www.xxxx.com/"; public static final int PAGE_NUM=10; } 看起来也不错啊,没什么大问题.都这么用的啊. 好吧,放到server上执行一下,正常啊. 接下来,问…
最近重头开始看基础的书,对一些基础的概念又有了一些新的理解,特此记录一下 static final修饰的常量: 静态常量(static修饰的全部为静态的),编译器常量,编译时就确定其值(java代码经过编译器把.java源文件编译成.class字节码文件.经过jvm解释成机器码) 存放于方法区的静态常量池中,在编译时就已经存放 如果调用此常量的类并不是定义这个常量的类,那么不会初始化定义这个常量的类,节省了内存资源的开销 class Demo{ } 代码如下 class Demo{ privat…
<init>和<clinit> init是对象构造器方法,初始化对象的时候执行 clinit是类构造器方法,类加载的初始化阶段执行 final常量赋值(必须是一下其中一种) 显式赋值 构造参数中赋值<init> 代码块中赋值 static类变量初始化 <clinit>同步方法(static赋语句.static代码块由jvm clinit收集并执行) 接口与类一样都会生成<clinit> 接口与类不同的是,执行接口的<clinit>()…
本章技能目标: 使用类图描述设计 掌握面向对象设计的基本步骤 掌握类和对象的概念 掌握构造方法及其重载 掌握封装的概念及其使用 本章单词: class:类 object:对象 static: final: private: public: protect: overloding:方法重载 overriding:方法覆盖 constructor:构造方法 encapsulation:封装 1.1用面向对象设计电子宠物系统 万事万物皆对象 从具体到抽象 ¥*¥面向对象的过程就是抽象的过程:分三步来完…
java里的static/final含义 static static可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类) static修饰的属性的初始化在编译期(类加载的时候),初始化后能改变.因此static修饰的属性必须有初始值(数值型变量默认值为0,布尔型默认值为false,引用类型默认值为null).类加载后,存储在方法区(metaspace) static修饰的属性所有对象都只有一个值(但是多个实例都可以同时修改,因此不具有线程安全性). static修饰的属性强调(在多个实…
/*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog {                 //创建Dog类 String name; int health; int love; String sex; /* 无参方法(一般没有构造方法,系统默认无参方法, 同时可以直接在上面属性声明后面赋值,如果没有赋值,系统自动输入默认值) 但是加有参方法时,建议一定要把无参加上 修饰符+类名()…
C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景.工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量. const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值. 下面声明两个常量: ; //A为运行时常量 ; //B为编译时常量 下面的表达式: int C = A + B; 经过编译后与下面的形式等价: ; 可以看到,其…
[last updated:2014/11/27] NO1.常量池在class文件的什么位置? 我的上一篇文章<Java虚拟机原理图解> 1.class文件基本组织结构中已经提到了class的文件结构,在class文件里的魔数.副版本号号.主版本号之后,紧接着就是常量池的数据区域了,例如以下图用红线包含的位置: 知道了常量池的位置后,然后让我们来揭秘常量池里到底有什么东西吧- NO2.常量池的里面是怎么组织的? 常量池的组织非常easy,前端的两个字节占有的位置叫做常量池计数器(constan…
喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......................................... final:用来修饰类,变量,方法: final修饰的类不能有子类,也不能被继承. final修饰的变量是一个常量,不能重新赋值. final修饰的方法不能重写 现在就说明final修饰的常量① 与 static final 修饰的常…
今天在工作中碰到这样一个问题,有一个常量类,将工程中常用的一些变量定义在了里面.今天我要修改其中的某个变量.修改完后将编译好的.class文件更新到了服务器上,但是重启服务器后发现始终没有变化,还是以前的值.我就将服务器的缓存清理,然后再重启,依然没有改变.反反复复又更新上去,又清理缓存,又重启弄了好多次还是不行. 我把服务器上的.class文件反编译,发现明明已经修改了,但是运行起来就仍然还是以前的值,感觉整个人都不好了. 就把调用这个常量的类反编译了一看,果然调用的地方直接就写的是原来的那个…