今天晚上参加了某公司校园招聘的笔试,题目全部是选择提,分为3种类型,计算机基础,java或者c++(任选一个),数据库。前面两部分的题还好,大部分题都还会做(不保证做对),而后面的数据库的题就有些难度了。下面总结一下这次笔试。
一.计算机基础
1. 第一个题问的是CPU从目态到管态的转换方式。这道题确实不怎么会,但是看到选项中有一个中断,果断就选了它,然后果然就选对了。
解析:cpu状态分为管态和目态,管态又称为特权态,系统态和核心态。cpu在管态下可以执行指令系统的全集。通常操作系统在管态下运行。
目态又称为常态或用户态。机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或者无意破坏系统。
从目态转换为管态唯一途径是中断;从管态到目态可以通过修改程序状态字来实现,这将伴随着操作系统程序到用户程序的转换。
2. 在半导体存储器中,动态DRAM的特点是什么。给了四个选项,没记太清,应为每隔一段时间需要刷新一次。
3. 80486系统总线有多少位。 32位
4. 有道题是给了4个字符,问哪个在ascii码中的位置靠后。ascii码的大致顺序为先空格,然后数字,然后大写字母,然后小写字母。
二.java
因为比较擅长java,所以选的java题做。
1.代码如下:
public class Test1 { public static boolean check(char c) { System.out.print(c + " "); return true; } public static void main(String[] args) { int i = 0; for (check('A'); check('B') && i < 2; check('C')) { i++; check('D'); } } }大概就是上面那个样子,问输出结果。当时做的时候,选得是编译错误,回来试了一下,程序可以正确运行。下面就分析一下该题:
对for循环来说我们一般的调用格式如下:
for (参数初始化表达式; 条件表达式; 更新循环变量表达式) { 循环体 }对于括号里的3个表达式都是可选项,我们可以缺省,但是“;”必须要写上。对于条件表达式,表达式的计算值必须为一个boolean类型或者直接是一个boolean类型的值,但是对于参数初始化表达式和更新循环变量表达式,只要是满足表达式的定义,就可以正确执行。而函数调用就属于表达式的一种。因此上面的程序可以正确运行,结果为:A B D C B D C B
2.代码如下:
public class Test2 extends Thread implements Runnable{ public void run() { System.out.println("hhhh"); } public static void main(String[] args) { new Thread(new Test2()).start(); //1 new Test2().start(); //2 } }上面的类既继承了Thread类又实现了Runnable接口,那么该类是否可以正确运行呢?答案是可以的。我们知道java使用接口,用来实现java的多继承。对于多继承来说,如果一个类同时继承了两个类,而这两个类中又包含同名的方法,并且两个类中方法的实现不同,那么子类在继承时就会产生冲突,因为它不知道到底应该使用哪个父类的实现(假设子类自己不重写这个方法)。但是对于接口来说,它只有方法声明,将方法实现交给了子类,而且子类必须要实现接口中的方法。这样即使继承的类和实现的接口中有同名方法,也不会产生错误,因为接口中的方法根本就没有方法体。如果子类中没有重写同名方法,就会使用父类中的方法实现。
对于上面的例子来说,1处Test2是被当成Runnable来对待,2处Test2是被当成Thread来对待。
3.有一道题是在方法中定义了一个static变量,问程序的执行结果。程序是不能编译通过的,因为方法中不能用static定义变量。static使用的地方有:定义static变量(类中方法外),定义static方法,static代码块,静态内部类。
三. 数据库
数据库算的是比较难的题了,因为很多方面的知识根本没有接触过。
1.PL/SQL块的结构
PL/SQL是oracle数据库对于SQL语言的扩展,在SQL语言的基础上添加了编程语言的特点。
PL/SQL块包括3个部分:声明部分、执行部分和异常处理部分,下面是一个例子:
DECLARE --声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 BEGIN -- 执行部分: 过程及SQL 语句 , 即程序的主要部分 EXCEPTION -- 执行异常部分: 错误处理 END;
2.Oracle逻辑结构的大小排序--表空间、段、区、数据块
数据块是oracle存储数据的最小单位,区由多个连续的数据块组成,段由一组区组成,表空间由多个段组成。
3.存储过程和函数的不同
http://benbenxiongyuan.iteye.com/blog/1142320