VB.NET程序题

VB.NET程序题,第1张

1、

For j = 3 To 19 Step 4

m += 1

Next

为循环5次

For i = 1 To 15 Step 4

Next

为循环4次

则总共循环4*5=20,m没循环一次+1,则m=20

2、从下面这段可以看出“*”与“#”是同步的(因为走else时,会继续循环),有“*”肯定“#”,而输出“*”只有当i=2,4时,则有2次,为*#*#

For i = 1 To 5

If i Mod 2 = 0 Then

Console.Write("*")

Else

ContinueFor

EndIf

Console.Write("#")

Next

在加上最後次输出:Console.WriteLine("$")

结果则为:*#*#$

本文集中了多条常见的C# Net经典面试题目例如 NET中类和结构的区别 ASP NET页面之间传递值的几种方式? 并简明扼要的给出了答案 希望能对学习C# Net的读者有所帮助

请你说说 NET中类和结构的区别?

答 结构和类具有大体的语法 但是结构受到的限制比类要多 结构不能申明有默认的构造函数 为结构的副本是又编译器创建和销毁的 所以不需要默认的构造函数和析构函数 结构是值类型 所以对结构变量所做的改变不会影响其的原值 而类是应用类型 改变其变量的值会改变其原值 申明结构用Struck关键字 申明类用class关键字 向方法传递结构是时是通过值传递的 而不是通过引用 与类不同 结构的实例化可以不使用New关键字 类可以实现接口

死锁的必要条件?怎么克服?

答 系统的资源不足 进程的推进的顺序不合适 资源分配不当 一个资源每次只能被一个进程使用 一个资源请求资源时 而此时这个资源已阻塞 对已获得资源不放 进程获得资源时 未使用完前 不能强行剥夺

接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?

答 接口是可以继承接口的 抽象类是可以实现接口的 抽象类可以继承实体类 但是有个条件 条件是 实体类必须要有明确的构造函数

构造器Constructor是否可以被继承?是否可以被Override?

答 Constructor不可以被继承 因此不能被重写(Overriding) 但可以被重载(Overloading)

当一个线程进入一个对象的方法后 其它线程是否可以进入该对象的方法?

答 不可以 一个对象的方法只能由一个线程访问

用最有效的方法算出等已 对于几?

答 <<

C#是否可以对内存直接进行 *** 作?

答 这个问题比较难回答 也是个很大的问题 但是可以这样问答 C#是可以对内存进行直接 *** 作的 虽然很少用到指针 但是C#是可以使用指针的 在用的时候需要在前边加unsafe 中使用了垃圾回收机制(GC)功能 它替代了程序员 不过在C#中不可以直接使用finalize方法 而是在析构函数中调用基类的finalize()方法

Error和Exception有是区别?

答 error表示恢复不是不可能 但是很困难 exception表示一种实际或实现问题 它表示程序运行正常不可以发生的

谈谈final finally finallize的区别?

答 final用于申明属性 方法和类 表示属性不可变 方法不可以被覆盖 类不可以被继承

Finally是异常处理语句结构中 表示总是执行的部分

Finallize表示是object类一个方法 在垃圾回收机制中执行的时候会被调用被回收对象的方法

HashMap和Hashtable区别?

答 HashMap是Hashtable的轻量级实现 非线程安全的实现他们都实现了map接口 主要区别是HashMap键值可以为空null 效率可以高于Hashtable

Collection和Collections的区别?

答 Collection是集合类的上级接口 Collections是针对集合类的一个帮助类 它提供一系列静态方法来实现对各种集合的搜索 排序 线程安全化 *** 作

C#中委托是什么?事件是不是一种委托?

答 委托是一种安全的类似与函数指针 但是她比指针要安全的多 它可以把方法作为一个参数传递给另一个方法 可以理解为指向函数的引用 事件是一种消息机制 它是一种委托 委托不带方法体

Override Overload 的区别?

答 Override是重写的意思 它表示重写基类的方法 而且方法的名称 返回类型 参数类型 参数个数要与基类相同

Overload是重载是意思 它也表示重

写基类的方法 但是只要方法名相同 别的可以不同

在一个BS结构中需要传递变量值时 不能使用session coolke application 你有几中方法?

