计算机网络自顶向下方法第二章——应用层 Summary after reading
计算机网络自顶向下方法第二章——应用层
应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。在选择应用程序体系结构时,应用程序研发者很可能利用现代网络应用程序中所使用的两种主流体系结构之一:客户—服务器体系结构或对等(P2P)体系结构。
利用客户—服务器体系结构,客户相互之间不直接通信。具有客户—服务器体系结构的非常著名的应用程序包括Web、FTP、Telnet和电子邮件。
在一个P2P体系结构中,对位于数据中心的专用服务器有最小的(或者没有)依赖。相反,应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。因为这种对等方通信不必通过专门的服务器,该体系结构被称为对等方到对等方的。P2P体系结构的最引人入胜的特性之一是它们的自扩展性。例如,在一个P2P文件共享应用中,尽管每个对等方都由于请求文件产生工作负载,但每个对等方通过向其他对等方分发文件也为系统增加服务能力。
多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文必须通过下面的网络。进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文 ...
Java基础全套教程[尚硅谷宋红康] Summary for videos
Java基础全套教程[尚硅谷宋红康]一、基础语法
文档注释:注释内容可以被JDK提供的工具javadoc(只提取文档注释)所解析,生成一套以网页文件形式体现的该程序的说明文档。
保留字(现在非关键字,但是以后新版本可能是):goto、const。关键字如下。
类型
内容
用于定义数据类型的关键字
class、interface、enum、byte、short、int、long、float、double、char、boolean、void
用于定义流程控制的关键字
if、else、switch、case、default、while、do、for、break、continue、return
用于定义访问权限修饰符的关键字
private、protected、public
用于定义类、函数、变量修饰符的关键字
abstract、final、static、synchronized
用于定义类与类之间关系的关键字
extends、implements
用于定义建立实例及引用实例,判断实例的关键字
new、this、super、instanceof
用 ...
最短编辑距离
最短编辑距离一、思路
二、第一题代码123456789101112131415161718192021222324#include <iostream>#include <algorithm>using namespace std;const int N = 1010;int n, m;char a[N], b[N];int f[N][N];int main() { scanf("%d%s", &n, a + 1); scanf("%d%s", &m, b + 1); for (int i = 0; i <= m; i++) f[0][i] = i; for (int i = 0; i <= n; i++) f[i][0] = i; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { f[i][j] = min(f[i - 1][j ...
MySQL数据库高级教程[图灵学院周瑜老师] Summary for videos
MySQL数据库高级教程[图灵学院周瑜老师] Summary for videos一、索引
B树:排好序且一个节点可以有多个元素。
B+树:一个节点有多个元素,叶子结点之间存在指针。所有非叶子节点的元素都在叶子结点上冗余了一份。
insert into t1 values(1,2,3,4,'a');,假设1所在的字段为主键,那么MySQL在插入数据时排序。
Innodb一页默认的大小为16kb,是存储数据的最小基本单位,对于一条指令,例如select * from t1 where a=1,默认每次从磁盘取出一页放入内存进行查询比较,达到减少磁盘IO的效果。
在往用户数据区域插入数据时,会在每次插入操作时按照索引的大小插入适当的位置。为了提高查找的性能,创建了页目录,页目录对应着用户数据区域的分组,查找时,会在页目录使用二分查找来找到数据对应的组。
当一页的数据满了之后,会新开辟一页,如果索引不是自增的插入的话,那么插入每一页的数据都会跟前面的页相比较与调整位置,来插入到排序好的位置。
随着页的数量越来越多,也会变成一个长链表,所以为了提高效率,会新 ...
石子合并
石子合并一、思路
二、代码12345678910111213141516171819202122#include <bits/stdc++.h>using namespace std;const int N = 310;int n;int s[N];int f[N][N];int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> s[i]; for (int i = 1; i <= n; i++) s[i] += s[i - 1]; for (int len = 2; len <= n; len++) for (int i = 1; i + len - 1 <= n; i++) { int l = i, r = i + len - 1; f[l][r] = 1e9; for (int k = l; k < r; k++) ...
JDBC核心技术[尚硅谷] Summary for videos
JDBC核心技术一、JDBC概述1.1 数据的持久化
持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
1.2 Java中的数据存储技术
在Java中,数据库存取技术可分为如下几类:
JDBC直接访问数据库。
JDO(Java Data Object)技术。
第三方O/R工具,如Hibernate, Mybatis等。
JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。
1.3 JDBC介绍
JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方 ...
计算机网络自顶向下方法第一章——计算机网络和因特网 Summary after reading
计算机网络自顶向下方法第一章——计算机网络和因特网 Summary after reading
端系统通过通信链路和分组交换机连接到一起。不同的链路能够以不同的速率传输数据,链路的传输速率是以比特/秒度量。
当今的因特网中,两种最著名的类型是路由器和链路层交换机。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。
端系统通过因特网服务提供商ISP接入因特网。每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。各ISP为端系统提供了各种不同类型的网络接入,包括如线缆调制解调器或DSL那样的住宅宽带接入、高速局域网接入和移动无线接入。ISP也为内容提供者提供因特网接入服务,将Web站点和视频服务器直接连入因特网。
因为一些应用程序涉及多个相互交换数据的端系统,故它们被称为分布式应用程序。重要的是,因特网应用程序运行在端系统上,即它们并不运行在网络核心中的分组交换机中。尽管分组交换机能够加速端系统之间的数据交换,但它们并不在意作为数据的源或宿的应用程序。
与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的 ...
最长公共子序列
最长公共子序列一、思路
二、代码12345678910111213141516171819#include <bits/stdc++.h>using namespace std;const int N = 1010;int n, m;char a[N], b[N];int f[N][N];int main() { cin >> n >> m; cin >> a + 1 >> b + 1; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { f[i][j] = max(f[i - 1][j], f[i][j - 1]); if (a[i] == b[j]) f[i][j] = max(f[i][j], f[i - 1][j - 1] + 1); } cout << f[n][m] << endl; ...
最长上升子序列
最长上升子序列一、思路
二、代码12345678910111213141516171819202122#include <bits/stdc++.h>using namespace std;constexpr int maxn = 1010;int a[maxn], f[maxn];int n;int main() { scanf("%d", &n); for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]); int res = 0; for (int i = 1; i <= n; i ++ ) { f[i] = 1; for (int j = 1; j < i; j ++ ) if (a[j] < a[i]) f[i] = max(f[i], f[j] + 1); res = max(res, f[i]); ...
数字三角形
数字三角形一、思路
二、代码1234567891011121314151617181920212223242526#include <bits/stdc++.h>using namespace std;const int N = 510, INF = 1e9;int n;int a[N][N], f[N][N];int main() { cin >> n; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) cin >> a[i][j]; for (int i = 0; i <= N; i++) for (int j = 0; j <= N; j++) f[i][j] = -INF; f[1][1] = a[1][1]; for (int i = 2; i <= n; i++) for (int j = 1; j <= i; j ...