我在服务器应用程序中使用 HttpSession。并为 session 设置属性。我接下来的问题是: session 的属性如何设置——通过引用或值。
担心不会java堆空间异常和RAM节省的问题。
例如:如果我将创建无状态 array1
并将其设置为不同 session 的属性。在这种情况下,所有 session 都将使用 array1
作为“单例”实例,也可能不是
谢谢!
最佳答案
在 Java 中,所有对象(包括数组)都是通过引用 传递的。因此,如果将同一个数组实例存储到多个 HttpSession
中,它们将共享。数组的大小无法修改,但它的元素可以修改 - 无论它们是基元还是引用,因此在 Servlet 等高并发环境中必须小心。
您可能需要注意的另一个方面是 HttpSession
的所有属性 应该 是可序列化的。
关于java - HttpSession 通过引用或值存储属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585315/