答 this server Transfer Querystring

C#种索引器实现过程 是否只能根据数字索引?

答 不是的 可以是任意类型

New有种用法?

答 有 种 第一种是 实例化如 New Class()

第二种是 public new 隐藏基类的方法

第三种是 在泛型类申明中的任何类型参数都必须有公共的无参构造函数

任何把一个Array复制到Arraylist中?

答 Foreach (object o in Array) ArrayList Add ( )

等有好多中种方法 自己想 概述反射和序列化? 答 反射 要给发射下一个定义还是比较难的 这里先说说我的理解 反射提供了封装程序集 模块和类型对象 可以用反射动态地创建类型的实例 将类型绑定到现有对象 或者从现有对象类型里获取类型 然后调用类型的方法或访问字段和属性

序列化 将对象转换为另一种媒介传输的格式过程 如 序列化一个对象 用Http通过internet在客户端和服务器之间传递该对象 在另一端用反序列化从该流中重新得到对象

Const和ReadOnly?

答 Const用来申明编程时申明常量 ReadOnly用来申明运行时常量

UDP和TCP连接有和异同?

答 TCP是传输控制协议 提供的是面向连接的 是可靠的 字节流服务 当用户和服务器彼此进行数据交互的时候 必须在他们数据交互前要进行TCP连接之后才能传输数据 TCP提供超时重拨 检验数据功能 UDP是用户数据报协议 是一个简单的面向数据报的传输协议 是不可靠的连接

进程和线程分别该怎么理解?

答 进程是比线程大的程序运行单元 都是由 *** 作系统所体会的系统运行单元 一个程序中至少要有一个进程 有一个进程中 至少要有一个线程 线程的划分尺度要比进程要小 进程拥有独立的内存单元 线程是共享内存 从而极大的提高了程序的运行效率同一个进程中的多个线程可以并发执行

ASP NET页面之间传递值的几种方式?

答 QueryString session cookies application server Transfer respose redictor

什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS CLS和CLR分别作何解释?

答 应用程序域 就是为安全性 可靠性 隔离性 和版本控制 及卸载程序提供的隔离边界 它通常由运行库宿主创建 应用程序域提供了一个更安全 用途更广的处理单元

托管代码 使用CLR编译语言编辑器开发编写的代码就叫托管代码

装箱和拆箱 是把值类型转换为引用类型的过程 是隐式的 相反的过程就是拆箱 是显式的

CTS是公共类型系统 CLS是公共语言规范 CLR公共语言运行库

强类型系统 每个变量和对象都必须具有申明类型

值类型和引用类型的区别?

答 值类型的值是存放在堆栈中的 改变其值 不改变变量原有的值 而引用类型的值是存放在栈中的 其引用的地址是存放在堆栈中的 改变其值也就改变了变量原有的值 值类型不允许包含null值 然而可空类型可以将null赋值给值类型l

的身份验证方式有哪些?

答 windows forms passport

解释一下UDDI WSDL的意义及其作用?

答 UDDI是统一描述集成协议 是一套基于Web的 分布式的 为WEB服务提供的信息注册的实现标准规范 同时为也是为企业本身提供的Web服务注册以让别的企业能够发现并访问的协议标准 提供了基于标准的规范 用于描述和发现服务 还提供了一组基于因特网的实现

WSDL这是一个基于XML的描述WEB服务的接口

什么是SOAP?

答 是简单访问协议 是在分布式环境中 交换信息并实现远程调用的协议 是一个基于XML的协议 使用SOAP 可以不考虑任何传输协议 但通常还是HTTP协议 可以允许任何类型的对象或代码 在任何平台上 以任一种语言相互通信 它是一种轻量级协议

如何部署一个页面?

答 vs vs 里边都有发表机制 vs 可以发布然后在复制部署

Vs 可以直接部署到对应的位置

如何理中的垃圾回收机制?

答 NET中的垃圾回收机制是引用程序对内存的回收和释放 当每次用new关键字创建一个对象时 运行库都要从托管堆中为其分配内存 因为空间是有限的 最终垃圾回收机制是要回收不用的内存的 已释放内存 重新使用

面向对象的三大基本原则?

答 封装 继承 多态

