一条经验法则:问问自己“即使没有构造对象,调用这个方法是否有意义?”如果是这样,它应该定义成静态的。 所以在类Car中你可能有一个方法double convertMpgToKpl(double mpg)应当是静态的,因为人们可能想知道35mpg转换成什么,即使没有人曾经建立过汽车。但是void setMileage(double mpg)(设置一个特定的汽车的效率)不能是静态的,因为无法想象在任何Car被构造之前调用该方法。
DummyBean dum = new DummyBean(); dum.setDummy("foo"); System.out.println(dum.getDummy()); // prints 'foo'
我可以用什么程序来反编译类文件?我真的会得到Java代码吗,还是仅仅是Java虚拟机汇编代码? 在这个网站上的Java性能问题中,我经常能看到一些人的回答,他们通过“反编译”Java类文件来看到编译器如何优化某些事。
JDK和JRE之间有什么区别? 他们的角色是什么,我应该什么时候使用JDK和JRE?
如何获取方法的执行时间?是否有一个Timer实用程序类为时间一个任务需要多长时间等? 大多数在Google上的搜索返回结果是计时器调度线程和任务,这不是我想要的。
我有一个以下的JSON文本要解析,比如获得其中的pageName, pagePic, post_id。代码是怎样的?
作为Java开发新手遇到的一个常见问题是,他们的程序无法运行并带有错误提示:Could not find or load main class(无法找到或者加载主类) ... 这句话是什么意思?这个错误是什么原因导致的?如果你遇到这个问题,你是如何解决的?
标志Xmx指定了Java虚拟机(JVM)的最大内存分配池的大小,而Xms指定初始内存分配池的大小。 这意味着你的JVM将以Xms内存量启动,并且能够使用最大为Xmx的内存量。举个例子,若代码如下,将会以256MB的内存量启动JVM,并将允许该进程使用高达2048MB的内存:
我会像下面这样创建一个Set:
Set myset = new HashSet()
你这样做是为了记录的目的吗?如果是这样,有一些库是解决这个问题的。其中最流行的是Log4j和Logback。 Java 7: 如果你只需要这样做一次,使用Files类会相当容易: