面试题
文章平均质量分 80
peterzeng20210530
shopify新道路
展开
-
漫谈.Net中的自动垃圾收集(Garbage Collection)机制
一直以来,垃圾收集(GarbageCollection)在软件界的名声并不好。很多程式员认为垃圾收集做得不如自己来的直接,高效。这种说法有些时候是对的,一个精心为自己的特定程式设计定制的内存回收方法,肯定比为任何程式提供垃圾回收性能要高。但那对程式员需要甚高,一个项目下来花在内存回收的设计上的时间和精力是很可观的,而稍有不慎便会酿成灾难性的错误,技术再高超的程式员负担不起,整个现原创 2009-02-21 23:35:00 · 1666 阅读 · 0 评论 -
实战开发 C# 索引器学习笔记
简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。 声明方法如下(与属性相似): //修饰符 类型名称 this [类型名称 参数名] public type this [int index] { g原创 2009-02-22 22:36:00 · 656 阅读 · 0 评论 -
Collection,Map,HashMap,hashTable,TreeMap,List区别
Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别Collection接口,包含list和set子接口Collection和Map接口之间的主要区别在于:Collection中存储了一组对象,而Map存储关键字/值对。在Map对象中,每一个关键字最多有一个关联的值。Map:不能包括两个相同的键,一个键最原创 2009-02-22 19:12:00 · 1396 阅读 · 0 评论 -
如何处理几十万条并发数据
我在博客堂上也看到不少有关并发控制的文章,我一直是推荐使用时间戳来解决的。 比如我们在SQL Server中的表中定义一个字段为timestamp类型的字段ts,这个字段的值不需要我们进行控制的。 在Insert与Update时,数据库会自己进行ts值的更新,因此我们只要在Update时使用: Update xxx where key=@key and ts=@ts 就可以了,根本不用考虑t原创 2009-02-22 20:01:00 · 13993 阅读 · 1 评论 -
进程和线程的区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线原创 2009-02-22 20:37:00 · 22964 阅读 · 7 评论 -
堆和栈的区别(2)
堆和栈的区别 一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静 态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放 4另外还有一个专门放常量的地方。 - 程序结原创 2009-02-22 21:04:00 · 643 阅读 · 0 评论 -
static 用法小结
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, sta原创 2009-02-22 21:10:00 · 689 阅读 · 0 评论 -
面试题之四
1.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。2.数组有没有length()这原创 2009-02-22 21:14:00 · 673 阅读 · 0 评论 -
比较分析Vector、ArrayList和hashtable hashmap数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。正在装载数据……这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├H原创 2009-02-22 21:18:00 · 445 阅读 · 0 评论 -
什么是反射,什么序列化?
公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。反射通常具有以下用途: 使用 Assemb原创 2009-02-22 21:30:00 · 808 阅读 · 0 评论 -
.NET 中的对象序列化
简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行。例如,简单的二进原创 2009-02-22 21:31:00 · 450 阅读 · 0 评论 -
索引器的使用
索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。class SampleCollectionT>{ private T[] arr = new T[100]; public T this[int i] { get { return arr[i]; }原创 2009-02-22 22:35:00 · 611 阅读 · 0 评论 -
XML开发入门基础:XML和HTML的区别
XML被设计用来描述数据,其焦点是数据的内容。 HTML被设计用来显示数据,其焦点是数据的外观。 应该掌握的基础知识:在您继续学习之前,需要对以下知识有基本的了解: HTML / XHTML JavaScript or VBScript 什么是XML?XML指可扩展标记语言(EXtensible Markup Language)原创 2009-02-22 22:25:00 · 532 阅读 · 0 评论 -
abstract class和interface有什么区别(一)
选择将功能设计为接口还是抽象类(在 Visual Basic 中为 MustInherit类)有时是一件困难的事。“抽象类”是一种不能实例化而必须从中继承的类。抽象类可以完全实现,但更常见的是部分实现或者根本不实现,从而封装继承类的通用功能。有关详细信息,请参阅抽象类。相反,“接口”是完全抽象的成员集合,可以被看作是为操作定义合同。接口的实现完全留给开发者去做。 接口和抽象类对组件交互都很原创 2009-02-22 09:08:00 · 490 阅读 · 0 评论 -
abstract class和interface有什么区别(二)
1. 引言在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。 2. 概念引入 ●什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。原创 2009-02-22 09:25:00 · 1095 阅读 · 0 评论 -
构造器Constructor是否可被override
构造器负责类中成员变量(域)的初始化。C#的类有两种构造器:实例构造器和静态构造器。实例构造器负责初始化类中的实例变量,它只有在用户用new关键字为对象分配内存时才被调用。而且作为引用类型的类,其实例化后的对象必然是分配在托管堆(Managed Heap)上。这里的托管的意思是指该内存受.NET的CLR运行时管理。和C++不同的是,C#中的对象不可以分配在栈中,用户只声明对象是不会产生构造原创 2009-02-22 14:31:00 · 3813 阅读 · 1 评论 -
是否可以继承String类
如果说整个类都是final(在它的定义前冠以final关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。 除此以外,我们或许还考虑到执行效率的问题,并想确保涉及这个类各对象的所有行动都要尽可能地有效。如下所示: //: Jurassic.java原创 2009-02-22 14:45:00 · 4225 阅读 · 0 评论 -
面试题之三
1.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。答:IEnumerable 、 GetEnumerator。2.GC是什么? 为什么要有GC?答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRu原创 2009-02-22 14:48:00 · 557 阅读 · 0 评论 -
List和Hashtable都是可以存储数据的,可为什么有时选择List,有时需要Hashtable,这两个有什么区别
(编程解决)List和Hashtable都是可以存储数据的,可为什么有时选择List,有时需要Hashtable,这两个有什么区别?这是一个面试经常问到的问题,我就被问到过,原来还真的没有考虑过这样的问题,只是去比较该用Vector还是ArrayList,该用Hashtable还是该用HashMap了,我喜欢用示例测试,并在其中加上附注,这样更好理解,如需要看更详细的集合之间的关系,请原创 2009-02-22 14:49:00 · 782 阅读 · 0 评论 -
C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue
1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3原创 2009-02-22 16:10:00 · 512 阅读 · 0 评论 -
关于static方法和变量,举例说明
有些朋友不太清楚static变量和方法的使用,特此举例说明public class TestStatic { public int i; public static int j;}使用的时候,TestStatic ts1 = new TestStatic();ts1.i = 3;ts1.j = 5;TestStatic ts2 = new Tes原创 2009-02-22 21:07:00 · 676 阅读 · 0 评论 -
NFramework开源AOP框架ORM的实现原理与应用
1. 基本概念对象关系映射(object relational mapping,简称orm)是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。简单的说,orm是通过使用描述语言来描述数据库与对象之间的映射关系,并将程序中的对象自动持久化到关系数据库中,本质上就是将数据从一种形式转换到另外一种形式。2. nhibernatenhibernate目前可谓如日中天,许多人都在谈原创 2009-02-22 21:33:00 · 616 阅读 · 1 评论 -
C# 参考 : sealed 密封类
sealed(C# 参考)<!-- Content type: Devdiv1. Transform: orcas2mtps.xslt. -->当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。1 class A {} 2 sealed class原创 2009-02-22 21:42:00 · 2657 阅读 · 0 评论 -
什么叫做SQL注入,如何防止
一、什么是SQL注入式攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如: ⑴ 某个ASP.NET Web应用有一个登录页面,这个登录原创 2009-02-22 22:03:00 · 1532 阅读 · 0 评论 -
解析.Net框架下的XML编程技术
一、前言 XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了。本文将指导大家如何运用C#语言完成.Net框架下的XML文档的读写操作。首先,我会向大家介绍.Net框架中与XML相关的命名空间和其中的重要类。其次,我还会给出有关的实例以使读者更进一步的了解XML文档的读写操作的具体方法。 二原创 2009-02-22 22:06:00 · 824 阅读 · 0 评论 -
xml 介绍
XML是Extensible MarkupLanguage的缩写,即可扩展标记语言是一种您可以用来创建自己的标记的标记语言。它由万维网协会(W3C)创建,用来克服HTML(即超文本标记语言(Hypertext Markup Language),它是所有网页的基础)的局限。和 HTML 一样,XML 基于SGML ― 标准通用标记语言(Standard Generalized Mark原创 2009-02-22 22:12:00 · 806 阅读 · 0 评论 -
IIS应用程序池以及应用程序池详解
什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。 Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而原创 2009-02-22 21:47:00 · 2560 阅读 · 0 评论 -
IIS5 IIS6 IIS7的ASP.net 请求处理过程比较
ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用。 绝大多数的人只熟悉高层的框架如: WebForms和 WebServices --这些都在ASP.NET层次结构在最高层。 这篇文章的资料收集整理自各种微软公开的文档,通过比较IIS5、IIS6、IIS7这三代IIS对请求的处理过程,让我们熟悉ASP.原创 2009-02-22 21:55:00 · 875 阅读 · 0 评论 -
请指出GAC的含义
全局程序集缓存 (GAC) 计算机范围内的代码缓存,它存储专门安装的程序集,这些程序集由计算机上的许多应用程序共享。在全局程序集缓存中部署的应用程序必须具有强名称 是的,gac中的所有的assembly都会存放在系统目录"%winroot%/assembly下面。放在系统目录下的好处之一是可以让系统管理员通过用户权限来控制assembly的访原创 2009-02-22 21:59:00 · 3036 阅读 · 0 评论 -
面试题之五
63.请指出GAC的含义? 答:全局程序集缓存。 64.向服务器发送请求有几种方式? 答:get,post。get一般为链接方式,post一般为按钮方式。 65.DataReader与Dataset有什么区别? 答:一个是只能向前的只读游标,一个是内存中的表。 66.软件开发过程一般有几个阶段?每个阶段的作用? 答:需求分析,架构设计,代码编写,QA,部署 67.在c#中usi原创 2009-02-22 22:00:00 · 5240 阅读 · 0 评论 -
SOAP基础知识点介绍
1.SOAP的引入 SOAP(Simple Object Access Protocol,简单对象访问协议)以XMI。的形式提供了一个简单的、用于分散或分布环境中交换结构化类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现,实际上,它通过提供一个有标准组件的包模型和在模块中编码的机制,定义了一个简单的表示应用程序语义的机制,这使SOAP能够被用于从消息原创 2009-02-22 22:16:00 · 2525 阅读 · 0 评论 -
XML和HTML的主要区别
XML和HTML的用途是不同的XML是HTML的一种补充,非常重要的一点是我们要明白XML不是HTML的一种替代品。在将来最可能的是网站开发者使用XML来描述网站所需数据和网站的结构,而HTML将用来格式化和显示这些数据; HTML是一个网站的基础,而XML会成为网站开发的一个重要特色,也许它将挑起所有数据的处理和传输XML 是被设计用来描述数据和定焦与数据是什么.HTML是被原创 2009-02-22 22:26:00 · 1076 阅读 · 0 评论 -
Hashtable和HashMap类的区别
最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方原创 2009-02-22 22:32:00 · 687 阅读 · 0 评论 -
比较Hashtable类和HashMap类的不同之处
Hashtable和HashMap类有三个重要的不同之处。 第一个不同 主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。 第二个不同 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的原创 2009-02-22 22:33:00 · 672 阅读 · 0 评论 -
C#中索引器的概述
C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。本文就会引领你设置类来采用索引器。但是,首先让我们概述下属性这个概念以便了解些必要的背景知识。 属原创 2009-02-22 22:34:00 · 767 阅读 · 0 评论 -
.net学习之WSE使用总结
一:概要 1. WSE1.0 Sp1 WSE(Web ServicesEnhancements) 是微软提供的一个实现了WS-Security, WS-Routing, WS-Attachments andDIME 等标准的组件(dll)。它使得开发人员可以不需要深入了解上述协议的具体内容就可以开发相应的Web Services程序,大大简化了开发难度,使得Web原创 2009-02-22 22:39:00 · 1154 阅读 · 0 评论 -
详述.NET里class和struct的异同
结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。结构是值类型 -- 如果从结构创建一个原创 2009-02-22 21:44:00 · 1229 阅读 · 0 评论 -
Hibernate框架ORM的实现原理
1. 什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。 2.什么是Hibernate 对于Hibernate的称呼有很多,比如工具、原创 2009-02-22 21:40:00 · 524 阅读 · 0 评论 -
理解SOAP (一)介绍、SOAP 版本
适用于:全局xml web 服务架构(gxa) 远程过程调用(rpc) soap 1.1 soap 1.2 规范 传输协议:tcp, http, smtp, 和 msmq microsoft® .net web services enhancements 1.0 sp1原创 2009-02-22 22:15:00 · 2530 阅读 · 0 评论 -
ADO.NET相对于ADO等主要有什么改进
数据的内存中表示形式在 ADO 中,数据的内存中表示形式为记录集。在 ADO.NET 中,它为数据集。它们之间有重要的差异。表的个数记录集看起来像单个表。如果记录集将包含来自多个数据库表的数据,则它必须使用 JOIN 查询,将来自各个数据库表的数据组合到单个结果表中。相反,数据集是一个或多个表的集合。数据集内的表称为数据表;明确地说,它们是 DataTable对象。如果数据集包原创 2009-02-22 22:27:00 · 4041 阅读 · 4 评论