Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。


11
导入两个具有相同名称的类。怎么处理?
说我有一个类似的代码: import java.util.Date; import my.own.Date; class Test{ public static void main(String [] args){ // I want to choose my.own.Date here. How? .. // I want to choose util.Date here. How ? } } 我应该是完全合格的班级名称吗?我可以摆脱导入声明吗?这种情况在现实世界编程中是否常见?
107 java 


3
PMD和FindBugs有什么区别?
比较PMD和CheckStyle有一个问题。但是,我找不到关于PMD和FindBugs之间差异/相似性的详细分类。我相信一个关键的区别是PMD适用于源代码,而FindBugs适用于编译后的字节码文件。但是就功能而言,这应该是一个选择,还是两者相辅相成?

8
Java Class.cast()与强制转换运算符
在我的C ++时代里,学习过C风格的强制转换运算符的弊端后,我最初很高兴地发现Java 5中java.lang.Class已经获得了一种cast方法。 我以为最终我们有了一种面向对象的处理铸造的方法。 事实证明Class.cast与static_castC ++不同。更像是reinterpret_cast。它不会在预期的地方生成编译错误,而是会推迟到运行时。这是一个演示不同行为的简单测试用例。 package test; import static org.junit.Assert.assertTrue; import org.junit.Test; public class TestCast { static final class Foo { } static class Bar { } static final class BarSubclass extends Bar { } @Test public void test ( ) { final Foo foo = new Foo( ); …

4
为什么BufferedInputStream将字段复制到局部变量而不是直接使用该字段
当我从中读取源代码时java.io.BufferedInputStream.getInIfOpen(),我很困惑为什么它编写了这样的代码: /** * Check to make sure that underlying input stream has not been * nulled out due to close; if not return it; */ private InputStream getInIfOpen() throws IOException { InputStream input = in; if (input == null) throw new IOException("Stream closed"); return input; } 为什么使用别名而不是in直接使用field变量,如下所示: /** * Check …

2
Java 6与Java 7在自动拆箱中的差异
我已经注意到Java SE 6和Java SE 7在自动拆箱行为上的差异。我想知道为什么会这样,因为我找不到这两个版本之间这种行为变化的任何文档。 这是一个简单的例子: Object[] objs = new Object[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; 使用Java SE 7中的javac可以很好地进行编译。但是,如果我给编译器提供“ -source 1.6”参数,则在最后一行会出现错误: inconvertible types found : java.lang.Object required: int 我尝试下载Java SE 6以使用本机版本6编译器进行编译(没有任何-source选项)。它同意并给出与上述相同的错误。 那有什么呢?从更多的实验来看,Java 6中的拆箱似乎只能拆装明显(在编译时)属于装箱类型的值。例如,这在两个版本中都适用: Integer[] objs = new Integer[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; 因此,似乎在Java …
107 java  casting  java-7  unboxing 

5
JVM为什么不缓存JIT编译代码?
Sun的规范JVM实现对字节码进行了一些相当复杂的优化,以在代码运行几次后获得接近本机的执行速度。 问题是,为什么不将编译后的代码缓存到磁盘上以供以后使用同一功能/类时使用? 就目前而言,每次执行程序时,JIT编译器都会重新启动,而不是使用代码的预编译版本。当本质上解释字节码时,是否添加此功能不会大大提高程序的初始运行时间?
107 java  caching  jvm  compilation  jit 

12
如何将二进制数据嵌入XML?
我有两个用Java编写的应用程序,它们通过网络使用XML消息相互通信。我在接收端使用了SAX解析器,以从消息中获取数据。要求之一是将二进制数据嵌入XML消息中,但是SAX不喜欢这样。有谁知道如何做到这一点? 更新:我可以通过apache commons编解码器库中的Base64类进行此操作,以防其他人尝试类似的操作。
107 java  xml  binary  binary-data 


11
如何从Java应用程序运行批处理文件?
在我的Java应用程序中,我想运行一个名为“ scons -Q implicit-deps-changed build\file_load_type export\file_load_type” 的批处理文件 看来我什至无法执行我的批处理文件。我没主意了。 这就是我在Java中所拥有的: Runtime. getRuntime(). exec("build.bat", null, new File(".")); 以前,我有一个要运行的Python Sconscript文件,但由于该文件不起作用,我决定通过批处理文件调用该脚本,但该方法迄今尚未成功。



17
64位OS上32位JVM的最大Java堆大小
问题不在于32位操作系统的最大堆大小,因为32位操作系统的最大可寻址内存大小为4GB,而JVM的最大堆大小取决于可以保留多少连续可用内存。 我对了解在64位OS中运行的32位JVM的最大(理论上和实际可实现的)堆大小更感兴趣。基本上,我正在寻找类似于SO相关问题中的数字的答案。 至于为什么使用32位JVM而不是64位JVM,原因不是技术上的而是管理/官僚的-在生产环境中安装64位JVM可能为时已晚。
107 java  jvm 

4
为什么在Hibernate中需要事务才能进行只读操作?
为什么在Hibernate中需要事务才能进行只读操作? 以下事务是否在数据库中设置了锁定? 从数据库获取示例代码: Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction? //readonly operation here tx.commit() // why tx.commit? I don't want to write anything 我可以session.close() 代替使用tx.commit()吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.