Tag: java

为什么Java中的main方法总是需要参数?

为什么Java中的主要方法总是需要参数? 为什么我们每次都要写String[] args ,而不是在使用任何参数的时候写出来呢? 像这样的方法生成Main method not found编译器错误。 由于我们从来没有使用任何主要方法的参数,这应该是允许的。 public static void main() { } 这不是一个面试问题。 编程时,我才想起它。

在Java中嘲笑文件 – 模拟内容 – Mockito

我很嘲笑,我一直在试图嘲笑实际的内容(本质上是在内存中创build一个虚拟文件),以便在任何时候没有数据写入磁盘。 我尝试了一些解决scheme,比如嘲笑文件,嘲笑尽可能多的属性,然后用文件编写器/缓冲写入器写入文件,但是这样做效果不好,因为它们需要规范path。 任何人都find了这个或类似的解决scheme,但我接近这个错误? 我一直在这样做: private void mocking(){ File badHTML = mock(File.class); //setting the properties of badHTML when(badHTML.canExecute()).thenReturn(Boolean.FALSE); when(badHTML.canRead()).thenReturn(Boolean.TRUE); when(badHTML.canWrite()).thenReturn(Boolean.TRUE); when(badHTML.compareTo(badHTML)).thenReturn(Integer.SIZE); when(badHTML.delete()).thenReturn(Boolean.FALSE); when(badHTML.getFreeSpace()).thenReturn(0l); when(badHTML.getName()).thenReturn("bad.html"); when(badHTML.getParent()).thenReturn(null); when(badHTML.getPath()).thenReturn("bad.html"); when(badHTML.getParentFile()).thenReturn(null); when(badHTML.getTotalSpace()).thenReturn(0l); when(badHTML.isAbsolute()).thenReturn(Boolean.FALSE); when(badHTML.isDirectory()).thenReturn(Boolean.FALSE); when(badHTML.isFile()).thenReturn(Boolean.TRUE); when(badHTML.isHidden()).thenReturn(Boolean.FALSE); when(badHTML.lastModified()).thenReturn(System.currentTimeMillis()); when(badHTML.mkdir()).thenReturn(Boolean.FALSE); when(badHTML.mkdirs()).thenReturn(Boolean.FALSE); when(badHTML.setReadOnly()).thenReturn(Boolean.FALSE); when(badHTML.setExecutable(true)).thenReturn(Boolean.FALSE); when(badHTML.setExecutable(false)).thenReturn(Boolean.TRUE); when(badHTML.setReadOnly()).thenReturn(Boolean.FALSE); try { BufferedWriter bw = new BufferedWriter(new FileWriter(badHTML)); /* badHTMLText is a string with the contents i […]

可执行jar中Class.getResource()和ClassLoader.getResource()的奇怪行为

我理解Class.getResource()和ClassLoader.getResource()之间的区别是什么? 并从自己的代码,那 getClass().getResource("/path/image.png") 是相同的 getClass().getClassLoader().getResource("path/image.png") 张贴无法读取jar文件中的图像显示使用的问题 getClass().getClassLoader().getResource("path/image.png") 在一个可执行的jar文件中返回null,而 getClass().getResource("/path/image.png") 返回正确的URL。 Since Class.getResource()在删除前导斜杠后委托给ClassLoader.getResource() ,所以我期望这些调用是相同的,但显然它们不是这种情况。 即使当一个特殊的类加载器被附加到特定的类时,对于每个调用仍然应该是一样的,这同样会导致相同的行为。 所以,问题是: 是否有任何明显的情况下,下面的代码为第一个调用返回null,但第二个调用的正确的URL? package com.example; import java.net.URL; public class ResourceTest { public void run() { URL iconUrl1 = getClass().getClassLoader().getResource("path/image.png"); System.out.println("ClassLoader.getResource(\"path/image.png\"): " + iconUrl1); URL iconUrl2 = getClass().getResource("/path/image.png"); System.out.println("Class.getResource(\"/path/image.png\"): " + iconUrl2); } public static void main(String[] args) { ResourceTest app = new […]

Java的BigDecimal.power(BigDecimal指数):有没有一个Java库呢?

Java的BigDecimal.pow(int)方法只接受一个整数参数,没有BigDecimal参数。 是否有像Apache的commons-lang这样的库,支持BigDecimal.pow(BigDecimal) ? 它应该能够计算出"1.21".pow("0.5")来返回"1.1" 。

为什么LinkedHashSet <E>扩展HashSet <e>并实现Set <E>

今天打开LinkedHashSet源代码,发现一些有趣的事情: public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { 问题是:为什么当HashSet已经是Set时,他们同时需要“extends HashSet”和“implements Set”?

JFrame.dispose()vs System.exit()

这两个方法有什么区别 – System.exit()和JFrame.dispose() ? 如果我们想要在单击button时closuresJava Swing应用程序,应该使用哪种方法?

如何序列化Java类的静态数据成员?

当我们序列化对象的时候,静态成员是不会被序列化的,但是如果我们需要这样做的话,还有什么出路呢?

Javastringsearch忽略重音

我正在尝试为我的应用程序编写一个筛选器函数,它将采用一个inputstring并以某种方式筛选出与给定input不匹配的所有对象。 最简单的方法是使用String的contains方法,即检查对象(对象中的Stringvariables)是否包含filter中指定的string,但是这不包含重音。 有问题的对象基本上是人,我想匹配的string是名字。 因此,例如,如果有人searchJoao,我希望Joáo被包含在结果集中。 我已经在我的应用程序中使用Collat​​or类来按名称进行sorting,并且效果很好,因为它可以进行比较,即使用英国语言​​区域设置,但是在之前。 但是,如果比较a和á,因为它们不相等,所以它不会返回0。 那么有没有人有任何想法,我可以做到这一点?

为什么我的AESencryption会抛出一个InvalidKeyException?

我目前正在研究一个function,用一个密钥encryption/解密一个特定的文件。 我写了三个类,一个是生成一个密钥,一个是用密钥encryption文件,另一个是解密文件。 生成密钥和encryption文件工作正常,但是当我尝试解密文件时,会引发一个exception: c.init(Cipher.DECRYPT_MODE, keySpec); : java.security.InvalidKeyException:缺less参数 我把它解密时,我已经做了一些错误,当解密文件时,将密钥stream到我的byte[]或者是错误的。 快速解释三个类:KeyHandler创build一个AES密钥并将其存储在硬盘上。 为了testing目的,密钥/明文/encryption/解密文件的名称目前被硬编码。 EncryptionHandler将磁盘上的.txt文件转换为字节,使用密钥encryption文件,然后使用CipherOutputStream将encryption的字节写入磁盘。 DecryptionHandler当然和EncryptionHandler相反。 代码如下: public class KeyHandler { Scanner scan = new Scanner(System.in); public KeyHandler(){ try { startMenu(); } catch (Exception e) { System.out.println("fel någonstanns :)"); } } public void startMenu() throws Exception{ System.out.println("Hej. Med detta program kan du generera en hemlig nyckel"+"\n"+"Vill du:"+"\n"+ "1. Generera […]

Java的虚拟机的字节顺序

Java在其虚拟机中使用的是什么endianness? 我记得在某个地方看到它取决于它正在运行的物理机器,然后我读到的其他地方,我总是相信,它是大端。 哪个是对的?