我正在开发一个Java小程序,减小二进制代码的大小将使小程序打开速度更快,并改善用户体验。我可以做些什么来减小类和/或jar文件的大小?我想确保我没有遗漏明显的技巧。我知道在C++世界中编译器选项例如剥离调试符号会产生巨大的差异,但我从未见过类似Java的东西。 最佳答案 查看此页面以获取有关如何使jar文件更小的一些提示-http://wiki.java.net/bin/view/Games/4KGamesDesign.尽管有些技巧可能不适用,因为您不是在尝试绝对最小化,但您可以在不影响代码质量的情况下应用一些通用技巧。但这里有一
我有一个用Java编写的内部HTTP服务器;完整的源代码供我使用。HTTP服务器可以配置任意数量的网站,每个网站都将有一个单独的监听套接字:skt=SSLServerSocketFactory.getDefault().createServerSocket(prt,bcklog,adr);使用由Javakeytool创建的标准key存储,我一生都无法弄清楚如何获得与不同监听套接字关联的不同证书,以便每个配置的网站都有自己的证书。我现在时间紧迫,所以非常感谢一些说明性的代码示例。但我非常希望能有任何关于JSSE在这方面如何结合在一起的很好的概述(我搜索了Sun的JSSEdoco,直到我的
这是怎么回事?@Stateless@LocalBeanpublicclassAppointmentCommentDao{publicvoiddelete(longappointmentCommentId){AppointmentCommentac=em.find(AppointmentComment.class,appointmentCommentId);if(ac!=null){em.merge(ac);em.remove(ac);}}@PersistenceContextprivateEntityManagerem;}在调用remove时,我得到一个IllegalArgumentE
我需要一种每60分钟调用一次函数的简单方法。我怎样才能做到这一点?我正在制作一个MineCraftbukkit插件,这就是我所拥有的:packagecom.webs.playsoulcraft.plazmotech.java.MineRegen;importjava.util.logging.Logger;importorg.bukkit.Location;importorg.bukkit.block.Block;importorg.bukkit.event.block.Action;importorg.bukkit.event.player.PlayerInteractEvent;i
我有一个包含唯一id的字符串对象。(例如“ocx7gf”或“67hfs8”)我需要为它提供一个inthascode()的实现,这显然是独一无二的。如何以最简单/最快的方式将字符串转换为唯一的int?10倍。编辑-确定。我已经知道String.hashcode是可能的。但不建议在任何地方使用。实际上'如果不推荐任何其他方法-如果我的对象在集合中并且我需要哈希码,我是否应该使用它。我应该将它连接到另一个字符串以使其更成功吗? 最佳答案 不,您不需要“显然”需要一个返回唯一值的实现,因为显然大多数实现都会被破坏。你想要做的是在位之间有一个
为了让JSTL在Eclipse下(并最终在GAE/J下)工作,我已经尝试了比我愿意承认的更长的时间。我已经下载了Eclipse、Eclipse的GoogleAppEngine扩展和JSTL(http://download.java.net/maven/1/jstl/jars/-jSTL-1.2.jar在WEB-INF\lib目录中)。我的代码连同输出如下:TestPageTestPage我得到的错误是:Thetaghandlerclassfor"c:set"(org.apache.taglibs.standard.tag.rt.core.SetTag)wasnotfoundontheJ
在应用启动时,我初始化了大约20个不同的缓存:@BeanpublicCacheManagercacheManager(){SimpleCacheManagercacheManager=newSimpleCacheManager();cacheManager.setCaches(Arrays.asList(manymanynames));returncacheManager;}我想每隔一段时间重置所有缓存,比如每小时。使用计划任务:@ComponentpublicclassClearCacheTask{privatestaticfinalLoggerlogger=LoggerFactor
我们的一个程序有时会在一个用户的机器上出现OutOfMemory错误,但在我测试它时当然不会。我只是用JProfiler运行它(在10天的评估许可证上,因为我以前从未使用过它),并过滤我们的代码前缀,总大小和实例数量的最大块是一个特定简单类的8000多个实例.我点击了JProfiler上的“垃圾收集”按钮,我们其他类的大多数实例都消失了,但这些特定的没有。我再次运行测试,仍然在同一个实例中,它创建了4000多个类的实例,但是当我单击“垃圾收集”时,那些实例消失了,留下了8000多个原始实例。这些实例确实会在不同阶段陷入不同的集合中。我假设它们没有被垃圾收集这一事实一定意味着某些东西持有
有了我们的applicationstopworking当客户安装7u45更新时,我们想知道我们在未来还能做些什么来提前为这些更新做好准备并避免发布日支持噩梦。(根据Javaversionnumberingscheme,计划于1月14日发布的下一个重要补丁更新将为7u51。下一个有限更新(日期未知)将为7u60。)我浏览了Oracle和OpenJDK网站,没有发现任何特别有用的东西。JavaSE的主要Oracle页面有一个EarlyAccessDownloads部分。它具有三个具有潜力但未成功的链接:https://jdk7.java.net/,它仍然在谈论7u40——没有提到7u45,
我正在用Java编写一个程序,我的一个类中几乎每个方法都写成这样:publicvoiddoStuff()throwsAWTException{}有没有办法让我摆脱为每个方法键入throwsAWTException的额外步骤,并以某种方式为整个类执行此操作? 最佳答案 抱歉,不可以。在Java中无法做到这一点。 关于java-我怎样才能为整个类抛出异常而不是一个方法一个方法地做,我们在StackOverflow上找到一个类似的问题: https://stacko