计算机基础之第二篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zanpengfei/article/details/86307515

1、缓存

1)分布式缓存:是一个共享中心,程序无需过于关系,一般来说,要读取数据先到缓存中读取,如果读取不到,在到数据库中读取,并放到缓存中,如果数据被修改,那么缓存中的数据也就失效了,必须同步到缓存中

2)缓存用于非强制一致性,即使是数据库利用缓存的优势也是通过非绝对一致性完成的

3)缓存荣复杂性开始变强,让一致性不是那么容易保证,因此他对可用性的要求肯定没有数据库高,它储存的数据可以允许丢一点点

2、Java基本I/O

1)I/O是输入/输出,只是与内存程序通信就可以看成是I/O

2)CPU相对内存来讲级别更高,内存中的数据最终由OS调度给CPU处理,也就是其他的设备要处理的数据首先放入到内存中,然后在通过CPU处理,在内存中处理好的数据反馈到某个设备上,CPU是正真处理数据的实体

3)I/O传送数据内部内在都是基于字节(byte),即二进制数据,选择字节而不选择字符的原因是每种语言表达字符的方式不同,计算机内部是通过数字来表达的,将字符转成字节时通常会指定一种编码,接收方用相同的编码方式才能正确解码

4)编码方式:ISO-8859-1为基础,中文的编码:GB2312、GBK、GB18030(支持中文最多)、UTF-8称为全球码,理论上支持所以的字符集,一个汉字通过UTF-8编码后,一般被编码为3个字节,一个英文字母被编译为一个字节

5) Java的I/O在输出数据时,这些数据会经过JVM,然后到OS管理的一块内核态区域,再由Kernel完成交互,输入到网络或磁盘也一样

6)Java的I/O在输入时正好相反,只是在输入过程中通常会让程序发生阻塞,在I/O尚未响应之前(准确地说是Kernel未准备好数据之前),线程会被阻塞

7)  关于socket编程一些错误提示:

a)若服务方将socket关闭,对方在发起writeLine()操作时抛出异常,若客户端关闭时,服务端发起readLine(),读取是null

b)服务方的进程直接退出,客户端使用BufferedReader或BufferWriter,会抛出2种异常

c)服务方read()方法读取字节时,若客户端关闭,会返回-1,如果操作Java提供的流包装处理类中类时于readByte()方法时,抛出异常

d)若BufferedReader/BufferedWriter自己本身关闭了,但还在做read/writer操作,会抛出异常

8)socket编程实例:headfirst下的socket包

11、Java与数据库的交互

1)大部分Java与数据库通信的API是基于Java的Socket,Java与数据库通信在socket的基础上建立许多不同的协议,JDBC是其中一种

2)JDBC通常有Java语言的标准接口,由第三方或者厂商提供驱动程序实现,即驱动程序只是实现接口的,主要组成的接口又Driver、Connection、DataSource、Statement、ResultSet等

3)Driver用于注册到DriverManager中以及提供对外统一创建Connection的接口

4)Connection是连接对象,是包装了连接操作的对象

5)DataSource是对Connection操作相关管理API

6)Statement提供通用的语句级别度机箱处理

7)ResultSet返回结果集的一个接口

8)操作数据库最终都是通过与服务器端建立Socket来通信的

猜你喜欢

转载自blog.csdn.net/zanpengfei/article/details/86307515
今日推荐