java程序员面试题(基础部分),据说是广州一家公司招jsp程序员的初试题,这家公司是为华为做外包的
1.请写出下列Java代码的输出结果
package test;
public class FatherClass()
{ public FatherClass()
{ System.out.println("FatherClass Create");}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{ System.out.println("ChildClass Create"); }
public static void main(String[] args)
{ FatherClass fc=new FatherClass();
ChildClass cc=new ChildClass(); }
}
输出结果:
2.请问HTTP协议面向联接吗?面向会话吗?有哪些请求方法?
3.请问在JAVA中实现线程有哪两种方式?
4.请说明在JAVA中处理数据库事务的方法。
5.ArrayList和Vector的区别,HashMap和Hashtable的区别
6.请用Java编程实现一个网络监听服务程序,它将网络客户端的输入内容在屏幕上进行输出.
7.请从面向对象角度简述静态与非静态成员的区别.
8.请简述接口和抽象类的区别(所表现的东西,他们的用途)
9.请简述接口的作用.
10.请简述面向对象建模中你对类职责的认识
下面是参考答案(多人的答案,非完全正确):
2\面向会话、post、get
3、继承和实现接口
4、先关闭自动提交,然后同一提交
5、ArrayList是Vector的优化后的类,本质相同,HashMap和Hashtable继承和实现相同但有线程安全和相同实例存储区别问题。
1.
FatherClass Create
FatherClass Create
ChildClass Create
4.请说明在JAVA中处理数据库事务的方法。
通过 conn.setAutocommit(false)
....一系列的语句
conn.commit //提交完成
conn.setAutocommit(true)
但会产生很多不确定性,原则上不能。 都用存储程序。
8.请简述接口和抽象类的区别(所表现的东西,他们的用途)
一样:都是抽象类,都不能直接生成对象实体。
用法:优先用接口, 当明确知道要继承类的时候才用抽象类。
1 FatherClass Create
FatherClass Create
ChildClass Create
2 面向连接,面向回话,post,get
3 继承自Thread和Daemon线程
4 JavaBean中使用JDBC方式进行事务处理
5 Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。
Hashtable和HashMap
它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。
6 此题暂时未做,考虑后再贴
7 static数据成员对每一个class而言都只有一份,而非静态成员则是每个对象各有一份。
static最重要的用途之一就是让你可以再不建立任何对象情形下可以调用
8,9题在java编程思想中应当可以找到很完整的答案,我就不赘述拉
10 在面向对象方法中,系统功能最终是分配到每个类的操作上实现的,这个机制叫职责分配
7.请从面向对象角度简述静态与非静态成员的区别.
如果用面向对象的方法来回答的话应当是这样的。
对象,那我就从“相对象”来说:举例,如果用来给我介绍对象,首先我的知道她的名字,这样通过名字我可疑找到这个“对象”的身高、年龄等信息这些信息是不用见面也就是“new”就能得到的数据。
而有些关于她的信息则必须见面后才能知道,例如她爱吃肯德基还是麦当劳,这就是非静态的东西了,例如你象知道她的三围的话就的近一步得到她的允许,才能知道,这也就相当于私有变量了。
哈哈希望能够理解。
HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
ArrayList和Vector的区别,HashMap和Hashtable的区别
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
1 FatherClass Create
FatherClass Create
ChildClass Create
2 面向连接,面向回话,post,get
3 继承Thread类和实现Runable接口
4.请说明在JAVA中处理数据库事务的方法。
通过 conn.setAutocommit(false)
....一系列的语句
conn.commit //提交完成
conn.setAutocommit(true)
但会产生很多不确定性,原则上不能。 都用存储程序。