草庐IT

gc_collect_cycles

全部标签

java - org.hibernate.AnnotationException : Collection has neither generic type or OneToMany. 目标实体()

我使用Hibernate工具生成我的HibernatePOJO映射。不幸的是,Hibernate工具生成的代码似乎无法工作,我得到了异常org.hibernate.AnnotationException:集合既没有泛型类型也没有OneToMany.targetEntity()产生异常的代码部分是/***ClassFlaggeneratedbyhbm2java*/@Entity@Table(name="class_flag",catalog="incbszdb")publicclassClassFlagimplementsjava.io.Serializable{..../*HERE*/

java - 如何从 Iterable/Collection 创建 TreeMultimap?

我正在尝试修剪TreeMultimap,并返回相同结构的TreeMultimap(但已修剪)。例如,我有不同的新闻提供者返回无序新闻。我需要按日期对新闻进行排序,并在按最近日期排序的多图中维护这种排序。然后我需要能够返回最新的X新闻。每个日期,可能有很多新闻。TreeMultimaplatestNews=TreeMultimap.create(Ordering.natural().reverse(),Ordering.natural());因为TreeMultimap没有修剪或大小,我设法返回一个Iterable并用它限制结果,但是如何创建一个新的TreeMultimap来自Itera

java - 线程作为 GC 根

我有一个关于GC根的问题。我读到GC根之一是“Livethread”。那是什么意思?我一直觉得每个线程都有自己的堆栈,堆栈的局部变量是线程的GC根,现在我很困惑。线程表示还有哪些不在帧堆栈或native堆栈上的其他类型的对象引用?另一个问题是新生代收集是使用GC根,还是仅用于主要算法?谢谢更新:好的,抱歉,为了简单起见:我读过这篇简短的文章:yourkit.com/docs/java/help/gc_roots.jsp并且有一个“线程”选项作为GC根,这到底意味着什么线程是一个GC根?ThreadGCroot引用了哪些对象,但其堆栈未引用哪些对象?为什么这两个类别不同?

java - 采访 : Design an iterator for a collection of collections

为java中的集合设计一个迭代器。迭代器应该隐藏嵌套,允许您迭代属于所有集合的所有元素,就好像您在处理单个集合一样 最佳答案 这是一个老问题,但如今(2019年)我们有了JDK8+好东西。特别是,我们有流,这使得这个任务变得简单:publicstaticIteratorflatIterator(Collection>collections){returncollections.stream().filter(Objects::nonNull).flatMap(Collection::stream).iterator();}我正在过滤

java - 使用 Jackson 实现 Collection 的类的反序列化失败

我有以下JSON:{"item":[{"foo":1},{"foo":2}]}这基本上是一个包含项目集合的对象。所以我做了一个类来反序列化:publicclassItemList{@JsonProperty("item")Listitems;//Getters,setters&co.//...}到目前为止一切正常。现在,为了让我在其他地方的生活更轻松,我决定能够迭代ItemList对象并让它实现Collection接口(interface)会很好。所以基本上我的类(class)变成了:publicclassItemListimplementsCollection,Iterable{@J

java - 为什么将 GC 限制为 1 个线程会提高性能?

我编写了一些简单的Java代码来人为地使用大量RAM,我发现当我使用这些标志时获得相关时间:1029.59seconds....-Xmx8g-Xms256m696.44seconds.....-XX:ParallelGCThreads=1-Xmx8g-Xms256m247.27seconds.....-XX:ParallelGCThreads=1-XX:+UseConcMarkSweepGC-Xmx8g-Xms256m现在,我明白了为什么-XX:+UseConcMarkSweepGC会提高性能,但是为什么当我限制为单线程GC时我会得到加速?这是我写得不好的Java代码的产物,还是这也适

java - "java.lang.OutOfMemoryError: GC overhead limit exceeded"中 GC 时间过长的持续时间

偶尔,在每2天一次到每2周一次之间,我的应用程序在代码中看似随机的位置崩溃并显示:java.lang.OutOfMemoryError:超出GC开销限制。如果我用谷歌搜索这个错误,我会找到thisSOquestion这让我找到了thispieceofsundocumentation其中解释:TheparallelcollectorwillthrowanOutOfMemoryErroriftoomuchtimeisbeingspentingarbagecollection:ifmorethan98%ofthetotaltimeisspentingarbagecollectionandle

java - Stream collect with Generic 类型

我尝试在将json反序列化为pojo的方法中使用泛型,以便它可以返回任何对象类型。这是我的代码:privateBla(Listas,Listbs){this.as=as;this.bs=bs;}publicstaticBlafrom(JsonObjectjson){returnnewBla(Bla.load(json,As),Bla.load(json,Bs));}privatestaticListload(JsonObjectjsonObject,Stringparam){returnjsonObject.getJsonArray(param).stream().map(Bla::g

java - 为什么Stream <T> collect方法返回不同的键顺序?

我有以下代码:publicenumContinent{ASIA,EUROPE}publicclassCountry{privateStringname;privateContinentregion;publicCountry(Stringna,Continentreg){this.name=na;this.region=reg;}publicStringgetName(){returnname;}publicContinentgetRegion(){returnregion;}@OverridepublicStringtoString(){return"Country[name="+n

java - 计算 Java 服务器中 GC 时间的百分比

我正在使用jstat获取GC操作的总累计时间,即GCT所以,假设GCT是2秒,我的JVM进程启动了60秒,我是在四核服务器上运行,所以我的GC百分比是2/60*4=0.83%我上面的计算是否正确? 最佳答案 不,您的计算不准确,因为这样一来,您就不知道操作系统允许您的程序运行的确切时间。假设您想考虑应用程序被GC完全停止的时间(暂停时间),您可以使用以下JVM选项:-XX:+PrintGCApplicationConcurrentTime-XX:+PrintGCApplicationStoppedTime此选项将使JVM将如下内容打