草庐IT

信道分配

全部标签

java - 为文件存储预分配驱动器空间

是否有一种Java方法可以预分配驱动器空间供应用程序独占使用?没有要求这个空间是一个单独的文件系统或现有文件系统的一部分(因此可以很容易地成为一个数据库),但它应该允许保留指定的空间量并允许随机读/写具有高足够的吞吐量。 最佳答案 这是我基于JNA的fallocate解决方案的精简版。主要技巧是获取native文件描述符。到目前为止,我只在Linux上测试过它,但它应该适用于所有现代POSIX/非Windows系统。在Windows上没有必要,因为默认情况下Windows不会创建稀疏文件(仅使用StandardOpenOption.

java动态内存分配?

为什么使用new关键字的对象初始化称为动态内存分配,因为编译时本身我们需要知道该对象所需的内存。另外请解释当您在heap和stack中执行ClassAobject=newClassA();时会发生什么。 最佳答案 所有Java对象都是动态分配的。您总是传递对它们的引用。这就是语言的设计方式。当你这样做时:ClassAobj=newClassA();然后在堆上分配对象并将对它的引用存储在堆栈上(当然,假设它在方法内部)。这意味着您始终可以传递对象,而不必担心它们的存储位置。 关于java动

堆栈与堆上的 Java 内存分配

问这个问题我觉得自己是个新手——但为什么当我将下面的Set传递到我的方法中并将它指向一个新的HashSet时,它仍然以EmptySet的形式出现?是不是因为局部变量分配在堆栈上,所以当我退出方法时我的new被吹走了?我如何实现等效的功能?importjava.util.HashSet;importjava.util.Set;publicclassTestMethods{publicstaticvoidmain(finalString[]args){finalSetfoo=java.util.Collections.emptySet();test(foo);}publicstaticvo

java - 创建类的新实例还是分配内存空间?

更新publicFishmate(Fishother){if(this.health>0&&other.health>0&&this.closeEnough(other)){intbabySize=(((this.size+other.size)/2));intbabyHealth=(((this.health+other.health)/2));doublebabyX=(((this.x+other.x)/2.0));doublebabyY=(((this.y+other.y)/2.0));newFish(babySize,babyHealth,babyX,babyY);}retur

java - 没有封闭的实例是可访问的。必须用类型的封闭实例限定分配(例如 x.new A() 其中 x 是 的实例)

这个问题在这里已经有了答案:Whatcauseserror"NoenclosinginstanceoftypeFooisaccessible"andhowdoIfixit?(11个答案)关闭5年前。我是编程新手,明年我将在大学学习它。在我的publicstaticvoidmain中...我无法创建新的SimpleCircle。这个错误只发生在我的圈子里。非常感谢你的帮助!:)publicclassTestSimpleCircle{classSimpleCircle{doubleradius;SimpleCircle(){radius=1;}SimpleCircle(doublenewR

java - 使用 xmlelement defaultvalue 注释分配默认值的简单方法

我有一个像这样通过JAXB的简单pojo注释类:publicclassMyPojoimplementsSerializable{privatefinalstaticlongserialVersionUID=1234L;@XmlElement(name="Type",required=true,defaultValue="none")@NotNullprotectedSeismicDataAcquisitionSystemTypetype;@XmlElement(name="IpAddress",required=true)@NotNull@Pattern(regexp="((1?[0-

java - 使用 G1 时,大量 Activity 实例的分配性能会降低吗?

在将我们的一些应用程序从CMS迁移到G1时,我注意到其中一个应用程序的启动时间延长了4倍。由于GC循环导致的应用程序停止时间不是原因。在比较应用程序行为时,我发现这个应用程序在启动后携带了高达2.5亿个Activity对象(在12G的堆中)。进一步调查表明,应用程序在前500万次分配中速度正常,但随着Activity对象池的增大,性能越来越下降。进一步的实验表明,一旦达到一定的Activity对象阈值,使用G1时新对象的分配确实会变慢。我发现将Activity对象的数量加倍似乎会使该分配所需的时间增加2.5倍左右。对于其他GC引擎,该系数仅为2。这确实可以解释减速。不过,有两个问题让我

java - 传递零大小的数组,保存分配?

在TheWell-GroundedJavaDeveloper第114页的代码示例中,最后一行:Update[]updates=lu.toArray(newUpdate[0]);包含注释:传递零大小的数组,保存分配Listlu=newArrayList();Stringtext="";finalUpdate.Builderub=newUpdate.Builder();finalAuthora=newAuthor("Tallulah");for(inti=0;i这个节省的分配到底是多少?List#toArray(T[]a)的javadoc提及:Ifthelistfitsinthespeci

java - JVM中的frame是堆分配的还是栈分配的?

JVM规范(JSE8版)提到:第12页:2.5.2JVM堆栈:“因为除了推送和弹出帧之外,JVM堆栈从未被直接操作过,所以帧可能是堆分配的。”第15页:2.6:框架:“框架是从创建框架的线程的JVM堆栈中分配的。”在第16页:“请注意,一个线程创建的帧是该线程的本地帧,不能被任何其他线程引用。”这听起来让我很困惑。由于框架对于创建框架的线程是本地的,为什么在堆中分配框架,因为堆在所有JVM线程之间共享?除非这里遗漏了什么,否则这没有意义。第12页上的句子是一个有趣的陈述。有什么提示吗?谢谢。 最佳答案 JVM堆栈是一种抽象。它可以分

java - GC(分配失败)VS OutOfMemoryError 异常

'OutOfMemoryError':通常,当Java堆中没有足够的空间分配对象时会抛出此错误。GC(分配失败):AllocationFailure”表示存在大于年轻代可用空间的分配请求。这是否意味着新生代内存满时(MinorGC)会抛出AllocationFailure,fullGC会抛出OutOfMemoryError? 最佳答案 据我所知,这些可能变得相关;但它们是完全不同的东西。OutOfMemory是一个您无法从中恢复的错误-此时JVM将死掉。GC(AllocationFailure):AllocationFailure是