首页 > 编程语言 >扩展 jol 源码包 打印 Mark Word

扩展 jol 源码包 打印 Mark Word

时间:2023-04-26 16:26:14浏览次数:37  
标签:word toPrintableSimple off Mark instance 源码 0xFF Word jol

参考: https://blog.csdn.net/qq_38505969/article/details/123446310

1、下载源码并进行方法扩展

2、pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.openjdk.jol</groupId>
        <artifactId>jol-parent</artifactId>
        <version>0.9</version>
    </parent>
    <!--自定义 jar 包名称-->
    <artifactId>jol-core-0.9-summer-extend</artifactId>
    <packaging>jar</packaging>

    <name>Java Object Layout: Core</name>
    <url>http://maven.apache.org</url>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerVersion>1.8</compilerVersion>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

3、打包

扩展 toPrintableSimple() 方法代码

// 扩展方法
public String toPrintableSimple() {
	return toPrintableSimple(classData.instance());
}

public String toPrintableSimple(Object instance) {
	StringBuffer stringBuffer = new StringBuffer();

	if (instance != null) {
		VirtualMachine vm = VM.current();
		for (long off = 4; off >= 0; off -= 4) {
			int word = vm.getInt(instance, off);
			stringBuffer.append(toBinary((word >> 24)  & 0xFF) + " " + toBinary((word >> 16)  & 0xFF) + " " + toBinary((word >> 8) & 0xFF) + " " + toBinary((word >> 0) & 0xFF) + " ");
		}
	}
	return stringBuffer.toString();
}

扩展好的 jar 包下载链接:https://pan.baidu.com/s/1cr5R1OxwFU4WEtb3w1zpUw  提取码:i3qm

标签:word,toPrintableSimple,off,Mark,instance,源码,0xFF,Word,jol
From: https://www.cnblogs.com/xiaomaomao/p/17356429.html

相关文章

  • 在线直播源码,自定义AlertDialog设置宽高并去掉默认的边框
    在线直播源码,自定义AlertDialog设置宽高并去掉默认的边框1、先写一个自定义的AlertDialog。 packagecom.phone.common_library.dialog; importandroid.annotation.SuppressLint;importandroid.content.Context;importandroid.content.DialogInterface;importandroid.vie......
  • go channel源码阅读
    gochannel源码阅读channel介绍channel是一个类型管道,通过它可以在groutine之间发送消息核心数据结构channel内部数据结构是固定长度的双向循环列表按顺序往里面写数据,写满之后又从0开始写chan中的两个重要组件是buf和waitq,所有的行为和实现都是围绕着两个组件进行的typ......
  • junit源码分析
    JUnit源码分析(一)——Command模式和Composite模式JUnit的源码相比于spring和hibernate来说比较简单,但麻雀虽小,五脏俱全,其中用到了比较多的设计模式。很多人已经在网上分享了他们对JUnit源码解读心得,我这篇小文谈不出什么新意,本来不打算写,可最近工作上......
  • MarkDown学习
    MarkDown学习标题字体 #+空格+内容一级标题#*2+空格二级标题黑体左右两个*Hello,world!斜体左右一个*Hello,world!删除线左右两个~(波浪号)引用选择3213引用>+空格分割线三个-三个*图片超链接点击跳转到bili列表+空格BC-+空格出来一个点A......
  • 【FAQ】关于JavaScript版本的华为地图服务Map的点击事件与Marker的点击事件存在冲突的
    一. 问题描述创建地图对象,并添加marker标记,对map和marker均添加了点击事件;<body><script>functioninitMap(){//创建地图对象constmap=newHWMapJsSDK.HWMap(document.getElementById('map'),{center:{lat:39.36322,lng:......
  • Telegram 源码解读点滴记录
    1.test_callable_plain,作用:判断参数是否与函数声明一致usingfalse_t=char;structtrue_t{ false_tdata[2];};static_assert(sizeof(false_t)!=sizeof(true_t),"Ican'twork:(");template< typenameMethod, typename...Args, typename=decltype(......
  • Navicat Premium连接时出现 Authentication plugin ‘caching_sha2_password‘ cannot
    参考了很多资料:了解到:很多用户在使用NavicatPremium12连接MySQL数据库时会出现Authenticationplugin‘caching_sha2_password’cannotbeloaded的错误。出现这个原因是mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_passwor......
  • Django之视图函数层 (必会三板斧 JsonResponse对象 request对象获取文件 FBV与CBV
    目录视图层之必会三板斧用来处理请求的视图函数都必须返回HttpResponse对象情况一:啥也不返回这里会报一个没有返回HttpResponse对象的错误,由此可见必须要返回一个HttpResponse对象情况二:返回HttpResponse对象点击Ctrl键查看源码可见是HttpResponse类,所以会返回一个值情......
  • storm-0.9.3 wordcount例子运行步骤(单机版)
    网上关于Stormwordcount的例子很多,不过都是基于storm-0.9.0.1,在运行例子过程中torm0.9.0.1.jar在maven中央仓库没有找到只有0.9.3,在运行过程中出现了好多问题。所以记下笔记。方便以后查看。1,下载Storm,地址为http://www.apache.org/dyn/closer.cgi/storm/apache-storm-0.9.3/......
  • jdk并发包 CopyOnWriteArrayList源码分析
    CopyOnWriteArrayList是jdk1.5并法包里面用于处理高并发下,读多写少的情况下,降低锁等待的集合类。下面对该类实现做一个简要的分析1,首先CopyOnWriteArrayList是实现了List接口,对=List接口的相关方法进行了实现。2,下面的它的add方法,会首先加锁,然后copy原List内部的数组,然后对新数组长......