6 叶止水

尚未进行身份认证

Github: https://github.com/houbb 邮箱:1060732496@qq.com

等级
TA的排名 305

java 支持分词的拼音转换高性能工具,速度是 pinyin4j 的两倍

pinyinpinyin 是 java 实现的高性能中文拼音转换工具。变更日志创作目的想为 java 设计一款便捷易用的拼音工具。如何为 java 设计一款高性能的拼音转换工具 pinyin4j特性性能是 pinyin4j 的两倍极简的 api 设计支持转换长文本支持多音字支持多种拼音标注方式支持中文分词快速开始准备jdk 1.7+m...

2020-01-18 22:40:14

结巴分词 java 高性能实现,优雅易用的 api 设计,性能优于 huaban jieba 分词

SegmentSegment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现。变更日志创作目的分词是做 NLP 相关工作,非常基础的一项功能。jieba-analysis 作为一款非常受欢迎的分词实现,个人实现的 opencc4j 之前一直使用其作为分词。但是随着对分词的了解,发现结巴分词对于一些配置上不够灵活。有很多功能无法指定关闭,比如 HMM 对于繁简体转换...

2020-01-14 20:51:00

java 实现敏感词(sensitive word)工具详解使用说明

sensitive-word平时工作中,只要涉及到用户可以自由发言(博客、文档、论坛),就要考虑内容的敏感性处理。sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。特性6W+ 词库,且不断优化更新基于 DFA 算法,性能较好基于 fluent-api 实现,使用优雅简洁支持敏感词的判断、返回、脱敏...

2020-01-09 14:38:18

java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

如何使用IMAP服务?首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过。直接到 Email 邮件发送实现的部分。IMAP是什么?IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上获取邮件的信息、下载邮件等。IMAP与POP类似,都是一种邮件获取协议。IMAP和POP有什么区别?POP允许电子邮件客...

2020-01-06 17:54:57

一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍

gen-test-plugin我们日常编写代码的过程中,经常需要为代码编写测试案例。随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标。本框架可以一键生成所有代码对应的 junit 测试案例,为你的人生节约宝贵的时间。特性支持生成 junit4/junit5支持 jdk7支持自定义生成模板更新记录更新记录gen-test...

2019-12-28 16:06:26

ASM 系列详细教程-23-ASM Tree API 向后兼容能力

