- 浏览: 3724 次
- 性别:
- 来自: 杭州
最新评论
文章列表
一般,我们用反射是可以在运行时洞悉一个类的信息(无论公私有),但是我们也可以在运行时创建一个新的类(原先不存在),然后加载该类,并调用该类中的函数。
1.创建一个类
这里我简便的用IO流将一个已经完成的类(与当前工程不再一个目录下),拷贝到当前工程目录下,当然也可以在运行时直接用字符串拼接处一个类,写入文件。
@SuppressWarnings("resource")
public static void copyClass() throws IOException{
File file = new File("src/com/anno ...
先看两段代码:
publicclass D extends C{
public D(){
System.out.println("D-init");
}
publicstaticvoid main(String []args){
C c = new D();
System.out.println(c.getClass().getName());
c.f2();//编译出错,无法访问到f2()
}
}
class C {
public C(){
System.out.println("C-init");
}
...
第一次写博客,也就是记录一些自己对于JAVA的一些理解,不足之处,请大家指出,一起探讨。
这篇博文我打算说一下JAVA中锁,也就是Lock()的部分源码,这里我拿了一个Lock的具体实现类ReentrantLock来举例,但其实其他几个实现类大同小异。
附上一张流程图,来源我忘记,比较抱歉啊。
首先声明一下ReentrantLock类中的结构
其中有一个Sync静态内部类,该类继承自AbstractQuenedSynchrorizer
在AbstractQuenedSynchrorizer中,实现了大部分关于lock的操作,一般只留下tryAcquire()尝试获取锁,try ...