Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions blogs/javase/java基础巩固笔记(1)-反射.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ hashcode与内存泄露问题
参考java api:

>* hashcode一旦生成,不要变
>* 对象equals方法返回true,则hascode要一致
>* 反之,equals方法返回false,hascode不一定互异
>* 对象equals方法返回true,则hashcode要一致
>* 反之,equals方法返回false,hashcode不一定互异

如果参与hascode计算的成员变量中途发生变化,则后面remove时失败,造成内存泄露
如果参与hashcode计算的成员变量中途发生变化,则后面remove时失败,造成内存泄露


----
Expand Down
2 changes: 1 addition & 1 deletion blogs/javase/java基础巩固笔记(3)-类加载器.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Exception in thread "main" java.lang.NullPointerException

- 首先当前线程的类加载器去加载线程中的第一个类
- 如果类A应用了类B,java虚拟机将使用加载类A的类加载器来加载类B
- 还可以直接调用ClassLoader.loadClass()方法来制定某个类加载器去加载某个类
- 还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类

-------------------

Expand Down
8 changes: 4 additions & 4 deletions blogs/javase/java基础巩固笔记(4)-代理.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public class ProxyTest {
System.out.println(clazzProxy1);
printConstructors(clazzProxy1);
printMethods(clazzProxy1);

}

/**
Expand Down Expand Up @@ -239,14 +239,14 @@ com.sun.proxy.$Proxy0

### 动态代理的工作原理

代理类创建时需要传入一个InvocationHandler对象,client调用代理类,代理类的相应方法调用InvocationHandler的的invoke方法,InvocationHandler的的invoke方法(可在其中加入日志记录、时间统计等附加功能)再找目标类的相应方法。
代理类创建时需要传入一个InvocationHandler对象,client调用代理类,代理类的相应方法调用InvocationHandler的的invoke方法,InvocationHandler的invoke方法(可在其中加入日志记录、时间统计等附加功能)再找目标类的相应方法。

![动态代理的工作原理图](http://7xph6d.com1.z0.glb.clouddn.com/javaSE_%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%9B%BE.jpg)

### 面向切面编程

把切面的代码以**对象**的形式传递给InvocationHandler的的invoke方法,invoke方法中执行该对象的方法就执行了切面的代码。
把切面的代码以**对象**的形式传递给InvocationHandler的invoke方法,invoke方法中执行该对象的方法就执行了切面的代码。

所以需要传递两个参数:

1.目标(Object target)
Expand Down