一个byte[]数组 假如我定义它的大小为byte[100] 但这个数组我只用了其中的一小部分 在存入数据库时 那它所占的空间是按分配的100的空间 还是按实际我存了多少数据?求高人指教!

解决方案 »

  1.   

    我存的是MS SQLServer的image字段
      

  2.   

    首先我声明我不是高人,只是个菜鸟,但我想你之个问题我这个菜鸟应该能足够应付
    你的问题:一个byte[]数组 假如我定义它的大小为byte[100] 但这个数组我只用了其中的一小部分 在存入数据库时 那它所占的空间是按分配的100的空间 还是按实际我存了多少数据?一个byte[]数组 假如我定义它的大小为byte[100],那在栈内存中先占个地,注意你说的是定义,你还没new,当你new的时候,也就是new byte[100],那就开始在堆内存中分配内存了,为这个数组分配个地方,这个地方有100个小格,每个小格放一个数据
    你的问题:但这个数组我只用了其中的一小部分 在存入数据库时 那它所占的空间是按分配的100的空间 还是按实际我存了多少数据?分配空间不是你用决定的,而是你New决定的,所以你new了个空间,可以放100个数据,那内存当然给你分配个地,并有100个小格,每个小格放一个数据,所以所占空间当然是按分配的100空间
    你的问题很拗口,我看的也很别扭,建议你回去看看数组的基本语法,希望对你有帮助
      

  3.   

    .....MS SQLServer的image字段是有多少放多少的.
    ----ip围观党党员三十三号记得这是MS的大数据字段都有类似的优化.
      

  4.   

    嗯,注意到一个问题,byte[100]数组并没有某个数据为null的问题。对于数据库来说,你要写入的数据没有"不满100"的概念,绝对的是"一直是满的"....----ip围观党党员三十三号更正自己的错误