Java 源码剖析——彻底搞懂Reference 和ReferenceQueue 链滴 # Java 源码剖析——彻底搞懂 Reference 和 ReferenceQueue 作者:jesministrator 原文链接:https://ld246.com/article/1513083921948 来源网站:链滴 望能够对引用,还有不同类型引用的原理进行更深入了解。因此博主查看了抽象父类Reference和负责注册引用对象的引用队列ReferenceQueue的源码在此和大家一起分享,并做了一些分析,感兴趣的同学可以一起学习。 ## Reference源码分析 首先我们先看一下Reference类的注释: 该类提供了两个构造函数: Reference(T referent) { this(referent enqueue() { return this.queue.enqueue(this); } enqueue()方法能够手动将引用实例加入到引用队列当中去。 ## ReferenceQueue源码分析 ## 同样我们先看一下ReferenceQueue的注释: /** * Reference queues, to which registered reference objects are0 码力 | 6 页 | 283.24 KB | 2 年前3
Ubuntu 桌面培训 2010VI.VI 使用 Ubuntu 软件中心 ..... 279 VI.VII 使用新立得软件包管理器 ..... 286 VI.VIII 安装单个软件包文件 ..... 295 VI.VIII.I 安装/卸载 Debian 软件包 ..... 296 VI.IX 软件仓库 ..... 296 VI.IX.I 软件仓库分类 ..... 297 VI.X 添加新语言设置 ... 的关系……500 XI.IX.III Ubuntu 与其他基于 Ubuntu 的衍生发行版……501 ## 图片 I.1 Linus Benedict Torvalds ..... 4 I.2 开放源码运动的发起者 ..... 6 I.3 Mark Shuttleworth ..... 7 I.4 Ubuntu 版本 ..... 9 I.5 价格比较 ..... 14 I.6 Ubuntu 280 VI.33 Ubuntu 软件中心窗口 ..... 281 VI.34 在全部可用应用程序中搜索软件包 ..... 282 VI.35 对所选软件包应用更改 ..... 283 VI.36 认证操作 ..... 283 VI.37 从仓库安装所选的软件包 ..... 284 VI.38 安装完成 ..... 285 VI.39 启动安装的应用程序 - Atomix0 码力 | 540 页 | 26.26 MB | 1 年前3
后浪Flutter - Google 开源的UI 工具包陈孟泽## 后浪Flutter ## Google 开源的 UI 工具包 陈孟泽 ## 后浪Flutter · 简介:移动跨平台方案及Flutter介绍 • 语言:Dart语言简介 • 基础:Flutter常用知识点 • 进阶:Flutter核心原理 · 资料:学习参考资料 ## 移动跨平台方案 • H5+原生(Cordova、微信小程序) • JavaScript开发+原生渲染(React |JavaScript+原生渲染|原生控件渲染|好|中|支持|RN、Weex| |自绘UI+原生|调用系统API渲染|好|高|默认不支持|Flutter| ## Flutter简介 • Google 开源的 UI 工具包 • 非常精美丰富的组件库 • 支持移动、Web、桌面和嵌入式平台 • UI统一、高性能 ## Flutter简介  ## V ue学习资料 • 官网:https://flutter.dev/ • 中文网:https://flutter.cn/ • 资源包: https://pub.flutter-io.cn/flutter/packages 谢谢!0 码力 | 28 页 | 1.56 MB | 2 年前3
Debian打包教程 version 0.29打包必须知道的知识 ▶ 修改现有软件包 ▶ 创建你自己的软件包 ▶ 在 Debian 社区内与人交流 ▶ 成为 Debian 高手 涵盖了大部分要点,但不是全部 你还需要看更多的说明文档 绝大部分内容同样适用于 Debian 的各个衍生版本 包括 Ubuntu ## 内容概括 ① 介绍 ② 创建源码包 ③ 构建与测试软件包 ④ 实操练习环节 1:修改 1:修改 grep 软件包 ⑤ 进阶打包知识 6 维护 Debian 软件包 7 结论 8 更多实操练习环节 9 实操练习环节解答 ## 内容概括 ① 介绍 ② 创建源码包 ③ 构建与测试软件包 ④ 实操练习环节 1:修改 grep 软件包 ⑤ 进阶打包知识 ⑥ 维护 Debian 软件包 ⑦ 结论 ⑧ 更多实操练习环节 ⑨ 实操练习环节解答 ## 我们集思广益群策群力(高行动力 + 民主决策) 业余爱好者们的理想状态:与同好们一起用爱发电 ## Debian 软件包 .deb 文件(程序文件包) 可靠又方便的软件发行方式 ▶ 两种应用最广泛的软件包格式之一(另一种是 RPM) ▶ 概况: ▶ Debian 有超过 30,000 个软件包 → 绝大多数可用的免费软件都被打包进了 Debian! ▶ 覆盖 12 种架构,包括两款非 Linux0 码力 | 90 页 | 663.35 KB | 2 年前3
《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理| 基础篇:webpack 进阶用法 04 | 进阶篇:编写可维护的webpack 构建配置 05 | 进阶篇:webpack 构建速度和体积优化策略 06 | 原理篇:通过源码掌握webpack 打包原理 07 | 原理篇:编写 Loader 和插件 08 | 实战篇:React 全家桶 和webpack 开发商城项目 ## ☐ ☐ ☐ ☐ ## 扫码试看/订阅《玩转webpack》 1){...}else{...}. //1. 正常执行返回 //2. 运行某个命令 //3. 判断某个包是否安装 //4. webpack 可用的 CLI: webpack-cli 和 ## 启动后的结果 webpack 最终找到webpack-cli (webpack-command) 这个npm包,并且执行CLI ## webpack-cli 做的事情 引入 yargs,对命令行进行定制 分 "generate-plugin", // 生成 webpack plugin 代码 "info" // 返回与本地环境相关的一些信息 ]; ## 命令行工具包 yargs 介绍 提供命令和分组参数 ## 动态生成 help 帮助信息 webpack 2.6.1 Usage: https://webpack.js.org/api/cli/ Usage0 码力 | 39 页 | 3.66 MB | 2 年前3
古月《ROS入门21讲》9.创建工作空间与功能包.pdf### 9. 创建工作空间与功能包 主讲人:古月 ## • 工作空间 工作空间(workspace)是一个存放工程开发相关文件的文件夹。 src: 代码空间(Source Space) build: 编译空间(Build Space) • devel: 开发空间(Development Space) • install: 安装空间(Install Space) workspace_folder/ echo $ROS PACKAGE PATH /home/hcx/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks ## • 创建功能包   ## 创建功能包 ## $ catkin_create_pkg[depend1] [depend2] [depend3] ## 创建功能包 $ cd ~/catkin_ws/src $ catkin_create_pkg test_pkg std_msgs rospy roscpp ## 编译功能包 $ cd ~/catkin_ws 0 码力 | 7 页 | 1.02 MB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第十课 哈希表与闭包现代编程思想 哈希表与闭包 Hongbo Zhang ## 回顾 ## · 表 键值对的集合,其中键不重复 简单实现:二元组列表 - 添加时向队首添加 - 查询时从队首遍历 树实现:二叉平衡树 - 基于第五节课介绍的二叉平衡树,每个节点的数据为键值对 - 对树操作时比较第一个参数 ## 哈希表 - 哈希函数/散列函数 Hash function ◦ --|---|---| |0|11|21|3|13|||27||| |---|---|---|---|---|---|---|---|---|---| ## 闭包 - 闭包:一个函数及其捆绑的周边环境状态的引用的组合 • 闭包的环境状态 ☐ 词法环境:与程序的结构对应,在代码定义时决定 1. fn init { 2. let mut i = 2 3. fn debug_i() 6. { 7. let i = 4 // 此 i 非彼 i 8. debug_i() // 输出 3 9. } 10. } ## 闭包:封装数据 ## • 我们可以利用闭包封装数据和行为 ◦ 使用者无法直接获得数据,必须通过提供的函数进行间接操作 ◦ 可以限制使用者的操作,对参数进行检验等,保证数据合法 1. fn natural_number_get_and_set()0 码力 | 27 页 | 448.83 KB | 2 年前3
Centos7安装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 上下载(或者在其他地方下载再复制到 centos7 系统里) # wget -c https://nginx.org/download/nginx-1.18.xx.tar.gz //下载源代码压缩包 # ./configure --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ ./ 是因为 linux 默认不会在当前目录下去找程序,所以 ./ 表示当前目录,可将 nginx 的程序所在目录加入 Path 环境变量里,以后就不用加./ ### 4. 设置成开机自启: 使用源码安装的 nginx 默认没有做成系统的服务,可以把 nginx 程序配置成随开机自启 # vi /etc/rc.local // 编辑/etc/rc.local 文件 最后加一行: /usr/local/nginx/sbin/nginx0 码力 | 7 页 | 153.82 KB | 2 年前3
Python 标准库参考指南 2.7.18 socket 处理器 732 17.7 asynchat—异步 socket 指令/响应处理器 736 18 互联网数据处理 741 18.1 email—电子邮件与 MIME 处理包 741 18.2 json—JSON 编码和解码器 772 18.3 mailcap—Mailcap 文件处理 780 18.4 mailbox—Manipulate mailboxes 1084 24.5 turtle — Turtle graphics for Tk ..... 1084 24.6 IDLE ..... 1114 24.7 其他图形用户界面 (GUI) 包 ..... 1122 25 开发工具 ..... 1123 25.1 pydoc — Documentation generator and online help system .. imputil — Import utilities ..... 1279 31.4 zipimport — 从 Zip 存档中导入模块 ..... 1282 31.5 pkgutil — 包扩展模块工具 ..... 1284 31.6 modulefinder — 查找脚本使用的模块 ..... 1286 31.7 runpy — Locating and executing Python0 码力 | 1552 页 | 7.42 MB | 1 年前3
Python 标准库参考指南 2.7.18 socket 处理器 732 17.7 asynchat—异步 socket 指令/响应处理器 736 18 互联网数据处理 741 18.1 email—电子邮件与 MIME 处理包 741 18.2 json—JSON 编码和解码器 772 18.3 mailcap—Mailcap 文件处理 780 18.4 mailbox—Manipulate mailboxes 1084 24.5 turtle — Turtle graphics for Tk ..... 1084 24.6 IDLE ..... 1114 24.7 其他图形用户界面 (GUI) 包 ..... 1122 25 开发工具 ..... 1123 25.1 pydoc — Documentation generator and online help system .. imputil — Import utilities ..... 1279 31.4 zipimport — 从 Zip 存档中导入模块 ..... 1282 31.5 pkgutil — 包扩展模块工具 ..... 1284 31.6 modulefinder — 查找脚本使用的模块 ..... 1286 31.7 runpy — Locating and executing Python0 码力 | 1552 页 | 7.42 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













