亚信面试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(写出建表,建索引和建主键的语句写出)
CREATE TABLE table
(
Name varchar2(4) Value varchar2(20) PRIMARY KEY(name ,value)
NOT NULL, ,
Hale Waihona Puke Baidu
)
TABLESPACE 表空间; CREATE INDEX DCUSTMSG_IDX ON DCUSTMSG (name,value);
3. 把一个目录下所有文件的名称括目录后加.bak
rename ’s/$/\.bak/’ *
4. Doc 文件的换行符和 unix 下换行符有什么区别 DOC 和 windows 中换行由回车和换行符\r 决定 Unix 就一个换行符 \n
ORACLE 部分 1. 建 1 张表,2 个字段确定一个主键和索引,然后根据这 2 个字段统计最大费用
Shell 部分 1. 统计目录下所有文件数目 ls |wc –l 2. 查找出 10 天未改动的文件 find . –ctime +10 3. 删除一个目录下的所有文件 (不能用 rm –f,用 xargs)
find . -type f -exec rm {} \; find . -type f |xargs rm 4. 用一个命令新建一个目录 a,a 里面含有目录 b mkdir -p a/b 5. Sed 正则表达式 6. Vi 查找一个字符串 7. Ls –l 和 ls –l *的区别 Ls –l 只显示当前目录下的文件和目录; Ls –l * 显示当前目录下的文件和目录,并且显示子目录下的所有文件和目录 8. Shell 有几种 目前流行的 Shell 有 ash, bash, ksh, csh, zsh 等 bash 是 Linux 系统默认使用的 Shell 9. Awk 的使用 (最后 2 列数据相加) 2. 说出你常用的 shell 命令。并解释其作用
而用 truncate 清除数据,内存中表空间中其被删除数据的表占用的空间会被 立即释放,相当于 windows 中用 shift+delete 删除数据,不能够恢复! 4、truncate 调整 high water mark 而 delete 不;truncate 之后,TABLE 的 HWM 退回到 INITIAL 和 NEXT 的位置(默认)delete 则不可以。 5、truncate 只能对 TABLE,delete 可以是 table,view,synonym。 6、TRUNCATE TABLE 的对象必须是本模式下的,或者有 drop any table 的权 限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或 DELETE ANY TABLE 的权限。 7、在外层中,truncate 或者 delete 后,其占用的空间都将释放。 8、truncate 和 delete 只删除数据,而 drop 则删除整个表(结构和数据)。 3. Dml 和 ddl 的区别 修改数据结构,数据库结构等等的语句成为 DDL 比如:alter table, create table, alter user, truncate table 等等 修改数据本身的语句成为 DML 比如:update,insert,delete
1. 构造和析构函数 是什么,写一个拷贝构造函数 当一个类含有一些数据成员,你需要在实例化类的时候就初始化这些成员,你就需要自
己定义构造函数。例如 Person 类含有 m_strName 成员,你在声明该类是就将其赋值 Person myPerson("张三") 对于拷贝构造函数,为了防止浅拷贝造成的两个对象指向同一内存,当删除其中一个对象后 导致另一对象指向内容为空的时候,我们就需要定义自己的拷贝构造函数来进行深拷贝。 当你的类数据成员中使用了动态分配的内存,你就需要定义自己的析构函数来释放这部分内 存,防止内存泄露。 系统定义的默认构造函数和析构函数函数名和类名相同,如 Person 类: Person()构造函数 ~Person()析构函数 拷贝构造: String::String(const String &other) {
DDL 不可以 rollback,但是 DML 可以
4. 索引的数据结构是什么,为什么用这个? B树
5. 视图 是什么,并建立一个
CREATE OR REPLACE VIEW tableview (字段 1,字段 2) as (select 字段 1,字 段 2 from table 1 UNION select 字段 1,字段 2 from table 2)/
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有 virtual 关键字。 “隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无 virtual 关键字, 基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有 virtual 关 键字。此时,基类的函数被隐藏(注意别与重写混淆)
据前,必须先在双方之间建立一个 TCP 连接,之后才能传输数据。TCP 提供超时重发,丢弃 重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP 不提供可靠性,它只 是把应用程序传给 IP 层的数据报发送出去,但是并不能保证它们能到达目的地。由于 UDP 在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输 速度很快 9. Explicit 含义和作用
(5) 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由 一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方 式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往 与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
(6) 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其 间的进程通信
C 部分 1. 排序算法 时间复杂度 ,说出你喜欢的一种算法,说其原因
插入排序 O(n^2) 归并排序 O(nlog2n) 快速排序 最好 O(nlog2n) 最坏 O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 堆排序 O(nlogn) 希尔排序 O(n^2)
2. 逆序单链表 3. 进程间通信有哪几种
锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主 要作为进程间以及同一进程内不同线程之间的同步手段 (3) 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克 服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点 (4) 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生
CREATE UNIQUE INDEX DCUSTMSG_PK ON DCUSTMSG (name , value); 2. Truncate 与 delete 的区别
truncate 的作用是清空一个表格,在删除数据方面,其与 delete 有一些区 别, 1、在功能上,truncate 是清空一个表的内容,它相当于 delete from table_name。 2、delete 是 dml 操作,truncate 是 ddl 操作;因此,用 delete 删除整个表 的数据时,会产生大量的 roolback,占用很多的 rollback segments, 而 truncate 不会。 3、在内存中,用 delete 删除数据,表空间中其被删除数据的表占用的空间 还在,便于以后的使用,另外它是“假相”的删除,相当于 windows 中用 delete 删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重 新启动系统(OS 或者 RDBMS),它也就不能恢复了!
7. 多线程有哪些函数,越多越好
pthread_create 创建线程 pthread_self 获取自身线程的 id pthread_once 一次性初始化 pthread_join 获得进程的终止状态 pthread_mutex_init 初始化一个互斥量
8. TCP 和 UDP 的区别 TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数
delete test3 a WHERE EXISTS (SELECT 1 FROM test3 b WHERE a.A = b.A and a.B = b.B AND a.rowid < b.rowid)
6. 内链接和外连接分别是什么?有什么关系? 7. 删除一个表的重复数据 8. 删除一个表的重复数据,只留一条数据(用一个 sql)
select distinct num from tabname into temp a1 delete from tabname insert into tabname select * from a1
Int length = strlen(other.data); Data = new char[length+1]; Strcpy(data,other.data); } String & String::operate =(const String &other) { If(this == &other)
现在最常用的进程间通信的方式有:管道,信号,信号量,消息队列,共享内存,套接 字(socket)。 (1) 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的
进程间使用。进程的亲缘关系通常是指父子进程关系 (2) 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种
5. OSI 七层网络模型与 TCP/IP 四层网络模型 Osi:物理,数据链路,网络,传输,会话,表示,应用 TCP/IP :网络接口,网间,传输,应用
6. 用 socket 写出 server 和 client 的函数 Server:int socket,int bind,listen,accept,read,write Client:socket,connect,write,read
Return *this; Delete [] data; Int length = strlen(other.data); Data = new char[length+1]; Strcpy(data,other.data); Return *this; }
2. Vector 容器 vector<int> test;//建立一个 vector test.pushback(1);//把 1 和 2 压入 vector 这样 test[0]就是 1,test[1]就是 2 test.pushback(2);
4. 进程和线程的区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程 序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行 序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多 个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操 作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这 就是进程和线程的重要区别。
禁止隐式转换,防止程序员误操作
C++部分 1. c++ 继承与派生中,隐藏与覆盖的条件,含义,区别
成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
相关文档
最新文档