1-3年开发工作经验面试题

更新时间:2023-12-06 01:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 如下代码 class A { A() { } }

class B extends A { }

哪两个说明是正确的?

A. B类的构造器应该是 public. B. B类的构造器应该是没有参数 C. B类的构造器应该调用this(). D. B类的构造器应该调用super(). 答案:BD

解析:默认构造器的修饰符只跟当前类的修饰符有关。 比如B如果是public的,则默认构造方法是public的。 如果B是默认的访问权限,则构造方法相同。 当B是内部类是,前面也可以有protected,private等,默认添加的构造方法仍然和类的修饰符一致。

2. 如下代码

public class Test { public int aMethod() { static int i = 0; i++;

return i; }

public static void main (String args[]) { Test test = new Test(); test.aMethod();

int j = test.aMethod(); System.out.println(j); } }

输出结果是什么? A. 0 B. 1 C. 2

D. 编译失败 答案:D

解析:static在Java语言中的使用有四种:(成员变量、成员方法、代码块、内部类)

3. 如下代码:

boolean bool = true; if(bool = false) {

System.out.println(\} else if (bool) {

System.out.println(\} else if (!bool) {

System.out.println(\} else {

System.out.println(\}

输出结果是什么? A. a B. b C. c D. d

E. 编译失败 答案:C

4 Java不支持下面哪种继承?( ) A、多实现继承 B、多接口继承 C、单实现继承 D、单接口继承

5. 如下代码:

public class SwitchTest {

public static void main(String[] args) {

System.out.println(\}

public static int switchIt(int x) { int j = 1; switch (x) { case 1: j++; case 2: j++; case 3: j++; case 4: j++; case 5: j++; default: j++; }

return j + x; } }

输出结果是什么? A. value = 3 B. value = 4 C. value = 5 D. value = 6 E. value = 7 F. value = 8

答案:F

6. 以下哪四个能使用throw抛出? A. Error B. Event C. Object D. Throwable E. Exception

F. RuntimeException 答案:A,D,E,F

7. 下面哪三个描述是正确的? A. 默认构造器初始化方法变量

B. 默认构造器有和它所在类相同的访问修饰词. C. 默认构造器调用其父类的无参构造器.

D. 如果一个类没有无参构造器,编译器会为它创建一个默认构造器. E. 只有当一个类没有任何构造器时,编译器会为它创建一个默认构造器 答案:B,C,E

8关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( )。

A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问 9以下代码段将创建( )个对象。

String s1=\String s2=\

A、0 B、1 C、2 D、3

10编译并运行以下程序,以下描述哪个选项是正确的( )

1: class X{

2: protected String toString(){ 3: return super.toString();} 4: }

A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错

11执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( )

A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空

12、不是构造函数特点的是( )

A、构造函数与类名相同 B、构造函数可带参数也可不带

C、构造函数带有返回类型 D、构造函数主要完成对类对象的初始工作

13、下列哪一个f对象既能从文件file.txt读取数据,又能向文件file.txt写入数据(B) A、File f=new File(“file.txt”);

B、RandomAccessFile f=new RandomAccessFile(“file.txt”,”rw”); C、FileOutputStream f=new FileOutputStream(“file.txt”); D、FileInputStream f=new FileInputStream(“file.txt”);

14、下列哪种操作不会抛出异常?( D ) A、打开不存在的文件 B、用负数索引访问数组 C、浮点数除以0 D、浮点数乘0

15、以下是接口I的定义: interface I {

void setValue(int val); int getValue(); }

以下哪段代码能通过编译?( C ) A、 class A extends I{ int value;

void setValue(int val){value=val;} int getValue(){return value;} }

B、 class B implements I{ int value;

void setValue(int val){value=val;} }

C、 interface C extends I{ void increment( ); }

D、 interface D implements I{ void increment(); }

16、下列说法哪个是正确的? ( B )

A、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 B、JButton和JTextField都可用ActionListener接口实现事件处理 C、一个面板(JPanel) 不能被加入到另一个面板(JPanel)中 D、在BorderLayout中,添加到NORTH区的两个按钮将并排显示。

17、下面说法错误的是: ( C ) A、单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B、处理JButton和JTextField事件监听器接口都是ActionListener。 C、处理鼠标事件的事件监听器接口只有MouseListener。

D、在JTextField和JPasswordField中输入数据后按回车(Enter)键会激发一个事件。 18、Thread类用来创建和控制线程,启动一个线程应该使用下面的那个方法(B)。 A、init() B、start() C、run() D、notifyAll()

19、下列语句不合法的是: ( D ) A、ServerSocket svrsoc= new ServerSocket(8000); B、URL urlBase=new URL(“http://www. zjut.edu.cn”) C、File inFile = new File(“C:/ /test.txt”);

D、BufferedReader br = new BufferedReader(“C:/ /test.txt”);

二、判断题

1、在类的main方法中可以直接调用该类的非静态的方法。 (错) 2、接口中只能定义抽象方法,不能定义其他东西。 (错) 3、抽象类可有构造方法,因此也能用new进行实例化。 (错) 4、一个类可继承多个父类,实现多个接口。 (错) 5、一个容器中可以混合使用多种布局策略。 (对)

6、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。(错) 7、泛型只能用于类的定义中,不能用于接口的定义中。 (错) 8、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。 (对) 9、Java线程设计中,notify( )方法会激活在等待集中的所有线程。 (错)

10、Socket是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。 (对)

三、综合题

7、递归算法题2

第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?

package cn.itcast;

import java.util.Date;

public class A1 { }

}

if(n/2 != 0)

toBinary(n/2,result);

result.append(n%2);

public static void toBinary(int n,StringBuffer result) {

public static void main(String [] args) { }

public static int computeAge(int n) { }

if(n==1) return 10;

return computeAge(n-1) + 2;

System.out.println(computeAge(8));

94、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:

public class QuickSort { /** * 快速排序 * @param strDate * @param left * @param right */

public void quickSort(String[] strDate,int left,int right){ String middle,tempDate; int i,j; i=left; j=right;

middle=strDate[(i+j)/2]; do{

while(strDate[i].compareTo(middle)<0&& i

while(strDate[j].compareTo(middle)>0&& j>left) j--; //找出右边比中间值小的数

if(i<=j){ //将左边大的数和右边小的数进行替换 tempDate=strDate[i]; strDate[i]=strDate[j]; strDate[j]=tempDate; i++; j--; }

}while(i<=j); //当两者交错时停止

if(i

quickSort(strDate,i,right);//从 } if(j>left){

quickSort(strDate,left,j); } } /**

* @param args */

public static void main(String[] args){

String[] strVoid=new String[]{\QuickSort sort=new QuickSort(); sort.quickSort(strVoid,0,strVoid.length-1);

for(int i=0;i

用一条SQL语句 查询出每门课都大于80分的学生姓名

name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90

准备数据的sql代码:

create table score(id int primary key auto_increment,name varchar(20),subject varchar(20),score int);

insert into score values (null,'张三','语文',81), (null,'张三','数学',75), (null,'李四','语文',76), (null,'李四','数学',90), (null,'王五','语文',81), (null,'王五','数学',100), (null,'王五 ','英语',90);

提示:当百思不得其解时,请理想思维,把小变成大做,把大变成小做,

答案:

A: select distinct name from score where name not in (select distinct name from score where score<=80)

B:select distince name t1 from score where 80< all (select score from score where name=t1);

为什么要用 ORM? 和 JDBC 有何不一样?

orm是一种思想,就是把object转变成数据库中的记录,或者把数据库中的记录转变成objecdt,我们可以用jdbc来实现这种思想,其实,如果我们的项目是严格按照oop方式编写的话,我们的jdbc程序不管是有意还是无意,就已经在实现orm的工作了。 现在有许多orm工具,它们底层调用jdbc来实现了orm工作,我们直接使用这些工具,就省去了直接使用jdbc的繁琐细节,提高了开发效率,现在用的较多的orm工具是hibernate。也听说一些其他orm工具,如toplink,ojb等。

四种会话跟踪技术

会话作用域ServletsJSP 页面描述

page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系) session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

本文来源:https://www.bwwdw.com/article/8ert.html

Top