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

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

字节流的父类:InputStream和OutputStream

字符流的父类:Reader和Writer

操作流时,如果文件不存在会出现什么情况?如果流不关闭会出现什么情况?

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

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

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

创建新目录:mkdir();

列出目录中的文件: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有哪些规定?

必须要有声明

有且只有一个根元素

大小写区分

属性必须加引号

标记成对出现

标记要正确嵌套。

空标记要关闭

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

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

75、DOM和SAX有什么区别?

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

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

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

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

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

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

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

实体完整性:每条记录都要有所区别,不能存在一模一样的记录。通过主键和唯一约束实现

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

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

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

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

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

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

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

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

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

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

删除:delete from 表名 where id=1

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

查询:select  * from 表名

82、DELETE和TRUNCATE的区别

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

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

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

DISTINCT

Select * from 表名  limit   0,3;

84、如何查询null值

查询null值用 is null 或is not null

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

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

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

Min:计算单个列的最小值

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

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

87、where和having的区别

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

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

第一步:执行FROM

第二步:WHERE条件过滤

第三步:GROUP BY分组

第四步:执行SELECT投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY 排序

89、内连接和外连接区别

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

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

内连接:

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,然后再删除主表记录。

91、书写case when语句

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

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

ELSE  '低档商品'

END

92、什么是JDBC

JDBC是JAVA连接数据库的一套规范。该规范定义了一系列的接口,由数据库厂商实现,由用户根据接口调用。用户根据接口方法就可以屏蔽不同数据库的差异,无论连接什么数据库都是一套API。

93、JDBC开发流程

加载驱动

建立连接

执行SQL语句

关闭连接

94、什么是SQL注入

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

Statement和PreparedStatement的区别

Statement是PreparedStatement的父接口,使用拼接字符串的方式填充SQL语句中的值,所以,当值不同的时候,JDBC会重新编译SQL语句,效率低,而且容易造成SQL注入。

PreparedStatement提供了占位符方式设置SQL语句,JDBC不会重新编译SQL语句,而且无论是什么值都当做字符串处理,不会造成SQL注入。

96、什么是三层架构

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

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

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

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

书写单例模式

public class Man {

private static Man m = new Man();

private Man(){}

public static Man getMan(){

return m;

}

}

JavaOO小结二,及MySQL小结的更多相关文章

  1. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  2. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  3. MySQL从删库到跑路(二)——MySQL字符集与乱码解析

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.字符集与编码 1.字符集简介 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符 ...

  4. 从MySQL到ORM(二):MySQL基础

    一.基本概念 1.数据库: 数据库(DataBase)就是一个存储数据的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据 ...

  5. 数据库学习笔记(二)MySQL数据库进阶

    MySQL 进阶 关于连表 左右连表: join 上下连表: union #自动去重 (当两张表里的数据,有重复的才会自动去重) union all #不去重 #上下连表示例: select sid, ...

  6. 十二、mysql之视图,触发器,事务等

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  7. 二、MySQL介绍

    目录 一.MySQL背景 二.MySQL的优点 三.MySQL安装 四.MySQL服务的启动和停止 五.MySQL登录和退出 六.MySQL常用命令 (一)常用命令 (二)语法规范 (三)SQL语言细 ...

  8. Database基础(二):MySQL索引创建与删除、 MySQL存储引擎的配置

    一.MySQL索引创建与删除 目标: 本案例要求熟悉MySQL索引的类型及操作方法,主要练习以下任务: 普通索引.唯一索引.主键索引的创建/删除 自增主键索引的创建/删除 建立员工表yg.工资表gz, ...

  9. 数据库(二)—— MySQL索引优化

    目录 MySQL的索引优化 一.MySQL 5.7的初始化配置 二.MySQL配置文件 1.配置 2.配置文件作用 三.多实例 1.创建相关的目录 2.创建实例的配置文件 3.初始化 4.授权 5.启 ...

随机推荐

  1. Java 下实现Cache

    最近在做Spring的项目,想做一个缓存,访问数据库,定期来做数据更新 要实现两个功能 可以通过http请求来立刻刷新缓存 缓存可以通过自己配置的时间间隔来定期刷新 通过Controller来做 因为 ...

  2. vue 使用echarts

    import echarts from 'echarts'   <div id="kocGrow" style="width: 600px;height: 300p ...

  3. 协程,greenlet原生协程库, gevent库

    协程简介 协程(coroutine),又称为微线程,纤程,是一种用户级的轻量级线程.协程拥有自己的寄存器上下文和栈. 协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来时,恢复之前保存的上下文 ...

  4. GlobalSign 增强型(EV) SSL 证书

    GlobalSign 增强型(EV) SSL 证书,属于最高验证级别的EV SSL,验证域名所有权,进行严格的企业真实身份验证,证书标识企业组织机构名称,强化信任度,浏览器地址栏变绿色.提供40位/5 ...

  5. 混合了RBAC和ACL的权限系统(一) -- 用户组织结构

    最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件. 这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL) ...

  6. 洛谷—— P1077 摆花

    https://www.luogu.org/problem/show?pid=1077 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客 ...

  7. OGNL是什么

    OGNL表达式是(Object-Graph Navigation Language)是对象图形化导航语言.OGNL是一个开源的项目,Struts2中默认使用OGNL表达式语言来显示数据.与Serlve ...

  8. N天学习一个linux命令之xz

    前言 最近使用gitbook写接口文档,gitbook需要nodejs执行环境.安装nodejs时,发现安装包使用的是xz后缀,它是使用LZMA无损数据压缩算法生成的文件,压缩率很高.GNU已经内置了 ...

  9. AFNetworking的详细解析

    AFNetworking serializer 分析 AFNetworkResponse.png 1. AFHTTPRequestOperationManager *manager = [AFHTTP ...

  10. hive学习路线

    hive学习路线图: