小编pyt*_*ude的帖子

尝试打印堆栈跟踪时出现StackOverflowError

尝试将stacktrace打印到控制台时,我得到了以下stacktrace:

java.lang.StackOverflowError
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.write(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source)
at java.io.OutputStreamWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at java.lang.Throwable.printStackTrace(Throwable.java:461)
at java.lang.Throwable.printStackTrace(Throwable.java:451)
...
Run Code Online (Sandbox Code Playgroud)

以前有人见过这样的东西吗?可能是什么导致了这个?(不幸的是我收到了用户的堆栈跟踪,所以我不能说JVM配置是否以任何方式被更改.)

导致这种情况的方法调用是一个简单的catch-and-print,如下所示:

try {
  ...
  File canFile = new File(path).getCanonicalFile();
  ...
} catch (IOException e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

虽然我不能再发布任何代码,但我可以保证getCanonicalFile调用抛出了IOException,因为这是try-clause中唯一可以抛出IOException的调用.

java stack-overflow stack-trace

4
推荐指数
1
解决办法
1965
查看次数

选择常量的值

我从未真正理解的一件事是为什么在许多库中,常量定义如下:

public static final int DM_FILL_BACKGROUND = 0x2;
public static final int DM_FILL_PREVIOUS = 0x3;
public static final int TRANSPARENCY_MASK = 1 << 1;
public static final int TRANSPARENCY_PIXEL = 1 << 2;
Run Code Online (Sandbox Code Playgroud)

怎么了0x和<<东西?为什么人们不只是使用普通的整数值?

hex bit-manipulation constants

2
推荐指数
1
解决办法
85
查看次数

二进制搜索的用法示例

我刚刚意识到,在我4年多的Java编程(主要是桌面应用程序)中,我从未在Arrays类中使用二进制搜索方法来实现任何实际操作.从来没有.我能想到的一些原因:

  1. 100%的时间你可以逃脱线性搜索,地图或其他不是二元搜索的东西.
  2. 传入的数据几乎从不排序,并且进行排序需要额外的排序步骤.

所以我想知道这只是我,还是很多人从不使用二分搜索?什么是二进制搜索的一些好的,实用的例子?

java arrays binary-search

2
推荐指数
1
解决办法
1057
查看次数

Java的LinkedList与Scala的DoubleLinkedList

在Scala项目中,我需要一个简单的,可变的队列数据结构,我可以在一端附加项目并在另一端取出项目(即FIFO).现在,我不确定是否应该使用LinkedListJava中的普通旧版本或Scala版本DoubleLinkedList.这两者的相对优势是什么?我应该总是喜欢DoubleLinkedList,还是有充分的理由使用LinkedList?此外,还有其他值得考虑的选择吗?

queue scala linked-list fifo doubly-linked-list

1
推荐指数
1
解决办法
277
查看次数