首页
学习
活动
专区
工具
TVP
发布

光变

专栏作者
46
文章
59057
阅读量
22
订阅数
Ubuntu 配置默认命令
设置环境变量,PATH、CLASSPATH、JAVA_HOME。(PATH最后添加bin目录)
白凡
2018-08-07
4380
Java使用slf4j输出日志
如何使用slf4j记录相应级别日志,作出了示例和详细使用说明。 Logger使用规范 1. 使用指南 Logger使用slf4j的接口和实例。 1.1 声明Log实例 这里需要注意使用static final修饰符 private static final Logger LOG = LoggerFactory.getLogger(Slf4jLogSample.class); 1.2 Log使用实例 import org.junit.Test; import org.slf4j.Logger; impor
白凡
2018-08-07
1.5K0
Java Emoji MySQL UTF8 mb4
支持IOS的Emoji表情编码。最好的方法就是把编码存入到数据库了。MySQL版本需要… 支持IOS的Emoji表情编码。
白凡
2018-08-07
9960
Java Code Review 指南
Java代码俯身指南,主要为Java开发人员提供代码复审参考,快捷有效提出修改意见。
白凡
2018-08-07
1.7K0
1.2 ASM-简介-概览
ASM的作用是生成、转换和分析已经编译的Java类(Java字节码),将其替换成byte数组 (因此转换后的Java类可以被存放在硬盘上或者加载到JVM中)。为了提供一套读取、写入和转换这些byte数组的工具, ASM使用了更高级的概念,比如常量、字符串、Java标识符、Java类型、Java类的结构元素等。 需要注意的是ASM库的范围严格的限制在读取、写入、转换和分析Java类。 特别要注意的是类加载过程是不在该范围内的。
白凡
2018-08-07
2800
1.1 ASM-简介-目的
上面所述的技术可以应用于任何编程语言,只不过在实现上的难易程度取决于编程语言。 对于Java在这种情况下,可以在源码或者字节码中应用。 如果在字节码中应用,显而易见的一个优点是,你不需要源文件。 因此可以在任何应用中都可以使用代码转换,包括闭源代码和商业代码。 另一个好处是,你可以对编译后的字节码做分析、生成新的字节码或者转换字节码, 只需要它们在Java虚拟机(在运行时生成和编译源代码是可以的,但是非常耗时,而且需要一个完成的Java编译环境支持)载入代码之前完成即可。 还有一个好处是工具包,例如stub编译器或者切面植入器,对用户来说是透明的。 由于程序分析、代码生成和代码转换有很多种技术可以实现,所以有很多相应的工具也被发明了出来。 ASM[1]就是一款针对Java的工具,它被设计成可以在运行时使用,同样也可以在离线状态下使用,对class进行生成和转换。 ASM库对编译后的class进行工作,它设计的速度快、内存消耗小。 速度越快越重要,在动态代理class的生成和class的转换时,尽可能确保运行中的应用不会被ASM拖慢, 同时内存消耗越小越好,避免因为环境限制,对本身消耗内存就小的应用来说,产生内存膨胀。 ASM不是唯一针对Java字节码生成和转换的工具库,但是它是全新且效率最高的。 可以在http://asm.objectweb.org中下载依赖库。
白凡
2018-08-07
8770
3.2 ASM-方法-接口和组件
在ASM API中,用来生成和转变编译后方法的都是基于‘MethodVisitor’抽象类的(参照图表 3.4),这是由‘ClassVisitor’的‘visitMethod’方法返回的。 除了一些注解和调试相关的信息(这些信息将在下一章说明),这个类定义了每个字节码指令类别一个方法,根据这些指令的参数数量和参数类型(这些类别不对应3.1.2节介绍的那些类别)。 这些方法必须按照以下顺序调用(和MethodVisitor接口在Javadoc中指定的一些额外约束):
白凡
2018-08-07
2K0
3.1 ASM-方法-结构
ASM-方法-结构 本章将会介绍如果使用ASM core API生成或者转换Java编译后的method。 本将开始会展示编译后的method,然后使用很多说明示例,展示相应的ASM接口、组件和工具类,生成或者转换编译后的method。
白凡
2018-08-07
1.2K1
2.3 ASM-类-工具类
除了ClassVisitor类,以及相关的ClassReader和ClassWriter等组件, ASM在org.objectweb.asm.util还提供了一些工具类,对开发一个Class生成器和适配器非常有用,但在程序运行中不是必需的。 ASM同样也提供了一个在程序运行时,处理内部名、类型描述符和方法描述符的工具类。 所有工具都会在下面进行介绍。
白凡
2018-08-07
8780
你所不知道的Java之HashCode
以下内容为作者辛苦原创,版权归作者所有,如转载演绎请在“光变”微信公众号留言申请,转载文章请在开始处显著标明出处。
白凡
2018-06-04
7060
你所不知道的Java之Switch
??? Enum,String,Character,Byte,Short,Integer
白凡
2018-06-04
1.3K0
你所不知道的Java之Integer
以下内容为作者辛苦原创,版权归作者所有,如转载演绎请在“光变”微信公众号留言申请,转载文章请在开始处显著标明出处。
白凡
2018-06-04
5140
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档