Tag: java

实现Map并保持插入顺序的Java类?

我正在寻找一个具有键值关联的java类,但不使用散列。 这是我目前正在做的事情: 将值添加到Hashtable 。 获取Hashtable.entrySet()的迭代器。 遍历所有的值和: 获取迭代器的Map.Entry 。 根据值创build一个Module (一个自定义类)types的对象。 将该类添加到JPanel。 显示面板。 问题在于,我无法控制返回值的顺序,因此无法按给定顺序显示值(不对指令进行硬编码)。 我会为此使用一个ArrayList或Vector ,但后来在代码中,我需要抓住一个给定的密钥的Module对象,我不能用一个ArrayList或Vector 。 有谁知道一个免费/开放源代码的Java类将做到这一点,或者一种方式来获取值的基础上添加Hashtable ? 谢谢!

Java多行string

来自Perl,我确定缺less在源代码中创build多行string的“here-document”方法: $string = <<"EOF" # create a three line string text text text EOF 在Java中,我必须在每行上都有繁琐的引号和加号,因为我从头开始连接多行string。 有什么更好的select? 在属性文件中定义我的string? 编辑 :两个答案说StringBuilder.append()比加表示法更好。 谁能详细说明他们为什么这么想? 对我来说,这看起来不太可取。 我正在寻找多行string不是一stream的语言结构的事实,这意味着我绝对不想用方法调用来replace一级语言结构(带有加号的string连接)。 编辑 :进一步澄清我的问题,我根本不关心performance。 我关心可维护性和devise问题。

如何locking编译的Java类以防止反编译?

如何locking已编译的Java类以防止反编译? 我知道互联网上的这个话题一定是非常好的,但是在提到这个话题之后,我不能得出任何结论。 许多人确实提出了混淆器,但他们只是将难以记忆的字符序列重新命名为类,方法和字段,但敏感常量值又是如何呢? 例如,您已经开发了基于密码的encryption技术的encryption和解密组件。 现在在这种情况下,任何普通的Java人都可以使用JAD来反编译类文件,并轻松地检索密码值(定义为常量)以及salt ,然后通过编写小的独立程序来解密数据! 或者应该用本地代码(例如VC ++)构build这种敏感的组件并通过JNI调用它们?

Java EE 6 @ javax.annotation.ManagedBean与@javax.inject.named比较@ javax.faces.ManagedBean

我觉得在Java EE 6规范中有一点点混乱。 有几组注释。 我们有像@Stateful和@Stateless这样的javax.ejb注释来创buildEJB。 还有一个@javax.annotation.ManagedBean来创build一个托pipe的bean。 javax.enterprise.context有注释,如@SessionScoped和@RequestScoped 。 在javax.faces.bean包中还有@ManagedBean和@SessionScoped / @RequestScoped注解。 为了使事件更复杂,有一个包含@Named注释的javax.inject包。 有人可以描述他们是如何相互关联? 我在哪里可以使用@ @EJB ,@ @Inject或@ManagedPropery注入其他豆?

为什么你会执行finalize()?

我已经阅读了很多关于finalize()的新手java问题,并且发现有一种令人困惑的理解,即没有人真正明白finalize()是清理资源的不可靠方法。 我看到有人评论说他们使用它来清理连接,这真的很可怕,因为唯一能够保证Connectionclosures的唯一方法是最后实现try(catch)。 我没有在CS学习,但是我已经在Java专业编程了近十年了,我从来没有见过任何人在生产系统中实现finalize()。 这并不意味着它没有用处,或者我曾经工作过的人一直在做正确的事情。 所以我的问题是,有什么用例来实现finalize(),不能通过语言中的另一个进程或语法更可靠地处理? 请提供具体的场景或者你的经验,简单的重复一下Java的教科书,或者敲定用途是不够的,而不是这个问题的意图。

将java.util.Date转换为java.time.LocalDate

将java.util.Date对象转换为新的JDK 8 / JSR-310 java.time.LocalDate的最佳方法是什么? Date input = new Date(); LocalDate date = ???

有没有办法在Java中模拟C ++的“朋友”概念?

我希望能够在一个包中编写一个Java类,它可以访问另一个包中的类的非公共方法,而不必将其作为另一个类的子类。 这可能吗?

在configuration文件中encryption密码?

我有一个程序从configuration文件中读取服务器信息,并希望encryption该configuration中可以被我的程序读取并解密的密码。 质量要求: encryption明文密码以存储在文件中 解密从我的程序中读入的encryption密码 任何关于如何去做这件事的reccomendations? 我正在考虑编写自己的algorithm,但我觉得这将是非常不安全的。

如何在Tomcat中部署一个war文件7

我已经将sample.war文件复制到Tomcat的webapps目录中,并且可以访问localhost:8080 。 现在Tomcat如何部署它,我的意思是我需要在浏览器中打开它? 我如何访问应用程序?

java.lang.OutOfMemoryError:超出GC开销限制

我得到这个错误的程序创build几个(数十万)HashMap对象与几个(15-20)文本项每个。 在提交到数据库之前,这些string都被收集起来(没有分成更小的数量)。 据Sun介绍,错误发生在“如果在垃圾收集中花费了太多时间:如果超过总时间的98%用于垃圾收集,并且小于2%的堆被恢复,则将抛出OutOfMemoryError。 ”。 显然,可以使用命令行将parameter passing给JVM 增加堆大小,通过“-Xmx1024m”(或更多)或 完全禁用错误检查,通过“-XX:-UseGCOverheadLimit”。 第一种方法工作正常,第二种结束在另一个java.lang.OutOfMemoryError,这次是关于堆。 所以,问题:是否有任何程序的替代scheme,对于特定的用例(即几个小的HashMap对象)? 例如,如果我使用HashMap clear()方法,问题就消失了,但是存储在HashMap中的数据也是如此! 🙂 在StackOverflow的相关主题中也讨论了这个问题。