文章目录
- 网络
- 数据库
- oracle中function和procedure的区别 ? (白皮书第9页)
- oracle中怎么使用分页 ?(白皮书第9页)
- SQL分类有哪些? (白皮书第18页)
- 单行函数有哪些 (白皮书第18页)
- truncate和delete的区别 (白皮书第10页)
- 怎么创建索引,索引使用原则,有什么优缺点(白皮书第12,13页)
- 怎么创建视图,视图的好处,视图可以控制权限吗 ?(白皮书第13页)
- 子查询中空值和多值怎么处理(白皮书第19页)
- oracle主要数据类型(白皮书第19页)
- 常见的约束有哪些 (白皮书第19页)
- SQL优化,说出5条以上即可 (白皮书第19页)
- 外连接和内连接的区别(白皮书第22,23页)
- 事务的特性(白皮书第21页)
- 事务并发带来的问题 及解决办法(白皮书第24,25页)
- Java基础
网络
说出7层模型及每层的作用 (白皮书第2页)
1,物理层:设备之间的比特流传输,物理接口,电气特性
2,数据链路层:将原始的物理传输信道转换为可靠的数据传输。
3,网络层:在网络中进行逻辑上的寻址和路由,实现数据包的传输和转发。
4,传输层:判断数据发送传输协议
5,会话层:管理主机之间的会话进程
6,表示层:将传输数据从文字,图片转换为二进制
7,应用层:用户接口
数据库
oracle中function和procedure的区别 ? (白皮书第9页)
function是函数的意思,procedure是存储过程的意思
1,函数是存储过程的一种
2,函数可以没有参数,但必须有一个返回值,存储过程可以没有参数,也可以没有返回值
3,函数通过return返回值,存储过程通过out返回值(返回多个参数选择存储过程)
4,SQL中只能调用函数而不能调用存储过程
oracle中怎么使用分页 ?(白皮书第9页)
用rownum进行分页,这是效率最好的分页方式
SQL分类有哪些? (白皮书第18页)
DML语句(Data Manipulation Language数据操作语言):
insert,update,delete,merge
DDL语句(Data Definition Language数据定义语言):
create,alter,drop,truncate
DCL语句(Data Control Language数据控制语言)
grant,revoke,事务控制语句(commit,rollback,savepoint)
单行函数有哪些 (白皮书第18页)
字符函数:upper,lower,concat
数值函数:round,mod,trunc
日期函数:month_between,add_month,last_day
转换函数:to_char,to_date,to_number
通用函数:nvl,nullif,case
truncate和delete的区别 (白皮书第10页)
1,都可以将数据实体删掉,但truncate不记录到rollback日志,数据也不能恢复
2,delete不腾出表空间的空间
3,truncate不能对视图进行删除
4,truncate是DDL,delete是DML
怎么创建索引,索引使用原则,有什么优缺点(白皮书第12,13页)
/*创建标准索引*/
CREATE INDEX 索引名 ON 表名(列名) TABLESPACE 表空间名
/*创建唯一索引*/
CREATE UNIQUE INDEX 索引名 ON 表名(列名) TABLESPACE 表空间名
/*创建组合索引*/
CREATE INDEX 索引名 ON 表名(列名1,列名2) TABLESPACE 表空间名
/*创建反向键索引*/
CREATE INDEX 索引名 ON 表名(列名) REVERSE TABLESPACE 表空间名
使用原则:
1,索引字段建议建立NOT NULL约束
2,经常与其他表建立联系的表,在连接字段上建立索引
3,经常出现在WHERE子句的字段,建立索引
4,有可选择性的关键字,建立索引
5,建立复合索引需要仔细分析,尽量用单字段索引
优缺点:
优点:
1,创建唯一性索引,保证数据库表中所有数据的唯一性
2,大大加快数据的检索速度
3,加快了表与表之间的连接
4,减少查询中分组和排序的速度
缺点:
1,索引创建在表上,不能创建在视图上
2,创建和维护索引过于费时间
3,索引需要占物理空间
4,表中数据增删改的时候,索引需要动态维护,降低了数据的维护速度
怎么创建视图,视图的好处,视图可以控制权限吗 ?(白皮书第13页)
CREATE VIEW 视图名 AS SELECT 列名[别名] ...from 表 [UNION [ALL] SELECT ...]
好处:
1,相似于sql查询语句,不占系统空间
2,使用视图将一些敏感信息过滤或者重命名后公开出来
3,简化查询
可以控制权限,在使用前需要将视图的使用权限grant给用户
子查询中空值和多值怎么处理(白皮书第19页)
1,如果子查询未返回任何行,则主查询也不会返回任何结果
2,如果子查询返回单行结果,称为单行子查询,可以在主查询中对其使用相应的单行记录比较运算符
3,如果子查询返回多行结果,成为多行查询,此时不允许对其使用单行记录比较运算符
oracle主要数据类型(白皮书第19页)
char,nchar
varchar2,nvarchar2
number()
date
clob,blob
常见的约束有哪些 (白皮书第19页)
非空约束,主键约束,唯一约束,条件约束,外键约束,级联删除
SQL优化,说出5条以上即可 (白皮书第19页)
1,尽量少用IN操作符
2,尽量用NOT EXISTS或者外连接代替NOT IN操作符
3,尽量不用“<>”或者“!=”操作符
4,在设计表时,索引列设置为NOT NULL
5,用“>=”代替“>”
6,用UNION ALL代替ALL
外连接和内连接的区别(白皮书第22,23页)
交叉连接:不使用任何条件,直接将一个表中的所有数据和另一个表中的所有数据一一匹配
内连接:有条件的交叉连接(只连接符合条件的行)
外连接:不仅包括符合条件的行,还包括了左表和右表或者两表中所有数据行
事务的特性(白皮书第21页)
原子性:事务是一个不可分割的工作单位,要么全部执行成功,要么全部回滚到事务开始之前的状态。
一致性:事务执行前后,数据库的状态必须保持一致。
隔离性:多个事务同时执行时,每个事务对于其他事务是隔离的,互不影响。
持久性:一旦事务提交成功,它对数据库的改变应该是永远的。
事务并发带来的问题 及解决办法(白皮书第24,25页)
问题:
1,脏读:一个事务读取了数据并对其进行修改,但还没有上传修改后的数据,与此同时另一个事务也在读取未修改的数据
2,丢失修改:第一个事务读取了数据,并对其进行了修改,与此同时第二个事务也读取了数据并对其进行了修改,那么第一次修改就作废了
3,不可重复读:第一个事务多次读数据,在第一次事务两次读数据之间穿插了第二个事务对数据进行修改,那么第一个事务前后两次读取到的数据就会不同
4,幻读:第一个事务在读取数据的过程中,第二个事务插入了一些数据,使得第一个事务在后续查询时就会查找到原本不存在的数据,就像幻觉一样
解决办法:
1,事务隔离级别(未提交读,已提交读,可重复读,可串行化)
–2,锁机制(乐观锁,悲观锁)
–3,并发控制技术
–4,死锁避免和死锁检索
–5,合理的事务设计
Java基础
java的数据类型分类
原始数据类型:
1,整数类型:byte,short,int,long
2,浮点类型:float,double
3,字符类型:char
4,布尔类型:boolean
引用类型:
类类型,数组类型,接口类型
包装类型:
Byte,Short,Integer,Long,Float,Double,Character,Boolean
变量的作用域及生命周期(白皮书第26页)
变量的作用域:作用域从变量定义的位置开始,到变量所在的大括号结束
生命周期:变量从定义的位置开始就在内存中活了
变量到达了它所在的作用域结束的时候就在内存中消失了
&&和&的区别 (白皮书第27页)
1,&&(逻辑与短路):第一次执行为false,第二次直接不执行
&(逻辑与非短路):不管第一次是false还是true,都会执行第二次
2,&&只能操作布尔型
&不仅能操作布尔型,也能操作数值型
break,continue,return的区别(白皮书第27页)
break:跳出上一层循环,不再执行循环
continue:跳出本次循环,执行下一次循环
return:程序返回,不再执行下面的代码
==和equals()的区别 (白皮书第27页)
==可以比较基本类型和引用类型
用来比较基本类型比较的是值
用来比较引用类型比较的是内存地址
equals()是object中的方法,比较的对象是否相同,想要实现效果必须重写
面向对象的三大特性 (白皮书第28页)
三大特性:封装,继承,多态
封装:隐藏对象的属性和实现细节,将设计者和使用者分开,提高了代码的复用性和安全性,关键字是private
继承:多个类中,将相同的成员提取出来,定义在一个独立的类中,使当前类具有独立类的内容,提高了代码的复用性和维护性,写法:class 子类 extends 父类{}
多态:一个对象在不同时刻体现出来的不同状态,有继承或者实现关系,有方法重写,有父类或父接口的引用指向子类对象,写法:父类 对象名 = new 子类()
成员变量和局部变量区别(白皮书第30页)
变量:程序执行过程中,某一范围内其值可以发生变化的量
声明位置不同:
成员变量:类中,方法外
局部变量:类中,方法内
初始值不同:
成员变量:可以不赋值,系统有默认初始值
局部变量:使用前必须赋值
内存位置不同:
成员变量:堆
局部变量:栈
生命周期不同:
成员变量:随着对象的创建而存在,对象的消失而消失
局部变量:随着方法的调用而存在,方法调用结束而消失
构造函数的定义和特性 (白皮书第30页)
构造函数的定义:在使用new关键词,创建类的对象时,调用的这个方法
构造函数的特性:
1,没有返回值
2,名称必须与类名相同
3,参数可以是0,1或多个
4,需要搭配new共同使用
5,创建类后,系统默认有一个无参构造