集合,流—AND—JDBC

集合

JAVA中对一些数据结构和算法进行了封装即是集合,集合也是一种对象,用于储存,检索,操作和传输对象


集合特点:元素类型可以不同,集合长度可变,空间不固定


数组和集合的区别:

1.数组定义之后长度不可改变,而集合长度会随着元素的多少发生变化 

2.数组可以是基本类型和引用类型,而集合只能是对象

3.数组元素类型是一致的,而集合元素的类型可以不一致

4.数组算法较少,而集合中有大量算法,使用集合操作数据更加容易


集合框架包括:接口,实现类,算法

接口:collection(父接口) ----List和Set(两个子接口)-----collection不是Map的父接口

List的实现类有:ArrayList,Vector,LinkedList        ---List接口的特点:线性,元素可重复

Set的实现类有:HashSet     ---Set接口的特点:元素不可重复

Map的实现类有:HashMap ,Hashtable    ----Map接口的特点:键值对的键不可重复

List集合:

1.ArrayList:底层部分由数组实现,空间连续,查询追加元素速度快,但蹭插入,删除元素速度慢。

2.Vector:底层部分同样由数组实现,但线程安全,效率低

3.LinkedList:由不连续的空间组成,以双向键表实现,每个元素除了存放数据外,还要存放上一个和下一个元素地址,中间插入,删除元素速度快,但遍历速度慢。

Set集合:

1.HashSet:按Hash表排列元素


HashMap和Hashtable的区别:

1.前者线程不安全,后者线程安全

2.两者都是Map接口的实现类

3.前者允许空键和空值,后者不允许


collection和collections的区别:

1.前者是集合框架的父接口,有List和Set子接口

2.后者是集合框架的算法类,提供了很多关于集合相关的算法


操作流的步骤:1.建立流    2.操作流    3.关闭流


流的分类:

1.方向:输入流(读取流)     输出流(写入流)

流的方向以内存作为参照物,当需要从内存中输入数据,叫输入流,也叫读取流,当需要将内存中的数据写入数据源,叫输出流,也叫写入流

2.数据各类:字节流      字符流     对象流

无论是哪种流,其本质都是字节流,数据传输都以字节方式进行,但为了更好的对字符串和对象进行操作,在字节流基础上做了一层封装,就形成了字符流和对象流


字节流抽象父类是:InputStream和OutputStream

字符流抽象父类是:Reader和Writer


InputStream中read()和read(byte[])的区别:

read()读取一个字节,返回的是流中的数据read(byte[])将数据读取到byte[]中,返回当前读取的字节娄


对象序列化:

当需要传输对象时,由于 数据很庞大,所以在传输之前,需要将对象打散成字节序列,以利于传输,这个过程叫对象序列化,在到达目的地时,又需要将字节序列还原成对象,这个过程叫反序列化


1.操作流时,如果文件不存在,读取流会抛出文件未找到的异常,而写入流会创建新文件


2.写入流在文件不存在时会创建新文件,但前提是文件的目录要存在,如果目录不存在,还是会抛出文件未找到异常


3.流名.flush():刷新流,将数据真正写入数据源中,在关闭流之前执行


4.流使用完毕后,必须关闭,否则会浪费内存资源,如果是写入流,还有可能 写不进数据


5.transient是属性修饰符,表示在序列化传输对象时,该属性的值不做传输


JDBC

JDBC:

叫java database connection 是JAVA连接数据库的一套API,JDBC定义了一系列接口,这些接口由数据库厂商提供实现类,由用户进行调用,这样用户根据接口调用方法,可以屏蔽数据库的差异,换句话说,无论连接哪种数据库都是一套API


JDBC操作步骤:

1.加载驱动

2.建立连接

3.执行SQL语句

4.关闭连接


ORM映射:

也就是对象和关系数据的映射关系,换句话说,就是哪个类对应哪个表,哪个属性就对应哪个列,我们做的JDBC操作的目的,其实就是完成对象数据和关系数据的转换


Statement和preparedStatement的区别:

1.后者是前者的子接口,如果使用前者,那么在执行SQL语句时,语句中的参数只能通过拼接方式连接,每次执行SQL语句都需要重新编译,效率低

2.后者允许使用占位符(“?”)的方式设置参数,SQL语句只编译一次,效率高


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值