zoukankan      html  css  js  c++  java
  • java笔试题选择题编程题集锦

    一、选择题(每题2分)

    1.下列哪些情况可以终止当前线程的运行?

    a. 抛出一个例外时。

    b. 当该线程调用sleep()方法时。

    c. 当创建一个新线程时。

    d. 当一个优先级高的线程进入就绪状态时。

    答案:ABD

    2. 下面哪些为构造函数的特性定义         

    a. 在类中声明构造函数时,名称应该与类名相同

        b. 具有重载特性,可以建立多个相同的名称

        c. 使用类建立新对象时,会自动执行构造函数,因此在构造函数内设定变量的初值或进行内存分配

    d. 以上都是

    答案:ABCD

    3. 关于异常处理机制的叙述哪些正确     

        a. catch部分捕捉到异常情况时,才会执行finally部分

        b. 当try区段的程序发生异常时,才会执行catch区段的程序

        c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分

    d. 以上都是

    答案:BC

    4. 下列关于接口的叙述中哪些是错误的         

        a. 接口中的数据必须设定初值

        b. 接口中无法声明一般方法

        c. 接口可以声明引用

    d. 以上都正确

    答案:BC

    5. Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?

    A. 重写是父类与子类之间多态性的一种表现。

    B. 重写是一个类中多态性的一种表现。

    C. 重载是一个类中多态性的一种表现。

    D. 重载是父类与子类之间多态性的一种表现。

    6.在Struts应用的视图中包含哪些组件?

    A. JSP

    B. Servlet

    C. ActionServlet

    D. Action

    E. 代表业务逻辑或业务数据的JavaBean

    F. EJB

    G. 客户化标签

    答案:A,G

    7. struts框架中,关于FormBean,下列哪些说法是正确的:       
           A  FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action
          B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证
           C 用户每次提交表单,都会产生一个新的FormBean实例
          D 动态FormBean不能进行验证操作

    答案:A

    8.以下哪些不是Hibernate的检索方式:

    A、导航对象图检索   

    B、OID检索      

    C、ORM检索

    D、QBC检索            

    E、本地SQL检索 

    F、HQL检索

    答案:C

    9.以下代码定义了一个变量,如何输出这个变量的值?

    <bean:define id="stringBean" value=“helloWorld“/>

    (A)<bean:write name=“stringBean"/>

    (B) <bean:write name=“helloWorld"/>

    (C)<%= stringBean%>

    (D)<% String myBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);

    %>

    <%=myBean%>

    答案: A,D

    10.EJB有哪些对象?

    1. Remote(Local)接口
    2. Home(LocalHome)接口
    3. Bean类
    4. Enterprise Bean Provider

    答案:A B C

    11方法可以进行servlet的调试?(A B C D E)

    A、使用打印语句; 在桌面计算机上运行服务器

    B、使用Apache Log4J

    C、使用IDE集成的调试器

    D、直接查看HTML源码

    E、返回错误页面给客户

    12、下面关于servlet的功用说法正确的有哪些?(A B C D E)

        A、读取客户程序发送来的显式数据

    B、读取客户程序发送来的隐式数据

    C、生成相应的结果

    D、发送显式的数据给客户程序

    E、发送隐式的数据给客户程序

    13、下面关于session的用法哪些是错误的?(A B D)

        A、HttpSession session = new HttpSession();

        B、String haha = session.getParameter(“haha”);

        C、session.removeAttribute(“haha”);

        D、session. setAttribute(“haha”);

    14、关于<jsp:include page="Relative URL" />说法正确的有哪些?(A B C)

    A、URL的输出在请求时被插入到JSP页面中

    B、不能含有影响整个页面的JSP内容

    C、被包含文件改变后不需更改使用它的页面

    D、被包含文件更改后,需要手动地更新使用它的页面

    15、关于bean的说法正确的有哪些?(B D)

        A、具备一个零参数(空)的构造函数(不是必须的)

    B、不应该有公开的实例变量(字段)

    C、所有的属性都必须通过getXxx和setXxx方法来访问

    D、布尔型的属性使用isXxx,而非getXxx

    16、下面关于MVC说法错误的有哪些?(A C)

        A、必须使用复杂的框架

        B、使用内建的RequestDispatcher能够很好地实现MVC

        C、MVC影响整个系统的设计

        D、我们可以用MVC来处理单个请求

    17、下面的标签中哪些是JSTL标签?(A B C)

        A、<c:out…/>

        B、<c:set…/>

        C、<c:if…/>

        D、<c:errors…/>

    18、使用Junit测试equals()必须根据哪些属性来进行?(A B C)

        A、反身性

        B、对称性

        C、传递性

        D、一致性

    19、以下哪些说法是正确的?C

    (A)每个HTTP请求对应一个单独的ActionServlet实例

    (B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。

    (C)每个子应用对应一个单独的RequestProcessor实例

    (D)每个子应用对应一个单独的web.xml文件

    20、ActionForm Bean对象是由谁创建的?C

    (A) <html:form>标签处理类

    (B) ActionServlet

    (C) RequestProcessor

    (D) Action  

    21、struts框架,错误的是,面那些说法正确?        
       A Struts中无法完成上传功能
       B Struts框架基于MVC模式
       C Struts框架容易引起流程复杂、结构不清晰等问题
       D Struts可以有效地降低项目的类文件数目

    答案:C

                                                                                                                                      

    四、编程题1、2题各15分,3题20分)

    1、利用异常处理机制的方法来制作一个代码程序段。输入I am 007”时,打印亲爱的007,您好;输入其他字符串时,打印对不起,请下次进入,然后程序结束

    import java.io.*;

    public class KB

    {

           public static String scan()

           {

                  String str="";

                  try

                  {

                         BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

                         str=buf.readLine();

                  }

                  catch(Exception e){}

                  return str;

           }

    }

    public class MyExceptionTest {

           public static void exceptionThrow() throws MyException1 {

                  throw new MyException1();

           }

           public static void anotherThrow() throws MyException2 {        

                  throw new MyException2();

           }

           public static void main(String args[]) {

                  try {

                         String str=KB.scan();

                         if(str.equals("I am 007"))

                                exceptionThrow();

                         else

                                anotherThrow();

                        

                  } catch (MyException1 e1) {

                         e1.printStackTrace();

                  } catch (MyException2 e2) {

                         e2.printStackTrace();

                  }

           }

    }

    class MyException1 extends Exception {

           MyException1() {

                  super("亲爱的007,您好");

           }

    }

    class MyException2 extends Exception {

           MyException2() {

                  super("对不起,请下次进入");

           }

    }

    2、使用同步函数实现卖100张票。要求写两个类(主函数类:MainTest,线程类:ThreadTest,线程类实现Runnable接口。

    public class MainTest {

           public static void main(String args[])

           {

                  Thread t=new Thread(new ThreadTest());

                  t.start();

           }

    }

    class ThreadTest implements Runnable{

           private int tickets = 100;

           public void run() {

                  while(true)

                  {

                         sale();

                  }

           }

           public synchronized void sale()

           {

                  if(tickets>0)

                  {

                         try{

                                Thread.sleep(10);                       

                         }catch(Exception e)

                         {

                                e.printStackTrace();

                         }

                         System.out.println(Thread.currentThread().getName()+" is saling ticket "+tickets--);

                  }

           }

    }

    3、请完成一个选课系统里注册模块的程序设计:

    条件:

    学生的持久化类的属性有:id,username,password,sex,major,class,

    课程的持久化类的属性有:id,coursename,classroom,coursetime,

    JSP页面为:reg.jsp,regok.jsp,regbad.jsp;

    完成学生与课程的持久化类的映射文件,设置成级连保存,延迟检索;

    写出与注册页面相对应的的Action和ActionForm;要求ActionForm要对表单中的数据格式进行验证;Action要对学生的用户名进行唯一验证;如果没有重复的用户名就可以注册成功,否则失败;

    写出检测用户名是否存在的方法;

    根据session接口写出相应的方法;

    Course.hbm.xml

    <hibernate-mapping>

        <class name="com.hibernate.Course" table="COURSES">

            <id name="id" type="integer">

                <column name="ID" />

                <generator class="increment" />

            </id>

            <property name="coursename" type="string">

                <column name="COURSENAME" length="45" not-null="true" />

            </property>

            <property name="coursetime" type="string">

                <column name="COURSETIME" length="45" not-null="true" />

            </property>

            <property name="classroom" type="string">

                <column name="CLASSROOM" length="45" not-null="true" />

            </property>

            <set name="stu_cou" cascade="save-update" lazy="true" inverse="true">

                <key>

                    <column name="COU_ID" not-null="true" />

                </key>

                <one-to-many class="com.hibernate.StudentCourse" />

            </set>

        </class>

    </hibernate-mapping>

    Student.hbm.xml

    <hibernate-mapping>

        <class name="com.hibernate.Student" table="STUDENTS">

            <id name="id" type="integer">

                <column name="ID" />

                <generator class="increment" />

            </id>

            <property name="username" type="string">

                <column name="username" length="45" not-null="true" />

            </property>

            <property name="password" type="string">

                <column name="password" length="45" not-null="true" />

            </property>

             <property name="sex" type="string">

                <column name="SEX" length="45" not-null="true" />

            </property>

            <property name="stuclass" type="string">

                <column name="STUCLASS" not-null="true" />

            </property>

            <property name="major" type="string">

                <column name="major" length="45" not-null="true" />

            </property>

            <set name="stu_cou" cascade="save-update" lazy="true" inverse="true">

                <key>

                    <column name="STU_ID" not-null="true" />

                </key>

                <one-to-many class="com.hibernate.StudentCourse" />

            </set>

        </class>

    </hibernate-mapping>

    StudentCourse.hbm.xml

    <hibernate-mapping>

        <class name="com.hibernate.StudentCourse" table="student_course">

            <id name="id" type="integer">

                <column name="ID" />

                <generator class="increment" />

            </id>

            <many-to-one name="course" class="com.hibernate.Course">

                <column name="COU_ID" not-null="true" />

            </many-to-one>

            <many-to-one name="student" class="com.hibernate.Student">

                <column name="STU_ID" not-null="true" />

            </many-to-one>

        </class>

    </hibernate-mapping>

    struts-config.xml

    <struts-config>

      <data-sources />

           <form-beans>

                  <form-bean name="RegFormBean"

                                   type="com.formbean.RegFormBean"/>

           </form-beans>

      <global-exceptions />

      <global-forwards />

      <action-mappings >

      

        <action path="/actions/reg"

                      type="com.action.RegAction"

                      name="RegFormBean"

                      input="/reg.jsp">

          <forward name="bad"

                        path="/regbad.jsp" />               

          <forward name="success"

                        path="/regok.jsp" />

        </action>

      </action-mappings>

      <message-resources parameter="MessageResource"

                                       null="false"/>

    </struts-config>

     

     

    4Java编程,打印昨天的当前时刻

    public class YesterdayCurrent{

      public void main(String[] args){

      Calendar cal = Calendar.getInstance();

      cal.add(Calendar.DATE, -1);

      System.out.println(cal.getTime());

      }

    }

    5.文件读写,实现一个计数器

      public int getNum(){

          int i = -1;

          try{

            String stri="";

            BufferedReader in = new BufferedReader(new FileReader(f));

            while((stri=in.readLine())!=null){

              i = Integer.parseInt(stri.trim());

            }

            in.close();

          }catch(Exception e){

            e.printStackTrace();

          }

          return i;

      }

      public void setNum(){

          int i = getNum();

          i++;    

          try{

            PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false)));

            out.write(String.valueOf(i));         //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String

            out.close() ;

          }catch(Exception e){

            e.printStackTrace();

          }

      }

    6. 指出下面程序的运行结果:

    class A{

      static{

          System.out.print("1");

      }

      public A(){

          System.out.print("2");

      }

    }

    class B extends A{

      static{

          System.out.print("a");

      }

      public B(){

          System.out.print("b");

      }  

    }

    public class Hello{

      public static void main(String[] ars){

          A ab = new B(); //执行到此处,结果: 1a2b

    ab = new B(); //执行到此处,结果: 1a2bab

      }

    }

       注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造

    7.写一个Singleton模式的例子

    public class Singleton{

      private static Singleton single = new Singleton();

      private Singleton(){}

      public Singleton getInstance(){

        return single;

      }

    }

    8 删除表的重复记录

         如果记录完全相同才算重复记录,那么: (sql server2000下测试通过)

    select distinct * into #tmpp from tid

    delete from tid  

    insert into tid select * from #tmpp

    drop table #tmpp

      如果有id主键(数字,自增1的那种),那么:(sql server2000下测试通过)

    delete from tableA where id not in

    (select id = min(id) from tableA group by name)

  • 相关阅读:
    2021.10 好运气
    2021.9 抢购
    2021.8 全周期工程师
    2021.7 创业者
    2021.6 过年
    jenkins学习17
    httprunner 3.x学习18
    httprunner 3.x学习17
    python笔记57-@property源码解读与使用
    httprunner 3.x学习16
  • 原文地址:https://www.cnblogs.com/linzheng/p/1926854.html
Copyright © 2011-2022 走看看