1、作者您好,我前两天参加了阿里云的一个面试,面试问了我一道题。内容为:server内存10g,xmx4g,permsize 10m。问:最多能创建多少对象?我觉得是不是还少些条件呢?单独这么说,我真不知道能创建多少个对象,求指点
你好,谈下我自己的理解哈,创建对象一般使用new所以对象放到了堆里面,这里堆最大为4g,而一个对象需要占用多少内存(比如一对象里面可能有一个大数组了),这个也没说,另外持久带放存放Class和Meta信息,这里限制为10M,也没说一个对象里面大概占用多少。所以面试官应该故意没给全条件,想让你来追问补充条件。
1024 * 10M * 1024 = byte / 8(header) = 1310720 个 最多
按一个Object内 最少有一个属性,且选最少 boolean\byte ;堆中最多存储 4294967296b * 1b 个对象
4G * 1024mb * 1024kb * 1024b = 4294967296b
所以 最多 1310720 个对象
64 * 50 = 298G
- 分而治之
- Bloom filter