深入分析java中的System类( 二 )


深入分析java中的System类

文章插图
 
3、类方法
在这里肯定不能所有的方法都讲一遍,在这里列举几个比较重要的方法 。
(1)getProperty:获取系统属性
深入分析java中的System类

文章插图
 
我们在这里发现,其实获取属性的操作最关键的就是最后一句props.getProperty(key) 。我们进入到这个方法看看:
深入分析java中的System类

文章插图
 
也就是说其实是 一直是回调defaults.getProperty(key),让父类一直不停的去调用 。最后返回一个String 。
(2)checkKey:校验key
深入分析java中的System类

文章插图
 
里面很简单就是看看是否为空 。
(3)setProperties:设置系统属性
深入分析java中的System类

文章插图
 
最核心的就是最后一行,但是前面首先检验了是否是系统安全的属性,而且也根据这个属性初始化了一次 。我们进入initProperties 。
深入分析java中的System类

文章插图
 
这是一个native方法 。
(4)exit():退出当前的jvm
深入分析java中的System类

文章插图
 
其实调用的也是runtime的退出方法 。
(5)其他方法
深入分析java中的System类

文章插图
 
我们会发现经常操作的这些方法其实也是native的 。
(6)安全管理机制
与之相关的方法有三个
深入分析java中的System类

文章插图
 
第二个:
深入分析java中的System类

文章插图
 
还有最后一个
深入分析java中的System类

文章插图
 
OK 。源码分析也就先说到这里,对于System类要知道其基本的内部实现以及常用的操作即可 。




推荐阅读