基础知识题四(完)

1、TCP和UDP的区别是什么?掌握TCP编程流程。

答:TCP是传输控制协议,会经历三次握手来确认才能使双方建立连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据流量控制等功能来确保数据的可靠性和安全性。相对而言效率低。

UDP是用户数据包协议协议,不提供可靠性及安全性,效率高。一般用于视频数据的传输。

 

2、什么是XML?XML声明是怎样的?XML注释是怎样的?

答:XML是可扩展标记语言,用于标记电子文件使其具有结构性的标记语言

<?XML version="1.0"  encoding=”UTF-8” standalone=”yes”?> 声明,一般后面的两项会默认,只需要写成 <?XMLversion="1.0"?> 即可

<!-- 注释  -->

 

 

3、一个格式良好的XML有哪些规定?

答:

1.标记的书写正确,必须成对出现,有开始标记必须有结束标记,除非是单标记

2.每个标记只能有一个根元素

3.标记嵌套必须正确,不能出现交叉标记

4.属性必须加引号

5.开头必须要有声明

6.标记要区分大小写

 

4、格式良好的XML和有效的XML有什么区别?

答:格式良好的XML是指符合XML语法规则的

有效的XML是指不但符合XML语法规则而且符合DTD规范 或 schemal规范

所以良好格式的XML不一定是有效的XML,但是有效的XML一定是良好格式的XML

 

5、DOM和SAX有什么区别?

答: 1 DOM使用树形结构,在内存当中一次性表现整篇XML文档

2 SAX采用事件回调的方式,从上往下读取一篇XML文件,当遇到我们要操作的元素的时候,它就调用我们要操作这个元素的方法。

3 DOM解析最大的优势是可以来回遍历,而SAX不行。SAX在读取到后面的时候是不能再回到前面的! .

4大的XML文件不适合DOM解析,反之则采用SAX

 

76、静态块和实例化块分别在什么时候执行?

答:前者在虚拟机加载的时候就执行,只执行一次。后者在每次创建对象的时候执行,每创建一次执行一次。

 

6、什么是一对一、一对多、多对多?

答:

- 一对一:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主表记录。

- 一对多:一条主表记录对应多条从表记录,同时一条从表记录对应一条主表记录。

- 多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录。   

(多对多需要中间表来连接,中间表来描述关系)

7、数据库完整性有哪些?

答:为了防止垃圾数据的产生,从而影响数据库的执行效率。(可靠性+准确性)

数据完整性的分类 

  - 实体完整性:保证一行数据是有效的(实现:1,主键约束primary key(主键列不能为空也不能重复,一个表只能有一个主键),2 唯一约束unique(唯一约束可以为空,并且可以在一张表中给多个列设置)) 

  - 域完整性:保证一列数据是有效的 (实现:1 非空约束not null ,2 默认约束 default ,3 检查约束 mysql不支持)

  - 引用完整性:保证引用编号是有效的

  - 用户自定义完整性;保证自定义规则

 

 

8、什么是主键,主键有什么特点?

答:主键是表中的一个字段,主键列不能为空,也不能重复。一个表只能有一个主键

 

 

9、什么是外键,它和外键约束有什么区别

答:一个表中的某个字段是另外一个表中的主键,该字段被称为外键。外键约束:约束了主键所在表中的记录不能在外键表存在的情况下直接删除,强行要求从表记录的外键必须引用主表记录的主键

删除有两种方式:1 级联删除:将主表记录对应的从表记录先删除,在删除主表记录

                     2外键设空:讲主表记录对应的从表记录的外键设置为null,在删除主表记录

区别:1 外键是指从表的某列与主表的某列有存在依赖关系

       2外键约束市值在外键关联主键上强制加上一个约束,如果违反约束,则不允许该条数据的修改,注意:没有外键约束不等于没有外键

 

 

 

10、增、删、改、查的基本SQL语句

