基本概念:
在计算机科学中,bit(比特)是表示信息的最小单位,叫做二进制位,一般用0和1表示。
Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。
bit与Byte之间可以进行换算,其换算关系为:1Byte=8bit(或简写为:1B=8b);在实际应用中一般用简称, 即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。
相关使用:
在java中,基本数据类型包括byte,short,int,long,float,double,boolean,char。
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,很少用,-32768 ~ 32767
int:32 位、最常用,-2^31~2^32-1 (21 亿)
long:64 位、次常用
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使用Unicode码代表字符,
0~2^16-1(65535) 。
功能扩展
在移动开发过程中,网络请求是必不可少的,大部分都是一些简单的Get请求,少部分是一些文件上传之类的Post请求,但是网络请求的响应时间往往不同,这到底和那些因素有关呢?
首先需要理解几个概念,服务器带宽,上行速率以及下行速率。
服务器带宽:单位,bps(比特每秒bit per second),网络供应商所说的100M带宽,指的就是100Mbps(100兆比特每秒)。
上行速率:单位,bps(比特每秒bit per second)。
下行速率:单位,bps(比特每秒bit per second)。
上传速度:Bps(字节每秒Byte per second)=B/s,一般需要上传文件的时候才用
下载速度:Bps(字节每秒),一般我们所说的下载速度就是指这个。
相信大家已经很清楚了,一般网络供应商所说的几兆几兆带宽和我们平时理解的下载速度多少兆每秒,不是一个单位。100Mbps带宽,按理论数值来讲,其下载速度应该是100/8=12.5MB/s(注意区分大B小b),但是因为中途传输损耗,应该能达到10M/s就不错了,而上传文件的速度是下载速度的十分之一(因为实际需求问题,一般上行速率远小于下行速率,甚至下行速率是上行速率的3倍、5倍、10倍都有可能,腾讯云服务器那边就是粗略算10倍。),即实际上传文件的速度只有1.25M/s。
1T=1024G,1G=1024M,1M=1024KB,1KB=1024B,B=Byte(字节)。
现在的一些软件开发类的小公司,一般自己是不搭建服务器的,他们更愿意去租用一些现成的服务器,比如腾讯云服务器、阿里云服务器。在租用的时候就会按情况付费,人家会问你选择多大的带宽之类的。
比如我们公司就是租的腾讯云服务器,4M带宽一台——按带宽计费,1M带宽两台——按带宽计费,100M带宽——按流量计费。
按带宽计费按照腾讯那边的解释就是,10M带宽以下,都提供10M带宽的服务,上行速率和下行速率都按10M的标准来。(实际测着也不尽然,4M的和10M的差不多一样,1M的完全达不到)。10M带宽以上,按实际带宽的速率提供服务。每多加1M,N多钱啊,具体的请咨询腾讯那边,个人觉得腾讯巨坑。
所以我们用APP往我们4M带宽的服务器上传一个10M(10*1024*1024字节)的视频,
理论上传速度是(10M以下带宽全按10Mbps算)10Mbps=10*1024Kbps,除以8,再除以10,即128KBps,然后我进行大量实际上传测试,实际上传速度在125KBps左右。我上传一个10M的视频需要10*1024/128=80秒,实际测试,只要把网络请求的超时时间放开无限制,80秒左右确实能上传成功,不过完全不能满足需求,后来我们选择了重新购买一台100M按流量计费的服务器。
100Mbps带宽的服务器,我现在上传一个10M的视频,不到8s左右就可以完成。(此时上行速率可能比下行速率的十分之一大)
按流量计费,腾讯云那边是按实际的带宽提供下行速率,粗略计算上行速率为下行的十分之一,根据使用总流量进行收费,1G=0.8元。
一个网络请求是否成功响应,除了服务器端,移动端的网络情况也不可忽视。现提供各大主网络运营商的上行速率及下行速率截图,自己推算吧,期待5G的到来!
3G时代:(计算后转换为大众所认知的下载速度,人们比较习惯KB/s作单位)理论速度
中国电信:下载速度=3.1Mbps/8=3.1*1024/8=396.8KB/s 上传速度=1.8*1024/8=230KB/s
中国移动:下载速度=2.8*1024/8=358.4KB/s 上传速度=384/8=48KB/s
中国联通:下载速度= 7.2*1024/8=921.6KB/s 上传速度= 5.76*1024/8=737.28KB/s
____________________________________________________________________________
4G时代:(计算后转换为大众所认知的下载速度,人们比较习惯MB/s作单位)理论速度
中国电信:下载速度=100/8=12.5MB/s 上传速度=50/8=6.25MB/s
中国移动:下载速度=100/8=12.5MB/s 上传速度=50/8=6.25MB/s
中国联通:下载速度=100/8=12.5MB/s 上传速度= 50/8=6.25MB/s
可以看到,4G时代,各大网络运营商标准更加统一,速度更加快速,不过,以上数值仅代表理论值,至于在传输过程中的损耗有多大,那就不得而知了