final可以修饰成员变量,也可以修饰局部变量、形参。final变量一旦获得初始值之后,final的变量就不能被重新赋值。 成员变量是随类初始化或对象初始化而初始化的,当执行静态初始化块时候可以对类属性进行赋初始值,当执行普通初始化块或者构造器的时候可以对实例属性赋初始值。因此成员变量的初始值可以在 ...
分类:
Web程序 时间:
2017-01-17 07:54:40
阅读次数:
285
java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值。与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 非静态初始化块 非静态初始化块在每次初始化实例对象的时 ...
分类:
编程语言 时间:
2017-01-03 17:05:55
阅读次数:
156
初始化超类的传统方式,在子类的实例中调用超类的__init__()方法。 但是传统的方法有两个问题,比如: 问题1: 结果为: 从结果可以看出,即使改变了子类的继承顺序,调用的顺序并没有改变。 问题2: 如果子类继承自两个单独的超类,而那两个超类又继承自同一个公共基类,那么就构成了钻石型继承。 这种 ...
分类:
编程语言 时间:
2017-01-01 00:06:47
阅读次数:
231
static修饰符表示静态的,可修饰字段、方法、内部类,其修饰的成员属于类,也就是说static修饰的资源属于类级别,而不是对象级别。 static的正真作用:用来区别字段,方法,内部类,初始化代码块是属于对象还是属于类本身。 static修饰符的特点: 1. static修饰符的成员(字段/方法) ...
分类:
其他好文 时间:
2016-12-30 16:51:54
阅读次数:
196
1、int是基本类型,直接存取数值,Integer是对象,用一个引用指向这个对象。 2、java中的数据类型分为基本数据类型和复杂数据类型,int是前者,Integer是后者(也就是一个类)。 3、初始化时, int i=1; Integer i=new Integer(1); (要把Integer ...
分类:
其他好文 时间:
2016-12-28 17:07:57
阅读次数:
129
又一次遭遇“xxx类型初始值设定项引发异常” 下了个c#实现的轻量级IoC开源项目,可是在本地使用时发现一运行就捕捉到“类型初始值设定项引发异常”的异常信息,调试几次还是不能确定到底什么地方出了问题。印象中好像碰到过这种异常,初步估计是某个静态类初始化不成功引起的,但是不能肯定。 无奈打开ILSpy ...
分类:
系统相关 时间:
2016-12-09 12:01:21
阅读次数:
1301
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。 本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换 ...
分类:
编程语言 时间:
2016-11-26 18:06:37
阅读次数:
230
1、首先介绍一下什么是单例模式: java单例模式是一种常见的设计模式,那么我们先看看懒汉模式: 这是没有考虑线程安全问题的,因为在线程并发的情况下,容易有多个实例,所以这是个线程不安全的模式。还有像饿汉模式这样的: 这个模式在类初始化的时候就已经实例化了,保证了唯一一个实例,这是线程安全的。 2、 ...
分类:
其他好文 时间:
2016-11-24 09:03:34
阅读次数:
633
一、初始化方法(init()) 1、定义:类初始化对象时所调用的方法 2、分类: (1)默认初始化方法 (2)便利初始化方法 (3)使用闭包 3、一些注意点: (1)方法固定名为init,没有返回值,方法名init前面也不需要加func (2)在创建对象之后,如果要使用对象的属性之前,必须对属性初始 ...
分类:
其他好文 时间:
2016-11-09 11:37:49
阅读次数:
183