草庐IT

Java 敏感数据 : char[] vs String? 有什么意义?

我们已经知道使用char[]而不是String来处理敏感数据的建议/做法。有多种原因。一种是在不再需要敏感数据后立即清理它们:char[]passwd=passwordProvider.getKeyStorePassword();KeyStorekeystore=KeyStore.getInstance("JKS");//TODO:Createtheinputstream;keystore.load(inputstream,passwd);System.arraycopy(newchar[passwd.length],0,passwd,0,passwd.length);//Please

java - 无法在 ubuntu 16.04 上使用 PPA 存储库安装 java8

从2018年1月17日开始出现以下错误:--2018-01-1809:59:52--http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gzResolvingdownload.oracle.com(download.oracle.com)...104.94.43.14Connectingtodownload.oracle.com(download.oracle.com)|104.94.43.14|:80...conne

java - 没有 EJB 的 Web 应用程序的 WAR vs EAR?

我有一个不使用EJB的JavaEEWeb应用程序。我有时会针对Jetty/Tomcat进行部署,因此需要一个WAR包。但是,有时我也以JBoss和Websphere为目标。我的理解是成熟的JavaEE应用程序服务器可以采用EAR或WAR格式。我什么时候会用一个而不是另一个,为什么?我知道它们都是标准的压缩文件格式,并且我已经阅读了10个试图解释它们的不同片段(includingthisone),但我并没有更深入地了解每种格式的优缺点。 最佳答案 如果您只有Web模块-使用WAR文件。如果您有不同的JavaEE模块-使用EAR。尽管您

java - 网络 Swing 游戏中的多线程 : using invokeLater vs locks

我正在编写一个简单的自上而下的太空游戏,并且正在扩展它以允许通过网络与多个玩家一起玩。我读了很多书,但这是我第一次这样做,我希望能得到一些关于选择合理设计的建议。我的GUI是使用Swing编写的。每秒30次,计时器触发,并根据内存中gameWorld对象中的数据重新绘制我的GUI(本质上是带有位置的船舶和射弹列表等)。游戏世界的物理更新也是使用这个计时器进行的。因此,对于单人游戏实现,一切都发生在EDT上,并且效果很好。现在,我有单独的线程处理来自其他玩家的传入数据包。我想根据这些数据包包含的内容更新我的gameWorld对象中的数据。我的问题是,我应该使用invokeLater来进行

java - 最近的 Ubuntu 16.04 中的 JNI_CreateJavaVM() 堆栈损坏

几周以来,SWI-PrologJava接口(interface)在JNI_CreateJavaVM中立即崩溃。好吧,在大多数机器上。它在我的一台机器上运行良好,它运行相同版本的Ubuntu和openjdk...我将其简化为这个小程序:#include#include#includestaticJavaVM*jvm;intmain(intargc,char**argv){JavaVMInitArgsvm_args={0};JNIEnv*env;JavaVMOptionopt[8]={0};intoptn=0;intr;opt[optn++].optionString="-Djava.cl

java - boolean containsAll(Collection<?> c) vs boolean addAll(Collection<? extends E> c); 的设计决策在集合框架中

这个问题在这里已经有了答案:GenericCollection(10个答案)关闭9年前。为什么booleancontainsAll(Collectionc);每种类型都允许集合框架的方法?。但是booleanaddAll(Collectionc);允许?extendsE。所以,我写了一个程序来澄清。这是我的程序publicclassContainAllTest{//takeServiceDtoArrayListresultList=newArrayList();voidTest(){ServiceDtoserviceDto=newServiceDto();serviceDto.setN

java - 注释 : methods vs variables

我一直确信(不知道为什么)最好为变量添加注释,但是在浏览Hibernate文档时http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-hibspec-collection我注意到他们倾向于注释方法。所以我应该把注释放在方法之前,像这样:@EntitypublicclassFlightimplementsSerializable{privatelongid;@Id@GeneratedValuepubliclonggetId(){returnid;}publicvoidsetI

java - DataInputStream vs InputStreamReader,试图从概念上理解两者

暂时我的理解是:DataInputStream是一个InputStream子类,因此它读取和写入字节。如果您正在读取字节并且您知道它们都将是ints或其他一些原始数据类型,那么你可以读取这些byte使用DataInputStream直接进入原语.问题:在读取内容之前,您是否需要知道正在读取的内容的类型(整数、字符串等)?整个文件是否需要包含一种原始类型?我的问题是:为什么不使用InputStreamReader环绕InputStream的字节数据?使用这种方法,您仍然在读取字节,然后将它们转换为表示字符的整数。哪些整数表示哪些字符取决于指定的字符集,例如“UTF-8”。问题:在什么情况

java - 替换 Camel v2.16.0 中弃用的 beanRef()

我们正在从Camelv2.13升级到v2.16,发现beanRef()已被标记为已弃用。ApacheCamel推荐的替代品/替代品是什么。我无法在Camelv2.16.0文档站点上找到任何有用的信息。甚至还没有更新的示例。beanRef()是Camel的JavaDSLBean语言中的语法。 最佳答案 我假设您正在谈论ProcessorDefinition类。javadoc注释说使用bean(...)方法替代beanRef(...)方法。来源引用:https://github.com/apache/camel/blob/6dae060

java:减少 ​​vs anyMatch vs 包含

Listresults=newArrayList();results.add(true);results.add(true);results.add(true);results.add(false);if(results.contains(false)){System.out.println(false);}else{System.out.println(true);}System.out.println(results.stream().reduce((a,b)->a&&b).get());//System.out.println(!results.stream().anyMatch