JAVA简单考试题

JAVA考试题
一、        填空题:(15个×2)
1、             面向对象的特征有(至少写出三个): 封装、继承、多态                     

2、             Map采用 哈希算法      机制放置数据。
3、             c执行下列代码之后,st1.i和st2.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、             Struts中action执行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!=’sydney’ group by region                                                                   

12、        表Emp(id 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)
1、int a = 'A',请问System.out.println(a)打印出什么?A
A、65 B、A  C、a  D、97

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

int j;

j = i++;

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

B、m.length

C、m.length()+1

D、m.length+1

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

B、args[0] = "MyTest"

C、args[0] = "a"

D、args[1]= 'a'

5、已知如下代码:C
public class Test{

long a[] = new long[10];

public static void main ( String arg[] ) {

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

}

}

请问哪个语句是正确的?
A、Output is null.

B、Output is 0.

C、When compile, some error will occur.

D、When running, some error will occur.

6、下面哪几个函数是public void example(){...}的重载函数?ABD
A、 public void example( int m){...}      B、public int example(){...}
C、public void example2(){...}           D、 public int example ( int m, float f){...}
7、已知如下定义:String s = "story";下面哪个表达式是合法的?A D
    A、 s += "books";   B、char c = s[1];   C、int len = s.length;   D、String t = s.toLowerCase();
8、Which methods can be used by any threads in any times? D
   A、notify() B、wait()  C、notifyAll() D、sleep() E、yield() F、synchronized(this)
9、以下哪个方法用于定义线程的执行体? C
    A、 start()   B、init()   C、run()   D、main()   E、synchronized()
10、Consider 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`)
 

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

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

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

(1)   加载实例化
Servlet容器负责加载和实例化Servlet。
(2)   初始化
在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。
(3)   请求处理
Servlet容器调用Servlet的service()方法对请求进行处理。
(4)   服务终止
当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。
 

 

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

 

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值