答:insert intot_table 增加

   Delectfrom t_table where t_name=”” 删除

  Updatet_table set t_name= ‘””

Select * from t_table

 

11、DELETE和TRUNCATE的区别

答:delete 可以会记录日志,可以恢复数据。 Truncate 不会记录日志,不可以恢复数据,执行效率高

 

83、排除重复记录用什么关键字?如何限制查询数据的返回限定行数?

答:distinct   limit

 

84、如何查询null值

答: select *from t_xxx where e_name is null;

 

 

85、SQL语句的聚合函数有哪些?

答:max():计算某列的最大值

min():计算某列的最小值

sum():获取单个列的合计值

avg():计算某个列的平均值 ( avg 不会把值为null 的加入计算中)

-- 如果要计算为null值的元素sum()/count(*)

count():统计行数量,count(*) 统计所有的记录,count(字段)统计符合该字段的非空记录,count(casewhen  then end) 条件筛选统计

 

需要注意的是,函数和后面的括号之间不要有空格

 

 

86、在分组语句中,查询的列可以有哪些?

答:能查询的字段只能是分组字段和聚合函数

 

 

87、where和having的区别

答:where 执行在运行分组前,因此不能执行任何聚合函数

having 执行在运行分组后,只能用在使用聚合函数的过滤

 

 

88、描述SQL查询语句执行顺序

答:fromàwhereàgroupbyàselectàhavingàorderby

 

 

89、内连接和外连接区别

答:内联接 是指使用比较运算符,根据每个表共有的列的值匹配两个表中的行

外联接 是指不管有没有匹配,被定义了外联接的表数据都要出现在结果中

 

 

90、什么是JDBC

答:是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成 。

  - 是java连接数据库的一套规范,该规范中定义了一系列的接口,由数据库厂商提供接口实现类,由开发者根据接口,调用实现类的方法。这样开发者就可以屏蔽不同数据库的差异,无论连接声明数据库,对数据库做什么样的操作,都是一套API。

 

91、JDBC开发流程

答:加载驱动建立联接,操作SQL语句,关闭连接

 

92、什么是SQL注入

答:SQL注入,在执行SQL语句时,如果以拼接字符串方式设置值,如果在值中有SQL语句的关键字或非法字符或语句,可能会造成执行结果不正确或执行失败的情况。这就叫SQL注入。

 

 

 

93、Statement和PreparedStatement的区别

答:1.Statement 是PreparedStatement的父类

2.Statement 在执行SQL语句,只能以拼接字符串的方式设置值。由于每一次的值都不一样,所以在执行SQL语句时,都会讲SQL语句重新编译,效率较低。而 PreparedStatement 提供占位符的方式,SQL语句不用每一次执行都进行编译,执行效率较高。

3. Statement 在执行SQL语句时,由于采用字符串方式设置值,所以容易造成SQL注入,而

PreparedStatement 使用占位符方式设置值,无论是什么值都当字符串处理,不会造成SQL注入

 

 

94、什么是三层架构

持久层、业务层、表现层

持久层:

完成数据库的操作。采用DAO模式,建立实体类和数据库进行映射,也就是那个类对应哪个表,那个属性对应哪个列。而持久层的目的就是完成关系数据和对象数据的转换!

 

业务层  

完成业务处理。采用事务脚本模式。将一个业务中所有的业务操作封装成一个方法。保证该方法中所有数据库更新操作同时成功或同时失败。

 

表现层

完成数据的展示 采用MVC模式

M:模型:也就是实体类,完成数据的封装和数据的传输

V:试图,也就是GUI窗体,完成数据的展示

C:控制,也就是事件,完成业务方法的调用和业务流程控制

 

层与层之间,采用接口模式做耦合,这样,当其中一个层的组件发生更改和替换的时候,不会影响别的层的组件的使用。

 

用户—》表现层---接口---》业务层---接口---》持久层-----》DB(数据库)最接近用户的是低层

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值