‘壹’ 求程序员--笔试面试题库
ASP.Net程序员测试题
一、数据库部分:
数据库中有以下几个表
Customers(客户信息)
列名称 含义 数据类型 可空 是主键 是外键 默认值
Customer_ID 客户编号 int(自动增长) N Y N 无
Customer_Name 客户名称 nvarchar(30) N N N 无
Procts(商品信息)
列名称 含义 数据类型 可空 是主键 是外键 默认键
Procts _ID 客户编号 int(自动增长) N Y N 无
Procts _Name 客户名称 nvarchar(100) N N N 无
Unit_Price 单价 decimal(7,2) N N N 无
Orders(订单信息)
列名称 含义 数据类型 可空 是主键 是外键 默认键
Order _ID 订单编号 int(自动增长) N Y N 无
Order _Date 订单日期 smalldatetime N N N DETDATEO
Customer_Price客户编号 int N N Y 无
OrderDetails(订单详细内容)
列名称 含义 数据类型 可空 是主键 是外键 默认键
Order _ID 订单编号 int(自动增长)N Y Y 无
Proct _ID 商品编号 smalldatetime N Y Y 无
Proct_Quantity商品数量 int N N N 1
问题如下
1.Orders表Order_Date字段的默认值GETDATEO是什么意思?
2.查询商品信息表中的商品总数量,各种商品平均单价。
3.查询用户名称为“张三”,订单日期为2005-8-30日的订单总金额。
4.查询商品名称为“联想电脑”的商品在2005-7-1日至2005-7-31之间每天的销售明细(要求显示日期、当日的销售总量)。
二、C#语法题
1.C#中所有类的基类是什么?
2.计算n+(n-1)+(n-2)+…+1(n=100)。
3.请阅读以下代码,并求出结果。
Int iResult=0;
Int iTemp=0;
for(int i=0;i+=2)
{
iResult+=i;
}
While(iTemp<3)
{
iResult-=iTemp;
iTemp++;
}
请问iResult的值为多少?
4.override与重载有什么区别?
5.阅读以下代码,然后回答问题
Private int Division(int x,int y)
{
return x/y;
}
请问该函数被调用时是否可能会出现问题?如果有问题请修改该函数。
6.public class A
{
private string_value=“”;
public A(string value)
{
This._value=value;
}
}
Public class B:A
{
//想在构造类B的同时初始化类A中的_value字段?
}
想在构造类B的同时初始化类A中的_value字段,是否可以实现?如果可以实现,请补充类B的代码。
7.public sealed class A
{
……
}
请问代码中的sealed是什么意思?
8.请问Session 和Application各在什么场合下使用(最好举例说明)
9.请问您在什么情况下会用到虚方法?它与接口方法有什么不同?
10.请列举二个您用到过的设计模式?
11.请列举一些ASP.Net中支持数据绑定的控件,您经常使用哪些?
12.页面上有一个input框的名字为txtPrice,请在提交前验证该控件中的内容(不能为空,必须是整数,用javascript验证)。
13.请问重定向页面有几种方法?
你可以试着做做看,公司出的题应该都不一样的,希望对你有所帮助!
‘贰’ 求程序员面试题
Java面试题集集锦
1.C++或Java中的异常处理机制的简单原理和应用。
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发 NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。
2. Java的接口和C++的虚类的相同和不同处。
由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是public.一个类可以实现多个接口。
3. 垃圾回收的优点和原理。并考虑2种回收机制。
Java语言中一个显着的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
4. 请说出你所知道的线程同步的方法。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
5. 请讲一讲析构函数和虚函数的用法和作用。
6. Error与Exception有什么区别?
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
7. 在java中一个类被声明为final类型,表示了什么意思?
表示该类不能被继承,是顶级类。
8. 描述一下你最常用的编程风格。
9. heap和stack有什么区别。
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。
堆是栈的一个组成元素
10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。
public class BigInt()
{
int[] ArrOne = new ArrOne[1000];
String intString="";
public int[] Arr(String s)
{
intString = s;
for(int i=0;i
{
11. 如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现
12,谈谈final, finally, finalize的区别。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
13,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
14,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
15,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
16,Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
17,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 Assertionerror。它用于调试目的:
assert(a > 0); // throws an Assertionerror if a <= 0
断言可以有两种形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:
javac -source 1.4 Test.java
要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。
要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。
要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
18,GC是什么? 为什么要有GC? (基础)。
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
19,String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
20,Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
21,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。
22,sleep() 和 wait() 有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
23,Java有没有goto?
Goto—java中的保留字,现在没有在java中使用。
24,数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有有length()这个方法。
25,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
26,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
27,给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, , DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
28,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
29,List, Set, Map是否继承自Collection接口?
List,Set是
Map不是
30,abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
31,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能
32,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
33,启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
34,构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
35,是否可以继承String类?
String类是final类故不可以继承。
36,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。
37,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
38,编程题: 用最有效率的方法算出2乘以8等于几?
有C背景的程序员特别喜欢问这种问题。
2 << 3
39,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
不对,有相同的hash code。
40,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
41,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
42,编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些
Hashtable和HashMap
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在
多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap
就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
43.描述一下JVM加载class文件的原理机制?
44.试举例说明一个典型的垃圾回收算法?
45.请用java写二*树算法,实现添加数据形成二*树功能,并以先序的方式打印出来.
46.请写一个java程序实现线程连接池功能?
47.给定一个C语言函数,要求实现在java类中进行调用。
48、编一段代码,实现在控制台输入一组数字后,排序后在控制台输出;
49、列出某文件夹下的所有文件;
50、调用系统命令实现删除文件的操作;
51、实现从文件中一次读出一个字符的操作;
52、列出一些控制流程的方法;
53、多线程有哪些状态?
54、编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序;
55、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
56、ArrayList和Vector的区别,HashMap和Hashtable的区别
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
57、char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
‘叁’ 谁能给我些最新的招聘JAVA程序员的面试题
Java基础方面:
1、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
2、ArrayList和Vector的区别,HashMap和Hashtable的区别
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
3、char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
答:父类:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
6、内部类的实现方式?
答:示例代码如下:
package test;
public class OuterClass
{
private class InterClass
{
public InterClass()
{
System.out.println("InterClass Create");
}
}
public OuterClass()
{
InterClass ic = new InterClass();
System.out.println("OuterClass Create");
}
public static void main(String[] args)
{
OuterClass oc = new OuterClass();
}
}
输出结果:
C:>java test/OuterClass
InterClass Create
OuterClass Create
再一个例题:
public class OuterClass {
private double d1 = 1.0;
//insert code here
}
You need to insert an inner class declaration at line 3. Which two inner class declarations are
valid?(Choose two.)
A. class InnerOne{
public static double methoda() {return d1;}
}
B. public class InnerOne{
static double methoda() {return d1;}
}
C. private class InnerOne{
double methoda() {return d1;}
}
D. static class InnerOne{
protected double methoda() {return d1;}
}
E. abstract class InnerOne{
public abstract double methoda();
}
说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。
故 D 错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确
四.答案为C、E
7、垃圾回收机制,如何优化程序?
希望大家补上,谢谢
8、float型float f=3.4是否正确?
答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4
9、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│└Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)
Map提供key到value的映射
10、Java中异常处理机制,事件机制?
11、JAVA中的多形与继承?
希望大家补上,谢谢
12、抽象类与接口?
答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。
13、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?
15、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
16、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
希望大家补上,谢谢
17、STRING与STRINGBUFFER的区别。
答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
Jsp方面
1、jsp有哪些内置对象?作用分别是什么?
答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
2、jsp有哪些动作?作用分别是什么?
答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
3、JSP中动态INCLUDE与静态INCLUDE的区别?
答:动态INCLUDE用jsp:include动作实现
<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面
<%@ include file="included.htm" %>
4、两种跳转方式分别是什么?有什么区别?
答:有两种,分别为:
<jsp:include page="included.jsp" flush="true">
<jsp:forward page= "nextpage.jsp"/>
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。
Servlet方面
1、说一说Servlet的生命周期?
答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
2、Servlet版本间(忘了问的是哪两个版本了)的不同?
希望大家补上,谢谢
3、JAVA SERVLET API中forward() 与redirect()的区别?
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
4、Servlet的基本架构
public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
}
Jdbc、Jdo方面
1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.
2、Class.forName的作用?为什么要用?
答:调用该访问返回一个以字符串指定类名的类的对象。
3、Jdo是什么?
答:JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
4、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。
答:一种分页方法
<%
int i=1;
int numPages=14;
String pages = request.getParameter("page") ;
int currentPage = 1;
currentPage=(pages==null)?(1):{Integer.parseInt(pages)}
sql = "select count(*) from tables";
ResultSet rs = DBLink.executeQuery(sql) ;
while(rs.next()) i = rs.getInt(1) ;
int intPageCount=1;
intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);
int nextPage ;
int upPage;
nextPage = currentPage+1;
if (nextPage>=intPageCount) nextPage=intPageCount;
upPage = currentPage-1;
if (upPage<=1) upPage=1;
rs.close();
sql="select * from tables";
rs=DBLink.executeQuery(sql);
i=0;
while((i<numPages*(currentPage-1))&&rs.next()){i++;}
%>
//输出内容
//输出翻页连接
合计:<%=currentPage%>/<%=intPageCount%><a href="List.jsp?page=1">第一页</a><a
href="List.jsp?page=<%=upPage%>">上一页</a>
<%
for(int j=1;j<=intPageCount;j++){
if(currentPage!=j){
%>
<a href="list.jsp?page=<%=j%>">[<%=j%>]</a>
<%
}else{
out.println(j);
}
}
%>
<a href="List.jsp?page=<%=nextPage%>">下一页</a><a href="List.jsp?page=<%=intPageCount%>">最后页
</a>
Xml方面
2、EJB与JAVA BEAN的区别?
答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。
3、EJB的基本架构
答:一个EJB包括三个部分:
Remote Interface 接口的代码
package Beans;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Add extends EJBObject
{
//some method declare
}
Home Interface 接口的代码
package Beans;
import java.rmi.RemoteException;
import jaax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface AddHome extends EJBHome
{
//some method declare
}
EJB类的代码
package Beans;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javx.ejb.SessionContext;
public class AddBean Implements SessionBean
{
//some method declare
}
J2EE,MVC方面
1、MVC的各个部分都有那些技术来实现?如何实现?
答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
2、应用服务器与WEB SERVER的区别?
希望大家补上,谢谢
3、J2EE是什么?
答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
4、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。
答:Web Service描述语言WSDL
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
5、BS与CS的联系与区别。
希望大家补上,谢谢
6、STRUTS的应用(如STRUTS架构)
答:Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能:
一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。
二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。
三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。
设计模式方面
1、开发中都用到了那些设计模式?用在什么场合?
答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。
2、UML方面
答:标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,
JavaScript方面
1、如何校验数字型?
var re=/^d{1,8}$|.d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-4;
break;
}
else{
document.form1.all(i).value=parseFloat(str);
}
CORBA方面
1、CORBA是什么?用途是什么?
答:CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:
用不同的程序设计语言书写
在不同的进程中运行
为不同的操作系统开发
LINUX方面
1、LINUX下线程,GDI类的解释。
答:LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
GDI类为图像设备编程接口类库。
‘肆’ JAVA程序员 面试题目
错误的地方:
一、4和5行,超出了byte类型的范围(-128~127);
二、全局整型变量x,y在声明时没有声明为static导致18,20,22行中用到变量x和y的地方都错了。不能在static块中引用非static成员。
三、check方法上可能看得出是返回一个boolean类型的变量,但是在程序中返回操作都放在了if语句块中,那么如果没有一个if语执行的话,就没有返回值了,所以应该加上一个默认的返回值。。。
四、28,29行错误,那两个变量都是final的,当然不能再改变其值了。。。。。。
五、32,35行的case处,用case时,必须返回一个常量,整型,或是枚举类型,修改方法有两个,(1)上面不是定义了这两个整型的值吗,直接case 0,case 1,(2)在上面的定义处,加上final.
不妥的地方:
一、定义角色横坐标,角色纵坐标变量时,最好放到方法里面,因为你的角色可能有多个实例,每个实例会有自己的坐标,而static不是属于某个实例的,而是属于整个整的。所有的角色只能共用一对坐标,感觉不妥啊。。。其他全局变量也一样,可以再细考虑一下。。
二、多加点注释,,别人可能不会看check方法里几个if是干什么的,费时间(各人观点)。
‘伍’ 急需程序员笔试题,附带答案
一、选择题(每题1分,共20分)
1. 下列那种语言是面向对象的(C)
A. C B. PASCAL C. C++ D. FORTRAN77
2.在 Windows9x 下,可以进入 MS-D0S 方式。当在 DOS 提示符下键入 (B ) 命令后,
系统将退出 MS-DOS方式,返回到 WIndows 方式。
A. CLOSE B. EXIT C. QUIT D. RETURN
3.下面哪些是面向对象的基本特性:(A,B,C )
A 多态 B 继承 C 封装 D 接口
4.在C++中经常要进行异常处理,下面哪些是异常处理常用到的关键词:(A,B,C)
A try B catch C throw D break E contiue
5.数据库技术中的“脏数据',是指(D)的数据。
A.错误 B.回返 C.未提交 D.未提交的随后又被撤消
6.TCP/IP是一种(A,B)
A.标准 B.协议 C.语言 D.算法
7. 下面有关计算机操作系统的叙述中,不正确的是( )
A 操作系统属于系统软件
B 操作系统只负责管理内存储器,而不管理外存储器
C UNIX 是一种操作系统
D 计算机的处理器、内存等硬件资源也由操作系统管理
8.微机上操作系统的作用是( D)
A 解释执行源程序 B 编译源程序
C 进行编码转换 D 控制和管理系统资源
9.下列存储器中存取速度最快的是(A )
A 内存 B 硬盘 C 光盘 D 软盘
10.在计算机中,—个字节是由多少个二进制位组成的( )
A. 4 B. 8 C. 16 D. 24
11. 存储16×16点阵的一个汉字信息,需要的字节数为( )
A 32 B 64 C 128 D 256
12. 以下选项中合法的字符常量是(C)
A."B" B. '\010' C. 68 D. D
13. 假定x和y为double型,则表达式x=2,y=x+3/2的值是()
A. 3.500000 B. 3 C. 2.000000 D. 3.000000
14. 以下合法的赋值语句是()
A. x=y=100 B. d--; C. x+y; D. c=int(a+b);
15. 设正x、y均为整型变量,且x=10 y=3,则以下语句
pprintf("%d,%d\n",x--,--y); 的输出结果是()
A.10,3 B. 9,3 C. 9,2 D.10,2
16. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
A .INPUT x、y、z; B. scanf("%d%d%d",&x,&y,&z);
C. scanf("%d%d%d",x,y,z); D. read("%d%d%d",&x,&y,&z);
17.以下数组定义中不正确的是()
A) int a[2][3]; B) int b[][3]={0,1,2,3};
C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
18. 以下程序的输出结果是()
main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}
A) 0650 B) 1470 C) 5430 D) 输出值不定
19 以下程序的输出结果是()
main()
{
char st[20]= "hello\0\t\\\";
printf(%d %d \n",strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
20. 当调用Windows API函数InvalidateRect,将会产生什么消息()
A:WM_PAINT B:WM_CREATE
C:WM_NCHITTEST D:WM_SETFOCUS
二、填空题(每题3分,共30分)
1.请列举当前一些当前流行的数据库引擎__________
2. 为了将当前盘当前目录中的所有文本文件(扩展名为.TXT)的内容打印输出,正确
的单条DOS命令为______。
3. 计算机网络分为局域网和广域网,因特网属于 广域网。
4. 设y是int型变量,请写出判断y为奇效的关系表达_______。
5. 设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为____。
6.以下程序运行后的输出结果是______。
main()
{ char s[ ]="9876",*p;
for ( p=s ; pbr>}
7.以下函数的功能是:求x的y次方,请填空。
double fun( double x, int y)
{ int i;
double z;
for(i=1, z=x; ibr>return z;
}
8.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调
用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; ling f1;
myf= ______("test.t","rb");
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf("%d\n",f1);
9. 以下程序输出的最后一个值是______。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf("%d\n",ff(i));
)
10. 以下程序运行后的输出结果是_____。
main()
{ int i=10, j=0;
do
{ j=j+i; i-;
while(i>2);
printf("%d\n",j);
}
三、判断题(每题2分,共20分)
1:动态链结库不能静态调用。
2:UDP是面向无连接的网络连接
3:ASP是一种数据库引擎
4:队列是先进后出。
5:Weblogic是分布式应用服务器。
6:TCP,UDP都是传输层的协议。
7: 两个线程不能共存于同一地址空间
8: JAVA是一种跨平台的开发工具
9.在WINDOWS操作系统中对外设是以文件的方式进行管理
10. 虚拟内存实际是创建在硬盘上的
四、问答题(每题10分,共30分)
1. 写出从数据库表Custom中查询No、Name、Num1、Num2并将Name以姓名显示、计算出
的和以总和显示的SQL。
Select No、Name、Num1、Num2 from custom;
2. 何为“事务处理”,谈谈你对它的理解。
3. 常用的数据结构有哪些?请枚举一些。(不少于5个)
4. 什么是OOP?什么是类?请对比类和对象实例之间的关系。
5. 有一组数字(3,10,6,8,98,22),请编程排序(升降序皆可),语言不限,算法不限,但须注明是何种算法。
[email protected]
‘陆’ 进入IT企业必读的200个 .NET面试题的目 录
第1章 应聘开发职位的技巧和禁忌 1
程序员在准备面试的过程中,有时会过分注重技术上的准备工作,事实上,一些非技术的准备工作也相当重要。掌握好应聘技术职位过程中的软技巧、准备一份出色的简历、提高警惕避免在应聘中触犯一些禁忌,可以大大地提高面试的成功率。在开始面试时,还要把握一些强势的招聘网站,给自己一个展现自我的平台。本章从了解、准备、开始,层层渐进,让读者对整个程序员面试的过程有个全局性的掌握。
1.1 技术职位需要怎样的人才——了解大环境 1
1.1.1 对技术的执着和热情 1
1.1.2 对编程始终抱有认真的态度 1
1.1.3 实事求是的态度和谦逊的品质 1
1.1.4 适合应聘公司的文化 1
1.2 一份出色的个人简历——面试准备 2
1.2.1 一份简历不宜超过一页 2
1.2.2 永远准备中文简历 2
1.2.3 不要在个人简历上注明希望薪水 2
1.2.4 简历模板 2
1.3 展现自我——开始发简历 3
1.3.1 应聘渠道 3
1.3.2 应聘流程 7
1.4 真正的面试——开始面试 8
1.4.1 笔试 8
1.4.2 面试 10
1.4.3 电话面试 10
1.4.4 网络考试 10
1.5 面试中的一些禁忌 11
1.6 小结 12
第2章 .NET框架基础 13
本章覆盖了.NET面试笔试中常见的.NET框架技术题。此类题目侧重于考查应聘者对于.NET机制的深入了解,彻底理解.NET的运行机制,并且熟悉一个.NET系统常用的管理部署方法。
2.1 .NET基础概念 13
2.1.1 什么是CTS、CLS和CLR 13
2.1.2 开发和运行.NET程序需要的
最基本环境是什么 15
2.1.3 .NET是否支持多编程语言开发 15
2.1.4 CLR技术和COM技术的比较 17
2.1.5 什么是程序集和应用程序域 18
2.2 .NET运行机制 20
2.2.1 .NET程序被编译成什么形式的代码 20
2.2.2 JIT是如何工作的 22
2.2.3 简述程序集的加载机制 23
2.2.4 如何配置程序集的版本策略 25
2.3 生成、部署和管理 27
2.3.1 如何生成强签名的程序集 27
2.3.2 如何把程序集放入GAC中 29
2.3.3 延迟签名及其作用 30
2.3.4 程序集的版本分哪几部分 32
2.4 名企面试真题 32
2.5 小结 33
第3章 .NET类型语法基础 34
本章覆盖了.NET面试笔试中最基础的语法和类型题。纵观.NET的面试题,此类题目涉及了最基础的知识点,其难度也相对最小。但是应聘者如果对此类的面试题回答得不正确或者不完整,将会给面试官留下技术水平较差的印象,建议读者对本章的题目做到深刻理解和掌握。
3.1 基础类型和语法 34
3.1.1 .NET中所有内建类型的基类是什么 34
3.1.2 System.Object中包含哪些方法,哪些是虚方法 35
3.1.3 值类型和引用类型的区别 37
3.1.4 简述装箱和拆箱原理 40
3.1.5 C#中是否有全局变量 43
3.1.6 struct和class的区别,
struct适用哪些场合 43
3.1.7 类型的初始化器何时被调用 44
3.1.8 C#中方法的参数可以有哪几种传递方式 47
3.1.9 C#中string和String有什么区别 50
3.1.10 .NET支持哪几种可访问性级别,C#实现了其中的哪几种 50
3.1.11 简述属性的特点及属性和方法的异同 51
3.1.12 简述C#中的浅复制和深复制 54
3.1.13 简述C#中的循环语法和各自的特点 57
3.1.14 C#中的using语句有什么作用 60
3.2 内存管理和垃圾回收 62
3.2.1 简述.NET中堆栈和堆的特点和差异 62
3.2.2 执行string abc=aaa+bbb+ccc共分配了多少内存 64
3.2.3 .NET中GC的运行机制 66
3.2.4 Dispose方法和Finalize方法在何时被调用 67
3.2.5 GC中代(Generation)是什么,一共分几代 70
3.2.6 GC机制中如何判断一个对象是否仍在被使用 71
3.2.7 .NET的托管堆中是否可能出现内存泄漏现象 72
3.3 面向对象的实现 75
3.3.1 C#中类可以有多个父类、可以实现多个接口吗 75
3.3.2 简述C#中重写、重载和隐藏的概念 76
3.3.3 为什么在构造方法中调用虚方法会导致问题 78
3.3.4 在C#中如何声明一个类不能被继承 82
3.4 异常的处理 82
3.4.1 如何针对不同的异常进行捕捉 82
3.4.2 如何使用Conditional特性 84
3.4.3 如何避免类型转换时的异常 86
3.5 名企面试真题 88
3.6 小结 89
第4章 字符串、集合和流的使用 90
字符串、集合和流在程序中处理数据时经常被用到,这些代码的编写将直接影响到系统的正确性和效率。本章将包含关于字符串、集合和流的常见面试题,并且通过分析这些题目和知识点,帮助读者梳理这些方面的知识。
4.1 字符串处理 90
4.1.1 System.String是值类型还是引用类型 90
4.1.2 StringBuilder类型有何作用 91
4.1.3 如何在String和Byte[]对象之间进行转换 92
4.1.4 简述BASE64编码的作用以及C#中对其的支持 94
4.1.5 SecureString的实例如何被分配和释放 96
4.1.6 什么是字符串池机制 98
4.2 常用集合和泛型 99
4.2.1 Int[]是引用类型还是值类型 99
4.2.2 数组之间如何进行转换 100
4.2.3 解释泛型的基本原理 102
4.2.4 什么是泛型的主要约束和次要约束 104
4.2.5 .NET中是否可用标准模板库(STL) 105
4.3 流和序列化 106
4.3.1 什么是流,.NET中有哪些常见的流 106
4.3.2 如何使用压缩流 109
4.3.3 Serializable特性有何作用 111
4.3.4 .NET提供了哪几种可进行序列化操作的类型 113
4.3.5 如何自定义序列化和反序
列化的过程 116
4.4 名企面试真题 119
4.5 小结 119
第5章 常用类和接口 120
.NET除了提供运行引擎之外,还提供了丰富的内建类型。理解这些类型的作用和机制,能够帮助程序员减少代码工作,编写高效简洁的代码。而有时候误用类型,则会导致性能的降低,更严重时则会为系统带了潜伏的bug。本章将介绍一些经常出现在.NET面试中的类型和接口。
5.1 类型的基类System.Object 120
5.1.1 是否存在不继承自System.Object类型的类 120
5.1.2 在System.Object中定义的三个比较方法有何异同 122
5.1.3 如何重写GetHashCode方法 125
5.2 时间的操作System.DateTime 127
5.2.1 DateTime如何存储时间 127
5.2.2 如何在DateTime对象和
字符串对象之间进行转换 127
5.2.3 什么是UTC时间,如何转换到UTC时间 130
5.3 IFormattable和IformatProvider的使用 131
5.3.1 如何使用IFormattable接口实现格式化输出 131
5.3.2 如何告诉类型格式化输出的方式 133
5.4 管理文件和文件夹的类型 135
5.4.1 如何操作文件和文件夹 135
5.4.2 如何实现文件和文件夹的监控功能 139
5.5 .NET中的定时器 141
5.5.1 .NET提供了哪几个定时器类型 141
5.5.2 .NET的内建定时器类型
是否会发生回调方法重入 146
5.6 名企面试真题 151
5.7 小结 151
第6章 .NET中的高级特性 152
本章的内容覆盖了诸如委托、事件、反射和特性等.NET框架中的高级特性。对这些特性的掌握和成熟运用,往往成为.NET程序员从入门级进阶到中级的判断标准。也正因为如此,此类题目在.NET技术笔试、面试中被大量采用。读者在阅读本章时,应力求做到知其然更知其所以然,充分理解各种特性在.NET框架下是如何实现的,这样的设计如何提高了程序的灵活性和可扩展性。
6.1 委托 152
6.1.1 请解释委托的基本原理 152
6.1.2 委托回调静态方法和实例方法有何区别 154
6.1.3 什么是链式委托 154
6.1.4 链式委托的执行顺序是怎么样的 156
6.1.5 可否定义拥有返回值的方法的委托链 157
6.1.6 委托通常可以应用在哪些场合 159
6.2 事件 165
6.2.1 请解释事件的基本使用方法 165
6.2.2 事件和委托有何联系 167
6.2.3 如何设计一个带有很多事件的类型 169
6.2.4 用代码表示如下情景:猫叫、老鼠逃跑、主人惊醒 173
6.3 反射 175
6.3.1 请解释反射的基本原理和其实现的基石 176
6.3.2 .NET提供了哪些类型来实现反射 179
6.3.3 如何实现动态地发射程序集 184
6.3.4 如何利用反射来实现工厂模式 188
6.3.5 如何以较小的内存代价保存
Type、Field和Method信息 194
6.4 特性 196
6.4.1 什么是特性,如何自定义一个特性 196
6.4.2 .NET中特性可以在哪些元素上使用 198
6.4.3 有哪几种方法可以获知一个元素是否申明某个特性 200
6.4.4 一个元素是否可以重复申明同一个特性 202
6.5 名企面试真题 204
6.6 小结 204
第7章 .NET多线程编程 205
多线程编程是每个技术框架下都需要面对的问题,在多CPU、多核的硬件架构逐渐普及的今天,多线程编程也渐渐变得更加重要。本章将集中覆盖关于.NET中多线程编程的面试题。
7.1 多线程编程的基本概念 205
7.1.1 请解释操作系统层面上的线程和进程 205
7.1.2 多线程程序在操作系统里是并行执行的吗 206
7.1.3 什么是纤程 207
7.2 .NET中的多线程编程 208
7.2.1 如何在.NET程序中手动控制多个线程 208
7.2.2 如何使用.NET的线程池 212
7.2.3 如何查看和设置线程池的上下限 215
7.2.4 如何定义线程独享的全局数据 217
7.2.5 如何使用异步模式读取一个文件 221
7.2.6 如何阻止线程执行上下文的传递 223
7.3 多线程程序的线程同步 227
7.3.1 什么是同步块和同步块索引 227
7.3.2 C#中的lock关键字有何作用 229
7.3.3 可否使用值类型对象来
实现线程同步 232
7.3.4 可否对引用类型对象自身进行同步 233
7.3.5 什么是互斥体,Mutex类型和Monitor类型的功能有何区别 235
7.4 名企面试真题 238
7.5 小结 238
第8章 ASP NET应用开发 239
ASP NET是微软公司提供的编写动态网站的技术框架,其特点是基于.NET框架基础,所有ASP NET程序都可以使用针对.NET的语言编写。在微软公司的Visual Studio开发平台中,实现了拖放控件等便捷的功能,使得ASP NET应用程序的开发效率得到了较大的提高,近些年来ASP NET技术逐渐成为网站开发的主流技术之一,本章将覆盖一些常见的关于ASP NET开发的面试题。
8.1 ASP NET应用开发基础 239
8.1.1 请解释ASP NET以什么形式运行 239
8.1.2 常见的HTTP Code有哪些 242
8.1.3 GET请求和POST请求有何区别 245
8.1.4 介绍ASP NET的页面生存周期 247
8.2 控件和页面 249
8.2.1 什么是静态页面,什么是动态页面 250
8.2.2 请简述ViewState的功能和实现机制 251
8.2.3 Session有哪几种存储方式,之间有何区别,如何进行设置 255
8.2.4 如何嵌套使用GridView控件 259
8.2.5 列举几种实现页面跳转的方法,并说明其实现机制 263
8.2.6 请解释<%# Eval(source)%>的功能和实现机制 270
8.2.7 ObjectDataSource控件有何作用 273
8.3 验证和安全 277
8.3.1 如何使用正则表达式来验证一个
上海市电话号码 277
8.3.2 介绍ASP NET验证控件的功能和
使用方法 280
8.3.3 如何防止SQL注入式攻击 287
8.4 名企面试真题 289
8.5 小结 289
第9章 .NET中的数据库开发 290
大部分系统都会包含数据库应用。数据库应用设计往往成为系统设计中最重要的组成之一,这其中不止包括数据库的架构、库结构的设计,也包括了程序访问数据库策略的设计。在.NET的程序开发中,ADO NET已经成为访问数据库最主要的组件框架。本章将覆盖和数据库访问及ADO NET有关的常见面试题,具体会覆盖ADO NET基本概念、数据库的链接、数据库读写等主题。
9.1 ADO NET和数据库程序基础 290
9.1.1 什么是关系型数据库 290
9.1.2 如何通过SQL语句来实现行列转换 291
9.1.3 ADO NET支持哪几种数据源 293
9.2 ADO NET和数据库的连接 295
9.2.1 请简要叙述数据库连接池的机制 295
9.2.2 如何提高连接池内连接的重用率 298
9.2.3 一个连接字符串可以包含哪些属性 300
9.2.4 CommandBehavior.CloseConnection有何作用 302
9.3 使用ADO NET读写数据库 305
9.3.1 ADO NET支持哪两种方式来访问关系数据库 305
9.3.2 什么是强类型的DataSet 309
9.3.3 请解释SqlDataAdapter的
基本工作机制 312
9.3.4 如何自动生成SqlDataAdapter的
更新命令 316
9.3.5 如何实现批量更新的功能 319
9.4 名企面试真题 321
9.5 小结 321
第10章 XML的应用和处理 322
XML可算是近10年来最炙手可热的技术之一,由于其跨平台的特性,很多技术应用都选择基于XML来进行发展。在.NET中,对XML的支持和应用随处可见。例如配置文件的格式、数据结构的表示、Web Service应用等,都是以XML语法为基础的。本章将详细覆盖常见的关于XML本身及其在.NET中应用的面试题。
10.1 XML的基本特性 322
10.1.1 什么是XML 322
10.1.2 简述XML的常用领域及其优势 323
10.1.3 XML中<![CDATA[ ]]>标签的作用 324
10.1.4 XML规范是否允许空的属性值 325
10.1.5 XML中如何处理诸如“<”的字符 326
10.1.6 XML中的命名空间如何使用 328
10.2 使用.NET组件读写XML 330
10.2.1 .NET中操作XML的基本类型有哪些 330
10.2.2 如何使用XmlDocument类型操作XML文档的节点和属性 334
10.2.3 如何使用XPath来指向带有属性的节点 337
10.2.4 .NET中如何验证一个XML文档的格式 338
10.2.5 .NET中XML文档和关系模式如何转换 340
10.3 利用XSLT处理XML文档 344
10.3.1 什么是XSLT,XSLT有何作用 344
10.3.2 如何使用XSLT中的模板 346
10.3.3 如何在XSLT文档中调用
其他XSLT文档 349
10.3.4 如何在代码中使用XSLT文档 351
10.4 名企面试真题 353
10.5 小结 353
第11章 Web Service的开发与应用 354
Web Service是一种网络服务,形式非常类似于当前智能手机上的应用。通过通用的规范,Web Service技术允许使用者访问网络上每一个Web Service所提供的服务。在网络快速发展的今天,这种基于网络的分布式服务已经被广泛地应用。本章将讨论关于.NET中如何应用Web Service的面试题。
11.1 SOAP和Web Service的基础概念 354
11.1.1 请简述SOAP协议 354
11.1.2 什么是WSDL,它有何作用 356
11.1.3 Web Service中如何处理附件 357
11.2 使用.NET开发Web Service 360
11.2.1 如何在.NET中创建Web Service 360
11.2.2 WebMethod特性包含哪些属性,各有何用处 363
11.2.3 如何生成Web Service代理类型 367
11.2.4 请简述.NET中Web Service的异常机制 368
11.3 Web Service的安全机制 371
11.3.1 请简要介绍WS-Security的签名机制 371
11.3.2 WS-Security规范申明了哪几种身份验证的方法 373
11.4 名企面试真题 375
11.5 小结 375
第12章 .NET Remoting分布式应用开发 376
在企业级应用开发中,分布式开发占据了越来越重要的地位。.NET Remoting是一种可扩展性很高的分布式开发技术,相对于DCOM、CORBA、RMI等分布式开发技术而言,.NET Remoting拥有着众多独特的优势。.NET Remoting是一个庞大的技术话题,如果详细展开的话可能要占据一本书的篇幅。本章主要针对那些经常出现在.NET面试中的、与Remoting基础相关的面试题。
12.1 .NET Remoting框架基础 376
12.1.1 请简要介绍.NET Remoting的运行机制 376
12.1.2 请列举.NET Remoting机制中有哪些组件可以扩展替换 379
12.1.3 请简述.NET Remoting生存周期机制 384
12.2 使用.NET Remoting进行分布式应用开发 387
12.2.1 请介绍服务端激活模式和客户端激活模式的区别 387
12.2.2 请简述Remoting中有哪几种远程调用方式 390
12.2.3 Remoting机制中如何处理以ObjRef为参数的方法调用 393
12.2.4 请简述Remoting中配置文件的使用 397
12.2.5 如何在客户端和服务器端共享远程对象类型 400
12.3 名企面试真题 404
12.4 小结 404
第13章 代码和算法 405
无论是面试还是笔试,算法和代码的问题都是必不可少的,其区别仅在于笔试中更侧重于应聘者书写代码的能力,而面试中则更注重于应聘者的设计能力和算法思路。本章着重覆盖了一些在.NET面试中经常出现的和代码、算法有关的面试题,并且给出了解答思路和实现示例。
13.1 基础算法题 405
13.1.1 请实现一个快速排序算法 405
13.1.2 请实现一个二分查找算法 406
13.1.3 请实现一棵二叉树的中序、后序遍历 408
13.1.4 请写出一个奇偶分割算法 413
13.1.5 请实现一个简单的最短路径算法 414
13.2 程序设计题 423
13.2.1 请编程实现斐波拉契数列问题 423
13.2.2 请设计窗口程序演示八皇后问题 425
13.3 名企面试真题 432
13.4 小结 432
第14章 .NET中的单元测试 433
单元测试是软件开发中必不可少的一个环节,单元测试的优劣直接影响到集成测试、系统测试的效果,甚至会影响到最终产品的质量。大多数开发团队对单元测试非常重视,并且要求程序员掌握相应的知识。本章将覆盖在.NET面试中经常出现的关于单元测试的面试题。
14.1 单元测试基础概念 433
14.1.1 请简述单元测试的作用和其优点 433
14.1.2 请举例说明TDD开发方式的流程 434
14.1.3 请编写实现阶乘功能模块的测试用例 437
14.2 使用NUNIT进行单元测试 439
14.2.1 如何使用NUNIT来进行单元测试 439
14.2.2 如何对NUNIT的测试用例进行分类 442
14.2.3 请解释SetUp、TearDown、TestFixtureSetUp和
TestFixtureTearDown 446
14.3 名企面试真题 448
14.4 小结 448
‘柒’ 程序员面试问题及答案
程序员面试问题及答案
程序员是从事程序开发、维护的专业人员。我整理的程序员面试问题及答案,希望大家喜欢!
1、两柱香问题
题目:有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切。
解答:将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半个小时,同时也说明甲香也正好燃烧了一半,此时,将甲香的另一头点着,从此时起到甲香完全烧完,正好15分钟。
2、灯管问题
在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?
解答:打开一盏灯10分钟,关掉,打开第二盏,进去看看哪盏亮,摸摸哪盏热,热的是第一个打开的开关开的,亮的是第二个开关开的',另一个就是第三个。
3、两位盲人问题
他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混在一起。 他们每人怎样才能取回黑袜和白袜各两对呢?
答案:每一对分开,一人拿一只,因为袜子不分左右脚的;
4、果冻问题
你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,同时抓取两个果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
答案:2次4个!
5、喝啤酒问题
假如每3个空啤酒瓶可以换一瓶啤酒,某人买了10瓶啤酒,那么他最多可以喝到多少瓶啤酒?
答案:喝完10瓶后用9个空瓶换来3瓶啤酒(喝完后有4个空瓶)喝完这三瓶又可以换到1瓶啤酒(喝完后有2个空瓶),这时他有2个空酒瓶,如果他能向老板先借一个空酒瓶,就凑够了3个空瓶可以换到一瓶啤酒,把这瓶喝完后将空瓶还给老板就可以了。
所以他最多可以喝10+3+1+1=15瓶
6、三人住旅馆
有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?
答案:他们所消费的27元里已经包括小弟的2元了,再加退还的3元=30元。这种题一定不要乱了阵脚,根据一条思路做:这30元现在的分布是:老板拿25元,伙计拿2元,三人各拿1元,正好!
7、三筐苹果问题
有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(就是说筐上的标签都是错的)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
答案:从标着“混合”标签的筐里拿一只水果,就可以知道另外两筐装的是什么水果了。
分析:从混合的拿出一个来,如果是苹果,而贴苹果的筐里有可能是橘子和混合,如果是混合,说明贴橘子的筐里是橘子,不成立(因为前提说了,每个标签都是错的)。所以贴苹果的筐里是橘子,则贴橘子的筐里是混合。
8、汽车加油问题
一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油
解答:严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键。题目可归结为求数列an=500/(2n 1) n=0,1,2,3......的和Sn什么时候大于等于1000,解得n>6当n=6时,S6=977.57,所以第一个中转点离起始位置距离为1000-977.57=22.43公里.所以第一次中转之前共耗油22.43*(2*7 1)=336.50升此后每次中转耗油500升,所以总耗油量为7*500 336.50=3836.50升。
9、两个人猜数问题
教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数, 甲说:“我猜不出”, 乙说:“我猜不出”, 甲说:“我猜到了”, 乙说:“我也猜到了”, 问这两个数是多少?
解答:3和4。设两个数为n1,n2,n1> =n2,甲听到的数为n=n1 n2,乙听到的数为m=n1*n2,证明n1=3,n2=4是唯一解。证明:要证以上命题为真,不妨先证n=7
1)必要性:
i) n> 5 是显然的,因为n <4不可能,n=4或者n=5甲都不可能回答不知道
ii) n> 6 因为如果n=6的话,那么甲虽然不知道(不确定2 4还是3 3)但是无论是2,4还是3,3乙都不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)
iii) n <8 因为如果n> =8的话,就可以将n分解成 n=4 x 和 n=6 (x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8 2,所以总之当n> =8时,n至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。以上证明了必要性。
2)充分性
当n=7时,n可以分解成2 5或3 4
显然2 5不符合题意,舍去,容易判断出3 4符合题意,m=12,证毕
于是得到n=7 m=12 n1=3 n2=4是唯一解。
10、猴子吃香蕉问题
一个小猴子边上有100 根香蕉,它要走过50 米才能到家,每次它最多搬50 根香蕉,每走1 米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。
解答:设 小猴从0 走到50, 到A 点时候他可以直接抱香蕉回家了, 可是到A 点时候他至少消耗了3A 的香蕉( 到A, 回0, 到A), 一个限制就是小猴只能抱50 只香蕉, 那么在A 点小猴最多49 只香蕉.100-3A=49, 所以A=17. 这样折腾完到家的时候香蕉剩100-3A-(50-A)=50-2A=16.
‘捌’ 程序员题目
程序员考试没有上机题的!
程序员考试分为上、下午两场,各75分,均为笔答内容。一般如果上、下午考试都能达到45分以上基本就能通过了。其中上午试题以选择形式给出,每题目一分。下午部分都是综合题,共要求完成五道,以简答和填空为主,每题15分。
上午题目形式大体分为两大类:一类是计算机科学基础知识和计算机系统知识;另一类是数据结构、软件工程等相关内容。主要考察考生对基础知识掌握程度。下午考题方面,题目形式相对比较灵活,以C语言为主,但新大纲后,也允许有Java、VB等语言,所以给熟悉这些语言的考生带来了方便。
将2002年以来程序员考试题归类对比,由赛迪网校的经验来分析程序员考试,表1是2002年以来上午考试试题分类统计表。
表1 2002年以来程序员考试上午考试题目分类统计表
知识点 2002 2003 2004(上半年) 2004(下半年) 2005(上半年)
计算机系统原理 16 19 16 13 12
操作系统 5 5 10 7 6
数据库 7 5 5 5 5
多媒体技术 4 2 3 3 2
网络技术 5 5 11 5 6
程序语言基础 8 4 5 3 6
软件工程基础 12 12 7 7 8
数据结构 6 7 13 10 8
标准化与知识产权 3 6 3 3 3
英语 10 10 10 10 10
其他(日常应用等)
*有效的考试复习方法
从表1中可以看出,知识点的分布比较广,涵盖了计算机学科的各个方面,因此对于初入计算机软件行业的人员来说,考试内容覆盖面广是其首先遇到的难题。要在短时间内掌握所有这些知识点是很困难的,因此需要考生要有一个有效的复习方法。
在复习时,考生要根据自己的具体情况,制定一套完整的复习计划,不必拘泥于某种特定的方法。在看参考书时,不一定非要按顺序读,可以根据自己对知识的掌握情况来有选择地看。期间通过斟酌大纲知识点,弄清考试范围,而且要通过大纲中给出的关键字来判断复习重点,并在考试指定教材上做好标记,以便以后查阅学习。对知识有过梳理之后,建议从复习题入手,把每道题都做一遍,不要漏掉任何一个细节,考察自己对知识的掌握程度。
在考试中,无论上午还是下午的试题中,都会有程序设计的题目,要准备这样的题目,平常最好上机调试一下,这比仅仅看书效果好多了。如果程序看不懂,可以在其前后加几条Printf语句,就可以看出这几条语句的结果。程序弄明白以后,还可以对程序进行测试和修改,检查一下结果是不是自己所要得到的。对于调试过程中的出错信息,一定不要放过,因为这些很有可能就是考点。
*程序员考试难点的把握
上午试题知识面覆盖广,多数试题的相对难度不大,基础知识、常识性问题所占的比重比较大。
从历年程序员考试试题中把握考试重点是非常有效的方法,计算机系统基础知识和程序语言基础知识方面的内容呈增加趋势;操作系统基础知识和网络基础知识内容呈相对较少趋势。归类对比最近几年程序员考试上午考试的75个小题中发现,计算机系统原理、操作系统、数据结构等是重点内容,占有很大的份量。其中每一类又都具有非常多的知识点,因此更深入的挖掘将会有助于有效得分。计算机系统原理考察的范围集中在码值运算、寻址问题、硬件结构和Cache的作用上,主要是记忆知识点,只有寻址、Cache算法等需要较深入理解。数据结构历来占据相当大的比重,这是由程序员的工作性质所决定的,内容涵盖链表、矩阵、队列、字符串、树等各个方面,其中,链表、二叉树等考察的内容较多。数据库只考一些基础概念,其中属于理解性的以ER图为重点,多媒体部分考察的基本上是常识。在分析各个计算机分支内容尤其比重较大的部分时,可以从重点、难点、高频率出现题目等几个方面来分析。
以数据结构为例,其内容知识点非常多,而且难点也多,为了有效复习,通过仔细分析考题,可以归纳出数据结构课程在考试中的如下几个关键点:难点、重点、常涉及到的出题范围等,如下所示。
重点:如大纲中所指示,其中以二叉树及其性质、遍历、链表尤为重要。
难点:图的存储(矩阵、邻接表)与操作遍历、算法效率的计算(时间、空间复杂度)、常见的六种排序算法、散列表的思想以及其解决冲突的方法。
考试题型一般分布在:二维数组及其存储、链表的存储/操作(插入、删除、移动)、二叉树的定义及其性质(完全、满)、节点与深度的关系等、图的概念(有向、无向)及其性质。
考试出现频率较高的内容:链表操作、队和栈的性质及其对比、二叉树的遍历/节点计算、递归算法的设计(退出条件等)。
在对每一部分作了透彻的分析后,要理清知识点的轻重缓急,了解必考、备考知识点,增强有效得分的机会,是有效复习、有目的复习的手段。
*来自程序设计题目的挑战
软件水平考试真正有难度的地方是下午部分的考试。因为上午考基础知识,记忆性知识偏多。下午部分考程序设计,题型比较灵活,难度也比较大。对于C语言的使用要求比较熟悉,而且新加了对于Java、VB等语言的考察。考试内容包括数据结构实现、算法求解之类的问题。
程序框图或伪代码是必考题;开始出现C++、Java题目,而且除了C之外,还必须掌握VB、C++、Java 三种语言中的一种,否则无法获得高分;整个下午的考试题目比较注重于应用,注重解决实际问题的能力。
因此上机编程实践是非常必要的,实践过程中,会发现隐藏在平常仅仅通过看书发现不了的细节问题,比如语法写法、函数名称等。在考试过程中,要注意以下几点:
(1)不要过分沉迷于题中某一段,要全局看问题,整体把握。
(2)做下午的试题往往有做不下去的情况,这时要仔细重看题目条件,也许会有所感悟。
(3)做完题检查时,应重新审题,而不是只检查答案,程序与题目是否相对应。
(4)审题时,多利用程序注释来帮助理解题意。
其次是在考试过程中,多注意积累一些技巧性的问题,例如当觉得某空白处根本不需要填什么,整个程序似乎已完整,应考虑是否是填变量的初始化,从历次考试看,几乎每年都有。
*总结
无论程序员考试难与易,都需要付出才有可能成功,不懈努力,付之行动,就会有回报。而努力背后,需要掌握学习的方法。
(1)掌握好的学习方法,合理安排时间。
(2)基础理论要吃透,对于程序设计,一定要多动手,多实践。
(3)一定要找出以前的试卷,进行分析了解,历年的试题是最好的复习题。
到了考前总复习的时候,需要避重就轻,把那些还是搞不懂的东西丢开,不要去理它,把会的东西再搞清楚点,把能得的分要多得,争取拿全分。
广泛学习,了解计算机各方面知识,把握重点,分析历史考题,相信你都能顺利通过程序员考试。
如果觉得我的回答还满意,就把奖励分给我吧!