注册 登录
编程论坛 J2EE论坛

今天去java面试了,面试题带回请教!

hanshengchua 发布于 2007-06-01 22:20, 3005 次点击

1:
import java.util.Vector;

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {

Vector v1 = null;
Vector v2;

v1.addElement("nihao");
v2=null;
v2=v1;

System.out.println(v2.size());

}

}

问会输出什么???

2:写一句sql语句查询oracle表中的第71行到第80行

3:user用户表中含有id,name,patid
pat部门表中含有id,name
写出程序打印每一个部门及其部门下的所有员工

[此贴子已经被作者于2007-6-1 22:27:07编辑过]

22 回复
#2
hanshengchua2007-06-01 22:21
题目是原题!
总感觉有些怪怪的,请大家解答问题

#3
混沌的天堂2007-06-01 22:31

那就输出5呗!

#4
hanshengchua2007-06-01 22:55
我也是写的5!那个面试的人说不对!说是1还是0什么的!
我自己跑了一下程序,结果出现了异常!

第二个题你能作出来么?

还有第三个!

说不定你明天去面试,你也会遇到这样的问题
#5
guoxhvip2007-06-01 23:56

第一题LZ好象写错了 Vector v1没有实例化怎么能调用他的方法呢,这样会有异常,就算实例化也不是输出5 而是1 因为addElement方法是将指定的组件添加到此向量的末尾,将其大小增加1,题目只添加了一个字符串"nihao",并不是5个字符'n','i','h','a','o'

[此贴子已经被作者于2007-6-1 23:57:47编辑过]

#6
hanshengchua2007-06-02 07:26
以下是引用guoxhvip在2007-6-1 23:56:35的发言:

第一题LZ好象写错了 Vector v1没有实例化怎么能调用他的方法呢,这样会有异常,就算实例化也不是输出5 而是1 因为addElement方法是将指定的组件添加到此向量的末尾,将其大小增加1,题目只添加了一个字符串"nihao",并不是5个字符'n','i','h','a','o'


关键是这句话:v2=v1?
这是把v1的一个实例化直接传给v2么?

#7
千里冰封2007-06-02 09:00
楼主难道没有发现v1,v2都没有实例化么?

两个null传来传去还不是null

#8
prayer2007-06-02 11:32
第二题好像用游标我不回用,用子查询也可。思路是:查询前80条记录然后Where条件返回不再前70条的语句
(仅供参考我没有安装SQL不知道行不)
#9
Eclipse1232007-06-02 15:22
回复:(prayer)第二题好像用游标我不回用,用子查询...
第三题:select pat.name,user.name from pat,user where pat.id = user.patid
#10
y03112007-06-02 15:54

第二题好象不用用到游标,那样太麻烦了,在Orale里面有一个涵数,可惜我不记得叫什么了,呵呵,太久没用了

#11
威震天下2007-06-02 18:46

第一题的答案:1.原因5楼说的很明白.
第二题:以Oracle中的emp表为 例查第3行到第8行:
select * from
(
select e.*,rownum rownum_ from emp e where rownum <=8
)
where rownum_>=3;
按题目要求,将8改为80,3改为71即可.
第三题:
select pat.name,pat.patid,user.name from pat,user where pat.id = user.patid order by pat.patid;

#12
风月_无边2007-06-02 21:07
vector初始化后就是1了
#13
野蛮女人2007-06-02 22:42
select * from (select rownum r,emp.* from emp) where r between 71 and 80
这么写不知道是否OK
#14
LLAITT13142007-06-03 00:23
第一题:就是考了2个引用指向一段空间的问题,不过你没实例化,如果JDK是1.5的,编译时会报不安全错误!答案当然是1 喽!就一个对象在里面呗!
第二题: select top 10 * from oracle where oracle.字段 not in (select top 71 oracle.字段 from oracle)
第三题: select * from pat left join user on pat.id=user.pat
#15
qsrock2007-06-03 00:47

输出了NullPointException(空指针异常,那里是1啊???)

#16
风月_无边2007-06-03 09:29
以下是引用qsrock在2007-6-3 0:47:45的发言:

输出了NullPointException(空指针异常,那里是1啊???)

你先初始化,然后再赋值!

#17
hanshengchua2007-06-03 11:25

第一题已经明白,应该是null值,因为没有实例化。

第三题是一个内连接,这个不是很难

第二题,大家看清了,是查询orcale表!这是一个表名!

没有直接查询结果集中加段的!如果有的话分页就不用那么麻烦了!

所以这个地方我昨天看了一天我觉得应该是:

select top 10 * from (select top 80 * from Orcale order by id asc) sd order by id desc

这样得到的值是降序排练,但确实能够得到?大家看对么?我觉得只有这一种方法!

#18
LLAITT13142007-06-04 08:25

楼上的,那你去运行一下就知道了!

#19
LLAITT13142007-06-04 08:27
他的题有问题,如果被实例话了以后,肯定时1
#20
黑白不分2007-08-13 17:51

vector是按对象存储的.不是按字符.

#21
xiaoxuanfenz2007-09-17 16:07
   千里大哥说的对,实质上我也编程序实验过,即使实例化,V2=V1的结果还是V2本身,JAVA中对象引用不是C++中所谓的指针地址.所以V2的值还是NULL,v2.size())==4.
#22
q42791342007-09-18 20:03
rownum &gt; 71 and rownum &lt; 80       是吧?
#23
菜鸟也疯狂2007-09-18 20:09
第一题执行时会抛出异常,因为Vector类没有实例化,所以不能调用它的实例化方法。
实例化后那个 v2.size()=1,原因就是5楼说的
1