黑马程序员技术交流社区

标题: 关于数组 [打印本页]

作者: 侯伟浩    时间: 2011-11-22 11:58
标题: 关于数组
本帖最后由 hou3172568 于 2011-11-22 18:53 编辑

比如我要用byte数组接受服务器发来的数据,但是又不知道那些数据是多大,我该怎么定义数组的大小呢?
作者: 杨玉揆    时间: 2011-11-22 12:00
一般都是定义1024 你也可以根据传来的数据而定 但是最好就不要定义的太大 因为虚拟机的内存有限
作者: 侯伟浩    时间: 2011-11-22 12:04
1024的话接收图片就不够用了
作者: moonlight    时间: 2011-11-22 12:13
你的理解是你定义一个byte数组一次性的把服务器的东西转移到数组中吧,其实你对它理解错了,其实是这样的,你每次读取byte[]数组长度个字节,也就是说,你byte数组长度多少,就读取多少到byte数组里,相当于byte是一个中转站,满了以后会自动处理然后再重新读取剩余数据,知道吧数据读完。
作者: 侯伟浩    时间: 2011-11-22 13:19
例如用udp协议接收服务器端传来的数据,怎么定义byte的长度?
作者: 王丰盛568    时间: 2011-11-22 13:33
数组是一个类型一致,长度不可变的容器。可以通过索引操作容器中的每一个元素。
如果有多个类型相同的数据需要存储,我们就可以将其定义为一个数组,这样做省去了创建多个变量的麻烦。
存在数组中的数据是有索引的,从0开始递增,我们通过数组名和索引就可以操作其中每一个元素。例如:
        System.out.println(arr[0]);                // 打印数组中索引为0的元素
        arr[1] = 100;                // 给数组中索引为1的元素赋值为100

数组的长度
        数组可以使用length属性获取其长度。

遍历数组
        由于数组可以通过索引获取每一个元素,又可以通过length获取长度,那么我们就可以定义循环来遍历数组中的每一个元素了。


作者: 任俊杰    时间: 2011-11-22 15:09
一般太大也不好,太小也不好,一般传数据大约常在哪个范围,如果这个范围不是太大,那么就可以定义为这个范围。如果这个范围的最大值太大那么一般就要考虑虚拟机了,一般定义为1024的整数倍。
作者: 高庆亮    时间: 2011-11-22 15:11
定一个缓冲流就应该能解决了吧!
作者: 侯伟浩    时间: 2011-11-22 16:38
还是没弄明白




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2