Fork me on GitHub
返回顶部
跳到底部
摘要: 从JDK5开始,Java增加了对元数据的支持,也就是注解(Annotation),注解就是在代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过注解,程序开发人员可以在不改变原有逻辑的情况下,在源代码中嵌入一些补充信息。 5个基本注解 @Override @Depric 阅读全文
posted @ 2018-05-15 22:13 sqmax 阅读(145) 评论(0) 推荐(0) 编辑
摘要: JDK动态代理 JDK动态代理主要用到 类和 接口,通过使用他们就可以生成JDK动态代理类和动态代理对象。 Proxy提供如下两个方法创建动态代理类和动态代理实例。 :创建一个动态代理类对应的Clas对象,该代理类将实现了interfaces接口。第一个Classloader参数指生成被代理类或接口 阅读全文
posted @ 2018-05-15 20:27 sqmax 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 在多线程编程中synchronized一直是元老级的角色,很多人称呼它为重量级锁。Java6之后为了减少获得锁和释放锁带来的性能消耗引入了偏向锁和轻量级锁,对synchronized进行了各种优化,它变得不那么重了。 synchronized实现同步的基础是:Java中的每一个对象都可以作为锁。 具 阅读全文
posted @ 2018-05-15 15:04 sqmax 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 类加载、连接和初始化 当程序主动使用某个类时,如果给类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤对该类进行初始化。 类加载 类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。类加载由类加载器完成,类加载器由JVM提供。通过不同的类加载器,可以 阅读全文
posted @ 2018-05-15 09:45 sqmax 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 创建线程 继承Thread类创建线程 步骤: 1. 继承Thread类,重写run()方法,run()方法体为线程执行体。 2. 创建Thread类的实例,即创建了线程对象。 3. 调用线程对象的start()方法启动线程。 运行结果如下: 实现Runnable、Callable接口创建线程的优缺点 阅读全文
posted @ 2018-05-15 09:19 sqmax 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态地指定。 集合中的泛型 泛型最常见在使用集合时,如: 可以简写为: 泛型集合与泛型数组的不同 如果B是A的子类,对于数组而言, 是`A[] G`不是 的子类型,下面第二行就会编译出错。 下面我们来 阅读全文
posted @ 2018-05-15 08:58 sqmax 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Java集合主要有两个接口派生而出:Collection和Map,他们都是集合框架的子接口,下面两天分别是Collection和Map的继承树。 集合的两大父接口 Collection Collection集合体系下又主要包含Queue、List、Set三个接口。 可以看到Iterable是Coll 阅读全文
posted @ 2018-05-15 08:40 sqmax 阅读(137) 评论(0) 推荐(0) 编辑