Java 源码剖析——彻底搞懂Reference 和ReferenceQueue
链滴 Java 源码剖析——彻底搞懂 Reference 和 ReferenceQueue 作者:jesministrator 原文链接:https://ld246.com/article/1513083921948 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 之前博主的一篇读书笔记——《深入理解Java虚拟机》系列之回收对象算法与四种引用类型博客中为 望能够对引用,还有不同类型引用的原理进行更深入 了解。因此博主查看了抽象父类Reference和负责注册引用对象的引用队列ReferenceQueue的源码 在此和大家一起分享,并做了一些分析,感兴趣的同学可以一起学习。 Reference源码分析 首先我们先看一下Reference类的注释: /** * Abstract base class for reference objects. NULL * pending: this * Enqueued: next reference in queue (or this if last) 原文链接:Java 源码剖析——彻底搞懂 Reference 和 ReferenceQueue * Inactive: this */ @SuppressWarnings("rawtypes") Reference0 码力 | 6 页 | 283.24 KB | 1 年前3《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理
录 CONTENTS 01 基础篇:webpack 基础用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略 05 原理篇:通过源码掌握 webpack 打包原理 06 原理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项目 08 基础篇:webpack 进阶用法 03 开始:从 可以将 ES6 语法转换成 ES5 的语法 可以分析模块之间的依赖关系 生成的 JS 文件可以在浏览器中运行 ·通过 babylon 生成AST ·通过 babel-core 将AST重新生成源码 · 通过 babel-traverse 的 ImportDeclaration 方法获取依赖属性0 码力 | 39 页 | 3.66 MB | 1 年前3Debian 维护者指南
。在 Debian 参考手册 中,您可以了解到使用 Debian 系统的 一些基本方法和关于 Unix 编程的一些指引。 2如果您对分享 Debian 软件包不感兴趣,您当然可以在本地环境中将上游的源码包进行编译并安装至 /usr/local 来解决问题。 vi 前言 作者在更新原有的使用 dh-make 软件包的“新维护者手册”时感受到了文档的局限性。因此,作者 决定创建一个替代工具并编写 shell,例如 Z shell,请使用它们对应的配置文件 替换 ~/.bashrc 文件。 9 CHAPTER 3. 工具的配置 3.3. GIT 3.3 git 如今 git 命令已成为管理带历史的源码树的必要工具。 git 命令的用户级全局配置,如您的名字和电子邮件地址,保存在 ~/.gitconfig 文件中,且可以使用如 下方式配置。 $ git config --global user.name DEBSIGN_KEYID="Your_GPG_keyID" 用于 dpkg-source 命令的 DEBUILD_DPKG_BUILDPACKAGE_OPTS 中可以额外使用 -i 和 -I 选项以 帮助构建源码中具有外来无关内容的软件包(参见 Section 5.17)。 当前情况下,使用 4096 位的 RSA 密钥是较好的做法。另见 创建一个新 GPG 密钥。 3.6 sbuild The sbuild0 码力 | 142 页 | 1.11 MB | 1 年前3Debian打包教程 version 0.29
Debian 打包教程 2 / 90 内容概括 1 介绍 2 创建源码包 3 构建与测试软件包 4 实操练习环节 1:修改 grep 软件包 5 进阶打包知识 6 维护 Debian 软件包 7 结论 8 更多实操练习环节 9 实操练习环节解答 Debian 打包教程 3 / 90 内容概括 1 介绍 2 创建源码包 3 构建与测试软件包 4 实操练习环节 1:修改 grep svn-buildpackage, git-buildpackage, … 在你需要的时候可以安装它们。 Debian 打包教程 8 / 90 通用打包流程 网页 上游源代码 Debian 源镜像 源码包 至此绝大部分 人工操作完成 一个或若干个程序包 .deb dh_make apt-get source dget debuild (用lintian构建或测试) 或 dpkg-buildpackage devscripts fakeroot 2 新建工作目录文件夹,并进入 mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial 3 获取 dash 的源码包 apt-get source dash (需要在 /etc/apt/sources.list 文件里加上 deb-src 的相关地址内容) 4 构建软件包 cd dash-* debuild -us0 码力 | 90 页 | 663.35 KB | 1 年前3Debian 新维护者手册
获取一份上游软件的拷贝,它通常为压缩过的 tar 格式。 – package-version.tar.gz • 在上游源码的 debian 目录下添加 Debian 打包的专用文件(构建 Debian 软件包它们会被读取),同时以 3.0 (quilt) 格式创建一个非本地源码包。 – package_version.orig.tar.gz – package_version-revision n.debian.tar.gz1 – package_version-revision.dsc • 用 Debian 源码包构建 Debian 二进制包;这些二进制包的格式通常是.deb (或者 .udeb,Debian Installer 专用) – package_version-revision_arch.deb 请注意一个细节,在 Debian 软件包的文件名中,分隔 package revision,以及将 arch 这个部分替换为 package architecture。 2 本概要中的每一步,我们都会在后续的章节中辅以详细的例子进行解释。 1对于老式的 1.0 格式非本地 Debian 源码包,应当使用 package_version-revision.diff.gz 这个命名规则。 2参见 5.6.1 ”Source” (http://www.debian.org/doc/debia0 码力 | 63 页 | 493.28 KB | 1 年前3Python3 基础教程 - 廖雪峰
布出去。要从机器码反推出 C 代码是不可能的,所以,凡是编译型的语 言,都没有这个问题,而解释型的语言,则必须把源码发布出去。 这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目 前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动 应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。 再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的, 互联网上有无数非常优秀的像 用 Python 开发程序,完全可以一边在文本编辑器里写代码,一边开一 个交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证, 事半功倍!前提是得有个 27'的超大显示器! 参考源码 hello.py Python 代码运行助手 Python 代码运行助手可以让你在线输入 Python 代码,然后通过本机运 行的一个 Python 脚本来执行代码。原理如下: yeayee.com/ 32/531 请利用 print()输出 1024 * 768 = xxx: # -*- coding: utf-8 -*- ---- print(???) 参考源码 do_input.py Python 基础 Python 是一种计算机编程语言。计算机编程语言和我们日常使用的自然 语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理0 码力 | 531 页 | 5.15 MB | 1 年前3Apache RocketMQ 从入门到实战
技术内幕》作者,RocketMQ 官方社区优秀布道师,荣获 CSDN2020 博客之星亚军;担任中通快递研发中心资深架构师,维护『中间件兴趣圈』公 众号,主打成体系剖析 Java 主流中间件,尝试从源码分析、架构设计、实战、故障分析等 维度深刻揭晓中间件技术,已覆盖 RocketMQ、Dubbo、Sentienl、Kafka、Canal、 MyCat、ElasticJob、ElasticSearch 日志)? RocketMQ 文件存储设计理念、基于文件的 Hash 索引是怎么实现的? 定时消息、消息过滤等实现原理。 如何进行网络编程(Netty 实战)? 下定决心后便开始了我的源码分析 RocketMQ 之旅,大概在 4 个多月的时间中连续 发表了 30 余篇文章,从 Nameserver、消息发送高可用设计、消息存储、消息消费、消 息过滤、事务消息等各个方面对其进行了体 随着《RocketMQ 技术内幕》一书的正式出版上市,并得到广大读者朋友的认可,与 官方的联系也越来越多,后面在 RocketMQ 中国社区负责人青峰大佬的筹备下,我还参 与了 RocketMQ 官方社区的源码解析直播活动、官方文档审稿等工作,并在社区得到了 不错的反响。 说到这里大家是不是觉得非常奇怪,是不是都认为你只是在写文章,写书,没有真正参 与开源社区呀,没有贡献代码,这个算哪门子参与开源社区?0 码力 | 165 页 | 12.53 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
• 需要先创建 build 目录 • 切换到 build 目录 • 在 build 目录运行 cmake < 源码目录 > 生成 Makefile • 执行本地的构建系统 make 真正开始构建( 4 进程并 行) • 让本地的构建系统执行安装步骤 • 回到源码目录 现代 CMake 提供了更方便的 -B 和 --build 指令,不同平台,统一命 令! • cmake -B build 免去了先创建 build 目录再切换进去再指定源码目录的麻烦。 • cmake --build build 统一了不同平台( Linux 上会调用 make , Windows 上调用 devenv.exe ) • 结论:从现在开始,如果在命令行操作 cmake ,请使用更方便的 -B 和 --build 命令。 // 在源码目录用 -B 直接创建 build 目录并生成 build/Makefile 选项,当添加新文件时,自动更新变量 如果源码放在子文件夹里怎么办? 必须把路径名和后缀名的排列组合全部写出来吗?感觉好麻烦 大可不必!用 aux_source_directory ,自动搜集需要的文件后缀名 进一步: GLOB_RECURSE 了解一下!能自动包含所有子文件夹下的文件 GLOB_RECURSE 的问题:会把 build 目录里生成的临时 .cpp 文件也 加进来 解决方案:要么把源码统一放到 src0 码力 | 166 页 | 6.54 MB | 1 年前3FISCO BCOS 1.3 中文文档
/mydata clone 源码 git clone https://github.com/FISCO-BCOS/FISCO-BCOS.git 安装FISCO-BCOS 切换到FISCO-BCOS目录下,执行FISCO-BCOS安装脚本。脚本自动下载并安 装程序。 cd FISCO-BCOS && git checkout master-1.3 bash build.sh #若需要源码编译安装 使用 bash d3d95065f6f056372 HelloWorld deploy success! 调用合约 编写合约调用程序 用nodejs实现,具体实现方法请直接看demoHelloWorld.js源码。 # 进入合约所在目录 cd /mydata/FISCO-BCOS/FISCO-BCOS/tools/contract vim demoHelloWorld.js 调用合约 执行合约调用程序 sh配置需要操作的链。 操作目录:FISCO-BCOS/tools/systemcontract 系统代理合约 系统代理合约是系统合约的统一入口。 它提供了路由名称到合约地址的映射关系。 源码路径:systemcontract/SystemProxy.sol 接口说明 接口名 输入 输出 备注 获取路由信息 getRoute 路由名称 路由地址、缓存标 志位、生效块号 无 接口名0 码力 | 491 页 | 5.72 MB | 1 年前3Centos7安装Nginx或OpenResty
Centos7 安装 Nginx 或 OpenResty 一、源码安装 Nginx 1.首先在 Centos7 上安装编译器和依赖环境 # yum install gcc-c++ gcc # yum install pcre pcre-devel # yum install zlib zlib-devel # yum install openssl openssl-devel 说明:g wget -c https://nginx.org/download/nginx-1.18.xx.tar.gz //下载源代码压缩包 # tar -xf nginx-1.18.xx.tar.gz //解压源码包 # cd nginx-1.18.xx //进入解压目录 # ./configure --prefix=/usr/local/nginx \ --with-http_stub_status_module 之所以要在程序名前加上点和斜杠 ./ 是因为 linux 默认不会在当前目录下去找程序,所以 ./ 表示当前目录,可将 nginx 的程序所在目录加入 Path 环境变量里,以后就不用加./ 4.设置成开机自启: 使用源码安装的 nginx 默认没有做成系统的服务,可以把 nginx 程序配置成随开机自启 # vi /etc/rc.local // 编辑/etc/rc.local 文件 最后加一行: /usr/lo0 码力 | 7 页 | 153.82 KB | 1 年前3
共 465 条
- 1
- 2
- 3
- 4
- 5
- 6
- 47