笔试面试前突击用

来源:互联网 发布:linux系统编辑文件 编辑:程序博客网 时间:2024/05/21 11:06

1、C和C++的结构体有什么区别

C中struct没有访问权限修饰,封装而不隐藏,成员不能是函数

C++中struct与类基本相同,不同的是默认访问权限,struct不能用于定义模版类

如果不是为了与C兼容,一般不使用struct
2、Spring框架的核心思想

依赖注入

面向切面

简化模版

3.事务的四大特性

原子性,隔离性,一致性,永久性

4.数据库的三个模式

外模式:又称为子模式或用户模式,对应数据操作语言

模式:概念模式或逻辑模式,对应数据定义语言

内模式:物理模式

5.SQL的各种语言

数据查询语言:Select

数据定义语言:Create Drop,Alter

数据操纵语言:insert update deleted

数据控制语言:Grant,revoke

5.二叉树改成循环链表

6.大小端是什么?在本机发送的数据传输到网络中是否需要转换?

网络传输中,位是小端序,字节是大端序,本机要按照网络格式传输。

7.字符串反转的程序

双指针反转
8.构造函数和析构函数能否抛出异常

构造函数:

构造函数可以抛出异常,但尽量不要,出现异常之后,可能会造成内存泄漏,所以要用try包裹起来释放掉已经获得的资源。

析构函数:

析构函数不能抛出异常,虽然C++没有明确说明。

析构函数本来就是异常处理的一部分,如果又抛出异常,会导致程序崩溃,内存泄漏等问题。实在需要抛出异常,也有用catch包围着,并且释放资源。
9.熟悉Linux系统吗?有哪些指令?

http://blog.csdn.net/luchengtao11/article/details/69808660
6、delete null会不会出错?

不会报错,什么也不会发生
7、怎么在申请内存失败的时候抛出异常?

malloc等c库函数不会抛出异常

new 在g++编译器中会抛出异常,在VC++编译器中不会

如果会抛出异常就捕捉异常,如果没有抛出异常就判断指针是否为空

8、数据库中表连接的几种形式

内链接:select * from book as b,student ad s where s.studentid=b.studentid

左外连接:select * from book as b left join student as s where s.studentid=b.studentid

右外连接:select * from book as b right join student as s where s.studentid=b.studentid
9、hashmap
常用两种实现方法:

链地址法:

开放地址法:即线性探测再散列


查找的过程:根据关键字寻找地址,直到关键字匹配或者空地址。
10.问了c++中虚函数和纯虚函数区别

纯虚函数在基类中没有定义,在子类中要定义。拥有虚函数的类为抽象类。

11.抽象类和接口的异同

C++中没有接口,用抽象类代替

相同:

都不能实例化

不同:

接口都是public

抽象类可以有成员变量

只能继承一个抽象类但是能实现多个接口 

12.数据库基本操作 

13.socket

14.常量指针,指针常量,常量指针常量

const int *  p;//常量指针int const * p;//常量指针int * const;//指针常量const int * const p;//常量指针常量
15.数组指针、指针数组

int (* p)[];//指向整形数组的指针int * p[];//指针的数组int * (p[]);//指针的数组

16.数据库中死锁

S:共享锁

X:排他锁

产生死锁的条件:互斥,占有且等待,不可抢占,循环等待

17.c++如何解决头文件重复引用

#ifndefine #define #endif

18.解决代码在32位系统和64位系统上的跨平台问题。

鬼知道。。
stringcopy

无领导小组 15个道具选5个

1 0
原创粉丝点击