自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PROGRAMB的博客

Java Program!

  • 博客(6933)
  • 资源 (32)
  • 问答 (74)
  • 收藏
  • 关注

原创 希尔排序是一种分组排序方法,组内采用直接插入排序。

1.什么是排序所谓排序,就是要整理表中的元素,使之按关键字递增或递减有序排列,本章仅讨论递增排序的情况,在默认情况下所有的排序均指递增排序。排序的定义如下。输入:n个元素R0、R1、…、Rn—1,其相应的关键字分别为k0、k1、…、kn—1。输出:Ri0,Ri1,…,Rin—1,使得ki0≤ki1≤…≤kin—1。2.内排序和外排序在排序过程中,若整个表都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内排序;反之,若排序过程中要进行数据的内、外存交换,则称之为外排序。内排序适用于元素个数不很

2022-03-02 00:06:02 1429

原创 当数据元素只有一个数据项时,其关键字即为该数据元素的值。

在查找表中,所有数据元素的类型相同,在数据元素(或记录)中某个数据项的值可以标识一个数据元素,称该数据项为关键字。若此关键字可以唯一地标识一个数据元素,称该关键字为主关键字,对于不同的数据元素,其主关键字均不同。反之,称用以标识若干数据元素的关键字为次关键字。当数据元素只有一个数据项时,其关键字即为该数据元素的值。查找是对已存入计算机中的数据所进行的一种运算,采用何种查找方法,首先取决于使用哪种数据结构来表示“表”,即表中数据元素是按何种方式组织的。为了提高查找速度,常常用某些特殊的数据结构来组织表,或对

2022-03-02 00:05:55 1311

原创 全国计算机专业数据结构2018年联考大纲

【考查目标】1.掌握数据结构的基本概念、基本原理和基本方法。2.掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度与空间复杂度的分析。3.能够运用数据结构基本原理和方法进行问题的分析与求解,具备采用C或C++语言设计与实现算法的能力。【基本知识点】一、线性表1.线性表的定义和基本操作2.线性表的实现(1)顺序存储;(2)链式存储;(3)线性表的应用。二、栈、队列和数组1.栈和队列的基本概念2.栈和队列的顺序存储结构3.栈和队列的链式存储结构4.栈和队列

2022-03-02 00:05:44 993

原创 对线性表进行顺序查找时,线性表既可以采用顺序存储,也可以采用链式存储

