继承父类的属性和方法,能够减少代码的重复。子类构建的时候,先初始化父类,然后才初始化子类。如果父类没有不带参数的构造方法1.要么声明一个不带参数的构造方法2.要么使用super()指定调用父类构造方法,记住 super 应该在构造器的第一行。 多态又叫做动态加载机制。实现条件:1.必须有继承关系2. ...
分类:
其他好文 时间:
2017-04-09 21:02:45
阅读次数:
130
最近学习了设计模式之单例模式,现在进行总结一下吧。 (1)饿汉模式:饿汉模式利用类的加载机制 好处:只在类的加载时候创建一次实例,不会存在多线程创建多个实例的问题,避免了多线程同步的问题。 缺点:即使这个实例没有被程序用到,也会被创建,内存就浪费了。 (2)懒汉模式:懒汉模式是需要的时候才去创建对象 ...
分类:
其他好文 时间:
2017-04-08 18:47:35
阅读次数:
203
1.1. 类加载器的层次 类加载器包括三种: Bootstrap ClassLoader:用于加载JRE的lib目录下的jar文件中的class。 ExtClassLoader:用于加载JRE的lib/ext目录下的jar文件中的class。 AppClassLoader:用于加载classpath ...
分类:
编程语言 时间:
2017-04-07 23:14:45
阅读次数:
266
1.1. class类的相等比较 对于class类的对象,只有由相同的类加载器加载,并且类名相同,才是相同的class。 同时,对于类的委托加载机制,可以遵循,也可以不遵循。 定义Hello类。 定义类加载器。 编写测试代码。 运行结果: loadClass:Hello specialLoadCla ...
分类:
编程语言 时间:
2017-04-07 23:08:43
阅读次数:
271
JVM和类 当调用java命令来运行某个Java程序时,该命令会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都处于该java虚拟机进程里。 正如刚所说,同一个JVM所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。 当出现下面几种情况时, ...
分类:
其他好文 时间:
2017-04-05 09:42:57
阅读次数:
196
2017-04-02 SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。有效的解决复杂项目中命名冲突、依赖、性能等问题。 SeaJS中使用define函数定义一个模块。define可以接收三个参数:require, exports, ...
分类:
Web程序 时间:
2017-04-03 00:30:51
阅读次数:
186
Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析 ...
分类:
编程语言 时间:
2017-04-01 01:01:35
阅读次数:
186
use只是使用了命名空间,但是要想调用类,必须要加载类文件,或者自动加载。 即便是引入了其中一个类,如果没有自动加载机制,还是会报错 use的几种用法 1.第一种引入方式(前提是有了自动加载机制) 使用的时候, 或者这样 都可以! 2.第二种引入方式(前提是有了自动加载机制) 使用的时候,只能 th ...
分类:
Web程序 时间:
2017-03-26 15:35:44
阅读次数:
301
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个周期包括:加载(Loading)、验证(Verification)、准备(Prepara ...
分类:
其他好文 时间:
2017-03-23 01:22:40
阅读次数:
190
1.JVM初始化步骤 ①,如果类还没有加载连接,则虚拟机先加载并连接 ②,父类还没有被初始化,则先初始化父类 ③,如果类包含初始化语句,则系统依次执行这些初始化语句 2.类初始化时机 ①,使用new创建类的实例 ②,访问类或接口的静态变量,或者对静态变量进行赋值 ③,调用类的静态方法 ④,反射 ⑤, ...
分类:
编程语言 时间:
2017-03-19 15:44:23
阅读次数:
214