标签: java

806
推荐指数
16
解决办法
27万
查看次数

如何在javadoc中引用方法?

如何使用@link标记链接到方法?

我想改变

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to getFoo().getBar().getBaz()
 * @return baz
 */
public Baz fooBarBaz()
Run Code Online (Sandbox Code Playgroud)

至

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to {@link getFoo()}.{@link getBar()}.{@link getBaz()}
 * @return baz
 */
public Baz fooBarBaz()
Run Code Online (Sandbox Code Playgroud)

但我不知道如何@link正确格式化标签.

java javadoc hyperlink

806
推荐指数
3
解决办法
42万
查看次数

JSF,Servlet和JSP有什么区别?

JSP和Servlet如何相互关联?JSP是某种Servlet吗?JSP和JSF如何相互关联?JSF是一种基于预构建UI的JSP,如ASP.NET-MVC吗?

java jsf jsp servlets java-ee

805
推荐指数
9
解决办法
41万
查看次数

如何检查Java中是否存在文件?

在打开文件以便在Java中读取之前,如何检查文件是否存在?(相当于Perl的-e $filename).

关于SO的唯一类似问题涉及编写文件,因此使用FileWriter回答,这显然不适用于此处.

如果可能的话,我更喜欢真正的API调用返回true/false,而不是某些"调用API来打开文件并在它抛出异常时捕获,你在文本中检查'没有文件'",但我可以忍受后者.

java io file-io

802
推荐指数
13
解决办法
111万
查看次数

如何将char转换为String?

我有一个char,我需要一个String.我如何从一个转换为另一个?

java string type-conversion char

801
推荐指数
8
解决办法
107万
查看次数

什么是Maven Snapshot,为什么我们需要它?

我对Maven Snapshot的含义以及为什么要构建一个它有点困惑?

java dependency-management maven

799
推荐指数
9
解决办法
30万
查看次数

793
推荐指数
17
解决办法
30万
查看次数

如何计算方法在Java中的执行时间?

如何获得方法的执行时间?是否有Timer实用程序类用于计算任务需要多长时间等等?

Google上的大多数搜索会返回计划线程和任务的计时器的结果,这不是我想要的.

java timing

792
推荐指数
26
解决办法
65万
查看次数

如何在Android中发现我的应用程序的内存使用情况?

如何以编程方式找到我的Android应用程序上使用的内存?

我希望有办法做到这一点.另外,我如何获得手机的免费记忆?

java memory android memory-management

787
推荐指数
7
解决办法
30万
查看次数

Java"双支撑初始化"的效率?

在Java的隐藏功能中,最佳答案提到了Double Brace Initialization,它具有非常诱人的语法:

Set<String> flavors = new HashSet<String>() {{
    add("vanilla");
    add("strawberry");
    add("chocolate");
    add("butter pecan");
}};
Run Code Online (Sandbox Code Playgroud)

这个成语创建了一个匿名内部类,其中只包含一个实例初始化程序,"可以使用包含作用域中的任何[...]方法".

主要问题:这听起来效率低吗?它的使用是否应限于一次性初始化?(当然炫耀!)

第二个问题:新的HashSet必须是实例初始化程序中使用的"this"...任何人都可以了解机制吗?

第三个问题:在生产代码中使用这个成语是否过于模糊?

简介:非常非常好的答案,谢谢大家.在问题(3)中,人们认为语法应该是清楚的(尽管我建议偶尔发表评论,特别是如果你的代码会传递给可能不熟悉它的开发人员).

在问题(1)上,生成的代码应该快速运行.额外的.class文件会导致jar文件混乱,并且会稍微减慢程序启动速度(感谢@coobird测量它).@Thilo指出垃圾收集可能会受到影响,在某些情况下,额外加载类的内存成本可能是一个因素.

问题(2)对我来说最有趣.如果我理解答案,那么DBI中发生的事情是匿名内部类扩展了由new运算符构造的对象的类,因此具有引用正在构造的实例的"this"值.井井有条.

总的来说,DBI让我感到非常好奇.Coobird和其他人指出,您可以使用Arrays.asList,varargs方法,Google Collections和提议的Java 7 Collection文字获得相同的效果.Scala,JRuby和Groovy等较新的JVM语言也为列表构建提供了简明的符号,并且与Java良好地互操作.鉴于DBI使类路径混乱,减慢了类加载速度,并使代码更加模糊,我可能会回避它.但是,我打算在一位刚刚获得SCJP的朋友身上发表这篇文章,并且喜欢关于Java语义的好朋友!;-) 感谢大家!

7/2017:Baeldung 对双支撑初始化有很好的总结,并认为它是一种反模式.

12/2017:@Basil Bourque指出,在新的Java 9中你可以说:

Set<String> flavors = Set.of("vanilla", "strawberry", "chocolate", "butter pecan");
Run Code Online (Sandbox Code Playgroud)

这肯定是要走的路.如果您遇到早期版本,请查看Google Collections的ImmutableSet.

java collections performance initialization

786
推荐指数
10
解决办法
12万
查看次数