(1)在查找算法中,主要时间花费在关键字比较上,所以查找算法的时间性能可以用平均查找长度表示。而查找分为成功和失败两种情况,所以平均查找长度分为成功情况下的平均查找长度和不成功情况下的平均查找长度。(2)对线性表进行顺序查找时,线性表既可以采用顺序存储,也可以采用链式存储。(3)对线性表进行折半查找时,线性表应该以顺序方式存储,且结点按关键字有序排列。(4)对含有n个元素的有序顺序表进行顺序查找时,算法时间复杂度是O(n)。(5)对含有n个元素的有序顺序表进行折半查找时,算法时间复杂度是O(log2

2022-03-02 00:05:37 2174

原创 构造哈希函数的目标是使得到n个元素的哈希地址尽可能均匀地分布在m个连续内存单元地址上

哈希表存储的基本思路是:设要存储的元素个数为n,设置一个长度为m (m≥n)的连续内存单元,以每个元素的关键字ki(0≤i≤n—1)为自变量,通过一个称为哈希函数的函数h(ki),把ki映射为内存单元的地址(或称下标)h(ki),并把该元素存储在这个内存单元中。h(ki)也称为哈希地址(又称散列地址)。把如此构造的线性表存储结构称为哈希表。但是存在这样的问题,对于两个不同元素的关键字ki和kj(i≠j),有h(ki)=h(kj)。这种现象叫作哈希冲突。通常把这种具有不同关键字而具有相同哈希地址的元素称作“

2022-03-02 00:05:29 411

原创 图的主要存储结构有邻接矩阵和邻接表

(1)图由两个集合组成,G=(V,E),V是顶点的有限集合,E是边的有限集合。(2)在无向图G=(V,E)中,集合E中的元素为无序对。(3)在有向图G=(V,E)中,集合E中的元素为有序对。(4)如果图中从顶点u到顶点v之间存在一条路径,则称u到v是连通的。(5)如果无向图G中任意两个顶点都是连通的,称G为连通图。无向图G的极大连通子图称为G的连通分量。(6)如果有向图G中任意两个顶点都是连通的,称G为强连通图。(7)图的主要存储结构有邻接矩阵和邻接表。(8)无向图的邻接矩阵一定是对称矩阵,但

2022-03-02 00:05:22 570

原创 树适合表示具有层次结构的数据

(1)树适合表示具有层次结构的数据。(2)在一棵树中,根结点没有前驱结点,其余每个结点都有唯一的前驱结点。(3)度为m的树,至少有一个结点的度为m,且没有度大于m的结点。(4)对于含有n个结点的树,无论树的度为多少,其分支数或所有结点度之和均为n—1。(5)对于高度为h的m次树,为满m次树时结点个数最多。(6)树的遍历运算主要有先根遍历、后根遍历和层次遍历三种。(7)树的存储结构主要有双亲存储结构、孩子链存储结构和孩子兄弟链存储结构。(8)二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不

2022-03-02 00:05:13 1021

原创 每个厂商的SQL实现都针对其数据库服务器进行了增强

过去,计算机业由大型机统治着,它们是体积庞大、功能强悍的系统,具有大容量存储和高速数据处理能力。用户通过哑终端与主机通信,所谓哑终端就是没有处理能力的终端,依靠主机的CPU、外设和内存进行工作。每个终端通过一个数据链连接到主机。主机模式能够很好地实现其设计目的,并且在当今很多领域还在发挥作用,但另一种更伟大的技术出现了:客户端/服务器模型。在客户端/服务器系统里,主机被称为服务器,可以通过网络进行访问(通常是局域网或广域网)。访问服务器的通常是个人计算机(PC)或其他服务器,而不是哑终端。每台个人计算机被

2022-03-02 00:05:05 207

原创 递归算法的设计方法是,先确定对应的递归模型,再将其转换为递归算法

递归算法的设计方法是,先确定对应的递归模型,再将其转换为递归算法。其核心思想是把问题简化分解为几个子问题,其中子问题的形式和算法与原问题算法相似,只是比原来简化。因此,在设计递归算法时,应着重分析递归数据结构的递归运算,充分利用这类运算的特性进行递归设计。获取求解问题的递归模型的一般步骤如下。(1)对原问题f(s)进行分析,假设出合理的“小问题”f(s′)(与数学归纳法中假设n=k—1时等式成立相似);(2)假设f(s′)是可解的,在此基础上确定f(s)的解,即给出f(s)与f(s′)之间的关系(与数

2022-03-01 00:26:18 513

原创 二叉树是一种简单且重要的树状结构,尽管它和前面介绍的树都属于树状结构,但相互之间没有包含关系

二叉树是一种简单且重要的树状结构,尽管它和前面介绍的树都属于树状结构,但相互之间没有包含关系,不能把二叉树看成是一种特殊的树。二叉树的递归定义为:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的分别称作根结点的左子树和右子树所组成的非空树,左子树和右子树又同样都是一棵二叉树。在二叉树中,每个结点的左子树的根结点被称为左孩子结点,右子树的根结点被称为右孩子结点。从中看到,左右子树是严格区分的,某个结点即便只有一个孩子结点,也要指出是左孩子结点还是右孩子结点。叶子结点没有任何孩子结点。注意:二叉树

2022-03-01 00:25:44 531

原创 树的遍历运算是指按某种方式访问树中的每一个结点且每一个结点只被访问一次

(1)结点的度。树中每个结点具有的子树数或者后继结点数称为该结点的度。例如,图6.2的树T中结点A的度为3,结点D的度为1。(2)树的度。树中所有结点的度的最大值称为树的度。例如,图6.2的树T的度为3。(3)分支结点。度大于0的结点称为分支结点或非终端结点。度为1的结点称为单分支结点,度为2的结点称为双分支结点,以此类推。(4)叶子结点(或叶结点)。度为零的结点称为叶子结点或终端结点。例如,图6.2的树T中叶子结点是B、H、F、G。(5)孩子结点。一个结点的后继称为该结点的孩子结点。例如,图6.2

2022-03-01 00:23:12 424

原创 数组是线性表的推广,d(d≥1)维数组中存在d个线性关系。

(1)数组是线性表的推广,d(d≥1)维数组中存在d个线性关系。(2)数组通常采用顺序存储方法,分为以行优先和以列优先两种存储方式。(3)特殊矩阵不是指具有特殊用途的矩阵,是指一类元素值分布具有某种规律的矩阵,可以采用压缩存储方法。(4)对称矩阵、三角矩阵和对角矩阵采用压缩存储的目的是节省内存空间。(5)数组通常采用顺序存储结构,具有随机存取特性。(6)稀疏矩阵的压缩存储方式主要有三元组和十字链表表示,前者属顺序存储结构,后者属链式存储结构。(7)稀疏矩阵采用三元组或十字链表压缩存储方式后,不再

2022-03-01 00:20:32 383

原创 字符串简称为串,串的处理在计算机非数值计算中占有重要的地位,如信息检索系统、文字编辑等都是以字符串数据作为处理对象

字符串简称为串,串的处理在计算机非数值计算中占有重要的地位,如信息检索系统、文字编辑等都是以字符串数据作为处理对象。本章介绍串的概念、存储结构和基本运算的实现算法。串是由零个或多个字符组成的有限序列,一般记为:str="a1a2…an"(n≥0),其中,str是串名,用双引号括起来的字符序列是串的值;ai(1≤i≤n)可以是字母、数字或其他字符,该字符的逻辑序号为i。串中的字符个数n称为串的长度。长度为零的串称为空串,它不含任何字符。说明:串可以看成是一个特殊的线性表,其特殊性体现在串中元素只能是字符,而线

2022-03-01 00:16:10 311

原创 无论是顺序队还是链队,进队和出队运算的时间复杂度均为O(1)。

(1)栈和队列的共同点是,它们的数据元素都呈线性关系,且只允许在端点处插入和删除元素。(2)栈是一种“后进先出”或者“先进后出”的数据结构,只能在一端进行元素的插入和删除。(3)栈可以采用顺序栈和链栈两类存储结构。(4)n个不同元素的进栈顺序和出栈顺序不一定相同。(5)在顺序栈中,通常用栈顶指针指向栈顶元素,栈顶指针类型为int类型。(6)在顺序栈中,进栈和出栈操作不涉及栈中其他元素的移动。(7)无论是顺序栈还是链栈,进栈和出栈运算的时间复杂度均为O(1)。(8)队列是一种“先进先出”或者“后

2022-03-01 00:09:00 2278

原创 栈和队列是两种特殊的线性表,从数据逻辑结构角度看,栈和队列的元素均呈现一种线性关系

栈和队列是两种特殊的线性表。从数据逻辑结构角度看,栈和队列的元素均呈现一种线性关系;从运算的角度看,栈和队列是操作受限的线性表。本章介绍栈和队列的概念、存储结构和基本运算的实现算法。栈是一种特殊的线性表,其特殊性体现在元素插入和删除运算上,它的插入和删除运算仅限定在表的某一端进行,不能在表中间和另一端进行。允许进行插入和删除的一端称为栈顶,另一端称为栈底。栈的插入操作称为进栈(或入栈),删除操作称为出栈(或退栈)。处于栈顶位置的数据元素称为栈顶元素。不含任何数据元素的栈称为空栈。正是这种受限的元素插入和删

2022-03-01 00:07:11 2635

原创 设计一个算法,判断顺序表L中所有元素是否是递增有序的。

(1)设计一个算法,判断顺序表L中所有元素是否是递增有序的。(2)设计一个算法,将顺序表L的所有元素逆置,要求算法空间复杂度为O(1)。(3)有一个非空整数顺序表L,其中元素值可能重复出现,设计一个算法,在最后一个最大值元素之后插入一个值为x的元素。(4)设计一个算法,通过相邻两个元素交换的方法将非空顺序表L中最大元素移到最后面(假设最大元素唯一)。(5)设计一个算法删除单链表L中第一个值为x的结点。(6)设计一个算法判定单链表L的所有结点值是否是递增的。(7)有一个整数单链表A,设计一个算法,

2022-03-01 00:04:22 6841 3

原创 线性表是由n(n≥0)个数据元素组成的有限序列,所有元素类型相同,元素之间呈现线性关系

(1)线性表是由n(n≥0)个数据元素组成的有限序列,所有元素类型相同,元素之间呈现线性关系,即除开始元素外,每个元素只有唯一的前驱,除终端元素外,每个元素只有唯一的后继。(2)顺序表采用数组存放元素,既可以顺序查找(依序查找),也可以随机查找(对于给定的序号i,在常量时间内找到对应的元素值)。(3)分配给顺序表的内存单元地址必须是连续的。(4)从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n—i个元素,所以删除算法的时间复杂度为O(n)。(5)在一个长度为n的顺序表中插入第i个

2022-03-01 00:03:33 1589

原创 线性表是由n(n≥0)个相同类型数据元素组成的有限序列

线性表是由n(n≥0)个相同类型数据元素组成的有限序列。当n=0时为空表,记为()或Φ;当n>0时,线性表的逻辑表示为(al,a2,…,ai,…,an),也可以用如图2.1所示的逻辑结构图表示。在线性表逻辑表示中,al称为开始元素,an称为终端元素(或尾元素)。元素ai在线性表中的逻辑序号或位置为i。对于任意一对相邻元素<ai,ai+1> (1≤i≤n),ai称为ai+1的前驱元素(或结点),ai+1称为ai的后继元素。线性表的逻辑特征是:若至少含有一个元素,则只有唯一的开始元素和终端元素,

2022-03-01 00:01:34 1956

原创 一种数据逻辑结构可以映射成多种存储结构,同一运算定义不仅在不同的存储结构上实现可以对应多种算法

一个数据结构程序用于求解一个数据结构问题,其设计的一般步骤如下。第一步:分析求解问题的数据和求解功能,采用抽象数据类型来描述求解问题,主要包括数据逻辑结构和运算定义。第二步:设计逻辑结构对应的存储结构。第三步,在存储结构上设计实现运算定义的算法。一种数据逻辑结构可以映射成多种存储结构,同一运算定义不仅在不同的存储结构上实现可以对应多种算法,而且在同一种存储结构上实现也可能有多种算法,那么哪一个算法更好呢?从前面的介绍看出,算法的评价标准就是算法占用计算机资源的多少,占用计算机资源越多的算法就越坏,

2022-02-28 23:59:39 725

原创 一个算法的存储量包括形参所占空间和临时变量所占空间等

一个算法的存储量包括形参所占空间和临时变量所占空间等。在对算法进行存储空间分析时,只考察临时变量所占空间,如图1.21所示,其中临时空间为变量i、maxi占用的空间。所以,空间复杂度是对一个算法在运行过程中临时占用的存储空间大小的量度,一般也作为问题规模n的函数,以数量级形式给出,记作:S(n)=O(g(n)),其中,“O”的含义与时间复杂度中的含义相同若所需临时空间相对于输入数据量来说是常数,则称此算法为原地工作或就地工作。若所需临时空间依赖于特定的输入,则通常按最坏情况来考虑。为什么算法占用的空间只考

2022-02-28 23:58:33 623

原创 计算机资源主要包括计算时间和内存空间

计算机资源主要包括计算时间和内存空间。算法分析是分析算法占用计算机资源的情况,所以算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度,其目的不是分析算法是否正确或是否容易阅读,主要是考察算法的时间和空间效率,以求改进算法或对不同的算法进行比较。那么如何评价算法的效率呢?通常有两种衡量算法效率的方法:事后统计法和事前分析估算法。前者存在这些缺点:一是必须执行程序,二是存在其他因素掩盖算法本质。所以下面均采用事前分析估算法来分析算法效率。一个算法用高级语言实现后,在计算机上运行时所消耗的时间与很多因素有

2022-02-28 23:57:38 658

原创 在数据结构中,抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作

在数据结构中,抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。对一个抽象数据类型进行定义时,必须给出抽象数据类型名称和包含的运算名称及其功能描述。一旦定义了一个抽象数据类型并具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用该抽象数据类型。从数据结构的角度看,一个求解问题可以通过抽象数据类型来描述,也就是说,抽象数据类型对一个求解问题从逻辑上进行了准确的定义

2022-02-28 23:55:54 654

原创 数据类型是高级程序设计语言中的一个基本概念

数据运算就是施加于数据的操作。数据运算包括运算定义和运算实现两部分,前者描述运算的功能,是抽象的,后者是在存储结构上设计对应运算的实现算法,是具体的。这种将运算定义和运算实现相互分离的做法即软件工程的思想,更加便于软件开发。在数据结构中,运算实现与数据存储结构密切相关,选用好的存储结构可以提高运算实现的效率。数据类型是高级程序设计语言中的一个基本概念,它和数据结构的概念密切相关。一方面,在程序设计语言中,每一个数据都属于某种数据类型。数据类型显式或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。

2022-02-28 23:54:14 496

原创 索引存储结构是在存储数据(称为主数据表)的同时,还建立附加的索引表

索引存储结构是在存储数据(称为主数据表)的同时,还建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式如下:(关键字,对应地址)在索引表中,所有关键字有序排列(如递增),每个关键字的对应地址为该关键字的记录在数据表中的存储地址。索引存储结构的优点是查找效率高,其缺点是需要建立索引表,从而增加了时间和空间开销。哈希存储结构根据元素的关键字来确定其存储地址。具体做法是:以元素的关键字为自变量,通过某个哈希函数H(key)(或散列函数)计算出对应的函数值,再把该函数值当作该元素的存储地址。对于

2022-02-28 23:52:59 775

原创 数据逻辑结构在计算机存储器中的表示称为数据的存储结构

数据逻辑结构在计算机存储器中的表示称为数据的存储结构(或存储表示),也称为物理结构。通常情况下,同一种逻辑结构可以设计多种存储结构,在不同的存储结构中,实现同一种运算的算法可能不同。逻辑结构、存储结构和运算三者之间的关系如图1.5所示。把数据对象存储到计算机中时,通常要求既要存储各数据元素,又要存储数据元素之间的逻辑关系。在实际应用中,数据的存储方法是灵活多样的,可根据问题规模(通常是指元素个数的多少)和运算种类等因素适当选择。下面简要介绍主要的几种存储结构。1.顺序存储结构顺序存储结构是采用一组连续

2022-02-28 23:51:29 2226

原创 数据元素之间的逻辑关系的整体称为数据的逻辑结构

数据元素之间的逻辑关系的整体称为数据的逻辑结构。现实中,数据元素的逻辑关系千变万化,而数据结构课程中讨论的逻辑关系主要是指数据元素之间的相邻关系,如果两个数据元素是相邻的,说明它们之间是有关系的,否则它们之间没有关系。实际上,这种相邻关系处理方法很容易推广到其他复杂关系的处理。根据数据元素之间逻辑关系的不同特性,分为下列4类基本结构。(1)集合:包含的所有数据元素同属于一个集合(数据元素之间没有关系,集合是一种最松散的逻辑结构)。(2)线性结构:包含的数据元素之间存在一对一的关系。(3)树状结构:包含

2022-02-28 23:49:23 4280

原创 数据是信息的载体,能够被计算机识别、存储和加工处理,数据包括文字、表格、图像等

数据是信息的载体,能够被计算机识别、存储和加工处理,数据包括文字、表格、图像等。例如,某个班的全部学生记录、az的字母集合、11000的所有素数等都是数据。信息是数据的内涵,即数据所表达的意义,例如,通过统计后产生某课程的平均分85,这里85是数据,表示某课程平均分的信息数据的基本单位是数据元素(有时称为元素、结点或记录等),通常把数据元素作为一个整体进行处理。例如,一个班的学生数据包括张三、李四等数据元素。数据对象是具有相同类型的数据元素的集合,因为所有数据元素类型相同时处理起来更加方便,所以在数据结构中

2022-02-28 23:45:13 4051

原创 IE5.5发明了文档模式的概念,即可以使用doctype切换文档模式

IE5.5发明了文档模式的概念,即可以使用doctype切换文档模式。最初的文档模式有两种:混杂模式(quirks mode)和标准模式(standards mode)。前者让IE像IE5一样(支持一些非标准的特性),后者让IE具有兼容标准的行为。虽然这两种模式的主要区别只体现在通过CSS渲染的内容方面,但对JavaScript也有一些关联影响,或称为副作用。本书会经常提到这些副作用。IE初次支持文档模式切换以后,其他浏览器也跟着实现了。随着浏览器的普遍实现,又出现了第三种文档模式:准标准模式(almos

2022-02-22 20:12:44 127

原创 在配置浏览器请求外部文件时,要重点考虑的一点是它们会占用多少带宽

虽然可以直接在HTML文件中嵌入JavaScript代码,但通常认为最佳实践是尽可能将JavaScript代码放在外部文件中。不过这个最佳实践并不是明确的强制性规则。推荐使用外部文件的理由如下。可维护性。JavaScript代码如果分散到很多HTML页面,会导致维护困难。而用一个目录保存所有JavaScript文件,则更容易维护,这样开发者就可以独立于使用它们的HTML页面来编辑代码。缓存。浏览器会根据特定的设置缓存所有外部链接的JavaScript文件,这意味着如果两个页面都用到同一个文件,则该文件...

2022-02-22 20:10:25 290

原创 异步脚本保证会在页面的load事件前执行,但可能会在DOMContentLoaded之前或之后

HTML5为html><html> <head> <title>Example HTML Page</title> <script async src="example1.js"></script> <script async src="example2.js"></script> </head> <body> <!--这里是页面内容-->

2022-02-22 19:46:12 200

原创 将JavaScript插入HTML的主要方法是使用<script>元素

将JavaScript插入HTML的主要方法是使用要嵌入行内JavaScript代码,直接把代码放在<script>元素中就行:<script>function sayHi() { console.log("Hi!"); }</script>包含在<script>内的代码会被从上到下解释。在上面的例子中,被解释的是一个函数定义,并且该函数会被保存在解释器环境中。在<script>元素中的代码被计算完成之前,页面的其余内容不会被加载

2022-02-22 19:42:31 787

原创 IE3和Netscape Navigator 3提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口

IE3和Netscape Navigator 3提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示页面之外的部分。而BOM真正独一无二的地方,当然也是问题最多的地方,就是它是唯一一个没有相关标准的JavaScript实现。HTML5改变了这个局面,这个版本的HTML以正式规范的形式涵盖了尽可能多的BOM特性。由于HTML5的出现,之前很多与BOM有关的问题都迎刃而解了。总体来说,BOM主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特

2022-02-22 19:40:30 289

原创 DOM Level 1的目标是映射文档结构,而DOM Level 2的目标则宽泛得多

在IE4和Netscape Navigator 4支持不同形式的动态HTML(DHTML)的情况下,开发者首先可以做到不刷新页面而修改页面外观和内容。这代表了Web技术的一个巨大进步,但也暴露了很大的问题。由于网景和微软采用不同思路开发DHTML,开发者写一个HTML页面就可以在任何浏览器中运行的好日子就此终结。为了保持Web跨平台的本性,必须要做点什么。人们担心如果无法控制网景和微软各行其是,那么Web就会发生分裂,导致人们面向浏览器开发网页。就在这时,万维网联盟(W3C,World Wide Web

2022-02-22 19:38:47 114

原创 ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器

ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法。ECMA-262将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言。Web浏览器只是ECMAScript实现可能存在的一种宿主环境(host environment)。宿主环境提供ECMAScript的基准实现和与环境自身交互必需的扩展。扩展(比如DOM)使用ECMAScript核心类型和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端JavaScript平台Node.

2022-02-22 19:19:16 1591 1

原创 1995年,JavaScript问世,JavaScript逐渐成为市面上所有主流浏览器的标配

1995年,JavaScript问世。当时,它的主要用途是代替Perl等服务器端语言处理输入验证。在此之前,要验证某个必填字段是否已填写,或者某个输入的值是否有效,需要与服务器的一次往返通信。网景公司希望通过在其Navigator浏览器中加入JavaScript来改变这个局面。在那个普遍通过电话拨号上网的年代,由客户端处理某些基本的验证是让人兴奋的新功能。缓慢的网速让页面每次刷新都考验着人们的耐心。从那时起,JavaScript逐渐成为市面上所有主流浏览器的标配。如今,JavaScript的应用也不再局限

2022-02-22 19:16:40 553

原创 “美国国家标准化组织(ANSI)”是一个核准多种行业标准的组织,我们可以把数据库看成这样一种有组织的机制

当今时代的任何事务都涉及数据,人们需要使用某种有组织的方法或机制来管理和检索数据。如果数据被保存在数据库中,这种机制便被称为数据库管理系统(DBMS)。数据库管理系统已经产生多年了,其中大多数源自于大型机上的平面文件系统。随着技术的发展,在不断增长的商业需要、不断增加的共用数据和互联网的推动下,数据库管理系统的使用已经偏离了其原始方向。信息管理的现代浪潮主要是由关系型数据库管理系统(RDBMS)实现的,后者是从传统DBMS派生出来的。现代数据库与客户端/服务器或Web技术相结合在当今是很常见的模式,公司

2022-02-10 22:36:16 537

原创 数据管理技术的发展经历了人工管理和文件管理阶段之后,大约在20世纪60年代进入了数据库管理阶段

数据管理技术的发展经历了人工管理和文件管理阶段之后,大约在20世纪60年代进入了数据库管理阶段。早期的数据库系统按照存储模型可以分为层次数据模型(Hierarchical Data Model)和网状数据模型(Network Data Model)。层次数据模型使用树状结构表示数据对象以及它们之间的联系,类似于现代操作系统中的文件目录结构。层次模型是数据库系统中最早出现的数据模型,典型的代表是IBM公司的IMS(Information Management System)数据库。网状数据模型采用网状结构

2022-02-10 22:24:40 719

原创 redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型

Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis里面,C字符串只会作为字符串字面量(string literal)用在一些无须对字符串值进行修改的地方,比如打印日志:redisLog(REDIS_WARNING,"Redis is now ready to exit, bye bye...");当Redi

2022-02-10 22:05:26 836

原创 对经常需要查询且变化不是很频繁的数据,或者一些设备的实时状态数据进行缓存

为什么要使用某技术?大部分人遇到新技术或服务时,要么嗤之以鼻,要么勇敢面对。其实任何技术或服务提供的特性和功能可以满足当前的需求或解决棘手的问题时就会被选择。在大多数情况下,采用某种技术的原因可能不是那么清晰明了,有时被夸大或被难以理解的营销术语所掩盖。是否选择Redis最终要根据自己的需求来决定(花费更少的代价换取更大的利益),它确实不在市场显而易见的范围之内,但是更接近市场。可能有读者已经知道Redis并将其用于某些用途,例如满足应用程序的数据存储需求或其他服务,但是可能不了解Redis可以做的所有事情

2022-02-10 21:58:55 398

原创 Redis是内存数据库,但是数据放在内存中是不安全的

Redis的简单稳定主要体现在以下几个方面:·Redis使用单线程模型。这样不仅使Redis服务端处理模型变得简单,也使客户端开发变得简单,需要强调的是在Redis 6版本中实质执行命令线程还是单线程(后面会单独说明)。·Redis源码较少。·Redis不需要依赖于操作系统中的类库,比如Memcache需要依赖libevent这样的系统类库。2.Redis运行速度快·Redis的所有数据都是存放在内存中的,这也是其运行速度快的重要原因。·Redis是用C语言实现的(C语言编写的程序距离操作系统更近

2022-02-10 21:54:37 3074

大数据与分布式计算.pptx

1990年,一个普通的硬盘驱动器可存储1370 MB的数据并拥有4.4 MB/s的传输速度 ,所以,只需五分钟的时间就可以读取整个磁盘的数据。 20年过去了,1 TB级别的磁盘驱动器是很正常的,但是数据传输的速度却在100 MB/s左右。所以它需要花两个半小时以上的时间读取整个驱动器的数据。 从一个驱动器上读取所有的数据需要很长的时间,写甚至更慢。 如何解决? 磁盘损坏数据丢失怎么办? 如果需要存储计算1000T数据怎么办?

2020-09-10

Java程序设计之网络编程.docx

J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理等相关复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

2020-05-31

SpringMVC.pptx

Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一 • Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求 • 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 扩展性和灵活性

2020-05-31

有5个人坐在一起,问第五个人多少岁.docx

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? 利用递归的方法,递归分为回推和递推两个阶段。 要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

2020-05-30

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数.docx

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 */ /*算法:3个for循环加一个if语句; * */

2020-05-30

一球从100米高度自由落下.docx

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在 第10次落地时,共经过多少米?第10次反弹多高?

2020-05-30

兔子的规律为数列1,1,2,3,5,8,13,21.docx

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

2020-05-30

输入两个正整数m和n.docx

输入两个正整数m和n,求其最大公约数和最小公倍数。 利用辗除法。 /* * 在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回 * 较大的数,此数即为最小公约数,最小公倍数为两数之积除以最小公倍数。 * */

2020-05-30

求s=a+aa+aaa+aaaa+aa...a的值.docx

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 */ /* * 算法: 定义一个变量b, 赋初值为0;定义一变量sum, 赋初值为0, * 进入循环后,将a + b 的值赋给b,将sum + b 的值赋给sum; * 同时,将a 增加十倍, ++ i; 继续循环; * 循环结束后,输出sum 的值。 */

2020-05-30

分子与分母的变化规律。.docx

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 请抓住分子与分母的变化规律。

2020-05-30

判断101-200之间有多少个素数,并输出所有素数。.docx

判断101-200之间有多少个素数,并输出所有素数。 判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 */

2020-05-30

利用递归方法求5!.docx

利用递归方法求5!。 递归公式:fn=fn_1*4! 利用递归方法求5!。 递归公式:fn=fn_1*4!

2020-05-30

利用for循环控制100-999个数.docx

打印出所有的"水仙花数(narcissus number)",所谓"水仙花数"是指一个三位数, 其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 利用for循环控制100-999个数,每个数分解出个位,十位,百位。 */

2020-05-30

将一个正整数分解质因数.docx

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 */

2020-05-30

猴子吃桃问题:猴子第一天摘下若干个桃子.docx

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾, //又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 //以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时, //见只剩下一个桃子了。求第一天共摘了多少。 采取逆向思维的方法,从后往前推断。

2020-05-30

给一个不多于5位的正整数.docx

给一个不多于5位的正整数, 求它是几位数,二、逆序打印出各位数字。 这个算法实现虽然实现了这个功能,但不健壮,当输入字符是,会出现异常。

2020-05-30

分行与列考虑,共9行9列,i控制行,j控制列.docx

输出9*9口诀。 分行与列考虑,共9行9列,i控制行,j控制列。 分行与列考虑,共9行9列,i控制行,j控制列。

2020-05-30

打印出菱形.docx

先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环, 第一层控制行,第二层控制列。

2020-05-30

java性能的优化.pdf

Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。赢得的赞叹主要是Java的跨平台的操作性,即所谓的”Write Once,Run Anywhere”.但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评。

2020-05-07

在屏幕上画出余弦函数cos(x)曲线.docx

连续的曲线是由点组成的,点与点之间距离比较近,看上去就是曲线了,画图的关键是画出每个点。Java提供了三角函数方法,直接调用cos()方法就可以根据x坐标计算出y坐标。需要注意的是,cos()方法输入的参数是弧度值,要进行坐标转换,同样,得到的结果也要进行转换处理。从图1.6中可以看出,这条余弦曲线有两个周期,我们可以把x坐标控制在0~720。

2020-05-07

根据输入行数,打印出杨辉三角形.docx

观察杨辉三角形的图案,可以发现其中的规律:三角形的竖边和斜边都是“1”,三角形里面的任意一个数字正好等于它正上方的数字和左上角的数字两个数字之和。

2020-05-07

打印心形图案.docx

心形图案的实现,重点是心形函数r=a(1–sinθ),据说这是笛卡尔死前寄出的最后一封情书的内容,这里面隐藏着一个刻骨铭心的秘密:“一生只为等待能手绘这个函数给我的人”。心形函数要做直角坐标系转换,然后投影到xOy平面上,就可以调用画椭圆方法来实现画心形图案。

2020-05-07

九九乘法表.docx

观察九九乘法口诀表,可以得出图表的规律:总共有9行,第几行就有几个表达式。同时要注意每行表达式的规律:第j行,表达式就从j*1开始,一直到j*j结束,共有j个表达式,这个效果可以通过一次循环实现。这样的话,正好可以通过双重循环来控制输出,外层循环控制行数,内层循环控制列。还有个地方需要注意的是,内层和外层之间的联系,内层列的个数是根据外层的行数来控制的。

2020-05-07

金字塔图案.docx

这个问题是一个很经典的循环应用的题目。我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间。这实际是因为星号之前有很多空格。

2020-05-07

国际象棋棋盘.docx

观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块。这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块。

2020-05-07

奥运五环旗.docx

观察奥运五环旗的图案,直观的感觉,由五个圆组成,每个圆的颜色不一样,大小一样,按照一定的位置摆放,找到圆心坐标的规律,就可以通过Graphics类提供的绘制椭圆的方法drawOval()来实现画圆操作。

2020-05-07

J2EE部署概念.pdf

JAR代表Java ARchive,尽管它似乎是一个明显的双关语,事实上Java组件被称为be an(“一罐bean”)。JAR文件是其他文件的集合。JAR文件使用支持压缩的ZIP文件格式。

2020-05-07

HTML5开发.pdf

 HTML5是一个新的网络标准,现在仍处于 发展阶段。目标是取代现有的HTML 4.01和XH TML 1.0 标准。它希望能够减少互联网富应用 (RIA)对Flash、Silverlight、JavaFX等的依赖, 并且提供更多能有效增强网络应用的API

2020-05-07

JAVA_weblogic企业级技术.pdf

BEA WebLogic Server 是一个支持企业级的、多层的、完全分布式的 Web 应用的 Java 应用服务器。WebLogic Server 在开发和部署 Java 电子商务类应用领域无可争议地作为市场的领导者以其事实上的标准而在业界享有盛名。

2020-05-07

javascript高级编程网络安全性.pdf

JavaScript 是一种新的 Web 技术 JavaScript 初的名字是 LiveScript 它是 Netscape 开发出的一种脚本语言 其目的是为了扩展基本的 HTML 的功能 用于代替复杂的 CGI 程序来处理 Web 页表单信息 为 Web 页增加动态效果 当 Java 出现以后 Netscape 和 Sun 一起开发了一种新的脚本语言 它的语法和 Java 非常的类似 所以它后被命名为 JavaScript 。

2020-05-07

Java网络编程.pdf

Java语言符合了互联网时代的发展要求, 才使它获得了巨大的成功 ,目前,Java 语言已经成为最流行的网络编程语言。

2020-04-07

Java语言.pdf

Java诞生于1995年,是Sun公司组织开发的一编程语 言, 主要贡献者是James Gosling。1990年Sun公司成立了由 James Gosling领导的开发小组,开始致力于开发一种可 移植的、跨平台的语言,该语言能生成正确运行于各种操 作系统、各种CPU芯片上的代码。他们的钻研和努力促成 了Java语言的诞生。Java的发展得利于Internet和Web的 出现,Internet上有各种不同的计算机,它们可能使用完 全不同的操作系统和CPU芯片,但仍希望运行相同的程序, Java的出现标志着真正的分布式系统的到来。

2020-04-07

Redis到底会不会丢数据?在生产环境中怎么配置合理的持久化策略?

2022-02-10

mysql ”Invalid use of null value“ 解决方法?

2021-10-14

mysql中的unsigned是什么意思?

2021-10-12

SQL 语句中 exists和not exists的用法?

2021-10-12

了解浏览器缓存机制吗?

2021-10-08

abstract class和interface有什么区别?

2021-10-08

我们如何监视所有 Spring Boot 微服务?

2021-10-08

您使用了哪些 starter maven 依赖项?

2021-10-08

什么情况下会发生栈内存溢出?

2021-10-08

Lock 与 Synchronized 的区别?

2021-10-07

@SpringBootApplication注释在内部有什么用处?

2021-10-07

如何实现 Spring Boot 应用程序的安全性?

2021-10-06

Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法 ?

2021-10-06

如何集成 Spring Boot 和 ActiveMQ?

2021-10-06

lucence 索引和搜索内部结构是什么?

2021-10-06

乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

2021-10-06

内部类可以引用它的包含类的成员吗?有没有什么限制?

2021-10-06

Redis 支持五种数据类型?

2021-10-05

垃圾回收的优点和原理?并考虑2种回收机制?

2021-10-05

如何使用 Spring Boot 实现分页和排序?

2021-10-04

说说&和&&的区别?

2021-10-03

BIO、NIO、AIO 有什么区别?

2021-10-03

接口和抽象类有什么区别?

2021-10-03

解释基于注解的切面实现?

2021-10-03

SQL语句主要可以划分为以下几类?

2021-10-01

Mybatis 是如何进行分页的?分页插件的原理是什么?

2021-09-30

Http请求的Get和Post的区别?

2021-09-30

linux 当前系统支持的所有命令的列表?

2021-09-30

BASH和DOS之间的基本区别是什么?

2021-09-30

Java中实现多态的机制是什么?

2021-09-29

Java编程进程和线程的区别?

2021-09-29

什么情况会阻塞渲染?

2021-09-28

组件间通信,vuex组成和原理?

2021-09-28

了解浏览器缓存机制吗?

2021-09-28

分布式开发TCP和UDP协议是什么?

2021-09-28

事务保证一组原子性的操作,要么全部成功,要么全部失败?

2021-09-28

二分查找和冒泡排序?

2021-09-28

前端开发react和vue的区别?

2021-09-28

InnoDB一棵B+树可以存放多少行数据?

2021-09-28

Java编程算法和数据结构?

2021-09-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除