JAVA考试题

来源:互联网 发布:pyqt4 windows 安装 编辑:程序博客网 时间:2024/04/29 11:59

JAVA考试题

一、        填空题:(15个×2

1、             面向对象的特征有(至少写出三个): 封装、继承、多态                      

2、             Map采用 哈希算法      机制放置数据。

3、             c执行下列代码之后,st1.ist2.i的值分别是: C里面没有这种语法         

class Test {
        static int I=47;
}
   Test st1 = new StaticTest();
   Test st2 = new StaticTest();
   Test.i++;

4、             Java语言中,有一个类是所有类和接口的父类,该类为: Object      

5、             Java基本数据类型的大小是否会根据编译环境的不同而改变?   不会     

6、             boolean型实例变量的默认初始值是: false       Boolean型实例变量的默认初始值是:  null      

7、             Jsp页面显示到浏览器,过程是 jsp页面被翻译成servlet、调用编译器进行编译生成class文件,响应客户端请求                                         

8、             开发管理工作流程分为五个过程:                                              

9、             Strutsaction执行excute()方法返回  ActionForward        对象。

10、        Collection的四种主要接口是  List ,Set , SortedSet  BeanContext          

11、        Select region,avg(log_size) from Location group by region having region != sydney’ 请修改上述SQL语句,避免使用having子句,用where子句替换:          

          Select region,avg(log_size) from Location where region!=sydneygroup by region                                                                    

12、        Empid varchar(12),name varchar(20), deptNo varchar(12)),Select id,name,deptno from Emp where name=110 or deptno=911, union语句替换 or 策略:

Select  id,name,deptno from Emp where name=110 union deptno=911                                                                  

13、        现在常用jsp网站的开发技术,列举两种   Servlet          struts           

14、        3.14%2.5=  0.6400000000000001       ;

15、        Class Base{int x=1; void point(){System.out.println(base);}}

Class Derive extends Base{int x=2; void point(){System.out.println(derive);}}

Public class confusions{

public static void main(String [] orgs){

Base obj = new Derive();

obj.point();

System.out.println(obj.x);}

}输出结果为:    derive 1                        

 

 

 

