JavaOO小结二,及MySQL小结

流按照传输内容分有几种?各自的父类是什么?java

流按照传输内容有 字节流、字符流、对象流。但其本质都是字节流。字符流和对象流是在字节流基础上做了一层封装,以便更好对字符和对象进行操做。数据库

 

字节流的父类:InputStream和OutputStream编程

字符流的父类:Reader和Writer网络

 

操做流时,若是文件不存在会出现什么状况?若是流不关闭会出现什么状况?架构

操做流时,若是文件不存在,对于读取流而言,会抛出文件未找到异常。对于写入流而言,会建立新文件。若是流使用完成后不关闭,会浪费内存资源。并且对于写入流而言,若是流不关闭也不刷新,有可能写不进数据。函数

 

如何判断一个文件是否存在?如何建立一个目录?如何知道一个目录中有多少文件?测试

使用File类中exists()判断文件是否存在。日志

建立新目录:mkdir();xml

列出目录中的文件:listFiles();对象

 

什么是对象序列化?如何实现对象序列化?

当须要传输对象时,因为对象中数据很庞大,因此须要将对象打散成字节序列,以利传输。这个过程叫作序列化。到达目的地时,又须要将字节序列还原成对象,叫反序列化。

这时,须要序列化的对象必须实现java.io.Serializable接口

 

TCP/IP协议分为几层?

TCP/IP分为四层:应用层、传输层、网络层、网络接口层

 

什么是端口?常见端口有哪些?

端口是一个应用程序输入输出数据的通道。每一个应用程序都会有固定的端口。

常见的端口:Telnet协议:23    ftp:21   smtp:25    http:80

 

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

TCP是比较可靠的传输协议,提供三次握手机制,若是信息在传输中丢失或耗损,会要求发送方从新发送,保证数据传输的完整性。

UDP是比较不可靠的传输协议,当信息在传输中丢失或耗损,不会要求发送方从新发送。优势是速度快。

 

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

XML叫作可扩展的标识语言,以标记和子标记的方式描述对象。

声明<?xml  version=”1.0”   encoding=”utf-8”?>

注释<!--     - ->

 

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

必需要有声明

有且只有一个根元素

大小写区分

属性必须加引号

标记成对出现

标记要正确嵌套。

空标记要关闭

 

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

有效的XML除了知足XML基本规范外,还要知足DTD和Schema定义的元素规则。有效的XML必定是格式良好的XML,但格式良好的XML不必定有效。

 

7五、DOM和SAX有什么区别?

DOM是以树状方式的一套API,能够读取能够写入;能够随机访问XML中元素;大型文档占用内存较多。

SAX是一套基于事件方式的API。占用内存小,只能读取不能写入,不能随机访问元素,文档只能遍历一次。

 

7六、静态块和实例化块分别在何时执行?

静态块在类加载时执行,只执行一次。实例化块在产生对象时执行。每产生一个对象,就执行一次,在super()以后执行。

 

7七、什么是一对1、一对多、多对多?

一对一指的是一条主表记录对应一条从表记录。一对多指的是一条主表记录对应多条从表记录。多对多指的是一条主表记录对应多条从表记录,同时一条从表记录也对应多条主表记录,经过中间表来描述多对多关系。

 

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

实体完整性:每条记录都要有所区别,不能存在如出一辙的记录。经过主键和惟一约束实现

域完整性:保证每一列的值是有效的。经过默认约束、非空约束和检查约束实现

引用完整性:保证从表的外键必须引用主表的主键。经过外键约束实现

用户自定义完整性:用户自定义的规则

 

7九、什么是主键,主键有什么特色?

主键是用于标识一个表中两条记录不能彻底同样的列,它有两个特色:非空和值不能重复。

 

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

外键是指从表的某列与主表的某列存在的关联关系

外键约束是指在从表的外键列上加上一个约束,强制要求从表的外键必须引用主表的主键。若是违反该约束,则不容许该条数据的添加修改。

 

8一、增、删、改、查的基本SQL语句

