2013-06-20 115 views
3

我從一個Tomcat進程越來越hs_err_pid fatal logs,和裏面的日誌,它說在Java中的「Chunk :: new」中,「::」(雙冒號)是什麼意思?

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# java.lang.OutOfMemoryError: requested 1035152 bytes for Chunk::new. Out of swap space? 
# 
# Internal Error (allocation.cpp:215), pid=2060, tid=3980 
# Error: Chunk::new 
# 
# JRE version: 6.0_21-b07 
# Java VM: Java HotSpot(TM) Server VM (17.0-b17 mixed mode windows-x86) 
# If you would like to submit a bug report, please visit: 
# http://java.sun.com/webapps/bugreport/crash.jsp 
# 

我的問題是沒有專門關於OutOfMemoryError異常,但如何解釋Chunk::new短語。

我看到here顯然雙冒號是Java中的一個運算符,但我不確定它的功能。這與我的情況有什麼關係?

+1

這是一個cpp錯誤... – mre

+0

這是一個錯誤描述,而不是一個操作符。 – NINCOMPOOP

+1

這是一個本地代碼錯誤,而不是Java。這是一個'c'構造,與Java中的點相同。 –

回答

8

它在版本8之前並不代表Java中的任何內容(請參閱this question)。

你看到的是指C++代碼。第一個詞是類名,第二個是方法名。 ::本身被稱爲Scope resolution operator

你得到的錯誤是來自JVM本身的C++代碼。

+1

而'new'運算符恰好在http://hg.openjdk.java.net/jdk7/hotspot/hotspot的'src/hotspot/src/share/vm/memory/allocation.ccp'行311中定義。如果存在一個關心的其他靈魂:)。 –

+0

現在它意味着一個東西https://stackoverflow.com/questions/20001427/double-colon-operator-in-java-8 –

+0

愚蠢的進步進展......我已經更新了Java 8之前的答案。 – sharakan

0

這表示Java未能從操作系統獲取更多內存。

您正在使用的JVM是在C++上開發的。但JVM的東西是供應商特定的。

與此運算符無關。

相關問題