java面试题3

时间:2022-07-13 23:37:13 面试 我要投稿

java面试题3

九、C++部分:(共14题:基础10道,中等1道,较难3道)

java面试题3

188、以下三条输出语句分别输出什么?【基础】

char str1[] = "abc";

char str2[] = "abc";

const char str3[] = "abc";

const char str4[] = "abc";

const char* str5 = "abc";

const char* str6 = "abc";

cout << boolalpha << (str1==str2) << endl; //输出什么?

cout << boolalpha << (str3==str4) << endl; //输出什么?

cout << boolalpha << (str5==str6) << endl; //输出什么?

答:输出为:false、false、true。

189、以下反向遍历array数组的方法有什么错误?【基础】

vectorarray;

array.push_back(1);

array.push_back(2);

array.push_back(3);

//反向遍历array数组:

for(vector::size_type i=array.size()-1; i>=0; --i){

cout << array[i] << endl;

}

答:for循环中的变量i的类型不应定义为vector::size_type,

因为该类型为无符号数值类型,故循环条件将恒成立,为死循环,应将其类型定义为有符号的int类型。

190、以下代码有什么问题?【基础】

cout << (true ? 1 : "1") << endl;

答:运算符中两个可选值的类型不同。

191、以下代码有什么问题?【基础】

typedef vectorIntArray;

IntArray array;

array.push_back(1);

array.push_back(2);

array.push_back(2);

array.push_back(3);

//删除array数组中所有的2

for(IntArray::iterator itor=array.begin(); itor!=array.end();

++itor){

if(2==*itor) {

array.erase(itor);

}

}

答:for循环中的if语句后的array.erase(itor)语句,它将迭代器itor所指向的元素删除后会自动下移一位,故应在其后加上语句:itor--;

192、以下代码中的两个sizeof用法有问题吗?【基础】

void upperCase(char str[]){ //将str中的小写字母转换成大写字母

for(int i=0; i

if(a<=str[i] && str[i]<=z)

str[i] -= (a-A);

}

}

int main(){

char str[] = "aBcDe";

cout << "str 字符串长度为:" << sizeof(str)/sizeof(str[0]);

cout << endl;

upperCase(str);

cout << str << endl;

return 0;

}

答:在upperCase方法中,for循环的sizeof(str)的值将总是4,所以该方法只能将参数中的字符串的前四个字符转换成大写字母。

193、以下代码能够编译通过吗?为什么?【基础】

unsigned int const size1 = 2;

char str1[size1];

unsigned int temp = 0;

cin >> temp;

unsigned int const size2 = temp;

char str2[size2];

答:能;

194、以下代码有什么问题?【基础】

struct Test{

Test(int){}

Test(){}

void fun(){}

};

void main(void){

Test a(1);

a.fun();

Test b();

b.fun();

}

答:main函数的返回类型应为int;不能对b调用fun()方法。

195、以下代码中的输出语句输出0吗?为什么?【基础】

struct CLS{

int m_i;

CLS(int i):m_i(i){ }

CLS(){ CLS(0);}

};

int main(){

CLS obj;

cout <

}

答:输出不是0;

196、C++中的空类,默认产生哪些类成员函数?【基础】

答:空类中默认包含的成员函数如下:

class Empty{

public:

Empty(); //缺省构造函数

Empty( const Empty& ); //拷贝构造函数

~Empty(); //析构函数

Empty& operator=( const Empty& ); //赋值运算符

Empty* operator&(); //取址运算符

const Empty* operator&() const; //取址运算符const

};

197、统计一篇文章中单词个数。【基础】

答:代码如下:

include

#include

using namespace std;

int main(){

ifstream fin("t.txt");

if(!fin){

cout<<"can open file"<

return -1;

}

int count = 0;

char buf[256];

memset(buf, 0, 256);

while(1){

fin2>>buf;

if(fin2.eof())

break;

count++;

}

cout<<"The number of the words is : "<

fin2.close();

return 0;

}

198、写一个函数,完成内存之间的拷贝。【中等难度】

答:代码如下:

void* mymemcpy(void* dest, const void* src, size_t count){

char* pdest = static_cast(dest);

const char* psrc = static_cast(src);

if(pdest>psrc && pdest

for(size_t i=count-1; i!=-1; --i){

pdest[i] = psrc[i];

}

}else{

for(size_t i=0; i

pdest[i] = psrc[i];

}

}

return dest;

}

int main(){

char str[] = "0123456789";

mymemcpy(str+1, str+0, 9);

cout << str << endl; //将输出"0012345678"

return 0;

}

199、非C++内建类型A和B,在哪几种情况下B能隐式转化为A?【较难】

答:a)class B : public A{……}//B公有继承自A,可以是间接继承的

b)class B{operator A();}//B实现了隐式转化为A的转化

c)class A{ A(const B&);}//A实现了non-explicit的参数为B构造函数

(可以有其他带带默认值的参数)

d)A& operator= (const A&);//赋值操作,虽不是正宗的隐式类型转换,

但也可以勉强算一个

200、以下代码有什么问题?【较难】

void char2Hex(char c){ //将字符以16进制显示

char ch = c/0x10 + ;

if(ch>9) ch += (A-9-1);

char cl = c%0x10 + ;

if(cl>9) cl += (A-9-1);

cout << ch << cl << ;

}

int main(){

char str[] = "I love 中国";

for(size_t i=0; i

char2Hex(str[i]);

cout << endl;

return 0;

}

答:

201、以下两条输出语句分别输出什么?【较难】

float a = 1.0f;

cout << (int)a << endl;

cout << (int&)a << endl;

cout << boolalpha << ((int)a==(int&)a) << endl; //输出什么

float b = 0.0f;

cout << (int)b << endl;

cout << (int&)b << endl;

cout << boolalpha << ((int)b==(int&)b) << endl;//输出什么

答:第一处输出false,第二处输出true。

十、WebLogic及其它:(共13题:附加部分,超出授课范围)

202、如何给weblogic指定大小的内存?

答:在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M。

203、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?

答:可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一,或者修改服务的启动文件或者commenv文件,增加set pRODUCTION_MODE=true。

204、如何启动时不需输入用户名与密码?

答:修改服务启动文件,增加 WLS_USER和WLS_pW项;也可以在boot.properties文件中增加加密过的用户名和密码。

205、在weblogic管理控制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?

答:保存在此Domain的config.xml文件中,它是服务器的核心配置文件。

206、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然后在浏览器上打入http://主机:端口号//helloword.jsp就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办?

答:Domain目录\服务器目录\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。

207、在weblogic中发布ejb需涉及到哪些配置文件?

答:不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xml,CMp实体Bean一般还需要weblogic-cmp-rdbms-jar.xml

208、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置?

答:缺省安装中使用DemoIdentity.jks和DemoTrust.jks KeyStore实现SSL,需要配置服务器使用Enable SSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trust keystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。

209、如何查看在weblogic中已经发布的EJB?

【java面试题3】相关文章:

Java面试题07-12

JAVA题库:JAVA面试题目整理07-11

java基础面试题07-13

java面试题分析07-13

JAVA面试题求解?07-13

求java面试题07-11

JAVA面试题(问题)07-13

谁有java面试题?07-13

java面试题五07-11