zoukankan      html  css  js  c++  java
  • 就业模拟试题2_答案

    一、    基础知识部分(每题2分,共40分)

    1.简单叙述委托

    答案

    委托实际上是类(一个貌似函数一样的类),我们已经使用函数指针很多年了——函数指针也被称为过程类型,但是它们的实现都不是类。它们是单独的函数指针的简单实例。委托是包含这些功能的类,委托类通过保留的列表来确定某些事物是否已经指派给了委托,这种算法可以理解为:“对于内部列表中的每一个回调函数,都调用函数”。委托除了支持回调函数外,还可以通过该列表来实现多播(委托链)。

    2.重载和重写的区别

    答案

    重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

    重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,

    3.说明一下public,private,interface,protect的访问权限

    答案

    1 public任何类都可以访问

    2 private 只允许本类访问

    3 interface 谈不上访问权限

    4 protect 包内都可以访问,包外子类才可以访问

    4.说明一下final,finally,finalize的用法

    答案

    final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。方法的参数被final修饰表示在方法体内,该参数的值不可以被修改。

    private final String ss = "ss";

    public final void m(){

    }

    public String m2(final String param){

    }

    finally在异常处理时提供finally块来执行任何清除操作。无论有没有异常被抛出、捕捉,finally块都会被执行。

    finalize是方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

    5.include与forward的区别

                         答:forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.
    举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中用forward命令会转到servlet2中,显示22222.
    而在servlet1中使用include方法会依然在servlet1的页面中,但是在1111后打出22222

    6.引用和值类型的区别,用代码说明

    答案

    声明一个值类型变量,编译器会在栈上分配一个空间,这个空间对应着该值类型变量,空间里存储的就是该变量的值。

    引用类型的实例分配在堆上,新建一个引用类型实例,得到的变量值对应的是该实例的内存分配地址,

       1:public class Person

       2: {

       3:     public string Name { get; set; }

       4:     public int Age { get; set; }

       5: }

       6: 

       7: public static class ReferenceAndValue

       8: {

       9:     public static void Demonstration()

      10:     {

      11:         Person zerocool = new Person { Name = "ZeroCool", Age = 25 };

      12:         Person anders = new Person { Name = "Anders", Age = 47 };

      13: 

      14:         int age = zerocool.Age;

      15:         zerocool.Age = 22;

      16: 

      17:         Person guru = anders;

      18:         anders.Name = "Anders  Hejlsberg";

      19: 

      20:         Console.WriteLine("zerocool's age:\t{0}", zerocool.Age);

      21:         Console.WriteLine("age's value:\t{0}", age);

      22:         Console.WriteLine("anders' name:\t{0}", anders.Name);

      23:         Console.WriteLine("guru' name:\t{0}", guru.Name);

      24:     }

      25: }

    7.谈谈对XML的认识,XML的作用

    8.说明String str = null、String str = “”、String str = new String(“”)的区别

           答:String str=""和String str = new String(""); 是一样的;
    String str = null; 是赋值为空~
    ""和空不是同一个概念~

    String str = null 是 str 在栈里面的值就为空了~如果用这个去调用
    String的方法比如:str.subString();就会报空引用异常~
    String str=""和String str = new String(""); str 在栈里面的值的不是为空~她所引用的内存地址里面的值为"";用这个调用方法不会出现空异常~

    9.public class Test {
                  public static void changeStr (String str) {
                         str="welcome";
                  }
                  public static void main (String[] args) {
                         String str="1234";
                         changeStr(str);
                         System.out.println(str);
                  }
           }
           以上代码的输出结果是什么?为什么?

    10.SELECT * FROM [TABLE_NAME]
           和
           SELECT * FROM [TABLE_NAME] 
           WHERE [NAME] LIKE '%%' AND [ADDR] LIKE '%%' 
           AND ([1_ADDR] '%%' OR [2_ADDR] '%%' 
           OR [3_ADDR] '%%'  OR [4_ADDR] '%%' ) 

           的检索结果为何不同?
           假定表TABLE_NAME中仅包含NAME、ADDR、1_ADDR、   2_ADDR、 3_ADDR、 4_ADDR 几个字段

    11.什么是自定义控件?动态如何传数据?

    答案

    1)        概述:自定义控件也是asp.net的一种服务器控件,体现格式为*.dll

    2)        适用场合:当.net平台给我们提供的web服务器控件不够用的时候,就需要我们自己开发一个自定义控件,或者又称为第三方控件;可以把该种控件添加到工具箱中,然后就像使用Web服务器控件一样。例如:分页控件

    3)        在控件内部公开属性,通过给属性赋值进行数据的交互; 控件最终体现在界面上的样式是靠重写父类的Render方法来实现的

    12.dataset和dataread的区别?

    答案

    DataSet提供一个内存中数据的关系表示形式,一整套包括一些表在内的数据(这些表包含数据、对数据进行排序并约束数据),以及表之间的关系。DataReader提供一个来自数据库的快速、仅向前、只读数据流。

    13.什么是Code-Behind技术?

    答案

    字面意思就是:代码在后面,也就是代码隐藏的意思。

    主要是通过aspx页面指向对应的CS文件,可以实现显示逻辑和处理逻辑的分离,这样做有别于以前的asp页面和代码全混在一起不容易后期的修改和维护,使用code behind更容易维护,美工和程序员可以很好的分工

    14.什么修饰符可以使类无法继承?

    答案

    4)        Sealed 密封的

    5)        结构(struct)默认就是密封的

    15.说明.net中的错误处理机制

    答案

      异常处理有两种方法:一种是使用Try Catch处理,一种使用throw扔出

                  16.Try {}里有一个return语句,那么紧跟在这个try后的finally {}里的              code会不会被执行,什么时候被执行,在return前还是后 

    17.列举一种适合asp.net应用开发的分层结构,介绍每层的作用

    答案

    1)表现层  显示数据和接受输入

       2)业务逻辑层  用于进行业务数据的处理

       3)数据访问层  用于访问数据

       4)实体层  用于控制数据传递对象

                  18.怎么防止用户因为退出不点退出按钮直接关闭浏览器带来的不必要                       的服务器压力?(除了设置session的有效期)

                         答: session Lister

    19..net中读写数据库需要用到那些类?他们的作用?

    答案

    SqlConnection 连接数据库

    SqlCommand 执行Sql语句或存储过程

    SqlDataReader 实现对数据表记录向前只读

    SqlDataAapter 执行Sql语句或存储过程

    20..net的身份验证方式有哪些?分别是什么原理?

    答案

    Windows身份验证,基于Windows系统的用户的认证

    Forms身份验证,基于Form表单的认证

    二、    编程题(共25分)

    1.1+1+2+3+5+8+…到第30位多少?3分)

    答案

    斐波那契数列

    832040

    2.写一个单例模式例子 4分)

    答案

    Public class SingleClass

    {

    Private SingleClass()

    {}

    Static SingleClass objClass= null;

    Public static SingleClass GetObject()

    {

        If(objClass!=null)

        {

            objClass = new SingleClass();

    }

    Return objClass;

    }

    }

    答案

    public class SingletonTest{

     int value;

     private static SingletonTest instance;

     private SingletonTest(){

      System.out.println("正在执行构造函数.......");

      }

      private static SingletonTest getInstance(){

       if(instance==null){

        instance=new SingletonTest();

        }

       return instance;

      

       }

      

      public int getValue(){

       return value;

      

       }

      public void setValue(int value){

       this.value=value;

      

       }

      public static void main(String []s){

       SingletonTest t1=SingletonTest.getInstance();

       SingletonTest t2=SingletonTest.getInstance();

       t2.setValue(9);

       System.out.println(t1.getValue());

       System.out.println(t1==t2);

      

       }

     }

    3.写一个Java/C# 的排序算法 6分)

    4.编写SQL语句,删除一个表中的重复记录,假如表中有一个name                   字段,name重复即为重复记录 3分)

    5.表结构:
                  1、 表名:g_cardapply
                         字段(字段名/类型/长度):
                         g_applyno varchar 8;//申请单号(关键字)
                         g_applydate bigint 8;//申请日期
                         g_state varchar 2;//申请状态
                  2、 表名:g_cardapplydetail
                         字段(字段名/类型/长度):
                         g_applyno varchar 8;//申请单号(关键字)
                         g_name varchar 30;//申请人姓名
                         g_idcard varchar 18;//申请人身份证号
                  其中,两个表的关联字段为申请单号。
                  问题:(各3分,共9分)
                  1) 查询身份证号码为440401430103082的申请日期

    Select g_applydate from g_cardapply gc inner join g_ cardapplydetail gcd 

    on gc. g_applyno=gcd. g_applyno where g_idcard=’ 440401430103082’
                  2) 查询同一个身份证号码有两条以上记录的身份证号码及记录个数

    select g_idcard,count(*) from g_cardapplydetail group by g_idcard having count(*)>=2

           3) 删除g_cardapplydetail表中所有姓李的记录

    Delete from g_cardapplydetail where g_name like ‘李%’;

    三、    论述题(1-6题每题5分,第7题2分,第8题3分,共35分)

    1.对AJAX的理解及其优点

    2.Abstract类与Interface的区别,以及他们在开发中的作用

    3. 描述Struts体系结构。对应各个部分的开发工作主要包括哪些

    答案

    Struts实现了mvc模式.其中,自定义标签和ActionForm实现了视图层,ActionServlet,struts-Config.xml,action,RequestProcessor类实现了控制器.JavaBean实现了业务逻辑层.

    客户端发送来的请求,由ActionServlet接收,转发给RequestProcessor类,这个类负责读配置文件,把请求中的值付给ActionForm,并调用Action处理.Action处理完后,返回映射,跳转到响应页面.

    4.谈谈你对抽象工厂设计模式的理解,并举出一个使用该模式的例子。

                  5.简要谈一下您对微软NET 构架下Remoting和WebService两项技术                        的理解以及实际中的应用。

    答案

    ASP.NET Web 服务的基础结构是通过将SOAP消息映射到Web方法调用,为Web服务提供了简单的API。通过提供一种非常简单的编程模型

    (基于将 SOAP 消息交换映射到方法调用),它实现了此机制。ASP.NET Web 服务的客户端不需要了解用于创建它们的平台、对象模型或编程语言。而服务也不需要了解向它们发送消息的客户端。唯一的要求是:双方都要认可正在创建和使用的 SOAP 消息的格式,该格式是由使用 WSDL 和 XML 架构 (XSD) 表示的 Web 服务合约定义来定义的。

    .NET Remoting 为分布式对象提供了一个基础结构。它使用既灵活又可扩展的管线向远程进程提供 .NET 的完全对象语义。ASP.NET Web 服务基于消息传递提供非常简单的编程模型,而 .NET Remoting 提供较为复杂的功能,包括支持通过值或引用传递对象、回调,以及多对象激活和生命周期管理策略等。要使用 .NET Remoting,客户端需要了解所有这些详细信息,简而言之,需要使用 .NET 建立客户端。(或者使用支持 .NET Remoting 的其他框架)。

    6.简述ORM的原理是什么?

    答案

    ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。

    7.详细说明三层架构中各层的作用以及之间的相互关系。

    8.select * from product where sal*12<5000

           其中sal是表product的索引列。优化此语句,并简述原因

  • 相关阅读:
    DBUtils温习2
    DBUtils温习1
    C3P0连接池温习1
    JDBC复习2
    JDBC复习1
    Spring的AOP基于AspectJ的注解方式开发3
    Spring的AOP基于AspectJ的注解方式开发2
    Spring的AOP基于AspectJ的注解方式开发1
    高血压认知3
    pandas cookbook
  • 原文地址:https://www.cnblogs.com/soundcode/p/1910681.html
Copyright © 2011-2022 走看看