二、        选择题:(10个×3

1int a = 'A',请问System.out.println(a)打印出什么?A

A65 BA  Ca  D97

2、下面的代码段中,执行之后i j 的值是什么?  C

int i = 1;

int j;

j = i++;

A11 B12 C21 D22

3、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组下标量总数相等?  A

Am.length()

Bm.length

Cm.length()+1

Dm.length+1

4、已知如下的命令执行 java MyTest a b c, 请问哪个语句是正确的?C

Aargs[0] = "MyTest a b c"

Bargs[0] = "MyTest"

Cargs[0] = "a"

Dargs[1]= 'a'

5、已知如下代码:C

public class Test{

long a[] = new long[10];

public static void main ( String arg[] ) {

System.out.println ( a[6] );

}

}

请问哪个语句是正确的?

AOutput is null.

BOutput is 0.

CWhen compile, some error will occur.

DWhen running, some error will occur.

6、下面哪几个函数是public void example(){...}的重载函数?ABD

A public void example( int m){...}      Bpublic int example(){...}
C
public void example2(){...}           D public int example ( int m, float f){...}

7、已知如下定义:String s = "story";下面哪个表达式是合法的?A D

    A s += "books";   Bchar c = s[1];   Cint len = s.length;   DString t = s.toLowerCase();

8Which methods can be used by any threads in any times? D

   Anotify() Bwait()  CnotifyAll() Dsleep() Eyield() Fsynchronized(this) 

9、以下哪个方法用于定义线程的执行体? C

    A start()   Binit()   Crun()   Dmain()   Esynchronized()

10Consider the following code: CD

Integer s = new Integer(9);

Integer t = new Integer(9);

Long u = new Long(9);

Which test would return true?

A(s==u)

B(s==t)

C(s.equals(t))

D(s.equals(9))

E(s.equals(new Integer(9))

 

 

三、        简答题:(3个 )

1.    简述String以及StringBuffer的区别(6`

 

回答:(1String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String
final,即不能被继承

 

2StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();

 

2.    Servlet的生命周期(6`)

(1)   加载实例化

Servlet容器负责加载和实例化Servlet

(2)   初始化

Servlet实例化之后,容器将调用Servletinit()方法初始化这个对象。

(3)   请求处理

Servlet容器调用Servletservice()方法对请求进行处理。

(4)   服务终止

当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。

 

 

3.    简述Struts流程。(8`)

 

  采用Struts框架的web应用,在web应用启动时就会加载并初始化ActionServletActionServletstruts- config.xml文件中读取配置信息,把它们存放到各个配置对象中,例如Action的映射信息存放在ActionMapping对象中。
ActionServlet接收到一个客户请求时,将执行如下流程:
1).检索和用户请求相匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。
2).如ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
3).根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionFormValidate()方法。
4).如果ActionFormValidate()方法返回null或返回一个不包含ActionMessageActionErrors对象,就表示表单验证成功。
5).ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Actionexecute()方法。
6).Actionexecute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
7).ActionForward对象指向的JSP组件生成动态网页,返回给客户。

 

四、        编程题:(3个)

1.    请编写程序打印下列图案: *********  (5`)

*******  

                         ***** 

*** 

                                       

程序如下:

 

/**

 * 倒三角形类

 * @author wangen

 *

 */

public class Daosanjiao{

   public static void main(String[] args){

      //打印倒三角形

      new Daosanjiao().daosanjiao(9);

   }

   /**

    * 打印倒三角形

    * @param n

    */

   public void daosanjiao(int n){

      int i=0;

      for(i=n;i>=1;i-=2){

        //控制空格符的输出

        for(int k=(n-i)/2;k>=1;k--)

           System.out.print(" ");

        //控制星号的输出

        for(int j=i;j>=1;j--)

           System.out.print("*");

        System.out.println ();

      }

   }

}

 

 

2.    自定义一个字符串函数,其功能是随机产生一个由字母和数字组成的任意位数的字符串。(5`)

 

程序如下:

 

import java.util.Random;

/**

 * 随机串类(测试使用,故串的长度被限制在100之内)

 * @author wangen

 *

 */

public class RanStr {

   public static void main(String[] args){

      System.out.println(new RanStr().ranStr());

   }

  

   public String ranStr(){

      //随机串构成的字母集合

      final String strs="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

      //随机串的数字构成集合

      final String nums="0123456789";

      Random r1 = new Random();

      while(true){

            //数字串的Buffer

        StringBuffer ranStr=new StringBuffer();

        //声明随机串的构成标志,sf代表字母标志,nf代表数字标志

        boolean sf=false;

        boolean nf=false;

        //控制随机串的长度不能超过100

        int n=r1.nextInt(100);

        //如果随机串的长度不能大于2,也就是不能由字母和数组组成,故退出此次循环

        if(n<2) continue;

        //for循环,以生成随机串

        for(int i=0;i<n;i++){

           //随机生成标志,1为字母,2为数字

           int flag=r1.nextInt(2);

           //如果为1,则在ranStr追加一个字母

           if(flag==1){

              //将随机字母追加在ranStr

              int randNum = r1.nextInt(strs.length());

              ranStr.append(strs.substring(randNum, randNum+1));

              sf=true;

           //如果为0,则在ranStr追加一个数字

           }else{

                    //将随机数字追加在ranStr

              int randNum = r1.nextInt(nums.length());

              ranStr.append(nums.substring(randNum, randNum+1));

              nf=true;

           }

        }

        //如果ranStr是字母和数组构成,则返回该串。

        if(sf&&nf){

           return ranStr.toString();

        }else{

           continue;

        }

      }

   }

}

 

3.    简单写个机器人控制程序,一个控制器加两部机器人(类似就行,或者写出算法也可以。)(10`)