SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使 ...
分类:
其他好文 时间:
2019-02-23 00:55:52
阅读次数:
227
Java让我们在识别对象和类的信息,主要有两种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。 使用反射赋予了Java动态编译的能力,否则类的元数据信息只能通过静态编译的方式实现。 Java中编译类型有两种: 静态编译: ...
分类:
编程语言 时间:
2019-02-20 20:07:16
阅读次数:
226
FHS:FilesystemHierarchyStandard文件系统层次结构标准/bin:所有用户可用的基本命令程序文件;/sbin:供系统管理使用的工具程序;/boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;/dev:存储特殊文件或设备文件;设备有两种类型:字符设备(线性设备)、块设备(随机设备);/etc:系统程序的配置文件,只能为静态
分类:
系统相关 时间:
2019-02-17 09:15:48
阅读次数:
224
一、建立合理的目录结构 admin与home为后台和前台的控制器和模板文件夹 二、定义前后台视图路径常量 在constants.php中添加如下代码: 三、创建扩展加载器 在core文件夹中创建MY_Loader.php,代码如下: 四、创建前台控制器 在home文件夹中添加index.php文件, ...
分类:
其他好文 时间:
2019-02-16 15:18:13
阅读次数:
289
类加载器:根据指定全限定名称将class文件加载到JVM内存,转为Class对象。 站在JVM的角度来看,只存在两种类加载器: 1、启动类加载器(Bootstrap ClassLoader):由C++语言实现(针对HotSpot),负责将存放在<JAVA_HOME>\lib目录或-Xbootclas ...
分类:
其他好文 时间:
2019-02-15 15:14:48
阅读次数:
204
单例模式 引子: Java类加载器加载内容的顺序: 1、从上往下(Java的变量需要先声明才能使用) 2、静态后动态(对象实例化)(静态块和static关键字修饰在实例化以前分配内存空间) 3、先属性后方法(成员变量不能定义在方法中,只能定义在class下) 1. 保证从系统启动到系统终止,全过程只 ...
分类:
其他好文 时间:
2019-02-13 13:04:48
阅读次数:
187
三、JVM如何加载.class文件 1.Java虚拟机的四个部分 2.通过类加载器(ClassLoader)加载.class ...
分类:
其他好文 时间:
2019-02-12 20:16:39
阅读次数:
177
在Java中,类加载都是在运行期间执行的,这种策略虽然令类加载稍微增加一些性能,但是会给java应用程序提供高度的灵活性。 类加载的过程 和其他语言一样,java编译器同样能够将.java文件编译成.class,但是对于JVM来讲,它并不关心,是哪种语言经过编译形成的。 JVM类加载工作原理:就是把 ...
分类:
其他好文 时间:
2019-02-10 14:58:31
阅读次数:
175
6.6.3 其他Aware接口 除了上面讨论的ApplicationContextAware和BeanNameAware之外,Spring还提供了一系列Aware接口,允许bean向容器表明它们需要确定的基础依赖。其中最重要的Aware接口总结如下 - 作为一般规则,名称很好地说明了依赖类型:表6. ...
分类:
编程语言 时间:
2019-02-09 10:41:23
阅读次数:
164
1 、说起jvm,很多人感觉jvm离我们开发实际很远。但是,我们开发缺每时每刻都离不开jvm。 a: java源码 编译后成.class字节码文件, b:根据classpath找到这个字节码文件, c:然后 用类加载器classloader加载文件。 经过上面三步后,JVM开始解释执行。 栈:程序运 ...
分类:
其他好文 时间:
2019-02-03 16:44:50
阅读次数:
154