考研复试常见问题(C/C++、Java)

C语言与C++的主要区别:

        C语言是面向过程编程的典范,C语言以过程为中心,用算法进行驱动。C++是继承C语言而来的,不仅包含面向过程编程,也包含了面向对象编程,支持类、封装、继承、多态等特性。

指针与变量的自增自减有何区别:

        指针的自增自减改变的是所指向的内存地址,而变量的自增自减改变的是变量的值

宏定义是什么:

        宏定义是C++的预处理指令之一,它主要完成一个替换操作,在程序中遇到该符号时,自动替换其值,不占内存和编译时间。

引用与值传递的区别:

        值传递只是在函数中复制了一个该变量的副本,对该副本进行修改并不影响原变量。引用传递的是将该变量的内存地址传入函数中,实参的值会随着形参值的变化而变化。

指针与引用的区别:

        指针可以为空,但引用不可以为空;指针可以随意改变指向的地址,但引用在初始化后不能再修改;程序需要对指针开辟内存空间,但不需要给引用开辟内存空间,所以指针的自增自减修改的是所指向的地址,但引用的自增自减修改的是对应变量的值。

类和结构体的区别:

        结构体存储在栈中,而类的实例可以在栈中,也可以在堆中;结构体可以由构造函数,但没有析构函数,类一定有构造函数,也可以有析构函数;类可以继承,结构体不可以继承。

解释与编译的区别:

        二者的主要区别在于何时生成CPU可直接运行的代码,这种说法并不严谨,但是便于理解。

        编译型语言,例如C/C++,在编译时就直接生成了CPU可直接运行的代码,这就意味着在ARM CPU上编译好的代码,在X86 CPU上不一定能执行,即可移植性差。

        而解释性语言,例如Python、Java,也有一个编译的过程,但此次编译生成的不是CPU能直接运行的代码,而是一种中间代码,需要一个虚拟平台(例如JVM)来运行这种中间代码,这种中间代码在运行的过程中才会被翻译成CPU能直接运行的代码。

        用一个网上看过的例子来说明就是,编译相当于做好了一桌子菜直接吃,而解释相当于吃火锅,需要一边涮一边吃。

Java与C++的区别:

        Java是由c++发展而来的,取其精华去其糟粕,Java更加简洁工整,但效率也随之下降。

        Java没有指针的概念,因为从C/C++在操作指针时经常会出错,例如指针空指了程序就容易崩溃。Java中没有指针也就防止了一系列的操作错误,更有利于Java的安全。

        Java不支持多重继承,多重继承即一个子类允许继承多个父类,虽然多重继承功能很强大,但使用复杂,有可能会引起很多麻烦。

        Java是完全面向对象的语言,所有数据和方法都必须在类中。除了基本数据类型,其余类型的数据都是对象型数据。

        Java自动进行内存回收操作,不再需要我们手动删除。c++和Java中的对象都是new出来的,但c++需要手动删除,Java只需要在使用完后添加删除标签即可。

        综上所述,Java以他的安全工整、耦合性低,更适合大型企业级的应用开发,而C++以其强大的运行效率,更适合于底层应用开发。

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
考研复试中的Java基础面试题主要涉及Java语言的基本概念、面向对象编程、异常处理、多线程、集合框架等方面。以下是一些常见的考研复试Java基础面试题及其答案: 1. 什么是JavaJava是一种面向对象的编程语言,具有跨平台性和可移植性,广泛应用于开发各种类型的应用程序。 2. Java的特点有哪些? Java具有以下特点: - 简单易学:语法简洁,与C++相比更容易上手。 - 面向对象:支持封装、继承和多态等面向对象编程特性。 - 跨平台性:通过Java虚拟机(JVM)实现跨平台运行。 - 安全性:提供安全机制,如内存管理、异常处理和访问控制等。 - 强大的开发工具和库:拥有丰富的开发工具和类库,方便开发人员进行开发。 3. 什么是面向对象编程? 面向对象编程(OOP)是一种编程范式,将数据和操作数据的方法封装在一起,形成对象。通过定义类和创建对象,实现了数据的抽象、封装、继承和多态等特性。 4. 什么是类和对象? 类是一种抽象的数据类型,用于描述具有相同属性和行为的对象集合。对象是类的实例,具有类定义的属性和方法。 5. 什么是封装、继承和多态? - 封装:将数据和操作数据的方法封装在一起,对外部隐藏实现细节,提供公共接口进行访问。 - 继承:通过继承机制,子类可以继承父类的属性和方法,并可以在此基础上进行扩展或重写。 - 多态:同一类型的对象,在不同的情况下可以表现出不同的行为。通过方法的重写和重载实现多态性。 6. Java中如何处理异常? Java中使用try-catch-finally语句块来处理异常。try块中包含可能抛出异常的代码,catch块用于捕获并处理异常,finally块中的代码无论是否发生异常都会执行。 7. 什么是线程?Java中如何创建线程? 线程是程序执行的最小单位,是进程中的一个执行流。在Java中,可以通过继承Thread类或实现Runnable接口来创建线程。 8. Java中常用的集合框架有哪些? Java中常用的集合框架包括List、Set、Map等。List接口实现了有序可重复的集合,Set接口实现了无序不可重复的集合,Map接口实现了键值对的映射。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值