MacOS安装tree工具
[TOC]
概述文章参考:https://cn.starbytecomputers.com/using-mac-equivalent-unix-tree-command-view-folder-trees-terminal
文章参考:https://blog.51cto.com/u_12179846/3194649
安装Mac命令行的“树”如果你想要更多地控制“树”,比如指定目录的能力,或者你只想要来自unix世界的确切“树”等价物,你可以使用homebrew或macports直接在macOS和Mac中安装树OS X:
使用Homebrew安装’tree’ :
1brew install tree
使用MacPorts安装’tree’ :
1sudo port install tree
我倾向于使用自制软件,但请使用适用于您的软件。 从其中任何一个安装后,键入“tree”将显示Mac上任何目录的文件夹树。
请注意,为避免冲突,您不希望在第一步中使用树别名,然后再安装树命令。 您可以实现这两种方法,但您可能希望将别名重命名为“treed”或类似内容。
报错1234567(base) ...
MacOS软件安装常见问题
[TOC]
概述
MacOS常用软件安装指南
[TOC]
概述MacOS软件下载地址:
Finder辅助工具Go2Shell(暂时可以不使用,在下面的地址栏可以直接进入Terminal)
Go2Shell 是 Mac 上终端常用者的利器,把它拖到 Finder 工具栏上,点击后可直接在当前目录下开启终端。省了再 cd 的麻烦,程序还支持 iTerm, iTerm2 和 xterm。
下载地址:Go2Shell 在Finder中打开终端
画图软件OmniGraffle下载地址:https://xclient.info/s/omnigraffle.html#versions
下载软件DownieDownie 是 Mac OS X 上的一个超级易于使用的视频下载工具,支持YouTube,Vimeo 等大部分主流视频网站。它不会因为大量的选项而让用户困扰 - 它使用起来非常简单。支持国内的优酷和土豆以及国外的Youtube,如果你对视频下载有强烈的需求,那么Downie 是一个简单易用的视频下载工具。
官网地址:Downie - YouTube Video Downloader for macOS - Charlie Monroe Sof ...
MacOS常用软件安装指南
[TOC]
概述1sudo spctl –master-disable
1sudo xattr -r -d com.apple.quarantine
然后打开“访达”进入“应用程序”目录,找到软件图标,将图标拖动到刚才的终端窗口,得到如下组合:
1sudo xattr -r -d com.apple.quarantine /Applications/WebStrom.app
以上就是解决“已损坏,无法打开,你应该把它移到废纸篓”的方法,希望可以帮助到大家。
Java学习之Serializable接口学习
[TOC]
文章参考:https://juejin.cn/post/7155788141075365919#heading-2
概述通常我们使用Java的序列化与反序列化时,只需要将类实现Serializable接口即可,剩下的事情就交给了jdk。今天我们就来探究一下,Java序列化是怎么实现的,然后探讨一下几个常见的集合类,他们是如何处理序列化带来的问题的。
下面我们来思考几个问题:
为什么序列化一个对象时,仅需要实现Serializable接口就可以了。
通常我们序列化一个类时,为什么推荐的做法是要实现一个静态final成员变量serialVersionUID。
序列化机制是怎么忽略transient关键字的, static变量也不会被序列化。
下面我们来依次解答这些问题。
Serializable接口先看Serializable接口,源码很简单,一个空的接口,没有方法也没有成员变量。但是注释非常详细,很清楚的描述了Serializable怎么用、能做什么,很值得一看,我们捡几个重点的翻译一下:
12345678910111213141516171819202122232 ...
MAT从入门到精通教程一
[TOC]
文章参考:https://www.eclipse.org/mat/
文章参考:https://zhuanlan.zhihu.com/p/56110317
概述尽管JVM提供了自动内存管理的机制,试图降低程序员的开发门槛,确实也实现了这一目标,在日常开发中,我们一般都不需要关心对象的内存释放。JVM大部分都是使用trace算法来判断一个对象是否该被回收,那么JVM只能回收那些从gc roots不可达的对象。
如果我们在使用某些大的对象、集合对象或者一些三方包里的资源,忘记及时释放资源的话,还是会造成JVM的内存泄漏或内存浪费的问题。因此,如果想成为更高阶的Java开发工程师,我们需要了解常见的问题排查的办法和工具,这个系列的文章,准备介绍一个用来做JVM堆内存分析的工具——MAT(Memory Aanlysis Tool)。
Android Framework源码之init进程解析
[TOC]
文章参考:http://kmanong.top/kmn/qxw/form/article?id=14312&cate=45
文章参考:https://juejin.cn/post/6844903965688250382
源码分析基于Android12
概述我们先来看一下Android系统启动流程的全过程。
按电源键
进入开机动画
经过漫长的等待
开机动画结束
正式开机,进入设置画面
进入系统桌面(Launcher)
1.BootLoader
刷过机的朋友大概都知道,Android可以通过某个组合按键进入BootLoader页面,这个也就是上图中的最底层,在Android系统,甚至于它的内核还未加载时的一个引导程序,主要负责对kenel进行解压和初始化的工作
2.idle进程
kernel中的idle进程是0号进程,由内核中启动,并始终执行在内核态,由内核态的idle进程开启我们常提的1号进程,init(对应源码,system/core/init/init.cpp)
3.init进程
init.cpp中做的事情其实不只是开启init进程,这个后面分析具体源码时再做 ...
匈牙利算法基础学习
[TOC]
文章参考:https://zhuanlan.zhihu.com/p/96229700
文章参考:https://zhuanlan.zhihu.com/p/62981901
文章参考:https://blog.csdn.net/dengheCSDN/article/details/77619308
概述今天我们来看一个没有前几篇讲的那么常用,但是很有用的算法:匈牙利算法(Hungarian algorithm)。匈牙利算法主要用于解决一些与二分图匹配有关的问题,所以我们先来了解一下二分图。
二分图(Bipartite graph)是一类特殊的图,它可以被划分为两个部分,每个部分内的点互不相连。下图是典型的二分图。
可以看到,在上面的二分图中,每条边的端点都分别处于点集X和Y中。匈牙利算法主要用来解决两个问题:求二分图的最大匹配数和最小点覆盖数。
这么说起来过于抽象了,我们现在从实际问题出发。
最大匹配问题看完上面讲的,相信读者会觉得云里雾里的:这是啥?这有啥用?所以我们把这张二分图稍微做点手脚,变成下面这样:
现在Boys和Girls分别是两个点集,里面的点分别是男生和女 ...
Activity之setContentView的源码学习
[TOC]
概述Android开发的同学们对setContentView肯定都不陌生,但凡写到Activity,都离不开这个函数,那么么setContentView到底干了些什么?他是怎么让我们XML里面写的布局是怎么渲染成变成View的。
Activity 与 AppCompatActivity的区别当我们在老版本Android SDK开发的时候新建的Project的默认继承的是Activity,而在5.0之后默认继承的就是AppCompatActivity。二者到底有什么区别呢??
AppCompatActivity其实就是有使用了Support包中 ActionBar特性的Activity的父类。
AppCompatActivity继承自FragmentActivity继承自Activity。
setContentView1234@Overridepublic void setContentView(@LayoutRes int layoutResID) { getDelegate().setContentView(layoutResID);}
代码是 ...