首页 > 系统服务 > 详细

小记(重载,重写,多态)(linux du和df)

时间:2017-12-07 21:45:35      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:tro   不一致   继承关系   类的方法   没有   spa   str   ext   span   

1.一个方法名,参数不同,这叫方法重载。(Overload)
void foo(String str);
void foo(int number);


2.父类与子类有同样的方法名和参数,这叫方法覆盖。(Override)
class Parent { 
    void foo() {       
        System.out.println("Parent foo()");
    } 
}

class Child extends Parent {
    void foo() {
        System.out.println("Child foo()");
    }

}


3.父类引用指向子类对象,调用方法时会调用子类的实现,而不是父类的实现,这叫多态
Parent instance = new Child();
instance.foo(); //==> Child foo()

多态的三个前提:
1.要有继承关系
2.子类要重写父类的方法
3.父类引用指向子类对象

我理解的多态与继承体系有关,与方法覆盖有关,与方法重载无关。

 

************************************du和df*******************************************

du(disk usage)是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。


df(disk free)通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。当文件系统也确定删除了该文件后,这时候du与df就一致了。


du和df不一致情况原因:
常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统 目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。

实际上即使你/home什么都没有,df命令依然会显示占用了一部分空间的,文件系统的元数据占了部分空间。

df和du统计的数据是不同的。
打个比方,文件是需要放到文件柜里的,就算只有一个文件,也要占用一个文件柜。文件柜占用的空间比文件要大。
df就是统计使用了多少个文件柜。
du则统计实际有多少个文件。
这样下来,df算的就大,du就小。


簡單地說,df命令是根據該卷的inode使用情況進行統計的,而du則是累加所有文件的字節數。一個文件就算只有1字節,也要佔用一個inode。

小记(重载,重写,多态)(linux du和df)

标签:tro   不一致   继承关系   类的方法   没有   spa   str   ext   span   

原文:http://www.cnblogs.com/Downtime/p/8001142.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号