Java创建双向循环链表报java.lang.OutOfMemoryError: Java heap space,是什么问题?

public class DoublyLinkedNode {
private char data;
private DoublyLinkedNode prior;
private DoublyLinkedNode next;

public DoublyLinkedNode() {
}

public DoublyLinkedNode(char data, DoublyLinkedNode prior, DoublyLinkedNode next) {
    this.data = data;
    this.prior = prior;
    this.next = next;
}
}
 /**
 * 线性表的链式存储结构-双向循环链表
 */
public class DoublyCircularLinkedList implements LinearLinkedList {

    private DoublyLinkedNode head;

    public DoublyCircularLinkedList() {
        head = new DoublyLinkedNode();
        head.setPrior(head);
        head.setNext(head);
    }

            /**
     * 尾插法建表
     *
     * @param data
     */
    @Override
    public void createListTail(char data) {
        DoublyLinkedNode temp = new DoublyLinkedNode(data, head.getPrior(), head);
        head.getPrior().setNext(temp);
        head.setPrior(temp);
    }
}

head.getPrior()代码在哪里?其中是不是有递归调用自身的代码造成内存溢出

如果你用win
/tomcat/bin/catalina.bat 加上下面的命令:
set JAVA_OPTS=-Xms32m -Xmx256m
如果你用unix/linux
/tomcat/bin/catalina.sh 加上下面的命令:
JAVA_OPTS="-Xms32m -Xmx256m"

是否有递归调用
是否有大量循环或死循环
全局变量是否过多
数组、List、map数据是否过大
使用DDMS工具进行查找大概出现栈溢出的位置
使用jdk提供的jstack在dos窗口进行堆栈的状态查看
考虑下是否在运行的时候,是否进行了扩容的操作

应该是跑了一会儿才会报吧,预估是死循环了。