一. 案例 1.源码: /** @hide */ private TelephonyManager(int slotId) { mContext = null; mSlotId = slotId; if (sRegistry == null) { if (sRegistry == null) { sRegistry = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService( "telephony.registry")…
不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块和内部类. Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量.数组和对象的引用变量,堆内存主要存放一些引用类型的变量.在JVM加载一个类的时候,若该类存在static修饰的成员变量和成员方法…
类装载器ClassLoader 类装载器工作机制 类装载器就是寻找类的节码文件并构造出类在JVM内部表示对象的组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: [1.]装载:查找和导入Class文件: [2.]链接:执行校验.准备和解析步骤,其中解析步骤是可以选择的: [2.1]校验:检查载入Class文件数据的正确性: [2.2]准备:给类的静态变量分配存储空间: [2.3]解析:将符号引用转成直接引用: [3.]初始化:对类的静态变量.静态代码块执行初始化工作.…
第一个例子: public class StaticDemo { { System.out.println("{} 代码块"); } static{ System.out.println("static 代码块"); } public static void main(String[] args) { } } static 代码块 结论:类的加载会执行static代码块,不会执行{}代码块. 第二个例子: public class StaticDemo2 { { S…
饿汉模式 饿汉模式就是立即加载,在方法调用前,实例就已经被创建了,所以是线程安全的. public class MyObject1 { private static MyObject1 myObject1 = new MyObject1(); private MyObject1() {} public static MyObject1 getInstance() { return myObject1; } } 懒汉模式 懒汉就是延迟化加载,当需要使用的时候才进行实例化. 线程不安全 public…
 part 1         /**          * << class 中的 static 代码块与 super.prop 的使用          *          * - 类中的 static 代码块.          *   该类型代码块可以有多个,这些代码块在类定义的时候执行,          *   执行顺序是自上而下逐个执行.          *   | 该代码块中的 this 指向当前的类,在代码块中可以直接通过 new this() 来创建类的实例.    …
本篇文章主要分为两个模块进行介绍:1.final,staic,static final之间的异同:2. static 模块:3.嵌套类的概念 1.final,staic,static final之间的异同: (1)final final可以修饰属性,方法,类,局部变量(静态变量.实例变量和局部变量): 其中,final修饰的属性表明是个常量,它的初始化可以在编译期,也可以在运行期,初始化后不能被改变: final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值:…
0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]public static final 接口内的成员方法[缺省属性]public abstract 接口遵从的实现语法: class A implements B {} A类是B接口的实现类,A类遵从B接口 接口的实现类需完成接口中所有缺省值为[public abstract]的方法 一个类可以继承多个接口,…
原因在最后,这是其中的一个小例子. 如: SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大 所以一个web项目要保证只创建一个SessionFactory 那么在使用hibernate创建一个工具类(HibernateUtils),用于获取Session对象时需要将其放在static代码块中, 又因下边的每个方法需要使用SessionFactory对象sf,所以将其单独拆出放在方法外. static代码块只执行一次原因: static代码块只在类加载时执行,类是用类加载…
注:下列代码中的注释都是JUnit4单元测试运行结果. 首先,没有父类的(父类是Object)的类A package Static.of; public class A { { System.out.println("我是父类-----大括号中的代码"); } static{ System.out.println("我是父类-------static代码块"); } public A(){ System.out.println("我是父类A--------…