日期:2014-05-20  浏览次数:20714 次

2道面试题
1、String   str1   =   "hello ";String   str2   =   "hello "
请问执行上面的语句有没有创建对象,创建了几个对象。


2、int[]   a   =   new   int[4];
      int[]   b   =   new   int[4];
      for(int   i=0;i <4;i++)
              a[i]+=b[i];
执行上面的语句后请问a[1]的内容是:
A   0               B   未定义

------解决方案--------------------
1, Only one object is created. This question has been asked many times.

2, A.
------解决方案--------------------
1。0个
2。A
------解决方案--------------------
第1题:2个对象
第2题:B
------解决方案--------------------
1. 1个Object , 2个reference
2. A
------解决方案--------------------
1、String str1 = "hello "; 产生对象和引用
String str2 = "hello "产生引用
2.A

------解决方案--------------------
一个对象
A
------解决方案--------------------
1、一个对象,两个指向该对象的引用
2、A
------解决方案--------------------
1、String str1 = "hello ";String str2 = "hello "
请问执行上面的语句有没有创建对象,创建了几个对象。
==========================
创建了四个对象,其中二个临时对象,然后调用拷贝构造函数对str1,str2进行初始化.

2、int[] a = new int[4];
int[] b = new int[4];
for(int i=0;i <4;i++)
a[i]+=b[i];
执行上面的语句后请问a[1]的内容是:
A 0 B 未定义

======


------解决方案--------------------
看错了,第一题应该是:1个对象, 2个引用.
------解决方案--------------------
题1. 1个Object , 2个reference
题2. A

------解决方案--------------------
1、String str1 = "hello "; 产生对象和引用
String str2 = "hello "产生引用
2.A
------解决方案--------------------
我是这样理解的。只要有多个引用被赋同一个值,内存不会再开辟空间了。所有引用指向同一对象。
------解决方案--------------------
> > String str1 = "hello ";String str2 = "hello "
常量池中一个对象。引用两个。

> > 创建了四个对象,其中二个临时对象,然后调用拷贝构造函数对str1,str2进行初始化.
你说的是C++。

> > 还有第2题,数组没有被初始化赋值过,他会在任何时候都等于0吗?
数组会默认初始化为0。
------解决方案--------------------
1、String str1 = "hello ";String str2 = "hello "
请问执行上面的语句有没有创建对象,创建了几个对象。

一个对象,两个常量引用.

boolean flag = str1==str2; //flag is true


2、int[] a = new int[4];
int[] b = new int[4];
for(int i=0;i <4;i++)
a[i]+=b[i];
执行上面的语句后请问a[1]的内容是:
A 0 B 未定义

基本变量初始数组为0。所以 A