就业模拟试题2_答案-阿里云开发者社区

开发者社区> zting科技> 正文

就业模拟试题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的索引列。优化此语句,并简述原因



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2010/12/19/1910681.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10095 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11636 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9161 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4664 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7503 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22412 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载