草庐IT

java - 无法在内部类中声明 Public static final String s = new String ("123")

我尝试声明一个类,如下所示classOuter{privatefinalclassInner{publicstaticfinalStrings1=newString("123");publicstaticfinalbyte[]bytes=newbyte[]{0x00,0x01};publicstaticfinalStrings2="123";publicstaticfinalbytebyte1=0x02;}}在上面的代码中,s1和bytes无法编译,但s2和byte1可以编译。如果我将整个常量声明放在外部类中,它就可以正常工作。我错过了什么。有帮助吗? 最佳

java - 为什么这个 AES 加密程序在每次调用时给出不同的值?

基本上我找到了这个代码,由某人发布,它允许您在AES中加密消息并解密它。我对这个加密东西有点陌生,我想知道,它使用的种子值在哪里,种子每次都是随机的吗?因为从表面上看,同一个String加密后的结果是不一样的。谢谢。importjava.awt.event.*;importjava.awt.*;importjavax.swing.*;importjava.security.*;importjavax.crypto.*;importjavax.crypto.spec.*;importjava.io.*;publicclassAESGUIextendsJPanel{publicstatic

java - 为什么有些类在创建实例时不需要单词 "New"?

我是Java新手。让我感到困惑的一件事是为什么有些类需要new来实例化,而其他一些类不需要new来实例化。比如我在看log4j,它不需要new。//getaloggerinstancenamed"com.foo"Loggerlogger=Logger.getLogger("com.foo");logger.setLevel(Level.INFO);为什么其他一些类需要new?例如,一个Employee类:EmployeeX=newEmployee(John);X.getwork();等等等等为什么我们没有说Loggerlogger=newLogger(...);?以及为什么即使没有ne

使用 32 字节 key 的 Java AES 加密 - key 大小无效

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:InvalidKeyExceptionIllegalkeysizepublicstaticbyte[]encryptBytes(byte[]bytes,byte[]key){Ciphercipher=null;try{cipher=Cipher.getInstance("AES/ECB/PKCS5Padding");SecretKeySpecsecretKey=newSecretKeySpec(key,"AES");cipher.init(Cipher.ENCRYPT_MODE,secretKey);retur

java - Collections.synchronizedMap(new LinkedHashMap());没有使 Map 线程安全

我正在使用以下构造来创建线程安全的Map。Collections.synchronizedMap(newLinkedHashMap());尽管我遇到了ConcurrentModificationException错误。 最佳答案 如果没有代码,很难猜测真正的问题是什么,但我的猜测是,您没有使用返回的集合来执行操作。根据javadocInordertoguaranteeserialaccess,itiscriticalthatallaccesstothebackingcollectionisaccomplishedthroughthe

java - 为了提高我的编程技能,我想关注 "learn a new language a year"。 2011 年我们可以学到什么

我想在2011年学习一门新的编程语言。我是一名java程序员,有不到一年的经验。我想学习一些真正新鲜和令人兴奋的东西,但与移动设备(iPhone、Android、iPad、Symbian)无关。 最佳答案 我建议你给Scala试试吧。它是一种运行在JVM上的语言,它在语法上非常像Java,因此您可以轻松上手。Python是另一个不错的选择。 关于java-为了提高我的编程技能,我想关注"learnanewlanguageayear"。2011年我们可以学到什么,我们在StackOverf

java.lang.OutOfMemoryError : unable to create new native thread 错误

我看到了这样的评论oneplaceihaveseenthisproblemisifyoukeepcreatingthreads,andinsteadofcallingstart(),callrun()directlyonthethreadobject.Thiswillresultinthethreadobjectnotgettingdereferenced...Soaftersometimethemessageunabletocreatenewnativethreadcomesup关于SunJavaForums在我的应用程序中,最初我们计划使用线程,但后来我们决定不再需要,所以我们只调

java - AES-256 和 PKCS7Padding 在 Java 中失败

我有几个库,C#、PHP和Android,它们都以相同的方式加密/解密字符串,因此它们彼此兼容,即C#将数据写入数据库并加密,PHP可以成功解密它并返回原始字符串。我现在需要对标准Java应用程序做同样的事情,所以我从我的Android库中获取代码并需要库,但我遇到了异常。据我所知,代码不是特定于Android的,因此应该不是问题。下面是我的加密函数publicstaticStringencrypt(StringplainPasword){Stringpassword="";try{SecretKeySpeckey=newSecretKeySpec("hcxilkqbbhczfeult

java - String str = new String ("my string") 真的效率低吗?

我经常看到有人说Stringstr=newString("mystring")比写Stringstr="mystring",效率低,因为前者创建一个静态“我的字符串”对象,然后是一个从静态对象复制的String对象。但是,考虑到这里的语言是如此简单和明确,我很难想象Java优化器不会花任何力气将前者简单地转换为后者。为什么它真的会选择更费力的方式呢?如果Java对其进行了优化,会有什么负面影响? 最佳答案 However,giventhatthelanguagehereissosimpleandunambiguous,Icanhar

java - java 中的约定 - 构造函数/方法之外的 "new"?

简单的问题。有心友写过类似这样的代码(只是为了给你解释我的问题,一点用都没有....)classExample{privateint[]tab=newint[10];publicExample(){for(inti=0;i我告诉他他应该将new放在构造函数中classExample{privateint[]tab;publicExample(){tab=newint[10];...}当他问我为什么时,我不知道该怎么回答:除了“这样更好”之外,我没有明确的论据。按照我的学习方式,您可以使用基本类型(int、double...)初始化变量,但对于数组,您应该在构造函数中进行初始化。所以:真