草庐IT

java - 我需要帮助以递归方式比较目录中的文件以查找重复项

我正在开发一个程序,它将(希望)比较给定目录中的所有文件,识别重复项,将它们添加到列表中,然后向用户显示列表,以便他们可以在删除之前验证他们是否希望删除这些文件他们和我被严重困住了。到目前为止,我已经能够递归地列出所有文件,而且我一直在比较它们以找到重复项。我很快意识到要完成我想要的,我需要比较多个文件属性。并非所有文件都是文本文件,就互联网上的示例代码而言,比较文本主要是我发现的内容,我正在尝试了解有关二进制数据的更多信息,因为比较字节数组和文件名是我能做到的最好的跟上。具体来说,我问的是哪些属性最好进行比较,以便在查找重复项的准确性和能够处理合理大小的目录之间取得平衡?如果您不介意

java - 静态 block 和在类中分配静态之间的区别?

下面两种静态变量的初始化有什么区别吗:classClass1{privatestaticVarvar;static{var=getSingletonVar();}}classClass2{privatestaticvar=getSingletonVar;}这两种初始化静态变量的不同方式在功能上是否相同? 最佳答案 是的,它在功能上是一样的。来自JavadocThereisanalternativetostaticblocks—youcanwriteaprivatestaticmethod:classWhatever{publicst

java - 我应该把 public static void main(String[] args) 方法放在哪里?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我认为它对程序输出没有任何影响,但是我应该把它放在什么类中publicstaticvoidmain(String[]args){//...}我程序中的方法?创建一个单独的类或将它放在一个做其他事情的类中是更好的形式吗?如果我应该把它放在一个做其他事情的类中,哪个类?有关系吗?这实际上只是约定俗成的事情。通常我创建一个单独的类或将其放在处理gui的类中,但我想知道正确的做法。

java - Java 中静态和非静态最终原始字段之间的性能差异

我最近遇到一个声明了以下字段的类:privatefinalintperiod=1000;在这种特殊情况下,作者希望它也是静态的,并且由于该值在任何时候都无法更改,因此没有真正的功能理由不将其声明为静态,但这让我想知道Java是如何做到的处理最终与最终静态原语。特别是:1)如何存储最终的静态原语?它们只是直接编译到使用它们的表达式中吗?2)如果它们实际上被分配了存储空间,那么包含类的每个实例是否都必须维护对该位置的引用?(在这种情况下,对于小于4字节的原语,类的每个实例实际上会比在非静态情况下直接包含原语更大)3)编译器现在是否足够聪明,可以确定在上述情况下,变量是“有效静态”的,因为不

java - getDeclaredMethods() 和隐藏的父类(super class)静态方法

根据http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Class.html#getDeclaredMethods%28%29,Class.getDeclaredMethods()应该只包含“由类声明”的方法。但是,我通过下面的测试代码得到了一些非常令人惊讶的结果:importjava.util.Arrays;classA{publicstaticAm1(){returnnull;}publicstaticAm2(){returnnull;}publicstaticAm3(){returnnull;}}classBext

java - 静态类变量和序列化/反序列化

来自SCJP6学习指南-有一个问题要求输出以下有关序列化的代码:importjava.io.*;publicclassTestClass{staticpublicvoidmain(String[]args){SpecialSerials=newSpecialSerial();try{ObjectOutputStreamos=newObjectOutputStream(newFileOutputStream("myFile"));os.writeObject(s);os.close();System.out.print(++s.z+"");s=null;//makesnodifferen

Java:如何存储对一个类的所有实例的引用?

我更习惯于C++。要获得一个类的所有实例的列表(这是一个可以由用户扩展的库类),我通常有一个静态容器,其中包含对此类对象的所有引用:#includeclassCPPClass;classCPPClass{public:CPPClass(){objList.push_back(this);}~CPPClass(){objList.remove(this);}private:staticstd::listobjList;};std::listCPPClass::objList;我应该如何在Java中做同样的事情?我有一些顾虑:有人向我提到可以有多个类加载器,这可能会导致问题java中没有析

java - 从继承的静态方法中获取调用者类名

我有以下类(注意方法是静态的):classBase{publicstaticvoidwhosYourDaddy(){ClasscallerClass=//whatshouldIwriteheretogetcallerclass?System.out.print(callerClass.getName());}}ClassAextendsBase{publicstaticvoidfoo(){A.whosYourDaddy();}}ClassBextendsBase{publicstaticvoidbar(){B.whosYourDaddy();}}当我打电话时:A.foo();B.bar

java - 在静态方法中定义内部类的目的是什么?

我在读“HeadFirstJava”这本书,在某些时候它提到内部类实例必须绑定(bind)到外部类实例,我已经知道这一点,但有一个异常(exception):Averyspecialcase—aninnerclassdefinedwithinastaticmethod.ButyoumightgoyourentireJavalifewithouteverencounteringoneofthese.我很确定最后一条语句确实是正确的,但如果编译器允许它发生,则意味着它存在是有原因的,否则它将是非法的Java。谁能给我举个例子说明这在什么地方有用? 最佳答案

java - 忽略事件分派(dispatch)线程如何让这个程序工作?

当我试图看看我是否能回答thisquestionearliertoday.我意识到我不完全理解EventDispatchThread(美国东部时间)。Googling双方都确认并帮助了这一点并澄清了whyIdon't.(This也可能与理解有关。)该代码设置了一个GUI,随后(如前面的问题)更新了一个文本字段,直到取消设置标志。我有几个问题/请求。如果两个调用(对swingInit和doIt)都在invokeLater之外,请解释为什么下面的代码运行正常block(如图所示),因为这两个调用都会影响或查询GUI,但都不会在EDT上执行(是吗?)。那不是招来失败吗?如果调用swingIn