越深入java 就觉得java做得越烂(个人觉得应当做得更好)
近段时间,项目要求对java的内存有要求,客户希望不要老是要他们扩大内存,所以此过程中了解了一些问题。
越想觉得,java越不是。
1,基础对象占有内存 byte,char,short,int,long,float,double分别为 1,2,2,4,8,4,8,byte;
包括后Byte,Short,Integer,Long....等分别为 16,16,16,16,都是byte
本来是 1字节的 byte包装后占 16字节!! 太不象话了,白用我的内存。除了一个Object 8byte指针其它浪费。
2, Object 8byte指针,就算定义个空对象,也一样占8byte 我觉得一个指针要 8个字节吗?有必要吗?我的内存啊。
2^64= 18446744073709551616 byte =17179869184G 有可能用这么大的内存地址吗?(欢迎内行发言)。
个人觉得:6个byte足也,281474976710656 = 262144G 不知道有什么难处要用 8byte.
3, Byte 用了 16字字节,真是想不通:8(指针)+8;浪费7byte
4, Short用了 16字字节,真是想不通:8(指针)+8;浪费6byte
5, Integer 用了 16字字节,真是想不通:8(指针)+8;浪费4byte
6, Long 用了 16字字节,:8(指针)+8;没浪费。
7, Float 用了 16字字节,真是想不通:8(指针)+8;浪费4byte。
8, Double 用了 16字字节,:8(指针)+8;没浪费。
9, BigDecimal 用了 32字字节,:8(指针)+24;除指针外 16不够? 太猛了吧?吃内存啊!!!
10,object = new String(); 用了 40 字字节,:8(指针)+32;好象内存没花钱一样。
11 int[] a =new int[]{0}; 也是16字节
11 long[] a =new long[]{0}; 也是24字节
这么基础的东西,做得这样烂,java倒底怎么了? 难道为吃内存而生?
现在知道,为什么java在游戏上插不上足,这样根本是不行的。
不用对象,又难以区分数据库为空的数据,真是进退两难。
为什么java不在新版本上来个新架构啊,这样下去只有一条:死.........
------解决方案--------------------学习....
------解决方案--------------------汗啊,真不知道你是怎么算出来的
算这个有意义吗?你认为你算的准确吗?
你以为java就只吃了你列出的那些内存吗?
得了,你不如去搞C吧,内存你自己控制,想怎么搞怎么搞
哈哈~
------解决方案--------------------哇。。
------解决方案--------------------楼主是如何确定其大小的?
------解决方案--------------------不错,学习了。
------解决方案--------------------lz太猛了,能告诉大家你怎么算出来的吗?
------解决方案--------------------硬件成本越来越低了,杞人忧天啊
------解决方案--------------------我认为不是别人做的不好,而是你自己的设计可能存在着不周全而造成的。呵呵。。。
------解决方案--------------------不用对象也行啊。
只要你愿意把1 个方法 public void h(Number arg),换成 8个方法来写。
public void h(byte arg)
public void h(short arg)
……
当涉及到范型的时候,本来一个类就实现的设计,换成8个类来写。
------解决方案--------------------真的假的啊...现在内存都这么大了...这么算来算去有意思吗???
------解决方案--------------------到了必要时,会自动调用 GC的,
现在我们的系统日产数据: 300多万条(20多列),内存数据放得太多,服务器受不了。客户已经把内存加到 4G了。
....你产生了那么多数据,难道全部保存到内存中,也太强了吧
------解决方案--------------------很想知道楼主是用什么方法得出这样的结论的??
------解决方案--------------------不要总是用过程思维,OO都广告了多少年了
这些包装过后的东西:Byte,Short,Integer,Long
是对象,对象就有属性和方法,怎么会是指针+数据长度.........
再说了
你拿一个对象去和基本类型比内存占用,有意义吗?
面向对象编程的目的是什么??
------解决方案--------------------Java code
你比sun公司还牛
------解决方案--------------------
java将来会进步的
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------