浙江大学计算机考研历年面试题集
- 格式:pdf
- 大小:401.90 KB
- 文档页数:28
C++容易出现内存泄露,需要手动回收内存。而 JAVA 有垃圾自动回收机制 C++里面有指针,JAVA 里面没有 JAVA 的可移值性更好,JAVA 的类文件能够在不同的平台上使用。而 C++在 windows 下生成的可执行文件在 LINUX 下不一定能运行,可能需要重新编码。JAVA 生成的类可以认为是中间代码,java 文件在 JAVA 虚拟机上运行,通过虚拟机来产生 最终代码,linux 和 java 下都会有虚拟机。而 C++编译器生成的是最终代码,有时候 系统调用在不同的系统下并不能够成功进行 JAVA 是纯面向对象,而 C++是基于对象的。在 JAVA 里出现最多的就是类 13、面向对象的特点 1)对象唯一性。 每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的 整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。 2)分类性。
此资料由王道论坛()整理并发布,任何个人或组织无权用于任何商业活动!
3、虚拟机的好处、坏处、种类、最快的虚拟机 好处:虚拟机有很好的性能,有很好的可移植性。有利于测试,安全。 坏处:低效率 种类:有 JVM,SableVM,IBM 的 VM,还有 kissmww 协议: HTTP
此资料由王道论坛()整理并发布,任何个人或组织无权用于任何商业活动!
FTP 协议: 文件传输协议 3、说一个网络加密算法并解释一下
DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位 的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密 的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半 进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不 交换。DES 使用 16 个循环 4、ppp,tcp 是否面向连接,各属于什么层
Java 对多线程的支持是非常强大的,他屏蔽掉了许多的技术细节,让我们可以 轻松的开发多线程的应用程序。 Java 里面实现多线程,有 2 个方法
1 继承 Thread 类,比如 class MyThread extends Thread {
public void run() {
此资料由王道论坛()整理并发布,任何个人或组织无权用于任何商业活动!
不一样,定义了虚函数要大一些,因为要建立虚函数表
9、什么是内存泄露?
此资料由王道论坛()整理并发布,任何个人或组织无权用于任何商业活动!
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存 泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失 去了对该段内存的控制,因而造成了内存的浪费
动态链接库(Dynamic Link Library,缩写为 DLL)是一个可以被其它应用程序共 享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件与可执行 文件(exe)非常类似,区别在于 DLL 中虽然包含了可执行代码却不能单独执行,而 应由 Windows 应用程序直接或间接调用。 动态链接是相对于静态链接而言的。所 谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一 部分。换句话说,函数和过程的代码就在程序的 exe 文件中,该文件包含了运行时所 需的全部代码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝, 这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程 序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重 定位信息)。仅当应用程序被装入内存开始运行时,在 Windows 的管理下,才在应用 程序与相应的 DLL 之间建立链接关系。当要执行所调用 DLL 中的函数时,根据链接 产生的重定位信息,Windows 才转去执行 DLL 中相应的函数代码。 2、解释面向对象里面的动态绑定
在面向对象语言中,可以从一个类派生出另一个类。派生出其它类的类称为基类, 又称为父类。被派生的类称为派生类,又称为子类。派生类可以具有父类的特性,共 享父类的成员函数,使用父类的成员,还可以定义自己的新特性,定义自己的数据成 员和成员函数。一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基 类派生的继承称为单继承;从多个基类派生的继承称为多继承。
3)继承性。 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在 定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经 存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程 序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子 类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多 个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的 软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、 类的创建工作量,增加了代码的可重性。采用继承性,提供了类的规范的等级结构。 通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。 4)多态性(多形性) 多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结 果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性 允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重 用性。 14、面向对象要素
// 这里写上线程的内容 } public static void main(String[] args) {
// 使用这个方法启动一个线程 new MyThread().start(); } }
2 实现 Runnable 接口 class MyThread implements Runnable{
二、网络/网络安全
1、电子邮件协议 收件协议 POP3:从客户端接受邮件服务器的邮件 POP3(Post Office Protocol 3) 适用于 C/S 结构的脱机模型的电子邮件协议,目前
已发展到第三版,称 POP3.,它规定怎样将个人计算机连接到 Internet 的邮件服务器 和下载电子邮件的电子协议
此资料由王道论坛()整理并发布,任何个人或组织无权用于任何商业活动!
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就 是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何 类的划分都是主观的,但必须与具体的应用有关。
抽象、共享、封装(具体内容可以自己试着解释) 15、C++和 C 字符串的区别
C 字符串是基本数据类型,即字符数组;C++字符串是类(这个是根本区别) C 字符串函数是外部函数,字符串作为参数被传进来,进而对其进行操作;C++ 字符串函数是字符串类内部定义的,可以用‘.’来直接使用 C++字符串里面对一些运算符进行了重载,比如==,=,<,>等 16、友元函数有没有参数,输入输出如果没有参数会怎么样 友元函数有参数,后半问我不太明白 17、JAVA 多线程用过么?应注意什么?怎么实现?
10、Java 怎么处理对象的分配和释放问题
Java 把内存划分成两种:一种是栈内存,一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中 分配。当在
一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过 变量的作用域后,Java 会自动释放掉为该变量所分配的内存空间,该内存空间可以 立即被另作他用。堆内存用来存放由 new 创建的对象和数组。在堆中分配的内存, 由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可 以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中 的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为 数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的 数组或对象。引用变量为0时表示不再使用,释放 11、Java 垃圾收购机制?
1、多态和动态链接的区别 多态(Polymorphism)按字面的意思就是“多种形状”。多态性是允许你将父对
象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当 前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。 简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针
public void run() { // 这里写上线程的内容
} public static void main(String[] args) {
// 使用这个方法启动一个线程 new Thread(new MyThread()).start(); } } 一般鼓励使用第二种方法,应为 Java 里面只允许单一继承,但允许实现多个接口。 第二个方法更加灵活。
继承方式主要表示派生类继承基类时采用的继承方式,主要有三种,即公有继承、 私有继承、保护继承
动态绑定:如果一个基类(没有父类)含有虚函数,那么在编译时,编译器会生成一 张虚函数表,表里是该类中所有虚函数的地址(按出现顺序排列);并且会在该类中动 态的插入一个成员变量(__vfptr),它是一个指向这个虚函数表的指针。对于这个基类 的所有子类,编译器都会生成各自的虚函数表,并且把继承得来的__vfptr 指针指向它。 静态绑定可以理解为在编译时知道了对象名,那么此时就可以访问相应的虚函数;而动 态绑定因为是用一个基类的指针来代表,不到运行的时候程序并不知道这个指针是指 向基类还是指向派生类,那么虚函数也就不确定了