一句话讲清楚双亲委托模型

双亲委托模型,其实就是递归调用
把原本的按优先级顺序调用,改为递归调用。

模拟:

优先级:A > B > C
A 用来加载 “a”
B 用来加载 “b”
C 用来加载其他

顺序调用:

D#loadClass()
public Class loadClass(String name) {
	if (name == "a") {
		return A.findClass();
	} else if (name == "b") {
		return B.findClass();
	} else {
		return C.findClass();
	}
}

递归调用:

C#loadClass()
public Class loadClass(String name) {
	Class class = B.loadClass(name);
	if (class != null) {
		return class;
	} else {
		return findClass(name);
	}
}

B#loadClass() 
public Class loadClass(String name) {
	Class class = A.loadClass(name);
	if (class != null) {
		return class;
	} else if (name == "b") {
		return findClass(name);
	} else {
		return null;
	}
}

A#loadClass() 
public Class loadClass(String name) {
	if (name == "a") {
		return findClass(name);
	} else {
		return null;
	}
}

你可能感兴趣的:(Android,理解,Java,JVM)