1、 java关于异常处理机制的叙述哪些正确(BC)
catch部分捕捉到异常情况时,才会执行finally部分
当try区段的程序发生异常时,才会执行catch区段的程序
在try区段不论程序是否发生错误及捕获到异常错误,都会执行finally部分
以上都是
解析:
1.try和catch语句
●将要处理的代码放入try块中,然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块,每个都处理不同的异常。每个catch中的参数都是Exception的子类。
2.finally语句
●finally语句定义一个总是执行的代码,而不考虑异常是否被捕获。
3.throw引起一个异常
●调用申明抛出异常
●throw语句强制抛出异常
2、下面哪一个选项是应用层的协议(B)
TCP
FTP
UDP
ARP
解析:
看下面图就一切了然了。
最下面的一层是网络层,包括IP,ICMP,ARP等等。
第二层是传输层,包括TCP,UDP
第三层是应用层,包括BGP,FTP,TELNET等等(MTME是通用因特网邮件扩充,是在电子邮件协议SMTP的基础上提出的。也是应用层协议)。
3、浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术:(ABCD)
非对称加密技术
对称加密技术
散列(哈希)算法
数字证书
解析:
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
转自: http://www.guokr.com/post/114121/
4、爸爸去哪儿中的3对父子站成一排,各自父子之间不能相邻,比如石头不能和郭涛挨着,以此类推,共有几种站法?(C)
120
48
240
144
解析:
假设三对父子分别是Aa、Bb、Dd;
第一个位置有6种选择,假设为A;
第二个位置有4种选择(因为不能为a),假设为B;
第三个位置需要分类讨论一下,如果为a,则可以确定后面三位只有两种选择了,如果不为a,第三个位置有两种选择(D和d),假设为D,进而再确定后面三个位置的选择数。
那么结果是:6*4*(2+2*4)=240。
5、请找出下面程序中有哪些错误:(C)
1,3,5,6
6,7
3,5
解析:
const在前,内容不能变;
const在后,指针不能变;
const* ,指针指向为常量;
*const ,指针本身为常量。
constint*p1表示p1的内容为常量不可变
intconst*p2表示p2的内容为常量不可变
int*constp3表示p3指针本身为常量不可变
其中(6)改变了p2的内容(7)改变了p3的指针,所以错误
6、 设k1,k2是矩阵A的两个不同的特征值,a与b是A的分别属于k1,k2的特征向量,则由a与b是:(B)
线性相关
线性无关
对应分量成比例
可能有零向量
解析:
不同特征值得特征向量不是正交吗,既然正交当然是线性无关的。
7、有如下C++代码:
1
2
3 A *p=new B;
p->foo();
p->bar();
输出为: (A)
barfoob_bar
foobarb_bar
barfoob_foo
foobarb_fpp
解析:
A *p=newB;// A类指针指向一个实例化对象B, B类继承A类,先调用父类的无参构造函数,bar()输出bar,B类没有自己显示定义的构造函数。
p->foo();//执行B类里的foo()函数,因为foo不是虚函数,所以直接调用父类的foo函数,输出foo
p->bar();//执行B类的bar()函数, 该函数为虚函数,调用子类的实现,输出b_bar
8、哪些设计模式是降低资源使用率:(BC)
prototype
singleton
flyweight
abstract factory
解析&#x
catch部分捕捉到异常情况时,才会执行finally部分
当try区段的程序发生异常时,才会执行catch区段的程序
在try区段不论程序是否发生错误及捕获到异常错误,都会执行finally部分
以上都是
解析:
1.try和catch语句
●将要处理的代码放入try块中,然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块,每个都处理不同的异常。每个catch中的参数都是Exception的子类。
2.finally语句
●finally语句定义一个总是执行的代码,而不考虑异常是否被捕获。
3.throw引起一个异常
●调用申明抛出异常
●throw语句强制抛出异常
2、下面哪一个选项是应用层的协议(B)
TCP
FTP
UDP
ARP
解析:
看下面图就一切了然了。
最下面的一层是网络层,包括IP,ICMP,ARP等等。
第二层是传输层,包括TCP,UDP
第三层是应用层,包括BGP,FTP,TELNET等等(MTME是通用因特网邮件扩充,是在电子邮件协议SMTP的基础上提出的。也是应用层协议)。
3、浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术:(ABCD)
非对称加密技术
对称加密技术
散列(哈希)算法
数字证书
解析:
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
转自: http://www.guokr.com/post/114121/
4、爸爸去哪儿中的3对父子站成一排,各自父子之间不能相邻,比如石头不能和郭涛挨着,以此类推,共有几种站法?(C)
120
48
240
144
解析:
假设三对父子分别是Aa、Bb、Dd;
第一个位置有6种选择,假设为A;
第二个位置有4种选择(因为不能为a),假设为B;
第三个位置需要分类讨论一下,如果为a,则可以确定后面三位只有两种选择了,如果不为a,第三个位置有两种选择(D和d),假设为D,进而再确定后面三个位置的选择数。
那么结果是:6*4*(2+2*4)=240。
5、请找出下面程序中有哪些错误:(C)
int main()
{
int i=10;
int j=1;
const int *p1;//(1)
int const *p2=&i; //(2)
p2=&j;//(3)
int *const p3=&i;//(4)
*p3=20;//(5)
*p2=30;//(6)
p3=&j;//(7)
return 0;
}
1,2,3,4,5,6,7
1,3,5,6
6,7
3,5
解析:
const在前,内容不能变;
const在后,指针不能变;
const* ,指针指向为常量;
*const ,指针本身为常量。
constint*p1表示p1的内容为常量不可变
intconst*p2表示p2的内容为常量不可变
int*constp3表示p3指针本身为常量不可变
其中(6)改变了p2的内容(7)改变了p3的指针,所以错误
6、 设k1,k2是矩阵A的两个不同的特征值,a与b是A的分别属于k1,k2的特征向量,则由a与b是:(B)
线性相关
线性无关
对应分量成比例
可能有零向量
解析:
不同特征值得特征向量不是正交吗,既然正交当然是线性无关的。
7、有如下C++代码:
struct A{
void foo(){printf("foo");}
virtual void bar(){printf("bar");}
A(){bar();}
};
struct B:A{
void foo(){printf("b_foo");}
void bar(){printf("b_bar");}
};
那么
1
2
3 A *p=new B;
p->foo();
p->bar();
输出为: (A)
barfoob_bar
foobarb_bar
barfoob_foo
foobarb_fpp
解析:
A *p=newB;// A类指针指向一个实例化对象B, B类继承A类,先调用父类的无参构造函数,bar()输出bar,B类没有自己显示定义的构造函数。
p->foo();//执行B类里的foo()函数,因为foo不是虚函数,所以直接调用父类的foo函数,输出foo
p->bar();//执行B类的bar()函数, 该函数为虚函数,调用子类的实现,输出b_bar
8、哪些设计模式是降低资源使用率:(BC)
prototype
singleton
flyweight
abstract factory
解析&#x