Java基礎(chǔ)知識:Java出現(xiàn)OutOfMemoryError
Java代碼:
java.sql.SQLException: java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:435)
at com.mysql.jdbc.PreparedStatement.getInstance(PreparedStatement.java:872)
說明程序耗盡了JVM能夠使用操作系統(tǒng)的最大內(nèi)存。
此時可以檢查代碼是否有過度創(chuàng)建對象的嫌疑。如果沒有,可以在java命令行中使用非標(biāo)準(zhǔn)的選項
Command代碼:
-Xmsp
-Xmxp
(-Xms 和 -Xmx 的第一個X必須大寫,否則無法辨認)
第一個參數(shù)指定初始內(nèi)存大小,比如設(shè)置成5M,-Xms5m .(m或M都行)
第二個參數(shù)指定最大內(nèi)存,即JVm能夠從操作系統(tǒng)中獲取的最大內(nèi)存值。比如設(shè)置成10M -Xmx10m .
一般初始大小值小于最大值。 -Xms < -Xmx
一個簡單的例子:
Command代碼:
java -Xms128m -Xmx256m