小编Gee*_*eek的帖子

何时在代码中捕获RuntimeExceptions?

虽然我在程序员应该考虑抓住RuntimeExceptions的时候用Java编程吗?

java exception-handling exception

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

关于HashMap put()和get()方法如何工作的内部结构(仅基本逻辑)

当我们在HashMap类使用put()方法中放置一个键实例说"key"和一个Value实例说"value"时,HashMap该类在内部做了什么.当我们说时,它如何检索价值hashMap.get(key)

编辑:我不想在这里详细介绍,基本上是想了解更大的图景equals()以及hashcode()方法put()get()操作的作用.

java hashtable hashmap data-structures

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

为什么快速排序称为尾递归算法?

我知道在这个SO答案中写出的尾递归算法是什么.然而,我正在通过麻省理工学院的快速排序算法视频,并在18:30秒教授说这是尾递归算法.我无法连接这是如何尾递归.我们不是在递归的任何步骤进行计算,还是我们?你能解释为什么这被引用作尾递归算法的一个例子.请以我知道递归算法是什么为前提,给出答案.我不清楚的部分是为什么它被称为递归?

algorithm complexity-theory tail-recursion quicksort time-complexity

6
推荐指数
2
解决办法
4255
查看次数

何时创建Enum实例?

Enums在Java中有一个简单的问题请参考以下代码.什么时候像PropName .CONTENTS实例化实例?

public enum PropName {

  CONTENTS("contents"),
  USE_QUOTES("useQuotes"),
  ONKEYDOWN("onkeydown"),
  BROWSER_ENTIRE_TABLE("browseEntireTable"),
  COLUMN_HEADINGS("columnHeadings"),
  PAGE_SIZE("pageSize"),
  POPUP_TITLE("popupTitle"),
  FILTER_COL("filterCol"),
  SQL_SELECT("sqlSelect"),
  ;

  private String name;

  private PropName(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }
}
Run Code Online (Sandbox Code Playgroud)

java enums

6
推荐指数
2
解决办法
1087
查看次数

Java中的int.class包含什么?为什么它甚至有效?

在Java中,对于诸如的原语具有类文字是有效的int.class.甚至auto boxing在Java中引入功能之前是否允许这样做?我们得到的对象 int.class实际包含了什么?为什么有效?

java

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

为什么instanceof运算符允许使用无界外卡类型而不允许使用Java中的其他参数化类型?

我认为由于类型擦除,使用instanceofclass literals不允许parameterized generic types除外unbounded wild card types.为什么Java语言设计者允许这种异常?对于无界外卡类型,没有类型擦除的任何作用?

java generics

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

在Java中导出函数对象的最佳实践是什么?

function objects在Java 中创建(无状态对象,导出一个适用于其他对象的方法)的最佳实践是什么?

java

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

为什么类型推断算法试图找到最具体的类型?

来自Oracle的Type Inference文档

类型推断是Java编译器查看每个方法调用和相应声明的能力,以确定使调用适用的类型参数(或参数).推理算法确定参数的类型,如果可用,还确定分配或返回结果的类型.最后,推理算法试图找到适用于所有参数的最具体类型.

为了说明最后一点,在下面的示例中,推断确定传递给pick方法的第二个参数是Serializable类型:

static <T> T pick(T a1, T a2) { return a2; }
Serializable s = pick("d", new ArrayList<String>());
Run Code Online (Sandbox Code Playgroud)

为什么算法试图找到最具体的类型?

java generics

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

限定名称和字段访问表达式之间有什么区别?

受保护访问JLS详细信息:

设C是声明受保护成员的类.仅允许在C的子类S的主体内访问.

此外,如果Id表示实例字段或实例方法,则:

如果访问是通过限定名称Q.Id,其中Q是ExpressionName,则当且仅当表达式Q的类型是S或S的子类时才允许访问.

如果访问是通过字段访问表达式E.Id,其中E是主表达式,或通过方法调用表达式E.Id(...),其中E是主表达式,则允许访问当且仅当如果E的类型是S或S的子类.

限定名称字段访问表达式之间什么区别?

java jls

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

是什么让终结者如此昂贵?

来自Effective Java:

哦,还有一件事:使用终结器会有严重的性能损失.在我的机器上,创建和销毁一个简单对象的时间约为5.6 ns.添加终结器可将时间增加到2,400 ns.换句话说,使用终结器创建和销毁对象的速度大约低430倍.

是什么让终结者如此昂贵?

java finalizer

5
推荐指数
2
解决办法
394
查看次数