随笔分类 -  JAVA

摘要:在ASM的Core API中使用的是访问者模式来实现对类的操作,主要包含如下类:一、ClassVisitor接口: 在这个接口中主要提供了和类结构同名的一些方法,这些方法可以对相应的类结构进行操作。如下:public interface ClassVisitor { void vis... 阅读全文
posted @ 2015-05-27 17:02 TomSun*star 阅读(724) 评论(1) 推荐(0)
摘要:上一篇文章,我们已体验到ASM的威力,那么结合上面的代码解释ASM是怎么执行的。ClassWriter clazzWriter = new ClassWriter(0); 首先看下官方文档对ClassWriter的描述:A ClassVisitor that generates class... 阅读全文
posted @ 2015-05-27 16:52 TomSun*star 阅读(654) 评论(0) 推荐(0)
摘要:一、什么是ASM 首先看下官方中的说明 ASM a very small and fast Java bytecode manipulation framework。 ASM是一个JAVA字节码分析、创建和修改的开源应用框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAV... 阅读全文
posted @ 2015-05-27 16:31 TomSun*star 阅读(12930) 评论(0) 推荐(2)
摘要:在java中,可以声明一个泛型数组,不能通过直接通过T[] tarr=new T[10]的方式来创建数组,最简单的方式便是通过Array.newInstance(Classtype,int size)的方式来创建数组例如下面的程序。public class ArrayMaker { ... 阅读全文
posted @ 2015-05-26 19:57 TomSun*star 阅读(1745) 评论(0) 推荐(0)
摘要:T 有类型? 未知类型一、通配符的上界 既然知道List并不是List的子类型,那就需要去寻找替他解决的办法, 是AnimalTrianer.act()方法变得更为通用(既可以接受List类型,也可以接受List等参数)。在java里解决办法就是使用通配符“?”,具体到AnimalTrianer... 阅读全文
posted @ 2015-05-26 19:13 TomSun*star 阅读(1155) 评论(1) 推荐(1)
摘要:java编程思想说道: 泛型类是应用在整个类上,但同时可以在类中包含参数化方法,而这个方法所在的类可以是泛型,也可以不是泛型,也就是说是否有泛型方法,与其所在的类是否是泛型类没有关系。 泛型方法是的该方法可以能够独立于类而产生变化,一下是一个基本的指导原则:无论合适,只要你能做到,你就应该尽... 阅读全文
posted @ 2015-05-26 17:08 TomSun*star 阅读(497) 评论(0) 推荐(0)
摘要:1. 概述 在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。 例如原先的类型List,现在在细分成List, List等更多的类型。注意,现在List, List是两种不同的类型,他们之间没有继承关系,即使Strin... 阅读全文
posted @ 2015-05-26 16:45 TomSun*star 阅读(734) 评论(0) 推荐(0)
摘要:java.lang.Reflect.Array类提供了动态创建和访问数组元素的各种静态方法。package com.sunchao.reflection;import java.lang.reflect.Array;/** * The array reflection. * @author Admi... 阅读全文
posted @ 2015-05-26 15:42 TomSun*star 阅读(606) 评论(0) 推荐(0)
摘要:Java中的反射 本文为反射的基础知识部分。 能够分析类能力的程序被称为反射(reflective)。 反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,容许程序在运行时加载、探知、使用编译期间未知的class。即Java的反射机制可以加载一个运行时才得知名称的class,获... 阅读全文
posted @ 2015-05-26 15:29 TomSun*star 阅读(270) 评论(0) 推荐(0)
摘要:package com.sunchao.reflection;public class Person { private int age ; private String name; public String address; public static final int... 阅读全文
posted @ 2015-05-26 15:21 TomSun*star 阅读(717) 评论(0) 推荐(0)
摘要:基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的。 这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflection)机制。 Java反射机制主要提供了以下功能: ... 阅读全文
posted @ 2015-05-26 13:50 TomSun*star 阅读(465) 评论(0) 推荐(0)
摘要:类加载器: 类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 j... 阅读全文
posted @ 2015-05-25 23:34 TomSun*star 阅读(250) 评论(0) 推荐(0)
摘要:原处出之于阿里liangfInterface:package com.sunchao.jdkdyproxy;public interface Subject { void request();}impl:package com.sunchao.jdkdyproxy;public class R... 阅读全文
posted @ 2015-05-25 21:44 TomSun*star 阅读(1961) 评论(0) 推荐(0)
摘要:Base64编码说明: Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。 为了保证所输出的编码位可... 阅读全文
posted @ 2015-05-22 15:39 TomSun*star 阅读(268) 评论(0) 推荐(0)
摘要:package com.sunchao.callback;/** * callback interface * @author Administrator * */public interface CallBack { /** * execute the callback method *... 阅读全文
posted @ 2015-05-21 20:04 TomSun*star 阅读(433) 评论(0) 推荐(0)