编程语言

154 阅读4分钟

一 C/C++语言

1. C语言中static关键字的作用是什么?

1)在函数体中,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变。
2)static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其他文件中访问。
3)static修饰一个函数的时候,这个函数只能在本文件中访问,不能在其他文件中访问。

2. C语言中const关键字的作用是什么?

C语言中const的功能是对变量声明为只读特性,并保护变量值以防被修改。

3. 引用和指针有什么区别?

1)本质上:引用是别名,指针是内存地址,指针变量是用来存放内存地址的变量。
2)引用必须初始化,指针不需要。
3)引用初始化之后不能被改变,指针可以改变所指对象。

4. 引用与值传递的区别是什么?

1)值传递:传递的是一个值的副本,函数对形参的操作不会影响实参的值。
2)引用:传递的是引用对象的内存地址,函数对形参的操作会影响实参的值,实参的值会随着形参的值改变而改变。

5. 指针数组与数组指针的区别是什么?

1)指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针。
2)数组指针:a pointer to an array,即指向数组的指针。

6. &和* 的区别

1)"&"是取地址运算符,&a是变量a的地址;
2)* 是指针运算符(或称间接访问运算符),* p代表指针变量p指向的对象。

二 Java语言

1. Java的三大特性是什么?

封装、继承、多态。

2. 什么是封装?封装的目的是什么?

1)封装:实际上就是把一个对象的属性和方法归到一个类中,以方便使用。
2)目的:增加安全性以及简化编程,使用者无需知道具体实现细节,只要通过外部接口访问就可以。

3. 什么是继承?继承的目的是什么?

1)继承:就是在原有类的基础上增加新的属性和方法,从而构造一个新的类。
2)目的:代码复用。

4. 什么是多态?多态的目的是什么?

1)多态:指一种方法有多种实现版本,即“一种定义,多种实现”。
2)目的:增加代码的灵活度。

5. 什么是重载?什么是重写?

1)重载:指函数或者方法名相同,但参数列表不同。
2)重写:在继承过程中,子类定义了与父类中名称相同,参数相同,返回值相同的方法称为重写。

6. Java中接口是什么?

接口是一系列方法的声明,一个接口只有方法的特征没有方法的实现。

7. Java中反射是什么?

Java反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法。

8. Java中异常是什么?

异常就是程序运行过程中出现的不正常的情况。

9. JRE、JDK、JVM是什么?

1)JRE(Java Runtime Enviorment) Java运行环境
2)JDK(Java Development Kit Java)Java开发工具
3)JVM(Java Virtual Machine)Java虚拟机,它是运行所有Java程序的抽象计算机,是Java语言的运行环境。

10. 说明Java怎么处理对象分配和释放的?

1)分配:程序员通过new为每个对象申请内存空间(基本类型除外),所有对象都在堆中分配空间。
2)释放:对象的释放是由垃圾回收机制决定和执行的。

11. 说明下Java有什么特点?

Java是一种纯粹的面向对象语言,它继承了C++语言面向对象的技术核心,但是抛弃了C++的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。