Java工程师试题
填空题(本大题10小题,每空1分,共20分)
1.Java语言的三大特性即是:  继承      封装    多态  。
2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间
3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用___ 时所传递进去的变量或值。
4.JSP内置对象中,  application      对象是 代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息 ,而     session      对象则是每个客户专用的。
5.如果想把一个对象写入一个流,那么这个类就必须实现      Seralizable      接口 
6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _    接口
7.多线程中,可以通过调用相应的    setPriority()    方法来修改一个线程的相对优先级。 
8.面向对象编程的五大设计原则,分别是  单一职责    开放封闭     
    里氏替换              依赖倒置          接口分离       
9.通过Ajax,客户端获取的数据主要有两种类型:文本型和    xml   
10. Socket通常也称为套接字 ,用于描述 __ ip    _ _接口
、选择题(本大题 20 小题,每小题2分.共40分)。
1.在JAVA中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用(  )关键字来声明父类的这些方法:
A) final  B) static  C) abstract  D) void
2.在JAVA中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的
A) interface A extend B,C      B) interface A implements B,C
C) class A implements B,C     D) class A implements B, implements C
3.在JAVA接口中可以定义(  )。
A) 静态方法    B) 常量    C) 构造方法      D) 抽象方法
4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为(  )。
A) A(X)    B) this.A(x)  C) this(x)   D) super(x)
5.设 x = 1 ,y = 2 , z = 3, 则表达式 y+=z--/++x 的值是(  )。
A) 3   B) 3.5    C) 4    D) 5
6下列关继承的说法哪个正确?(  )
A)子类只继承父类public方法和属性:
B)子类继承父类的非私有属性和方法:
C)子类继承父类的方法而不继承父类的属性:
D) 子类将继承的所有的属性和方法.
7.在java中.在使用JDBC时。对于多次调用同一条SQL语句的情况, 使用(  )通常会提高效。
A) Statement               B) CallableStatement 
C) PreparedStatement       D) PrarmeterStatement
8.下列不能控制一个Servlet生命周期方法是:
A) service  B) destroy  C) doPost     D) init
9.能够给一个byte型变量赋值的范围是(  )
A) 0~65535              B) (-128)~127
C)(-32, 768)~32, 767        D) (-256)~255
10.java语言中int类型数据占用多少位?(  )
A) 32   B) 64    C) 16    D) 20
11. ServletContext对象是如何创建的?(  )
A) 由 Servlet容器创建,对于每个HTTP请求.Servlet容器都会创建    一个ServletContext对象
B)由JavaWeb 应用本身为自己创建一个ServletContext对象
C)由Servlet容器创建对于每个JaveWeb应用,在启动时,Servlet容器都会创建一个ServletContext对象
12.在JSP中不能在不同用户之间共享数据的方法是(  )
A) 通过cookie            B) 利用文件系统
C) 利用数据库             D) 通过ServletContext对象
13.以哪个不是Collection的子接口?(    )
A) List    B) Set  C) Map     D) SortedSet
14. 下面正确的创建 Socket 的语句是(    )
A) Socket a  =  new Soeket(80):                                 
B) Socket b = new Socket("130. 3. 4. 5", 80):
C) ServerSocket c  = new Socket(80)                         
D) ServerSocket d = new Socket ("130. 3. 4, 5", 80)
15.下面的说法正确的是(  )
A)带有页作用域的对象在一个web应用程序的每个JSP中都存在.
B)指令指定与一个特定的JSP 请求不相关的全局信息。
C)当JSP容器遇到开始定制标和结束定制标签时,分别调用        doInitBody方法和doAfterBody方法。
D) <jsp:inclnde>动作只在翻译时处理一次。
16.为了区分重载多态中同名的不同方法java可以开发什么软件,要求:(  )
A)参数名不同        B) 采用不同的形式参数列表
C)返回值类型不同    D) 选项A, B, C都对
17.下面是有关子类调用父类构造函数的描述正确的是:(    )
A)子类定义了自己的构造函数.就不会调用父类的构造函数
B)子类必须通过Super关键字调用父类有参数的构造函数
C)如果子类的构造没有通过super调用父类构造函数,那么子类会 先调用子类自己的构造函数,再调用父类不含参数的构造函数。
D)创建子类的对象时,先调用子类自己的构造函数,然后调用父      类的构造函数
18.在Java中,负责对字节代码解释执行的是(    )
A) 垃圾回收器  B) 虚拟机  C) 编译器 D) 多线程机制
19.一个java程序运行从上到下的环境次序是(    )
A) 操作系统、Java程序、jre/jvm、硬                       
B) jre/jvm、Java程序、硬件、操作系统
C) java程序、jre/jvm、操作系统、硬件                   
D) java程序、操作系统、jre/jvm、硬件
20.对于从Employee表中选择记录的以下代码片段,识别其遗漏的代码行。(  )
Connection con = null:
Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"):
Connection("jdbc:odbc:ss" , "sa" , "");
ResultSet uteQuery("select * from Employee");
A) Statement stat=createStatement();
B) Statement staateStatement ();
C) PreparedStatement ateStatement():
D) PreparedStatement stat=createPreparedStatement();           
问答题(本大题6小题,共40分)
1.说出 ArrayList , Vector , LinkedList 的存储性能和特性。(6分)
2.什么是单例模式(Singleton) ? 请在下面写出一个单例模式,并支持多线程调用。(6分)
3.请描述一下JVM加载class文件的原理机制?(6分)
4.请谈谈对SQL注入的理解,请给出你知道的防止SQL注入的方法。(6分)
5.请谈谈对Hibernate的理解,简要叙述Hibernate的一级缓存和二级缓存(8分)。
6.请写出你知道的排序方法,并使用Java语言写出其中一种。(8分)
答案 
一、填空题
1.封装 、 继承 、 多态
2.unicode 2
3.定义  调用
4.application  session
5.Seralizabe
6.runnable
7.setPriority()
8.单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)
9.xml
10.IP地址 接口
二、选择题
1.C
2.C
3.BD
4.C
5.A
6.B
7.C
8.C
9.B
10.A
11.C
12.A
13.C
14.C
15.D
16.B
17.B
18.B
19.C
20.B
三、简答题(参考答案)
1. ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。