首页 文章
  • 为什么在允许某些Unicode字符的注释中执行Java代码?

    问题 以下代码产生输出“Hello World!” (没有,试试看)。 public static void main(String... args) { // The comment below is not a typo. // \u000d System.out.println("Hello World!"); } 原因在于Java编译器将Unicode字...
  • 如何从文件内容创建Java字符串?

    问题 我一直在使用下面的成语一段时间了。它似乎是最广泛的,至少在我访问的网站上。 有没有更好的/不同的方式来读取文件到Java中的字符串? private String readFile(String file) throws IOException { BufferedReader reader = new BufferedReader(new FileReader (file)); ...
  • Java:何时使用静态方法

    问题 我想知道何时使用静态方法?假如我有一个带有一些 getter 和 setter 的类,一个或两个方法,我希望这些方法只能在类的实例对象上调用。这是否意味着我应该使用静态方法? 例如 Obj x = new Obj(); x.someMethod 要么 Obj.someMethod (这是静态方式吗?) 我很困惑! #1 热门回答(1159 赞) 一个经验法则:问问自己“即使没有构建Ob...
  • 如何检查一个 String 是否为数字

    问题 在解析字符串之前,如何检查 String 是否为数字? #1 热门回答(779 赞) 这通常使用简单的用户定义函数(即Roll-your-own“isNumeric”函数)来完成。 就像是: public static boolean isNumeric(String str) { try { double d = Double.parseDouble(st...
  • 如何在Java中编写正确的微基准测试?

    问题 你如何在Java中编写(并运行)正确的微基准测试? 我在这里寻找代码示例和注释,说明要考虑的各种事项。 示例:基准测试应该测量时间/迭代或迭代/时间,为什么? 相关阅读:Is stopwatch benchmarking acceptable? #1 热门回答(646 赞) 关于编写微基准from the creators of Java HotSpot的提示: **规则0:**阅读有关J...
  • JPA和Hibernate有什么区别?

    问题 我知道JPA 2是一个规范,Hibernate是ORM的工具。另外,我知道Hibernate比JPA 2有更多的功能。但从实际的角度来看,真正的区别是什么? 我有使用iBatis的经验,现在我正在尝试学习Hibernate或JPA2。我选了Pro JPA2书,它一直指的是“JPA提供者”。例如: 如果你认为某个功能应该标准化,你应该说出来并向你的JPA提供商索取 这让我很困惑,所以我有几...
  • Java迭代器初步探究

    Alei最近和迭代器较上了劲,之前自以为深究过迭代器,不成想原来是坐井观天,以蠡测海。上文中写的东西哪里算什么深入探究?!但亡羊补牢,犹未迟也,经我多次试验,终于弄懂其中某些精巧机制,闲话少说,我们进入正题。 注意,之后所有的知识点都以 ArrayList 这个容器类为例来进行详细说明 在讨论这个问题之前我们得首先在意两个成员变量: 1、ArrayList 类里继承于 AbstractList 类...
  • 如何将堆栈跟踪转换为字符串?

    问题 将Throwable.getStackTrace()的结果转换为描述堆栈跟踪的字符串的最简单方法是什么? #1 热门回答(1912 赞) 使用Throwable.printStackTrace(PrintWriter pw)将堆栈跟踪发送到适当的编写器。 import java.io.StringWriter; import java.io.PrintWriter; // ... St...
  • 为什么 Java 有 transient 关键字?它的作用是什么?

    问题 为什么 Java 有 transient 关键字? #1 热门回答(1387 赞) Java中的transient关键字用于指示不应序列化字段。 从Java Language Specification, Java SE 7 Edition,第8.3.1.3节。 `瞬态'领域: 变量可能被标记为瞬态以表明它们不是对象持久状态的一部分。 例如,您可能具有从其他字段派生的字段,并且只能以编...
  • 每个'循环'的Java如何工作?

    问题 考虑: List<String> someList = new ArrayList<String>(); // add "monkey", "donkey", "skeleton key" to someList for (String item : someList) { System.out.p...
  • 确定整数的平方根是否为整数的最快方法

    问题 我正在寻找最快的方法来确定long值是否是一个完美的正方形(即它的平方根是另一个整数): 我通过使用内置的Math.sqrt()函数以简单的方式完成它,但我想知道是否有办法通过将自己限制为仅整数域来更快地完成它。 维护查找表是不实际的(因为大约有231.5个整数,其平方小于263)。 这是我现在正在做的非常简单直接的方式: public final static boolean isPe...
  • 我怎样才能在Java中连接两个数组?

    问题 我需要在Java中连接两个字符串数组。 void f(String[] first, String[] second) { String[] both = ??? } 什么是最简单的方法来做到这一点? #1 热门回答(915 赞) 我从老的Apache Commons Lang库中找到了一个单线解决方案。 ArrayUtils.addAll(T [],T ...) 码: Stri...
  • Apache Camel究竟是什么?

    问题 我不明白究竟是什么Camel。 如果你可以用101个字给骆驼介绍一下: 究竟是什么? 它如何与用Java编写的应用程序交互? 是否与服务器一起使用? 它是一个独立的程序吗?**请解释骆驼是什么。 ** #1 热门回答(910 赞) 我以更容易理解的方式描述这一点...... 为了理解Apache Camel是什么,你需要了解什么是企业集成模式。 让我们从我们大概已经知道的东西开始吧:S...
  • 将项目导入Eclipse后,'必须重写超类方法'错误

    问题 任何时候我必须将我的项目重新导入Eclipse(如果我重新安装Eclipse,或者更改项目的位置),几乎所有我的重写方法都没有正确格式化,导致错误`该方法必须覆盖超类方法。 值得一提的是,这是Android项目 - 无论出于何种原因,方法参数值并不总是被填充,所以我必须亲自手动填充它们。例如: list.setOnCreateContextMenuListener(new OnCreateC...
  • Android SDK安装没有找到JDK

    问题 我试图在我的Windows 7 x64系统上安装Android SDK。安装了jdk-6u23-windows-x64.exe,但Android SDK安装程序拒绝继续,因为它找不到JDK安装。 这是一个已知的问题?有没有解决方案? #1 热门回答(1241 赞) PressBackwhen你得到通知,然后next。这次它会找到JDK。 #2 热门回答(278 赞) 实际设置: 操作...
  • 我如何创建一个文件并在Java中写入文件?

    问题 用Java创建和写入(文本)文件的最简单方法是什么? #1 热门回答(1437 赞) 请注意,下面的每个代码示例都可能抛出IOException。为简洁起见,try / catch / finally块已被省略。有关异常处理的信息,请参见this tutorial。创建一个文本文件(注意,如果文件已存在,将覆盖该文件): PrintWriter writer = new PrintWrit...
  • 在调用instanceof之前是否需要空值检查?

    问题 null instanceof SomeClass会返回false还是抛出NullPointerException? #1 热门回答(1435 赞) 不,在使用instanceof之前不需要空的检查。 如果x是'null,则表达式'x instanceof SomeClass是'false`。 来自Java语言规范,section 15.2.2, "Type comparison...
  • 迭代集合,避免在循环中移除时出现ConcurrentModificationException

    问题 我们都知道你不能这样做: for (Object i : l) { if (condition(i)) { l.remove(i); } }  ConcurrentModificationException等...这显然有效,但并非总是如此。以下是一些特定的代码: public static void main(String[] args) { Co...
  • wait()和sleep()之间的区别

    问题 线程中的wait()和sleep()有什么区别? 我的理解是wait()-ing线程仍处于运行模式并且使用CPU周期但是sleep()-ing不会消耗任何CPU周期正确吗? 为什么我们有wait()和sleep():它们的实现如何在较低的水平上变化? #1 热门回答(730 赞) 一个“等待”可以被正在等待的显示器上的另一个调用“notify”的线程“唤醒”,而“sleep”则不能。还有一...
  • Java中的SoftReference和WeakReference有什么区别?

    问题 Java中的SoftReference和WeakReference有什么区别?它们有什么不同? #1 热门回答(806 赞) 来自Understanding Weak References,作者:Ethan Nicholas: 弱引用弱引用,简单地说,是一个不足以强制对象保留在内存中的引用。弱引用允许你利用垃圾收集器为你确定可达性的能力,因此你不必自己执行此操作。你创建一个像这样的弱引用...
  • Java“双支撑初始化”的效率?

    问题 InHidden Features of Java最佳答案提及Double Brace Initialization,具有非常的语法: Set<String> flavors = new HashSet<String>() {{ add("vanilla"); add("strawberry"); add...
  • 野路子Java开发的一篇随笔

    园子的朋友们,一年半的时间大家过的还好吧?流水它带走光阴的故事改变了我们,再次的见面我们又历经了多少的路程,落花流水,冷暖自知,这一年半,关于工作上的关键词只有两个:加班(996弱多了),Java;顺利从.NET转到Java了,顺利的从单机开发到分布式开发了,之前觉得redis,mq,Es,quartz,mongo等,只是了解过,或多或少的用过,对分布式CAP理论只是了解过,到spring clo...
  • 如何在Java中将数字四舍五入到小数点后n位

    问题 我想要的是一种将double转换为使用half-up方法进行舍入的字符串的方法 - 即如果要舍入的小数是5,则它总是向上舍入到前一个数字。这是大多数人在大多数情况下期望的四舍五入标准方法。 我也希望只显示有效数字 - 即不应该有任何尾随零。 我知道这样做的一种方法是使用String.format方法: String.format("%.5g%n", 0.912385); ...
  • servlets如何工作?实例化,会话,共享变量和多线程

    问题 假设,我有一个拥有众多servlet的web服务器。对于在这些servlet之间传递的信息,我设置了会话和实例变量。 现在,如果有2个或更多用户向该服务器发送请求,那么会话变量会发生什么变化?它们对于所有的用户都是共同的吗?或者对于每个用户来说它们都会有所不同。如果它们不同,那么服务器如何能够区分不同的用户? 还有一个类似的问题,如果有'n`用户访问一个特定的servlet,那么这个serv...
  • 按属性排序自定义对象的ArrayList

    问题 我读过关于使用比较器对ArrayLists进行排序的问题,但在所有示例中,人们使用compareTo,根据某些研究,这是一种用于Strings的方法。 我想通过它们的一个属性来排序自定义对象的ArrayList:一个Date对象(getStartDay())。通常我会通过`item1.getStartDate()。(item2.getStartDate())来比较它们。所以我想知道我是否可以...
  • 我怎样才能初始化一个静态地图?

    问题 你将如何初始化Java中的静态地图? 方法一:静态初始化方法二:实例初始化(匿名子类)或其他方法? 各自的优点和缺点是什么? 这是一个说明两种方法的示例: import java.util.HashMap; import java.util.Map; public class Test { private static final Map<Integer, String&gt...
  • 为什么我不能打开一个字符串?

    问题 为什么我不能打开String? 这个功能是否会被放到更高版本的Java中? 有人可以解释为什么我不能这样做,因为Java的switch声明的工作原理是技术性的吗? #1 热门回答(952 赞) 带有String案例的switch语句已经在Java SE 7中实现,至少16年after they were first requested.A没有提供延迟的明确原因,但它可能与性能有关。 ##在...
  • 使用Android下载文件,并在ProgressDialog中显示进度

    问题 我正在尝试编写一个更新的简单应用程序。为此,我需要一个简单的函数,可以下载一个文件并显示ProgressDialog中的当前进度。我知道如何做ProgressDialog,但我不确定如何显示当前的进度以及如何首先下载文件。 #1 热门回答(1715 赞) 有很多方法可以下载文件。以下我将发布最常见的方式;您需要决定哪种方法更适合您的应用。 #1。使用AsyncTask并在对话框中显示下载进...
  • Hibernate hbm2ddl.auto可能的值和他们做什么?

    问题 我真的想知道更多关于更新,导出和可以赋予hibernate.hbm2ddl.auto的值我需要知道何时使用更新,何时不使用?还有什么选择? 这些是可能在DB上发生的变化: 新桌子 旧表中的新列 列已删除 列的数据类型已更改 一种列更改了其属性 桌子掉了下来 列的值已更改 在每种情况下,最佳解决方案是什么? #1 热门回答(907 赞) 从community documentation:...
  • 将ArrayList <String>转换为String []数组[duplicate]

    问题 这个问题在这里已经有了答案: 在Java 14答案中将'ArrayList &lt;String&gt;转换为'String []' 我在android环境中工作,并尝试了下面的代码,但它似乎并没有工作。 String [] stockArr = (String[]) stock_list.toArray(); 如果我定义如下: String [] stockArr = {&quot;...

热门问题