看看我们公司的笔试题目,达人帮助解答下!多谢!
2. 下面代码的输出是什么?一共在内存中生成了几个String对象?为什么?
String s1 = “aaa”;
String s2 = “aaa”;
String s3 = new String(“aaa”);
String s4 = new String(“AAA”);
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
3. 下列程序在1处是否会有异常,如果没有,输出是什么?是否会运行到2处,如果会,输出是什么?为什么会有这样的结果?
public class TestClass {
public void test1() {
List list = new ArrayList();
test2(list);
System.out.println(list.size()); // 1处
test3(list);
System.out.println(list.size()); // 2处
}
public void test2(List list) {
list = null;
}
public void test3(List list) {
list.add(“aaaa”);
}
}
4. 请选出下面哪些描述是正确的。
public class ClassA {
public synchronized void a(){
}
public synchronized void b(){
}
}
2 instances of ClassA had been instantiated obj1 and obj2.
Which statements about thread are true?
1) One thread is calling obj1.a(), another thread can call obj1.b(). .
2) One thread is calling obj1.a(), another thread cannot call obj1.b().
3) One thread is calling obj1.a(), another thread can call obj2.b(). .
4) One thread is calling obj1.a(), another thread cannot call obj2.b().
5. 下面的程序输出是什么?为什么?
public class Parent {
public void test(ArrayList list) {
System.out.println("invoke parent's test method");
}
public static void main(String[] args) {
Child a = new Child();
ArrayList list = new ArrayList();
a.test(list);
}
}
class Child extends Parent {
public void test(List list) {
System.out.println("invoke child's test method");
}
}
6. 下面的程序输出是什么?为什么?
public class Parent {
public void test(List list) {
System.out.println("invoke parent's test method");
}
public static void main(String[] args) {
Child a = new Child();
ArrayList list = new ArrayList();
a.test(list);
}
}
class Child extends Parent {
public void test(List list) {
System.out.println("invoke child's test method");
}
}
7. 仔细分析下面的程序,写出程序的输出结果。
public class Parent {
{
System.out.println("parent instance block");
}
public void test() {
System.out.println("parent test method");
}
static {
System.out.println("parent static block");
}
public Parent() {
System.out.println("parent constructor");
test();
}
public static void main(String[] args) {
new Child();
}
}
class Child extends Parent {
private static int staticValue = 20;
private int instanceValue = 20;
{
System.out.println("child instance block");
}
public void test() {
System.out.println("child test method");
System.out.println("static value is: " + staticValue);
System.out.println("instance value is: " + instanceValue);
}
static {
System.out.println("child static block");
}
public Child() {
System.out.println("child constructor");
}
}
8. 下面程序的输出是什么?
public class TestException {
public void test1() {
int result = test2();
System.out.println(result);
}
public int test2() {
try{
String s = null;
s.substring(0, 1);
return 1;
} catch(Exception e) {
return 2;
} finally {
return 3;
}
}
public static void main(String[] args) {
(new TestException()).test1();
}
}
9. 请写出数据库查询操作的伪代码,程序不需要通过编译,只要思路正确,关键步骤不丢失就可以了。注意异常的捕获,IO流的关闭。可能用到的类或接口有(Connection,DriverManager, Statement, PreparedStatement, ResultSet, SQLException)。
问题点数:20、回复次数:24Top
1 楼zhao_417(霍金)回复于 2006-03-09 08:28:12 得分 0
1。true false true 3个
2.没有结果输出,因为类没有被初始化
3。1 3
4。invoke parent's test method
5。invoke child's test method
6。看的晕
7。2 不知道finaly的用法,所以选2
8。不会Top
2 楼conquer2004(狗样年华)回复于 2006-03-09 08:42:00 得分 0
6.输出应该是不能识别ArrayList.
没有import java.util.ArrayList;
;我是这么想的,要不然也没必要用ArrayList作参数吧。
Top
3 楼ys_wangtao(用技术创造艺术)回复于 2006-03-09 09:50:12 得分 0
7的输出是
parent static block
child static block
parent instance block
parent constructor
child test method
static value is: 20
instance value is: 0
child instance block
child constructor
Top
4 楼ys_wangtao(用技术创造艺术)回复于 2006-03-09 10:32:04 得分 0
根据这个结果来看,子类构建时是先初始化静态成员,然后调用父类的非静态初始化和缺省构造方法,构造中的test()方法实现了多态(JAVA编程思想里好像不提倡这么做,容易出问题),接下来是子类的非静态初始化和构造方法。Top
5 楼zhao_417(霍金)回复于 2006-03-09 10:35:58 得分 0
没人又其他答案了吗
想看一下俺的对了几个Top
6 楼ys_wangtao(用技术创造艺术)回复于 2006-03-09 10:36:38 得分 0
最后一个输出是3,finally中的肯定会执行的Top
7 楼cleansunshing(努力学习中)回复于 2006-03-09 10:43:32 得分 0
8.下面程序的输出是什么?
public class TestException {
public void test1() {
int result = test2();
System.out.println(result);
}
public int test2() {
try{
String s = null;
s.substring(0, 1);
return 1;
} catch(Exception e) {
return 2;
} finally {
return 3;
}
}
答案是3Top
8 楼cleansunshing(努力学习中)回复于 2006-03-09 10:59:47 得分 0
5.下面的程序输出是什么?为什么?
public class Parent {
public void test(ArrayList list) {
System.out.println("invoke parent's test method");
}
public static void main(String[] args) {
Child a = new Child();
ArrayList list = new ArrayList();
a.test(list);
}
}
class Child extends Parent {
public void test(List list) {
System.out.println("invoke child's test method");
}
}
答案是Reference to test is ambiguousTop
9 楼andy1981()回复于 2006-03-10 15:10:26 得分 0
2. true
false
true
3 0,1
4 不懂
5 invoke child's test method
6 没有看出来和第5题有什么不一样的地方。
7 parent static block
child static block
parent instance block
parent constructor
child test method
static value is: 20
instance value is: 0
child instance block
child constructor
8 3Top
10 楼Nowish(看我能忍耐多久)回复于 2006-03-10 15:26:45 得分 0
?????????Top
11 楼javazhai(阿辉)回复于 2006-03-10 18:48:05 得分 0
2:
true
false
true
3:
1处会抛异常
4:
3)
5:
invoke child's test method
国为arraylist是list的子类,arraylist也是list所以根椐多态的话,会调用public void test(List list)
6:
invoke child's test method
国为arraylist是list的子类,arraylist也是list所以根椐多态的话,会调用public void test(List list)
Top
12 楼ton2010(我想学好J2EE上海的菜鸟)回复于 2006-03-10 20:48:18 得分 0
同城博客月Top20 [上海] --------排名第3-------
1.
2.
3 天使的愤怒 ton2010
20.
http://www.blogcn.com/user89/oliver2010/index.html
《爱我还是他》
两个男孩,爱上了同一个女孩。
一个男孩,叫一凡,他桀骜不驯,我行我素,孤芳自赏,惟我独尊,敢做敢为。
另一个男孩,叫子昂,他稳重踏实,成绩优秀,性情温和,安分守己,沉默寡言。
这个女孩,叫倾城,她沉鱼落雁,清新可人,楚楚动人,似诗如画,气韵轩昂。
大一的时候:
一凡,因为擅自整改校广播台的体系框架和内容,被老师逐出广播台。
子昂,因为学习认真踏实,获得校奖学金一等奖,被老师选为学习委员。
倾城,成了子昂的朋友。
大二的时候:
一凡,因为不满校辩论赛内的黑幕,作为学院最佳辨手的他,毅然退出决赛,导致本学院在校总决赛中,以3:4输了总决赛,最后被剥夺学院最佳辨手称号……
子昂,因为为人踏实本分,听从老师安排,工作负责,被评为校优秀干部,优秀团员。
倾城,成了子昂的好朋友。
大三的时候:
一凡,因为不满团委总书记,对社团部内,官官勾结,弄虚作假,串改社团评分分数的无动于衷,作为计算机协会会长的他,毅然辞职……
子昂,因为妥善处理了学生会干部集体退出的事件,并给老师出了“金点子”,被老师选为校学生会主席,预备党员。
倾城,成了子昂的女朋友。
大四的时候:
一凡,因为出色的文采,被榕树下网站聘为专栏作家;因为在淘宝网的生意火爆,作为钻石卖家的他,月收入近万;因为在程序员大赛上的二等奖,被某著名IT公司提前录取;
因为在全国创业大赛上的得奖得一项发明,被某厂商买断专利权;因为……
子昂,因为在全国英语六级考试中作弊,被学校留校察看一年;因为串改学习成绩、奖学金评分表,被老师开除学生会内一切职务;因为这一切的一切,他失去了预备党员,失去了校优秀毕业生,失去了……
倾城,离开了子昂。
朋友告诉倾城:
你知道吗?
大一时,一凡被老师逐出广播台,有多少人联名上书挽留他吗?有多少人写信说喜欢他的广播风格,喜欢他的诗词文赋,喜欢他的诙谐幽默,喜欢他的……
大二时,一凡退出校辩论总决赛,被剥夺学院最佳辨手称号后,有多少人要他的签名?有多少人写信说喜欢他的刚正不阿,喜欢他的光明磊落?有多少人告诉他:他们心目中的冠军、校最佳辨手是他……
大三时,一凡辞去计算机协会会长后,有多少人因为他,毅然跟随他的脚步,辞去学生会副主席,辞去学习部部长,辞去社团部副部长,辞去……
泪水,在倾城的眼眶里打转……
http://oliver2010.blogcn.com
《可不可以不爱我》
我真的没有办法,像你爱我,那样地爱你,我很努力了,可是我还是做不到;
我真的没有时间,像你想我,那样地想你,我很用心了,可是我还是做不到;
我真的没有勇气,像你为我,那样地为你,我很尽力了,可是我还是做不到;
我真的没有能力,像你疼我,那样地疼你,我很用情了,可是我还是做不到;
我真的没有把握,像你给我,那样地给你,我很拼命了,可是我还是做不到......
:全部档案文件:
※全部档案文件※
· 《可不可以不爱我》 [原] (发表于2006-2-22 19:09:40)
· 《可不可以不爱我》 [原] (发表于2006-2-22 19:09:40)
· 《爱我还是他》 [原] (发表于2006-2-21 20:21:28)
· 《从来不敢这样地爱你……》 [原] (发表于2006-2-20 22:51:20)
· 《 你为何如此地爱我 》 [原] (发表于2006-2-16 14:40:13)
· 没有情人的情人节 (发表于2006-2-14 16:54:14)
· 《你知道我在等你吗……》 (发表于2006-2-14 16:51:57)
· 《贫穷》 (发表于2006-2-14 16:49:26)
· 《幸福》 (发表于2006-2-14 16:48:13)
· MOTHER (发表于2006-2-13 11:59:41)
· 《一只披着狼皮的羊》 [原] (发表于2006-2-13 11:58:36)
· 《我曾经那样仓惶失措地爱着你……》(续II) [原] (发表于2006-2-13 11:58:27)
· 《我曾经那样仓惶失措地爱着你……》(续) [原] (发表于2006-2-8 15:15:23)
· 我不是我 (发表于2006-2-4 18:27:29)
· 为了忘却的记忆 [原] (发表于2006-2-4 18:26:23)
· 《我曾经那样仓惶失措地爱着你……》 [原] (发表于2006-2-3 13:15:57)
· 不要认输-----------------让我感动的留言 (发表于2006-2-2 17:04:55)
· 为了要得到幸福-----------------让我感动的留言 (发表于2006-2-2 17:00:04)
· 为了与你相遇-----------------让我感动的留言 (发表于2006-2-2 16:52:44)
· 不能没有你-----------------让我感动的留言 (发表于2006-2-2 16:44:03)
· 无与伦比的你 [原] (发表于2006-2-2 16:36:07)
· 好人坏人 [原] (发表于2006-2-1 17:36:35)
· 当局者清旁观者迷 (发表于2006-2-1 17:35:12)
· 幻想人生 [原] (发表于2006-2-1 17:30:59)
· 执迷不悟 [原] (发表于2006-2-1 17:28:07)
· 收放感情 [原] (发表于2006-2-1 17:24:11)
· 放爱生路 [原] (发表于2006-2-1 17:20:33)
· 爱情赌注 [原] (发表于2006-2-1 17:17:10)
· 太想爱你 [原] (发表于2006-2-1 17:15:15)
· 回忆似酒 (发表于2006-2-1 17:10:51)
· 多情剑客无情剑 [原] (发表于2006-2-1 17:07:11)
· 《人民与官》----群众如是说 (发表于2006-2-1 17:07:00)
· tears from the torn heart (发表于2006-1-31 17:25:30)
· Happiness [原] (发表于2006-1-31 16:40:10)
· 愿赌服输 [原] (发表于2006-1-31 14:04:13)
· 花太香 [原] (发表于2006-1-31 14:02:07)
http://oliver2010.blogcn.com
《从来不敢这样地爱你……》
从来不敢正眼,看你的眼神,因为我怕你那期待的目光中夹杂的疑虑;
从来不敢闭眼,在你的怀里,因为我怕你那温暖的胸怀会瞬间地冷却;
从来不敢奢望,在你的心里,因为我怕你那驿动的心扉会无情地关闭;
从来不敢吻你,在你的嘴间,因为我怕你那深情的吻会是最后的吻别 ......
Top
13 楼ycy589(ycy589)回复于 2006-03-11 01:57:08 得分 0
学习Top
14 楼TONYBLARED(奔放的犀牛)回复于 2006-03-11 02:50:29 得分 0
2.
true
false
true
4个
3.
0,1
4.//请高手指点。
2,4
5.
invoke parent's test method
6.
invoke child's test method
7.
parent static block
child static block
parent instance block
parent constructor
child test method
static value is: 20
instance value is: 0
child instance block
child constructor
8.
3
9.
Top
15 楼ymfhcn(这痞子真帅)回复于 2006-03-11 05:00:48 得分 0
.下列程序在1处是否会有异常,如果没有,输出是什么?是否会运行到2处,如果会,输出是什么?为什么会有这样的结果?
public class TestClass {
public void test1() {
List list = new ArrayList();
test2(list);
System.out.println(list.size()); // 1处
test3(list);
System.out.println(list.size()); // 2处
}
public void test2(List list) {
list = null;
}
public void test3(List list) {
list.add(“aaaa”);
}
}
有异常,因为test2()把它的地址设为了NULL,对NULL的变量进进size()会报空指针异常Top
16 楼andy1981()回复于 2006-03-16 17:05:40 得分 0
高手来解题啊
Top
17 楼deepass(渴望突破)回复于 2006-03-19 15:04:12 得分 0
1.true false true
2.没有初始化
3.nchronized是当A占用线程时B必须等待,直到A用完该方法后才能允许其他线程用,1,3
4.invoke parent's test method
5.invoke child's test method
先做到这,明天继续Top
18 楼universe01(未知软体)回复于 2006-03-19 16:24:16 得分 0
2、
true
false
true
4个对象
3、1处不会有异常,输出是0,2处输出1
4、1 3
5、invoke parent's test method
6、
invoke child's test method
7、
parent static block
child static block
parent instance block
parent constructor
child test method
static value is: 20
instance value is: 0
child instance block
child constructor
8、3Top
19 楼dfyx(头发乱了)回复于 2006-03-20 11:31:03 得分 0
第一题中
String s1 = “aaa”;
String s2 = “aaa”;
这2句不是建立2个引用s1和s2,分别指向2个字符串对象吗
我看到书上说java中所有的对象都是建立在堆区的,分别建立这2个对象在内存中的地址不是就不一样了吗
而s1==s2不是比较他们的引用吗,这不是和c++中的比较地址差不多吗,怎么结果会为true呢
因为刚刚学java,很多原理还不明白,望高人指点一下啊、Top
20 楼cdcx(西南偏南)回复于 2006-03-20 14:01:49 得分 0
2.下面代码的输出是什么?一共在内存中生成了几个String对象?为什么?
String s1 = “aaa”;
String s2 = “aaa”;
String s3 = new String(“aaa”);
String s4 = new String(“AAA”);
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
答案:会生成3个对象。true,false,true.
String s1 = “aaa”;
String s2 = “aaa”;
因为在编译期,编译器会检查出s1和s2的值是相同的字符串,所以在创建java字节码的时候s1和s2都指向"aaa"。
3.下列程序在1处是否会有异常,如果没有,输出是什么?是否会运行到2处,如果会,输出是什么?为什么会有这样的结果?
public class TestClass {
public void test1() {
List list = new ArrayList();
test2(list);
System.out.println(list.size()); // 1处
test3(list);
System.out.println(list.size()); // 2处
}
public void test2(List list) {
list = null;
}
public void test3(List list) {
list.add(“aaaa”);
}
}
答案:没有异常。输出0,1.
因为在jvm的运行是基于stack。所有的参数传递都是值传递。包括对象传递也是传递的是对象引用(java heap中对象的地址)的一个copy,对这个copy的修改并不会影响调用函数变量的值。
4.请选出下面哪些描述是正确的。
public class ClassA {
public synchronized void a(){
}
public synchronized void b(){
}
}
2 instances of ClassA had been instantiated obj1 and obj2.
Which statements about thread are true?
1)One thread is calling obj1.a(), another thread can call obj1.b(). .
2)One thread is calling obj1.a(), another thread cannot call obj1.b().
3)One thread is calling obj1.a(), another thread can call obj2.b(). .
4)One thread is calling obj1.a(), another thread cannot call obj2.b().
应该是2,3。每个对象都有一个令牌去控制临界资源的访问,当前只能有一个线程拥有这个令牌。令牌通过synchronized获得。当线程访问obj1.a()的时候,线程A获得了obj1对象的令牌,所以其他线程B就不能再获得obj1对象的令牌,所以线程B会被阻塞。但是
对于obj2没有被其他线程调用,就是说obj2的令牌没有被占有,所以线程B是可以访问obj2.b()的.
5.下面的程序输出是什么?为什么?
public class Parent {
public void test(ArrayList list) {
System.out.println("invoke parent's test method");
}
public static void main(String[] args) {
Child a = new Child();
ArrayList list = new ArrayList();
a.test(list);
}
}
class Child extends Parent {
public void test(List list) {
System.out.println("invoke child's test method");
}
}
答案:是"invoke parent's test method". 因为这是在编译期间,编译器根据参数的类型就确定好了调用的函数是test(ArrayList list),而不会去看对象实例的类型。
Top
21 楼cdcx(西南偏南)回复于 2006-03-20 14:06:02 得分 0
6.下面的程序输出是什么?为什么?
public class Parent {
public void test(List list) {
System.out.println("invoke parent's test method");
}
public static void main(String[] args) {
Child a = new Child();
ArrayList list = new ArrayList();
a.test(list);
}
}
class Child extends Parent {
public void test(List list) {
System.out.println("invoke child's test method");
}
}
答案:是"invoke child's test method". 因为这是用到了重载的概念。jvm会在运行期间根据具体对象的实例去调用对应的方法。在这里由于对象的实例是Child,所以调用的应该是child的test函数。
Top
22 楼huyc_fly()回复于 2006-03-20 15:25:53 得分 0
同意楼上的分析,是调用子类的方法Top
23 楼weiqinliang(流浪鸟)回复于 2006-03-20 16:10:08 得分 0
学习中Top
24 楼Dan1980()回复于 2006-03-20 16:55:37 得分 0
哇,这些题陷阱很多啊,学习ing...Top




