Java中的堆内存和字符串常量池有什么区别?