草庐IT

system_foo

全部标签

java - 泛型和通配符 : Java likes "new Foo<Bar<?>>"

好的,所以Java不允许以下内容:Foohello=newFoo();这是有道理的——毕竟,如果您只是想装箱/拆箱所有东西,泛型有什么意义呢?奇怪的是,Java确实允许这样做:Foo>howdy=newFoo>();诚然,这实际上完成了更多,但在某些时候,会有一个转换来获取Bar正在使用的任何内容。但是,如果Java可以接受一些特殊性,为什么它不允许这样做呢?:Foobonjour=newFoo();我问的唯一原因是我决定依赖“构造函数的类参数内的通配符”,并且非常想知道它背后的含义/意图。编辑:为了澄清我的问题,允许/禁止这些陈述的理由是什么?我知道“Java不允许在构造函数中使用通

java - 关于 system.out,需要说明

我在看某人的代码,看到他反复声明PrintStreamout=System.out;后来调用out.println("blah");我实际上认为这有点整洁。这是一种常见的做法吗?他只是在幻想吗? 最佳答案 这是一个合理的方法。他基本上是为System.out创建一个别名。有很多优点:减少打字。以后更容易更改代码以输出到不同的PrintStream。可能会提高性能,但可以忽略不计。 关于java-关于system.out,需要说明,我们在StackOverflow上找到一个类似的问题:

Java导入类System

我有一个关于类导入的问题,如果你已经导入了类,你似乎可以调用一个减少行的方法。我不明白这个操作的名称是什么,怎么可能...例如:为什么要写这段代码publicclasstest{publicstaticvoidmain(Stringargs[]){System.out.print("Test");}}可以替换为importstaticjava.lang.System.out;publicclasstest{publicstaticvoidmain(Stringargs[]){out.print("Test");}}如果您还有一个名为“out”的对象会怎样?提前致谢

java - System.currentTimeMillis() 返回的值是否受夏令时和闰秒调整的影响?

我知道System.currentTimeMillis()给出了自纪元以来的毫秒数,它对系统的挂钟时间很敏感。我也知道在测量时间的程序中使用System.currentTimeMillis()来计算耗时是不可取的。Java库为此提供了System.nanoTime()。我有两个关于System.currentTimeMillis()的具体问题:它会受到闰秒调整的影响吗?我认为答案是是,因为系统的挂钟时间会因为闰秒而调整。当DST(夏令时)打开/关闭时它会受到影响吗?当时间突然从23:59变为2:00时会发生什么?由于系统时钟实际上发生了变化,我认为答案还是是,但我想与社区核实一下。

java - 在 try 或 catch block 上调用 return 语句或 System.exit

我在面试中被问到以下问题:WhatwillhappenifonecallsareturnstatementorSystem.exitontryorcatchblock?Willfinallyblockexecute?finallyblock是否总是被执行?编辑:在java中尝试以上操作后:finally如果我将return语句放在tryblock或catchblock中,block就会执行,但是如果我调用System.exit形式的try或catch,finallyblock不会运行。虽然我不明白背后的原因。 最佳答案 Whatwi

java - 从 List<Foo> 到 Map<String, List<Foo>> : looking for a better implementation

让我给你看我的代码:Foo类publicclassFoo{Stringcode;Stringvalue;publicFoo(Stringcode,Stringvalue){super();this.code=code;this.value=value;}//getters/setters}主要方法(关注getFooMultiMapCode()方法):publicclassFooMain{publicstaticvoidmain(String[]args){Foofoo1=newFoo("100","foo1");Foofoo2=newFoo("200","foo2");Foofoo3=

java - 如何覆盖(不是 OOP 覆盖)System.out.print() 的输出?

有什么方法可以覆盖System.out.print()的输出?这是我正在尝试做的事情:System.out.print("ABCDEFGHIJKL");将打印:ABCDEFGHIJKL现在我想编写一个方法来覆盖特定位置的输出。类似的东西,override(7,"XYZ");应该输出ABCXYZGHIJKL这些应该直接在控制台中发生。 最佳答案 创建您自己的PrintStream-例如公共(public)类YourPrintStream扩展了PrinterStream。重写print(Strings)方法并按您喜欢的方式更改其中的字符

java - "import foo.*"不应该也包括子包 "foo.bar.*"吗?

在学习Java时,我想到了许多教程中的一个对我来说相当令人困惑的特性。考虑示例教程中的以下两个导入:importjava.awt.*;importjava.awt.event.*;第一行显然导入了java.awt包,第二行导入了awt的子包。但是asterix不应该包含所有子包吗?因此,第一行应该可以解决问题-不需要第二行吗?如果不是:那么星号的真正用途/用途是什么?例如,在MySQL中使用SELECT*FROMfoo从表中选择所有字段,也许我愚蠢地认为这自然是这种情况。 最佳答案 不,包是作为一个整体。尽管按层次结构考虑它们通常很

java - 我怎么知道谁调用了 System.gc()?

在一个正在运行的系统中,我们看到很多“FullGC(System)”,这表明有人触发了System.gc()。有没有办法找出代码中发生这种情况的位置?我确实搜索了所有可用的源,但没有发现任何可疑的东西,所以它一定在某个地方,可能是在同一个容器中运行的另一个应用程序或容器本身。 最佳答案 您可以更改运行时类以记录在文件中调用gc()的位置(System.gc()调用Runtime.gc())为此,编辑一个副本,编译它并将其添加到您的-Xbootclasspath/p:然而,大量的FullGC更有可能是由于幸存者空间不足或完全永久空间造

java - 使用 System.currentTimeMillis() 测量时间差

我有一个简单的java程序,我想知道一些操作集之间的时间差。对于这个问题,细节并不重要,但让我们来看以下场景。longbeginTime=System.currentTimeMillis();//Someoperations.Letusasssumesomedatabaseoperationsetc.whicharetimeconsuming.//longendTime=System.currentTimeMillis();longdifference=endTime-beginTime;当代码在机器上运行时,差异的可靠性如何?假设处理器开始执行我的代码中的一些指令,然后将上下文提供给