`
血腥小苹果
  • 浏览: 3205 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
文章列表
众所周知static字段是在类加载的时候完成初始化过程的。 而final字段呢。 在类加载时给予空间而不是对其进行初始化。 例如private final String strFinal="ok"; 加载时给一个String类型空间大小,栈中的strFinal引用指向这个空间。 初始化时也就是调用类的构造器时。将“ok”初始化。 下面的代码展示了: public class DemoB { private static DemoB demoB = new DemoB(); public final String strFinal="final字段初始化&qu ...
首先final字段是一经初始化就无法改变的。 其他属性就不说了。 final分为static和非static的。 先说非static的final。 final int i = 10; 看下面的一段代码: class ATest { final int i; ATest() { i=10; } } 这里调用的是构造器进行对final字段初始化 问题出现了:类进行实例化的时候的先初始化变量也就是这里的“i”;而在这里i并没有给予赋值。也就是一旦定义就无法改变其值。那岂不是和final的定义发生矛盾了吗 其实不然,经过这几天的摸索其实并不是这样运行的: 在实例化ATest类时。 ...
package demo; //接口分离原则 interface Guest { // 这里定义浏览者只有查看权限 void see(); } interface Master { //这里定义版主有查看和修改权限 void see(); void change(); } interface Admin { //这里定义管理员有查看、修改和删除权限 void see(); void change(); void delete(); } class CreateLimit implements Guest, Mas ...
Global site tag (gtag.js) - Google Analytics