有一块120GB硬盘,转速为15000RPM,问该硬盘的旋转延迟时间大约为?
一分钟是15000转
60*1000/15000是每转的用时
再将结果除以2,求得硬盘的旋转延迟
屏幕密度为240的手机,1个dip是多少个像素?
Density-independent pixel (dip)
指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是dip = pixel * (dpi(屏幕密度) / 160)
1dip=1.5px
当density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
阿里巴巴有相距1500km的机房A和B,现有100GB数据需要通过一条FTP连接在100s的时间内从A传输到B。已知FTP连接建立在TCP协议之上,而TCP协议通过ACK来确认每个数据包是否正确传送。网络信号传输速度2*1000000000 m/s,假设机房间带宽足够高,那么A节点的发送缓冲区可以设置为最小
2*1500 000m(发送数据以及接收到确认报文)
3*10^6/2*10^8=0.015s
要求在100s内发送100GB数据,网络的传输速率至少是1G/s
0.015s*1G/s=1024*0.015 = 15.36
const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。
static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。
在c++中,static静态成员变量不能在类内部初始化。
在c++中,const常量成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行,并且必须有构造函数。
const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。所以不能在类声明中初始化const数据成员,因为类的对象未被创建时,编译器不知道const 数据成员的值是什么。
const数据成员的初始化只能在类的构造函数的初始化表中进行。要想建立在整个类中都恒定的常量,应该用类中的枚举常量来实现,或者static const。
如:
class Test
{
public:
Test(): a(0){}
enum {size1=100, size2 = 200 };
private:
const int a; // 只能在构造函数初始化列表中初始化,这个似乎很少用到???
static int b;
const static int c; // 与static const int c;相同,可以在这里定义(如果以后在类中需要使用该变量的话).
}
int Test::b = 0; // 不能以成员列表初始化,不能在定义处促使化,因为不属于某个对象。
const int Test:: c = 0;//注意:给静态成员变量赋值时,不在需要加static修饰。但const要加。
const 成员函数,主要的目的是防止修改对象的内容。即:int Fun() const; 不可以修改对象的数据,可以访问对象的数据,访问成员函数时,只能是const的,不能是non_const的成员函数。
static成员函数,主要的目的是作为类作用域的全局函数。不能访问类的非静态数据成员。类的静态成员函数的没有this指针,这导致:
1. 不能直接存取类的非静态成员变量,调用非静态成员函数
2. 不能被声明为virtual
下面是关于static,const,static const , const static成员的初始化问题。
1.类里的const成员初始化:
在一个类里建立一个const时,不能给它初值。像
class foo
{
private:
const int i = 100; // error !!!
public:
foo(){}
……
};
这样的初始化方式是不能通过编译的,因为在类对象里进行了存储空间分配,编译器不能知道const的内容是什么,所以不能把它用作编译期间的常量。这意味着对于类里的常数表达式来说,const就像它在C中一样没有作用。因此这个初始化工作必须发生在构造函数里,并且,要在构造函数的某个特别的地方。因为const必须在建立它的地方被初始化,所以在构造函数的主体里,const必须已初始化了,否则,就只有等待,直到在构造函数主体以后的某个地方给它初始化,这意味着过一会儿才给const初始化。当然,无法防止在在构造函数主体的不同地方改变const的值。
构造函数初始化表达式
class foo
{
private:
const int i = 100;
public:
foo(){……}
……
};
如果构造函数是在类外定义,则可以这样写:
class foo
{
private:
const int i;
public:
foo();
……
};
foo ::foo() : i (100) {……} // 初始化列表