我一直在从J2EE查看JMS API,并发现了一个奇怪的行为,其中在接口中声明的某些方法(例如,Session中的createQueue)在子接口(例如QueueSession)中再次声明,并且具有相同的文档.
由于子接口"继承"它继承的接口的所有方法声明,并且由于JavaDoc工具在排序子接口的JavaDocs并创建"继承的操作"列表时没有问题,因此我无法弄清楚它实现了什么.
唯一的想法是,最初调用是在Session中,然后在创建特定子类时移动到QueueSession,尽管那时我希望在大写的文档中看到一些东西.但这只是猜想.
所以问题是:在子接口中重新声明方法是否有令人信服的理由?
我们正在考虑将大型产品从依赖Sun的JVM转换为JRockit.我并不天真地相信这将是一个平稳的过渡(虽然我喜欢错了).
我们应该注意哪些问题或关注我们的回归测试?
假设我有一个JDBC ResultSet,并调用getLong()或getshort()方法.
对于以下哪种SQL类型{SMALLINT,INT,BIGINT}我应该变长,以及哪些类型应该出错?
换句话说,如果我有一个INT并且我想要一个SMALLINT(一个简短的),我会得到它,还是会得到一个错误?同样地,如果我有一个INT并想要一个BIGINT(一个很长的),我会得到它,还是会得到一个错误?
Javadocs(下面列出)什么也没说.
public long getLong(int columnIndex)抛出SQLException
Run Code Online (Sandbox Code Playgroud)Retrieves the value of the designated column in the current row这个ResultSet对象在Java编程语言中是一个long.
Run Code Online (Sandbox Code Playgroud)Parameters: columnIndex - the first column is 1, the second is 2, ... Returns: the column value; if the value is SQL NULL, the value returned is 0 Throws: SQLException - if a database access error occurs
我试图以编程方式找出调用我的程序的JVM的最大permgen和最大堆大小,而不是当前可用的大小.
有没有办法做到这一点?
我熟悉Java Runtime对象中的方法,但不清楚它们真正提供的是什么.
或者,有没有办法向Eclipse询问为这两个分配了多少?
我有一个"处理器"组件,可以处理单个文件,InputStream,Reader等.
由于各种原因,我最终得到了几个大文件而不是一个大文件.
有没有办法构建一个输入流(或读取器):透明地"追加"所有这些文件,以便:1)"处理器"不知道一个文件的起始位置或另一个文件的结束2)文件系统中没有发生变化(例如,没有实际附加文件)3)按顺序读取每个文件,以便我不支付将所有文件加载到内存并在处理器开始读取之前附加它们的费用?
我敢肯定有可能写出这样的东西,但我想知道是否已经存在; 自从我做了基于文件的IO以来已经有一段时间了.
给定一个可以使用Class.forName()加载的完全限定类名,有没有办法将名称转换为加载类并调用getSimpleName()而不实际尝试加载类的结果?我需要这种功能用于反射.
我正在编写Eclipse插件,并且经常出现这样的情况,即正在运行的Job需要暂停一段时间,在UI线程上异步运行并恢复.
所以我的代码通常看起来像:
Display display = Display.getDefault();
display.syncExec(new Runnable() {
public void run() {
// Do some calculation
// How do I return a value from here?
}
});
// I want to be able to use the calculation result here!
Run Code Online (Sandbox Code Playgroud)
一种方法是让整个Job类都有一些字段.另一种方法是使用自定义类(而不是匿名类,并使用其生成的数据字段等.什么是最好和最优雅的方法?
我们有一个巨大的代码库,我们怀疑代码中有很多基于"+"的字符串连接可能会受益于StringBuilder/StringBuffer的使用.有没有一种有效的方法或现有的工具来搜索这些,特别是在Eclipse中?
搜索"+"不是一个好主意,因为代码中有很多数学,所以这需要实际分析代码和类型以确定哪些添加涉及字符串.
在过去的几年里,我主要在Eclipse中完成UI开发,在线程访问方面非常保守:任何尝试从UI线程外部更改UI小部件上的属性(例如,颜色,文本)都会引发异常.
我现在正在查看Swing中的一个现有程序,它有一个包含大量自定义小部件的窗口.有一个单独的线程为每个小部件运行一个变异函数,并且变异函数读取某些东西的值(例如,标签颜色和值)并写入一些(例如,更改背景颜色).请注意,没有涉及自定义绘画或类似的东西,只是对它包含的子窗口小部件的一些更改,主要是JLabel.
目前,这是从单独的线程运行,而不是从Swing事件线程运行.这个线程覆盖了所有400个小部件,并在每个小部件上调用mutator.更新似乎正常工作,但GUI没有响应用户输入.
如果我从Swing线程外部运行大约0.4毫秒并将每个调用包装到invokeLater或invokeAndWait中的mutator,那么UI响应速度要快得多.
我想要了解的是:
1)从Swing线程外部进行所有这些调用有时是否合法?
2)对Swing线程的影响是什么?当我从外面调用它时,为什么UI响应性较差?
我需要将文件流读取为位,然后我应该能够再次将位写入文件.有没有为此目的的课程?
java ×9
eclipse ×1
file ×1
interface ×1
io ×1
jdbc ×1
jrockit ×1
jvm ×1
optimization ×1
performance ×1
reflection ×1
string ×1
swing ×1