金华业java面试题1

2024-06-29

金华业java面试题1(精选2篇)

篇1:金华业java面试题1

Java面试题

1.请指出哪些声明和初始化数组是正确的?

A.Array a = new Array(5)B.int[] a = {23,22,21,20,19}C.int[] array

D.int array[] = new int[5] E.int a[] = new int(5)F.int[5] array

2.阅读以下代码,选择正确的答案,并说明原因?

public class TestDogs

{

Dog[][] theDogs = new Dog[3][];

System.out.println(theDogs[2][0].toString());

}

class Dog

{

}

A.null B.theDogs C.Compilation fails D.An exception is thrown at runtime

3.请选择你认为不正确的声明,并说明原因?

A.final abstract class Test {}B.public static interface Test{}

C.final public class Test{}D.protected interface Test{}E.protected abstract class Test{} F.abstract public class Test{}

4.阅读以下代码,选择正确的答案,并说明原因?

Interface Count

{

short counter = 0;

void countUp();

}

public class TestCount implements Count

{

public static void main(String[] args)

{

TestCount t = new TestCount();

t.countUp();

}

public void countUp()

{

for(int x = 6;x>counter;x--, ++counter)

{

System.out.print(“ ” + counter);

}

}

A.0 1 2B.1 2 3C.0 1 2 3D.1 2 3 4

E.Compilation failsF.An exception is thrown runtime

5.阅读以下代码,选择正确答案,并说明原因?

class Test

{

public static void main(String[] args)

{

int x = 0;

int y = 0;

for(int z = 0;z < 5;z++)

{

if((++x > 2)&&(++y > 2))

{

x++;

}

}

System.out.println(x + “ ” + Y);

}

}

A.5 2 B.5 3 C.6 3 D.6 4 E.7

56.阅读以下代码,选择程序的输出结果。

class A

{

public void baz()

{

System.out.println(“A”);

}

}

public class B extends A

{

public static void main(String[] args)

{

A a = new B();

a.baz();

}

public void baz()

{

System.out.println(“B”);F.8 5

}

A.AB.BC.Compilation fails D.An exception is thrown at runtime

7.阅读以下代码,选择程序的输出结果。

Class ParentClass

{

public int doStuff(int x)

{

return x * 2;

}

}

public class ChildClass extends ParentClass

{

public static void main(String[] args)

{

ChildClass cc = new ChildClass();

Long x = cc.doStuff(7);

System.out.println(“x = ” + x);

}

public long doStuff(int x)

{

return x * 3;

}

}

A x = 14B.x = 21C.Compilation fails

D.An exception is thrown at runtime

8.阅读以下代码,选择程序的输出结果。

class Parent

{

public Parent()

{

System.out.println(“instantiate a parent”);

}

}

class Child extends Parent

{

public Child()

{

System.out.println(“instantiate a child”);

}

super();

}

public class TestPoly

{

public static void main(String[] args)

{

Parent p = new Child();

}

}

A.instantiate a child B.instantiate a parent C.instantiate a child

instantiate a parent

D.instantiate a parent E.Compilation fails F.An exception is thrown at runtimeinstantiate a child

9.ArrayList、LinkedList、Vector在存储特性、性能、效率上有什么区别?

10.请说出InputStream流和Reader流的区别。

11.JDBC中PreparedStatement比Statement执行效率高的原因?

12.手写一个简单的xml文件,并使用此文件描述一个通讯录,包含 姓名,电话,email三个字段。

13.编写一个简单的xml访问程序,在上面的xml文件中增加一个地址字段。

14.请简述struts的工作流程。

15.有一个表(COUNTRIES),此表中有一字段(COUNTRY_REGION)用于存储国家的所属区域,要求写一条SQL语句用于统计每个区域中的国家数量。

16.请简述软件工程中标准的开发流程,详细说明每个环节对项目的作用及影响。

17.论团队精神。(字数不少于400)

篇2:金华业java面试题1

2008-06-12 10:40

1.HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

2.同步和异步有何异同,在什么情况下分别使用他们?举例说明。

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

3.final, finally, finalize的区别是什么?

final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

4.& 和&& 的区别

& 是位运算符。&& 是布尔逻辑运算符。

5.Collection 和 Collections的区别

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。Collection是个java.util下的接口,它是各种集合结构的父接口。

6.GC是什么? 为什么要有GC?(基础)

GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc()Runtime.getRuntime().gc()

7.String s = new String(“xyz”);创建了几个String Object?

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s

8.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

9.Java有没有goto?

Goto是java中的保留字,现在没有在java中使用

10.数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有length()这个方法.11.sleep()和 wait()有什么区别? 搞线程的最爱

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

12.error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

13.int和Integer有什么区别

int是基本数据类型,而Integer是java提供的类(包装类)。因为java是运用堆栈结构的,int基本类型放在栈里,而Integer类是放在堆里的,这是他俩的本质区别。从生命周期上想。int的生命周期短相对于Integer。

14.面向对象的特征有哪些方面 ?

1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4.多态性:

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

15.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

上一篇:自我鉴定1200字下一篇:上半年人口和计划生育工作情况汇报提纲