JavaOO小结二,及MySQL小结
流按照传输内容分有几种?各自的父类是什么?
流按照传输内容有 字节流、字符流、对象流。但其本质都是字节流。字符流和对象流是在字节流基础上作了一层封装,以便更好对字符和对象进行操作。
字节流的父类: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小结的更多相关文章
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- MySQL从删库到跑路(二)——MySQL字符集与乱码解析
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.字符集与编码 1.字符集简介 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符 ...
- 从MySQL到ORM(二):MySQL基础
一.基本概念 1.数据库: 数据库(DataBase)就是一个存储数据的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据 ...
- 数据库学习笔记(二)MySQL数据库进阶
MySQL 进阶 关于连表 左右连表: join 上下连表: union #自动去重 (当两张表里的数据,有重复的才会自动去重) union all #不去重 #上下连表示例: select sid, ...
- 十二、mysql之视图,触发器,事务等
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- 二、MySQL介绍
目录 一.MySQL背景 二.MySQL的优点 三.MySQL安装 四.MySQL服务的启动和停止 五.MySQL登录和退出 六.MySQL常用命令 (一)常用命令 (二)语法规范 (三)SQL语言细 ...
- Database基础(二):MySQL索引创建与删除、 MySQL存储引擎的配置
一.MySQL索引创建与删除 目标: 本案例要求熟悉MySQL索引的类型及操作方法,主要练习以下任务: 普通索引.唯一索引.主键索引的创建/删除 自增主键索引的创建/删除 建立员工表yg.工资表gz, ...
- 数据库(二)—— MySQL索引优化
目录 MySQL的索引优化 一.MySQL 5.7的初始化配置 二.MySQL配置文件 1.配置 2.配置文件作用 三.多实例 1.创建相关的目录 2.创建实例的配置文件 3.初始化 4.授权 5.启 ...
随机推荐
- 第十三节:pandas之groupby()分组
1.Series()对象分组 1.1.单级索引 1.2.多级索引 2.DataFrame()对象分组 3.获取一个分组,遍历分组,filter过滤.
- 洛谷 2387 NOI2014魔法森林 LCT
[题解] 我们先把边按照$a$值从小到大排序,并按照这个顺序加边. 如果当前要加入的边连接的两点$u$与$v$已经是连通的,那么直接加入这条边就会出现环.这时我们需要删除这个环中$b$值最大的边.因此 ...
- vue 使用插件
上传加载 :vue-infinite-loading
- F - Many Moves
F - Many Moves Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Statement There a ...
- html实现 省——市——区三级联动
html实现 省——市——区三级联动 html中实现三级联动是一个不错的demo,博主在这里跟大家分享一下实现的过程,以及自己在过程中出现的一些问题,仅供参考. 首先我们将全国的省市区数据导入进来, ...
- 洛谷 P2965 [USACO09NOV]农活比赛The Grand Farm-off
P2965 [USACO09NOV]农活比赛The Grand Farm-off 题目描述 Farmer John owns 3*N (1 <= N <= 500,000) cows su ...
- ZooKeeper常用命令行工具及使用(转)
一.服务端 bin目录下常用的脚本解释 zkCleanup:清理Zookeeper历史数据,包括食物日志文件和快照数据文件 zkCli:Zookeeper的一个简易客户端 zkEnv:设置Zookee ...
- 点评国内各大在线app生成平台
第一个:应用之星-无需编码的在线手机应用开发平台-移动开发平台-Androi应用开发 应用之星是免费的无需编码.基于组件的在线手机应用开发平台,app软件开发平台,手机软件开发平台,为移动开发人员减少 ...
- UI层自动化测试框架(一)-简介和环境搭建
http://blog.csdn.net/ToBeTheEnder/article/details/52302777
- 64位BASM学习随笔(一)
64位BASM学习随笔(一) Delphi的BASM一直是我最喜爱的内嵌汇编语言,同C/C++的内联汇编相比,它更方便,更具灵活性,由于C/C++的内联汇编仅仅能是或插入式的汇编代码,函数花括号 ...