我最近在接受采访时遇到了一个问题.问题表示为 - >假设您无法访问Jdk API中的System类,也无法使用ECHO,您在JRE 5环境中,如何在控制台上打印任何内容?问题真正开始于 - 为什么Java给了我们PrintStream对象System.out ??为什么它是最终的?没有任何其他方法可以在控制台上打印任何东西.
尝试写入.xlsx文件时JVM崩溃.我正在使用POI(XSSF).代码中的错误位置点是写入method--> workBook.write(fileOutputStream);
在控制台我得到..
A fatal error has been detected by the Java Runtime Environment:
SIGBUS (0x7) at pc=0xb68d77f3, pid=14653, tid=1849355120
JRE version: 7.0_04-b20
Java VM: Java HotSpot(TM) Server VM (23.0-b21 mixed mode linux-x86 )
Problematic frame:
C [libzip.so+0x47f3] newEntry+0x73
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
If you would like to submit a bug report, please visit:
http://bugreport.sun.com/bugreport/crash.jsp
The crash happened outside the Java …Run Code Online (Sandbox Code Playgroud) 我试图在Linux Ubuntu v10.x上启动启动画面.但是SplashScreen班级的方法正在回归null
SplashScreen.getSplashScreen()
Run Code Online (Sandbox Code Playgroud)
应该是什么原因?
我无法使用我自己的Comparator实现通过Collections.sort()对我的集合进行排序.抛出的异常是 - >"IllegalArgumentException:比较方法违反了它的一般契约!在我的OrdersBean中,我已经覆盖了hashCode,如下所示:
@Override
public int hashCode() {
return this.getServiceOrderName().toUpperCase().hashCode();
}
Run Code Online (Sandbox Code Playgroud)
我没有过度使用equals()并仅使用Object类(不应该是我觉得的问题).
我已经将比较器实现为:
public static final Comparator<OrdersBean> ordersComparator=new Comparator<OrdersBean>() {
@Override
public int compare(OrdersBean first, OrdersBean second)
{
if(Double.parseDouble(first.getPriority())<Double.parseDouble(second.getPriority()))
return -1;
else
if(Double.parseDouble(first.getPriority())>Double.parseDouble(second.getPriority()))
return +1;
else
{
if((first.getPlatformType().equalsIgnoreCase("EV-DO Carrier ADD")) &&
(second.getPlatformType().equalsIgnoreCase("EV-DO Carrier ADD")))
return -1;
if((first.getPlatformType().equalsIgnoreCase("T1 Augment")) &&
(second.getPlatformType().equalsIgnoreCase("T1 Augment")))
return -1;
if(first.getPlatformType().equalsIgnoreCase("EV-DO Carrier ADD"))
return -1;
else
if(second.getPlatformType().equalsIgnoreCase("EV-DO Carrier ADD"))
return +1;
else
if(first.getPlatformType().equalsIgnoreCase("T1 Augment"))
return -1;
else
if(second.getPlatformType().equalsIgnoreCase("T1 Augment"))
return +1;
else
return -1;
}
}
}; …Run Code Online (Sandbox Code Playgroud) 我已经坚持了一段时间了,实际上我有两个对象,根据我的相同,我已经覆盖了hashCode方法来为两者创建相同的哈希码,当我使用"=="比较它们是否相等时对象的等于(它也使用"=="),它向我返回false,下面的场景应该完全解释:::
1)HashCode-->-626561382 AND 2)HashCode--->-626561382
1)IdentityHashCode-->19640463
2)IdentityHashCode-->22330755
1)Bean1=beans.OrdersBean@daa76e9a AND 2)Bean2=beans.OrdersBean@daa76e9a
Check MySelf for(==)-->false
Check Object's Equals()-->false
Run Code Online (Sandbox Code Playgroud)
请你解释一下为什么会这样?????