在 NET中所有类的基类是?

答 object

能用foreach遍历访问的对象需要实现?

答 需要实现IEnumerable接口和GetEnumerator ()方法

Heap与stack的差别?

答 Heap是堆 空间是由手动 *** 作分配和释放的 它的存储区很大的自由存储区

lishixinzhi/Article/program/net/201311/12642

很多用这个.

1. 问:怎样用 Win95 的记事本 (Notepad) 来编辑 Java源程序?

答:记得存档时扩展名要加上".java",文件类型改成:“所有的文件(*.*)”。

2. 问:到底 Java 是如何传递参数的?是by value或by reference?

答:All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]。根据以上 Java规格文件的说法, 所有参数应该都是传值的(by value)。但实际上, 实际经验却告诉我们所有 Java 的对象都是传址的(by reference)。因此我们可以这样解释: 基本类型(如int, float, char等)是by value,而所谓“对象”(Object)则是by value of reference to object。

3. 问:String这个类型的class为何定义成final?

答: 主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。

4. 问:finalizers和C++ 的 destructors有何差异?

答:Java内部具有“内存使用回收” 的机制, 虽然它也提供了类似 (C++ 的) destructors的 finalize(),每个对象都可以使用这个方法 method,但必须冒著破坏原先回收机制的危险。所以建议尽量避免使用finalize(),不妨考虑多使用 null 及 dispose() 来释出资源会好一些。

5. 问:继承了一个class叫做 Frotz,编译器却给我“No constuctor Frotz() in the class”这样的错误提示,为什么呢?

答:记住每当您定义了一个 class的constructor,除非您一开始就去call 这个constructor,否则 Java 会自动引入superclass原先不含参数的 constructor, 如果superclass的 constructor都是有参数的,那么问题中的错误提示便出现了。 解决的方法很简单, 找一找 API文件,加上正确的参数就得了。

6. 问:怎样让char类型的东西转换成int类型?

答:

char c = 'A';

int i = c;

//反过来只要作强制类型转换就行了

c = (char) I;

7. 问:我的applet原先好好的, 一放到web server就会有问题,为什么?

答:一般来说,从以下方向试试:

确定class文件的格式没错——已经编译过,也没有损坏的情形;

确定所有用到的class文件放到web server上,少一个都不行;

确定所有的文件名和class名称一致,特别检查大小写有无差错;

如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分);

web server上的文件档案应该事先设定好。(尤其是search,read和execute权限)

8. 问:怎样在 Applet中用某个图形涂满整个背景?

答:在背景建立 Panel 或 Canvas, 然後用图形填满它。

9. 问:怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?

答:首先在Applet的init() 方法中建立Frame instance, 然后将Menus, Menubar都加上去即可。 (setMenuBar() 是 Frame下的方法)或者,找到Applet上层的Frame后依法炮制。

Container parent = getParent()

while (! (parent instanceof Frame) )

parent = parent.getParent()

Frame theFrame = (Frame) parent

注意:第二个方法在Mac或某些browsers上并不可行。

如果您使用的是JDK 1.1,也可以考虑使用popup menu,这样就不必理会Frame的问题了。

10. 怎样比较两个类型为String的字符串?

答:在两个对象之间使用 "==",会将“两个对象是否有同一reference”的结果传回。也就是说, 这等同于“两个对象是否拥有同一地址 (address)”,或者“两个对象物件是否为同一对象”。如果您的意思是判断两个字符串的内容是否相同,那么应该使用以下的方法才对:

if (s1.equals(s2) )

or if (s1.equalsIgnoreCase(s2) )

or if (s1.startsWith(s2) )

or if (s1.endsWith(s2) )

or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )

or if (s1.compareTo(s2) <0)

11. 怎样将浮点数(float)相加 ? Float 好像没有办法?

答:我猜想您的程式大概写成这样:

Float One

Float Two

Float Hard = One + Two

请注意 float 和 Float 是不同的,前者是 Java 基本类型之一, 而后者却是class。您应该将源代码改为:

float One

float Two

float Hard = One + Two

Float One = new Float(1.0)

Float Two = new Float(2.0)

Float Hard = new Float(One.floatValue() + Two.floatValue())


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7916353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存