场景:
Java 1.6
class Animal {
private String name;
...
public String getName() { return name; }
...
}
class CatDog extends Animal {
private String dogName;
private String catName;
...
public String getDogName() { return dogName; }
public String getCatName() { return catName; }
public String[] getNames() { return new String[]{ catName, dogName }; }
...
public String getName() { return "ERROR! DO NOT USE ME"; }
}
Run Code Online (Sandbox Code Playgroud)
问题:
getName没有意义,不应该在这个例子中使用.我正在阅读@Deprecated注释.有更合适的注释方法吗?
问题:
A)使用此功能时(运行前)是否可以强制执行错误?
B)有没有办法为我将使用的注释方法显示自定义警告/错误消息?理想情况下,当用户将鼠标悬停在已弃用/错误函数上时.
我从一个谈论外部合并排序的链接得到了这个.
从幻灯片6示例:使用5个缓冲页面,对108页面文件进行排序
Pass0:[108/5] = 22个分类运行,每个5页(最后一次只运行3页)
Pass1 [22/4] = 6个分类运行,每个20页(最后一次只运行8页)
Pass2:[6/3] = 2个分类运行,80页和28页
通过3:[2/2] = 1 108页的分类文件
问题:我的理解是在外部合并排序中,在传递0中,您创建块然后对每个块进行排序.在剩余的传球中,你不断合并它们.因此,将其应用于上面的示例,因为我们只有5个缓冲页面,在Pass 0中它清楚我们需要22个排序的运行,每个5页.
现在,为什么我们要为剩余的传递进行排序运行而不是合并?
当我们只有5个缓冲页面时,它怎么告诉传递1,6个分类的每个20页的运行?
这里合并的确切位置在哪里?如何在每次通过中减少N,即从108减少到22到6到2?