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

浙公网安备 33010602011771号