添加:insert into 表名(字段列表)  values(值)

删除:delete from 表名 where id=1

修改:update 表名 set 字段名=新值 where id=1

查询:select  * from 表名

 

8二、DELETE和TRUNCATE的区别

Delete能够有选择性的对记录进行删除,要写日志文件,能够回滚删除的记录

Truncate只能清空表中全部记录,不写日志文件,删除的记录不能回滚,但执行效率高。

 

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

DISTINCT

Select * from 表名  limit   0,3;

 

 

8四、如何查询null值

查询null值用 is null 或is not null

 

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

Count:统计行数量              Sum:计算单个列的总和

Avg:计算单个列的平均值        Max:计算单个列的最大值

Min:计算单个列的最小值

 

8六、在分组语句中,查询的列能够有哪些?

只能有分组字段列和聚合函数

 

8七、where和having的区别

Where在分组以前执行,因此不能使用聚合函数。Having在分组以后执行,对分组的结果进行条件过滤,只能用聚合函数。

 

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

第一步:执行FROM

第二步:WHERE条件过滤

第三步:GROUP BY分组

第四步:执行SELECT投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY 排序

 

8九、内链接和外链接区别

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

外联接是指无论有没有匹配,被定义了外联接的表数据都要出如今结果中。

内链接:

Select   e.*,d.deptName  from t_employee e,t_dept d where e.deptId=d.id;

Select   e.*,d.deptName  from t_employee e  join  t_dept d on e.deptId=d.id;

外链接:

Select   e.*,d.deptName  from t_employee e  left  join  t_dept d on e.deptId=d.id;

 

 

90、如何删除主表记录?

因为有外键约束存在,若是主表记录有从表记录进行引用,那么没法删除主表记录。

删除主表记录有两种方式:

级联删除,先删除主表记录对应的全部从表记录,而后再删除主表记录。

外键置空,先将主表记录对应的全部从表记录外键设置为null,而后再删除主表记录。

 

9一、书写case when语句

CASE WHEN price>=1000 THEN '高价商品'

WHEN price>=100 AND price < 1000 THEN '中档商品'

ELSE  '低档商品' 

END

9二、什么是JDBC

JDBC是JAVA链接数据库的一套规范。该规范定义了一系列的接口,由数据库厂商实现,由用户根据接口调用。用户根据接口方法就能够屏蔽不一样数据库的差别,不管链接什么数据库都是一套API。

 

9三、JDBC开发流程

加载驱动

创建链接

执行SQL语句

关闭链接

 

9四、什么是SQL注入

SQL注入是指在执行SQL语句时,若是以拼接字符串方式进行值的注入,那么若是值中有非法字符或数据库关键字时,就会致使执行错误或执行结果不正确的状况。

 

Statement和PreparedStatement的区别

Statement是PreparedStatement的父接口,使用拼接字符串的方式填充SQL语句中的值,因此,当值不一样的时候,JDBC会从新编译SQL语句,效率低,并且容易形成SQL注入。

PreparedStatement提供了占位符方式设置SQL语句,JDBC不会从新编译SQL语句,并且不管是什么值都当作字符串处理,不会形成SQL注入。

 

9六、什么是三层架构

三层架构即:表现层、业务层、持久层。每一层完成即定的功能,层与层之间用接口作耦合。每一层的组件能够单独测试,当其中一个组件更换或修改后,不会影响别的层的组件。

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

业务层:用于业务处理。采用事务脚本模式。将一次请求中全部的业务封装成一个方法,保证方法中全部的数据库更新操做同时成功,同时失败。不容许部分红功,部分失败,这样引发数据混乱的状况发生。

表现层:采用MVC模式。M表示模型,就是实体类,用于数据的封装和数据的传输。V表示视图,用于展现数据和接收数据。C表示控制,用于调用业务组件,完成业务流程的控制。

书写单例模式

public class Man {

private static Man m = new Man();

private Man(){}

public static Man getMan(){

return m;

}

}

相关文章
相关标签/搜索