介绍与核心API一样,ASM 4.0的树API中也引入了一种新机制,以确保在将来的ASM版本中向后兼容。但是,这里再次不能单独通过ASM来确保此属性。要求用户在编写自己的文章时遵循一些简单的准则码。本章的目的是介绍这些准则,并给出ASM树API中使用的内部机制的概念,以确保向后兼容。指导方针本节介绍了使用ASM树API时必须遵循的准则,以确保您的代码在以后的任何ASM版本中保持有效(...

2019-12-24 20:51:22

ASM 系列详细教程-22-ASM Metadata 元数据 Generic Annotation Debug

元数据本章介绍了用于已编译Java类元数据(例如注解)的树API。之所以很短,是因为这些元数据已经在第4章中介绍过,并且因为一旦知道了相应的 core API,树API就很简单。泛型树API不提供对泛型类型的任何支持!确实,它代表了带有签名的泛型类型,就像在核心API中一样,但是没有提供与SignatureVisitor对应的SignatureNode类,尽管这是可能的(实际上,使用多个...

2019-12-24 20:49:38

ASM 系列详细教程-21-ASM Method 方法分析接口与组件

接口和组件用于代码分析的ASM API在 org.objectweb.asm.tree.analysis 软件包中。就像包名称所暗示的那样,它基于树API。实际上,该程序包提供了进行正向数据流分析的框架。为了能够使用或多或少的精确值集执行各种数据流分析,数据流分析算法分为两部分:一个是固定的,由框架提供,另一个是可变的,由用户提供。更确切地说:在Analyzer和Frame类中,一劳...

2019-12-24 20:46:45

ASM 系列详细教程-20-ASM Method 方法分析介绍

方法分析本章介绍基于树API的ASM API,用于分析方法代码。首先介绍代码分析算法,然后提供相应的ASM API和一些示例。介绍代码分析是一个非常大的主题,并且存在许多用于分析代码的算法。在这里不可能全部展示它们,这超出了本文的范围。实际上,本部分的目的只是概述ASM中使用的算法。在有关编译器的书中可以找到关于此主题的更好的介绍。下一节将介绍两种重要的代码分析技术,即数据流和控制...

2019-12-24 20:45:05

ASM 系列详细教程-19-ASM Tree api 方法组件组成入门详解

成分组成到目前为止,我们只看到了如何创建和转换MethodNode对象,但是还没有看到与类的字节数组表示形式相关的链接。像对于类一样,此链接是通过组合核心API和树API组件来完成的,如本节所述。介绍除了图7.1中所示的字段外,MethodNode类还扩展了MethodVisitor类,并且还提供了两个接受方法,它们将MethodVisitor或ClassVisitor作为参数。acce...

2019-12-23 20:30:53

ASM 系列详细教程-18-ASM Tree api 方法接口与组件

方法本章介绍如何使用ASM树API生成和转换方法。它从仅提供树API的介绍开始,并提供一些说明性示例,然后介绍如何与核心API组合。下一章介绍了用于泛型和注解的树形API。Interfaces and components 说明MethodNode用于生成和转换方法的ASM树API基于MethodNode类(请参见图7.1)。Figure 7.1.: The MethodNode ...

2019-12-23 20:29:32

ASM 系列详细教程-17-ASM Tree api 类组件组成详解

组件组成到目前为止,我们只看到了如何创建和转换ClassNode对象,但是还没有看到如何从类的字节数组表示形式构造ClassNode,反之亦然,如何从ClassNode构造此字节数组。实际上,这是通过组合核心API和树API组件来完成的,如本节所述。介绍除了图6.1中所示的字段之外,ClassNode类还扩展了ClassVisitor类,并且还提供了一个接受方法,该方法将ClassVisi...

2019-12-23 20:28:13

ASM 系列详细教程-16-ASM Tree api 类接口与组件

本章简介本章介绍如何使用ASM树API生成和转换类。它从仅介绍tree API入手,然后进行说明如何与核心API组合在一起。在下一章中将说明用于方法,注解和泛型内容的树形API。Interfaces and componentsPresentation(介绍)类节点信息用于生成和转换已编译Java类的ASM树API基于ClassNode类(请参见图6.1)。Figure 6.1....

2019-12-23 20:25:28

ASM 系列详细教程-15-ASM ReflectASM 入门案例详细介绍及实战

reflectasmreflectasm is a very small Java library that provides high performance reflection by using code generation.An access class is generated to set/get fields, call methods, or create a new ins...

2019-12-23 20:23:40

ASM 系列详细教程-14-ASM core api 向后兼容守则

守则本节介绍了使用核心ASM API时必须遵循的准则,以确保您的代码在将来的任何ASM版本中均保持有效(按照上述合同的意义)。首先,如果您编写类生成器,则没有任何可遵循的准则。例如,如果您为ASM 4.0编写了一个类生成器,则它可能会包含一个诸如 visitSource(mySource, myDebug) 之类的调用,当然也不会包含对visitLicense的调用。如果使用ASM 5.0...

2019-12-23 20:20:53

ASM 系列详细教程-13-ASM core api 向后兼容

向后兼容介绍过去已经以类文件格式引入了新元素,并且将来将继续添加新元素(例如,用于模块化,Java类型的注释等)。直到ASM 3.x,每个此类更改都导致ASM API中向后不兼容的更改,这是不好的。为了解决这些问题,ASM 4.0中引入了一种新的机制。其目标是确保即使将来在类文件格式中引入了新功能时,所有将来的ASM版本都将保持与任何先前版本(直至ASM 4.0)的向后兼容性。这意味着...

2019-12-23 20:18:56

ASM 系列详细教程-12-ASM metadata 元数据之调试 debug

Debug使用 javac -g 编译的类包含其源文件的名称,源行号和字节码指令之间的映射以及源代码中的本地变量名称和字节码中的本地变量槽之间的映射。此可选信息在调试器中以及可用时在异常堆栈跟踪中使用。结构体类的源文件名存储在专用的类文件结构部分中(请参见图2.1)。源行号和字节码指令之间的映射存储为方法的已编译代码部分中(行号,标签)对的列表。例如,如果l1,l2和l3是按此顺序出现...

2019-12-23 20:16:28

ASM 系列详细教程-11-ASM metadata 元数据之注解 annotation

注解如果类,字段,方法和方法参数注解(例如@Deprecated或@Override)存储在已编译的类中,则它们的保留策略不是RetentionPolicy.SOURCE。该信息在运行时不会由字节码指令使用,但是如果保留策略为RetentionPolicy.RUNTIME,则可以通过反射API进行访问。编译器也可以使用它。结构结构体源代码中的注解可以采用多种形式,例如@ Depreca...

2019-12-23 20:15:16

ASM 系列详细教程-10-ASM metadata 元数据之泛型

注解本章说明如何使用核心API生成和转换已编译的Java类元数据,例如注解。每个部分均以一种类型的元数据开始呈现,然后以一些说明性示例呈现相应的ASM接口,组件和工具以生成和转换这些元数据。泛型诸如 List<E> 之类的通用类以及使用它们的类包含有关它们声明或使用的通用类型的信息。字节码指令在运行时不使用此信息,但是可以通过反射API进行访问。编译器还使用它进行单独的编译...

2019-12-22 18:45:58

ASM 系列详细教程-09-ASM 方法增强 aop 字节码实战

Method 回顾上面几节谈论了大量的 method 方法,感觉 ASM 提供了很多强大的功能。但是缺少实战有时候就比较没有实感,所以选择一个比较简单的例子进行编码。一点想法基本信息可以基于 asm 获取 class 的基本信息reflect可以学习 ReflectASM 的思想,自己基于 ASM 实现 field/method 等较为高效的调用。aop直接可以对已有的方法进行增...

2019-12-22 18:44:25

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。