说到 Java 很多人脑海会直接蹦出内存自动回收,会经常听到 GC 这些词,GC 指的是 Garbage Collection 也就是垃圾回收。说到垃圾回收就不可避免的去看下 Java 的内存管理机制。
内存管理
提到内存管理可能很多人都会联想起 C/C++ 的手动内存管理,以及 Java/Python 的自动管理,但实际上这都是指的堆内存管理。常规的内存管理可以分成两个部分,栈内存管理和堆内存管理。
栈的发明解决了部分内存的自动回收,但是栈的局限在于只能自动管理固定长度的内存,而对于堆内存,不同语言有不同的管理方式:
纯手动管理 C/C++
Read more ...
xclip 命令可以从 stdin,或者文件读入数据到剪贴板,或者将剪贴板内容粘贴到目的应用中。xclip 命令建立了终端和剪切板之间通道,可以用命令的方式将终端输出或文件的内容保存到剪切板中,也可以将剪切板的内容输出到终端或文件
安装
sudo apt-get xclip
命令格式
xclip [OPTION] [FILE] ...
常用参数:
-i 从 stdin 读入
-o 打印到标准输出
使用实例
不加选项时只在保存在 X PRIMARY(终端剪切板),加上选项 -selection c 后保存在 X C
Read more ...
InputStream 和 Reader 的区别
InputStream 是 byte 导向
Reader Writer 是字符导向
Read more ...
在 ffmpeg package 中有一个 ffprobe 工具,主要用来查看多媒体文件或者流媒体信息,在线的视频信息也能够快速获取。大部分情况下个人比较喜欢使用 ffmpeg -i input.mp4 来快速查看,这种时候在终端上比较快速,而如果有些时候想要分析一下媒体文件,需要编程获取得到的媒体文件结果,显然 ffmpeg 的输出结果简直无法忍受,而 ffprobe 提供非常清晰的输出格式,非常方便的可以提供给编程软件解析使用。
官网说明:http://ffmpeg.org/ffprobe.html
命令格式
ffprobe [OPTION]
Read more ...
sed 全名叫 stream editor,是面向字符流的编辑器,能够完美地配合正则表达式使用。sed 提供的功能是交互式文本编辑器的延伸,提供的查找替换程序可以被全局应用于单个文件或多个文件。
面向字符流,是因为输入流通过程序并将输出直接输出到标准输出。
sed 处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。sed 主要用来自动编辑一个或多个文
Read more ...
vim-surrounding 插件可以轻松的一次性修改成对出现的,比如 (), [], {}, 双引号,XML 标签等等。提供了
增加
删除
修改
包围内容的方法。
首先放上链接:
https://github.com/tpope/vim-repeat
Installation
Plugin 'tpope/vim-surrounding'
Usage
用下面的例子做 demo
print("hello world")
光标定位在 hello world 包括引号,那么使用如下的命令可以实现双引号替换成单引
Read more ...
jhat 是 Java 的堆分析工具(Java heap Analyzes Tool),在 JDK 6u7 之后成为 JDK 标配。
用法
jhat [options] heap-dump-file
说明:
options 参数
heap-dump-file 二进制 Java 堆文件,可以使用 jmap 导出
可选参数
-stack false|true
关闭对象分配调用栈跟踪 (tracking object allocation call stack)。 如果分配位置信息在堆转储中不可用,则必须将此标志设置为 false
Read more ...
jdk 自带的命令用来 dump heap info,或者查看 ClassLoader info,等等。
命令格式
jmap [OPTION] PID
使用实例
不加任何参数
直接使用命令
jmap pid
查看 pid 内存信息。
查看堆信息
jmap -heap pid
查看堆对象信息
统计对象 count ,live 表示在使用
jamp -histo pid
jmap -histo:live pid
查看 classLoader
jmap -clstats pid
生成堆快照
jmap -dump:form
Read more ...
进入 U-boot
路由先断电,然后按住复位键或者 WPS 键开机,保持 10S 钟左右,然后用网线连接 LAN 口和电脑,打开浏览器进 192.168.1.1,就可以进入 U-boot 控制台,进去刷写固件
操作路径 :固件更新 -> 固件 -> 选择固件文件 -> 上传 -> 更新,刷完后机器会自动重启。
固件
自行编译
https://github.com/coolsnowwolf/lede
或者下载他人编译好的固件。
Read more ...
之前 也说过在 Openwrt 下使用迅雷远程下载,现在因为不想在 PC 端总是开着一个 shadowsocks 的程序,所以将 shadowsocks 安装到路由器端。然后还顺带解决一下 DNS 污染,和流量智能转发。
Shadowsocks
下载 编译好的 ipk
opkg update
opkg install libpolarssl
opkg install shadowsocks-libev_1.5.1_ar71xx.ipk
shadowsocks 安装后有三个命令,ss-local 启动 sock5 代理,ss-redir 启动透明代
Read more ...