抖动的原因及解决方案
抖动是指页面置换过程中频繁缺页。 这主要是因为在某些过程中经常访问的页数高于可用的物理页帧数。 解决方案有: ①局部置换策略:当缺页率很高时,将多个物理块分配理块,当缺页率较低时,适当减少分配的物理块。 ②介绍工作集算法:基于局部原理,工作集使用最近访问的页面来确定工作集。一般来说,只要分配给过程的物理块大于工作集。
DBMS 的功能
① 数据库定义功能:提供数据描述语言,定义数据库的三级结构和图像,定义数据库的完整性和安全控制。 ② 数据库操作功能:提供数据库操作语言,检索、插入、删除和修改数据库中的数据。 ③ 数据库保护功能:数据库管理系统从数据库恢复、并发控制、数据安全控制和数据完整性控制四个方面提供保护功能 ④ 数据库存储管理:把各种DML语句转化为底层的文件系统命令。 ⑤ 数据库维护功能:由数据装载程序、备份程序、文件重组程序、性能监控程序等实用程序组成。 ⑥ 数据字典:存储对实际数据库各级模式的定义。
什么是ACID
事务管理有四个特点:原子性(Atomicity),一致性(Consistency), 隔离性(Isolation)持久性(Durability) ① 原子:一个事务中的所有操作都是不可分割的操作序列,要么全部执行,要么不执行。 ② 一致性:独立执行事务的结果将保证数据库的一致性,即数据不会因事务执行而损坏。 ③ 隔离:并发事务执行时,系统应确保结果与单独执行时相同。 ④ 持久性:一旦一个事务完成了所有的操作,它对数据库的所有更新都应该永久地反映在数据库中。即使系统在未来出现故障,也应保留事务执行的痕迹。
ipv4 和 ipv6 的区别
① 不同的地址空间:IPv4 中规定 IP 地址长度为 32, 而 IPv6 中 IP 地址长度为 128 ② 路由表大小不同:IPv6 与路由表相比 IPv4 的更小 ③ IPv6 组播支持和对流支持强于 IPv4 ④ 不同的安全:IPv6 安全性更高,在使用中 IPv6 在网络中,用户可以加密网络层的数据 ⑤ 协议扩展不同:IPv6 允许扩展协议 IPv4 不允许。
线程与过程的区别
引入线程后,线程是程序执行的最小单位,过程是操作系统资源分配的最小单位。 引入线程后,不进程可以并发执行,多线程也可以并发执行,增加了系统的吞吐量。 在同一过程中,线程切换不会导致过程切换。在不同的过程中切换线程会导致线程切换。 切换过程的成本远远大于线程切换。 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等), 某个过程中的线程对其他过程是看不见的。
两台电脑 mac 地址相同,可以通信吗?
不能,目的 MAC 地址等于本机 MAC 地址帧不会发送到网络 正确实现 ARP 软件禁止同一个软件 MAC 绑定到两个不同的地址 IP 地址,这使具 有相同 MAC 地址设备上的用户在会话中间歇。
ip地址相同,网络地址相同,可通信
ip地址相同,无法通信 可以通信相同的网络地址。例如:学校的机房电脑 ip地址 = 网络地址 主机地址 ip地址32位, Mac地址48位
什么是XML?
可扩展标记语言,标准通用标记语言子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 可扩展的标记语言只是存储数据。事实上,它与其他数据表达形式最大的区别是,可扩展的标记语言非常简单,这似乎有点琐碎,但正是这使它与众不同。 XML在任何应用程序中阅读/写数据都很容易,这使得它很容易XML它很快就成为数据交换的唯一公共语言。虽然不同的应用程序也支持其他数据交换格式,但它们很快就会支持XML,这意味着程序更容易和Windows、Mac OS、Linux以及其他平台产生的信息组合,然后很容易加载XML并将数据分析到程序中XML格式输出结果。
存储数组和链表有什么区别?
数组在定义时分配连续存储空间,而链表在程序执行过程中动态分配存储空间,链表的存储空间不能连续。链表需要多余的存储空间来存储指针,因此链表的存储密度小于数组。
DNS 定义及其作用
域名系统(服务)协议(Domain Name System) 主要用于域名和 IP 地址的相互转换和控制 发送特网电子邮件。位于应用层
MAC 地址位数
48位 MAC地址也是物理地址,由6个16进制数标识,高24是厂家代码,低24是厂家分配的网卡序列号。
如何求一个链表的中间节点
两个指针只想头结点,一个指针每次向后移动一个节点,一个指针一次向后移动两个节点。
Case 什么是软件工程?
用例图是指参与者(Actor)、 用例(Use Case),用于描述系统功能的视图由边界和它们之间的关系组成。 用例图(User Case)是外部用户(称为参与者)能够观察到的系统功能的模型图。
Html 定义及功能
HTML(Hyper Text Markup Language)它被称为超文本标记语言,是一种标志性语言。它包括一系列标签。通过这些标签,网络上的文档格式可以统一和分散Internet资源连接是一个逻辑整体。 HTML命令可以解释文本、图形、动画、声音、表格、链接等。 超文本是一种组织信息的方式,通过随机连接分布在不同位置的信息资源,方便人们搜索和搜索信息。
线性表的存储结构
顺序存储结构和链式存储结构。
TCP/IP 模型有几层
应用层、传输层、网络层、网络接口层
OSI模型有几层
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP和OSI模型的区别
为什么要区分管态目态?
管理状态是指操作系统在操作系统管理程序中的状态。任何指令,包括特权指令,都可以在这种状态下执行; 目态是指操作系统在运行回系统应用程序中的状态。 只允许应用程序访问自己的内存空间;这可以确保应用程序运行时系统的安全。
关系数据库中的关系是什么?
关系是二维表
操作系统中系统中的差异
空间分配 堆(操作系统):程序员一般 分配释放,如果程序员不释放,程序可能会结束 OS 回收,分布类似链表。 堆栈(操作系统):由操作系统自动分配释放,存储函数的参数值、局部变量值等。 操作模式类似于数据结构中的栈。
缓存方式 堆:使用二次缓存、生命周期和虚拟机 GC 算法(不是引用为空) GC),调用速度相对较低。 栈: 使用一级缓存,调用时通常在存储空间,调用后立即释放。
冯诺依曼计算机工作原理
输入设备:输入数据和程序 存储器:记忆程序和数据 操作员:完成数据处理 控制器:控制程序执行 输出设备:输出结果
链路层的主要工作
将电信号分组,形成具有特定意义的数据帧,然后以物理介质的形式发送给接收方。
IP协议
介绍了网络层IP协议制定了一套新地址,使我们能够区分两个主机是否属于同一网络。这个地址是网络地址,也就是所谓的IP地址。IP协议将32位地址分为两部分,前部代表网络地址,后部代表局域网中主机的地址。如果两个IP在同一个子网中,网络地址必须相同。为了判断IP地址中的网络地址,IP该协议还引入了子网掩码,IP网络地址和子网掩码按位操作即可获得。
ARP协议
地址分析协议是基于IP地址获取MAC地址的一个网络层协议。 工作原理如下:ARP首先,将发起一个包含目标主机的请求数据包。IP地址,然后数据包将在链路层包装,生成以太网数据包,最后由以太网广播到子网络中的所有主机,每个主机将收到数据包,并取出表格IP地址,然后和自己的IP比较地址,如果相同,返回自己MAC地址,如果不同,请丢弃数据包。ARP接收返回信息,以确定目标机MAC地址;同时,ARP将返回MAC地址对应IP将地址存入本机ARP缓存并保留一定的时间,直接查询下一个请求ARP节约资源的缓存。
UDP协议
UDP该协议定义了端口。同一主机上的每个应用程序都需要指定唯一的端口号,并规定网络中传输的数据包必须添加端口息,当数据包到底主机以后,就可以根据端口号找到对应的应用程序了。 UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络的可靠性。TCP协议就诞生了。 UDP是无连接的非可靠传输协议,两个通信实体不需建立连接,提供尽最大努力的交付,传输层向上提供了一条不可靠的逻辑信道,远程主机收到UDP报文后,不需要给出确认,UDP常用于一次性传输较少数据的网络应用,如DNS。
TCP协议
TCP 即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。 简单来说 TCP 就是有确认机制的 UDP 协议,每发出一个数据 包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。 为了保证传输的可靠性,TCP 协议在 UDP 基础之上建立了三次对话的确 认机制,即在正式收发数据前,必须和对方建立可靠的连接。 TCP 数据包和 UDP 一样,都是由首部和数据两部分组成,唯一不同的是,TCP 数据包没有长度限制, 理论上可以无限长,但是为了保证网络的效率,通常 TCP 数据包的长度不会超过 IP 数据包的长度,以确保单个 TCP 数据包不必再分割。
UDP和TCP协议的区别
UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。 TCP协议中包含了专门的传递保证机制,当数据接收方收到传送方传来的信息时,会自动向发送方发出确认信息;发送方只有在接受到该确认信息之后才能继续传送其他信息,否则将一直等待直到收到确认信息为止。 与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从传送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检验或提示。 因此,通常人们把UDP协议称为不可靠的传输协议。
为什么要引入cache
由于 CPU 工作的速度比 RAM 读写速度快,CPU 读写 RAM 时需要花费时间等待 RAM 进行读写,造成 CPU 工作速度下降。为了提高 CPU 读写程序和数据的速度,在 RAM 和 CPU 之间增加了高速缓存部件。Cache 的 特点是:读写速度快、存储容量小、价格高、断电后内容丢失。
文件的外存分配方式中,连续分配、链式分配和索引分配各自的优缺点
(1)连续分配。连续分配方式要求每个文件在磁盘上占有一块连续的块。 支持顺序访问和直接访问。
优点是实现简单、存取速度快。 缺点是文件长度不宜动态增加,因为一个文件末尾后的盘块可能已分配给其他文件,一旦需要增加, 就需要大量移动盘块。此外,反复增删文件后会产生外部碎片,且很难确定一个 文件需要的空间大小,因此只适用于长度固定的文件。 (2)链接分配。链接分配采取离散分配的方式,消除了外部碎片,因此显著提高了磁盘空间的利用率;又 因为根据文件的当前需求为其分配所必需的盘块,当文件动态增长时,可以动态地再为它分配盘块,因此无需事先知道文件的大小。此外,对文件的增、删、改也非常方便。 (3)索引分配。索引分配将每个文件的所有的盘块号都集中放在一 起构成索引表。支持直接访问,没有外部碎片问题。缺点是由于索引块的分配, 增加了系统存储空间的开销
Java 和 JavaScript 的区别
Java 是一门面向对象的解释型编程语言 JavaScript 是基于对象镶嵌于 HTML 文档内的脚本语言。
虚拟存储器和 cache 的区别
cache 是解决内存和 cpu 速度不匹配,是内部存储器 虚拟存储器一般指虚拟设备,属于外部存储设备。
虚拟内存和覆盖交换的区别
覆盖:将用户空间分为固定区和若干覆盖区。将经常活跃的部分放入固定区,其他部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,代替覆盖区中原有的段。 交换:指把处于等待状态的程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,换入内存运行。 虚拟内存:允许将一个作业分多次调入内存。有三种实现方式,请求分页存储管理,请求分段存储管理,请求段页式存储管理。通常需要一定的硬件支持,需要一定容量的内存和外存,页表机制(或段表机制),作为主要的数据结构,中断机构,当用户程序要访问的部分尚未调入内存时,则产生中断,地址变换机构,逻辑地址到物理地址的变换。
操作系统五大功能
① 处理器管理:主要功能有进程控制、进程同步、进程通信、死锁处理、处理机调度等。 ② 存储器管理:主要功能有内存分配、地址映射、内存保护与共享和内存扩充 ③ 文件管理:文件存储空间的管理、目录管理及文件读写管理和保护 ④ 设备管理:缓冲管理、设备分配、设备处理、虚拟设备
I/O 控制方式四种方式
① 程序直接控制方式:计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费。 ② 中断驱动方式:允许I/O设备铸锻打断CPU的运行并请求服务,从而“解放”CPU使其向I/O控制器发送读命令后可以继续做其他有用的工作。 ③ DMA方式:在I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。 ④ 通道控制方式:DMA方式是对一块数据块的读写为单位,而通道控制方式可以以一组数据块的读写为单位。
对现实世界抽象的两个层次
对现实世界抽象层次的不同,数据模型分为有概念模型和结构模型。
spooling技术
又称为假脱机技术,是为了缓和CPU的高速性与I/O设备低速性之间的矛盾,引入了脱机输入/输出技术。 该技术利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。
DDR
DDR SDRAM=双倍速率同步动态随机存储器(Synchronous Dynamic Random Access Memory),人们习惯称为 DDR。其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的 SDRAM。SDRAM 在一个时钟周期内只传输一次数据,它是在时钟上升期进行数据传输;而 DDR 则是一个 时钟周期内可传输两次数据,也就是在时钟的上升期和下降期各传输一次数据
抢占调度发生的时机
① 时间片用完 ② 可抢占系统中,有更高优先级进程进入。
io 设备与 io 接口的区别
Io 设备:输入输出设备。 Io 接口:主机与被控对象进行信息交换的纽带,主机通过 io 接口与外部设备进行数据交换。
Android 层次架构
android系统层次结构主要包含4个层次 从上往下依次是:应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries和Android Runtime)和Linux内核层(Linux Kernel)。 ① 应用程序层 Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。 ② 应用程序框架层 本层次提供的首先包含了UI程序中所需要的各种控件,该层是Android应用开发的基础,该层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。 ③ 系统运行库层 本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C++实现的。系统库包括九个子系统,分别是界面管理工具(Surface Management 管理显示子系统)、媒体库、SQLite、OpenGLEState(对3D的支持)、FreeType(位图和矢量字体的功能)、WebKit(网络浏览器的核心)、SGL(2D图像引擎)、SSL(Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持)和C库。Android 运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般Java虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。 二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。 ④ Linux内核层 Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
类的继承分类方式
公有继承,私有继承,保护继承
TCP控流的原因
双方在通信的时候,发送方的速率与接收方的速率是不一定相等的,如果发送方的速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里(失序的数据包也会被存放在缓存区里)。如果缓存区满了发送方还是疯狂的发送数据,接收方只能把收到的数据包丢掉,大量的丢包会极大的浪费网络资源,因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。
软件复用的意义
提高生产率、减少维护代价、提高互操作性、支持快速原型、减少培训开销。
简述线性结构与非线性结构的实质是什么。并说明其典型应用。
除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。以上就是线性表。 反之,就是非线性表。 线性结构:顺序表、链表、栈、队列、串、链表 非线性结构:树、图
基本逻辑运算有哪些
与,或,非(&,|,!)
RISC和CISC
RISC:精简指令系统计算机 CISC:复杂指令系统计算机
ALPHA和BETA测试的区别
Alpha 测试由用户在开发者的场所进行, 并且在开发者对用户的“指导”下进行测试。 Beta 测试是由软件的最终用户们在一个或多个客户场所进行。 Alpha 测试是在可控环境下进行 beta 测试是在不可控环境下的测试
ASDL
非对称数字用户线路 == Asymmetric Digital Subscriber Line 高速传输、上网、打电话互不干扰、独享宽带、安全可靠
ICMP协议的作用
ICMP 协议是 TCP/IP 协议的一个子协议。用在 IP 主机、路由器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传递用户数据,但是对于用 户数据的传输起着重要的作用。
机群系统
机群系统是相互连接的多个独立计算机的集合,这些计算机可以是单机或多处理器系统,每个结点都有自己的存储器、I/O设备和操作系统。机群对用户和应用来说是一个单一的系统,它可以提供低价高效的高性能环境和快速可靠的服务。
数据库介质故障及其回复
介质故障是指硬件故障使存储在硬盘上的数据丢失。 恢复方法: ① 在新硬盘上,导入最新的数据库备份文件。 ② 根据日志文件,找出从该最新备份后开始,到故障发生时,那些事务已经完成。重做所有已提交的事务。
动态内存分配方式有哪些,并说明各自区别
首次适应算法,最佳适应算法,最坏适应算法,邻近适应算法。
邮件使用那两个协议,为啥要区分这两个
SMTP,POP。 SMTP主要有两个缺点:无认证,无法远程操作信箱。
局域网使用什么协议
CSMA , CSMA/CD , ALOHA,CSMA/CA ,令牌协议
无线网使用什么协议
CSMA/CA
计算机连接Internet需要那些硬件软件和配置
硬件:网卡,宽带,传输介质(光纤,双绞线) 软件:OS,网卡的驱动程序
CPU有哪几种寄存器
通用寄存器,段寄存器,指令指针寄存器,标志寄存器 ① 通用寄存器: 数据寄存器:AX,BX,CX,DX(有时这四个16位寄存器也可以当做八个独立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL) 指针寄存器和变址寄存器::SP,BP,DI,SI(SP 和 BP 分别为堆栈指针寄存器和基 址指针寄存器,DI 和 SI 分别为目的变址寄存器和源变址寄存器) ② 段寄存器 DS,ES,SS,CS(DS 为数据段寄存器,ES 为附加段寄存器,SS 为堆栈段 寄存器,CS 为代码段寄存器) ③ 指令指针寄存器和标志寄存器 指令指针寄存器:IP 标志寄存器:FLAGS(16 位标志寄存器,但只用其中的 9 位,即 6 个状态标志位,3 个控制标志位)
软件开发的过程
软件开发流程及软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结果设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理、报废处理。
动态重定位定理
动态重定位即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换。
触发器是干什么的?
触发器是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊存储过程,是由事件触发的。
死锁的四个必要条件
①互斥条件:进程对其所要求的资源进行独占性控 制; ②请求保持条件:进程已经保持了至少一个资源,但又提出新的资源申请, 而该资源又得不到满足,于是该进程阻塞,但其原先获得的资源保持不放; ③不可剥夺条件:进程已获得的资源在未使用完之前,不能被剥夺,只能在使用完后 由自己释放; ④环路条件:当发生死锁时,在进程资源有向图中存在环路。
预防死锁的四种方法
①避免多次锁定。尽量避免同一个线程对多 个 Lock 进行锁定。例如上面的死锁程序,主线程要对 A、B 两个对象的 Lock 进 行锁定,副线程也要对 A、B 两个对象的 Lock 进行锁定,这就埋下了导致死锁 的隐患。 ②具有相同的加锁顺序。如果多个线程需要对多个 Lock 进行锁定,则 应该保证它们以相同的顺序请求加锁。比如上面的死锁程序,主线程先对 A 对 象的 Lock 加锁,再对 B 对象的 Lock 加锁;而副线程则先对 B 对象的 Lock 加锁,再对 A 对象的 Lock 加锁。这种加锁顺序很容易形成嵌套锁定,进而导 致死锁。如果让主线程、副线程按照相同的顺序加锁,就可以避免这个问题。 ③ 使用定时锁。程序在调用 acquire() 方法加锁时可指定 timeout 参数,该参数 指定超过 timeout 秒后会自动释放对 Lock 的锁定,这样就可以解开死锁了。 ④死锁检测。死锁检测是一种依靠算法机制来实现的死锁预防机制,它主要是针 对那些不可能实现按序加锁,也不能使用定时锁的场景的。
数据库的三层模式,两个独立性
虚拟内存技术
虚拟内存是计算机系统内存管理的一种技术。它使 得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际 上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器 上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如 Windows 家族的“虚拟内存”;Linux 的“交换空间”等
引用的参数传递方式是什么?
引用即对象的别名,传对象的引用,用于把一个对象的地址作为参数传递过去,而不是对象本身。引用传递,避免了一次实参到形参的拷贝,提高了效率。
光盘的原理
光盘记录原理是通过激光束在光盘记录表面留下储存信息。
线程是不是越多越好
不是,线程增多了会增加线程间切换的代价。
UML是什么,有哪几类图?
统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。 里面有9类图 用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。
raid是什么
磁盘阵列,由许多价格便宜的磁盘组成一个容量巨大 的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
中断和异常的区别
全局变量和局部变量的区别
全局变量是整个源程序都有效的变量 局部变量会在其所属的函数或循环结束后消亡。
套接字
套接字:(IP 地址:端口号),用于唯一的标识一台主机 上的一个进程(应用),实际上网络通信中的通信端点,每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定,两个应用程序之间的数据传 输要通过套接字完成。生成套接字,主要有 3 个参数:通信的目的 IP 地址、使用的传输 层协议(TCP 或 UDP)和使用的端口号。服务器程序所监听的网络地址和端口号通常是固定不变的,客户端程序得知服务器程序的地址和端口号后就可以向服务器发起连接,在 Java 语言中,使用 Socket 类来创建套接字,使用 Socket 类在两台计算机之间进行通信时,是有主次之分的,一个称为服务器程序,一个 称为客户端程序。在服务器端使用 ServerSocket 类创建套接字,主要是监听指 定的端口,等待客户端的连接;在客户端使用 Socket 类创建套接字,用于连接 服务器端的套接字。TCP 的创建两个套接字(应该说是多个,一个服务端的 SOCKET, 监听本机的某个端口;其余对应每个客户端一个 SOCKET,保存客户端的连接)。 UDP 是无连接的,也就是只需要监听本机端口就可了。在网络应用程序设计时, 由于 TCP/IP 的核心内容被封装在操作系统中,如果应用程序要使用 TCP/IP,可以通过系统提供的 TCP/IP 的编程接口来实现。在 Windows 环境下,网络应用程序编程接口称作 Windows Socket。为了支持用户开发面向应用的通信程序,大部分系统都提供了一组基于 TCP 或者 UDP 的应用程序编程接口(API),该接口 通常以一组函数的形式出现,也称为套接字 Socket。
域名服务器
1.根域名服务器:一个主机发出 DNS 查询请求时,若本地域名服务器无法解析,就首先求助于根域名服务器。根域名服务器共有 13 个,每个都知道所有顶级域名服务器的 IP 地址,它告诉本地服务器下一步应当找哪个顶级域名服务器查询 2.顶级域名服务器:管理在该顶级域名服务器注册的所有二级域名,收到 DNS 请求时,就给出相应的应答(可能是最后的结果(如 x.com 的 IP 地址),也可能是下一步应当查找的域名服务器的 IP 地址) 3.授权域名服务器:负责一个区的域名服务器,授权服务器总能将其管辖的主机名转换为该主机的 IP 地址 4.本地域名服务器
域名解析过程
1.递归查询:本地域名服务器只需向根域名服务器查询一次 2.迭代查询:本地域名服务器每次都自己查询。
RAM
随机存取存储器,又称作随机存储器,是与 CPU 直接交换数据 的内部存储器,也俗称内存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介
DRAM
DRAM 一般用作计算机中的主存储器,即内存条。DRAM 只能将 数据保持很短的时间。通过在电容上存储电荷保存数据,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 关机就会丢失数据。电路结构简单,集成度高。
SRAM
一般用来作为计算机中的高速缓冲存储器,即 CPU 或 GPU 内部 的 Cache。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。然而,当电力供应停止时,SRAM 储存的数据还是会消失速度快, 管子数量多,结构复杂,集成度低。
SRAM 与 DRAM 的区别
SRAM 是一种具有静止存取功能的内存,不需要刷新电路即能保存它的内部存储数据,速度快。 DRAM 是动态随机存储器, 只能将数据保存很短时间。
VNC(Virtual Network Console)虚拟网络控制台
由 VNC server 和 VNC viewer 两部分组成,在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地与安装了服务器端的应用程序(vncserver)的计算机相互连接。 1)VNC 客户端通过浏览器或 VNC Viewer 输入服务器端的主机名或 IP 地址连接至 VNC Server。 2)VNC Server 传送一对话窗口至客户端,要求输入连接密码,以及存取的 VNC Server 显示装置。 3)在客户端输入联机密码后,VNC Server 验证客户端是否具有存取权限。 4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。 5)VNC Server 通过 X Protocol 要求 X Server 将画面显示控制权交由 VNC Server 负责。 6)VNC Server 将来由 X Server 的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。
大程序在小内存
通过虚拟內存技术实现,通过此技术,系统好像 为用户提供了一个比实际内存大得多的,称为虚拟存储器。基于局部性原理(时 间局部性、空间局部性),将程序装入时,将程序的一部分装入內存,其余部分留在外存,就可以启动程序执行。
病毒
计算机病毒,是指编制或者在计算机程序中插入的“破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码”。
病毒分类: 根据病毒存在的媒体,病毒可以划分为网络病毒,文件病毒,引导性病毒。 根据病毒破坏的能力可划分为: ① 无害型:除了传染时减少磁盘的可用空间外,对系统没有其他影响 ② 无危险型:这类病毒仅仅是减少内存、显示图像、发出声音及同类音响。 ③ 危险型:这类病毒在计算机系统操作中造成严重的错误。 ④ 非常危险型:这类病毒删除程序、破坏数据、清除系统内存区和操作系统中重要的信息。
恶意病毒“四大家族”
宏病毒、CIH病毒、蠕虫病毒、木马病毒
① 宏病毒:专门针对特定的应用软件,可感染依附于某些应用软件内的宏指令,他很容易通过电子邮件附件、文件下载和群组软件等多种方式进行传播如 Microsoft Word 和 Excel。 宏病毒的传播方式通常如下:字处理程序 word 在打 开一个带宏病毒的文档或模板时,激活了病毒宏,病毒宏将自身复制至 word 的通用(Normal)模板中,以后在打开或关闭文件时病毒宏就会把病毒复制到该文件中。 造成危害:文档无法正常使用。
② 蠕虫病毒:蠕虫病毒是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。蠕虫病毒入侵并完全控制一台计算机之后,就会把这台机器作为宿主,进而扫描并感染其他计算机。当这些新的被蠕虫入侵的计算机被控制之后,蠕虫会以这些计算机为宿主继续扫描并感染其他计算机,这种行为会一直延续下去。 蠕虫使用这种递归的方法进行传播,按照指数增长的规律分布自己,进而及时控制越来越多的计算机。 ③ CIH 病毒:CIH 属恶性病毒,当其发作条件成熟时,其将破坏硬盘数据,同时有可能修改 BIOS 程序,使得主机无法启动 1、以 2048 个扇区为单位,从硬盘主引导区开始依次往硬盘中写入垃圾数据,直到硬盘数据被全部破坏为止。最坏的情况下硬盘所有数据(含全部逻辑盘数据)均被破坏,如果重要信息没有备份, 那就只有哭了! 2、某些主板上的 Flash Rom 中的 BIOS 信息将被清除。
④ 木马病毒:木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击 Dos 等特殊功能的后门程序(后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。)。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。 完整的木马程序一般由两部分组成:一个是服务器端.一个是控制器端。“中了木马”就是指安装了木马的服务器端程序,若你的电脑被安装了服务器端程序, 则拥有相应客户端的人就可以通过网络控制你的电脑。
摩尔定律
当价格不变时,集成电路上可容纳的元器件的数目,约每隔 18 个月便会增加一倍,性能也将提升一倍。这一定律揭示了信息技术进步 的速度
摩尔第二定律
随着集成电路芯片性能的大幅度提高,芯片生产厂 的成本也在提高。制造芯片的成本平均每 4 年翻一番。他的这一说法被人称为摩 尔第二定律 。
新摩尔定律
中国 IT 专业媒体上出现了“新摩尔定律”的提法,指的是中国 Internet 联网主机数和上网用户人数的递增速度,大约每半年就翻一 番。而且专家们预言,这一趋势在未来若干年内仍将保持下去。
软件项目管理
为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。 主要内容有: 估算软件规模,工作量估算,进度计划,人员组织,质量保证,软件配置管理, 能力成熟度模型。
进程切换开销
1.切换虚拟地址空间(切换页目录以使用新的地址 空间) 2.切换 CPU 上下文 3.切换内核栈。
线程切换开销
1.切换 CPU 上下文 2.切换内核栈。
进程切换比线程切换开销大
是因为进程切换时要切页表,而且往往伴道随着页调度,因为进程的数据段代码段要换出去,以便把将要执行的进程 的内容换进来。
&和&&区别
相同点:&和&&都可以用作逻辑与的运算符,表示逻辑 与(and)。 不同点: (1)&&具有短路的功能,而&不具备短路功能。&&运算符 第一个表达式为 false 时,则结果为 false,不再计算第二个表达式。而&不管 前面条件是否正确,后面都执行 (2)&还可以用作位运算符,当&操作符两边的 表达式不是 boolean 类型时,&表示按位与操作,我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的最低 4 个 bit 位,例如:0x31 & 0x0f 的结果为 0x01。
编译执行
把源程序的执行过程严格地分成两大步:编译和运行。 由编译程序将源代码一次性编译成目标程序,再由机器运行目标程序。编译方式即先把源程序全部翻译成目标代码,然后再运行此目标代码,获执行结果。
解释执行
由解释器根据输入的数据当场执行而不生成任何目标程序。 解释执行程序是高级语言翻译程序的一种,它将源语言(如 VASIC)书写的源程序作为输入,解释一句后就提交给计算机执行一句,并不生成目标程序。 这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令 或者语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行 且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的 确很方便,很适合于一些小型机的计算问题。
编译执行与解释执行的区别
编译执行的语言因为要直接同 CPU 的指令集打交道,具有很强的指令依赖性和系统依赖性,兼容性差。 解释执行的语言只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。解释执行每次都要经过解释过程, 在很多情况下都是相当于每次都在做重复功,这样运行的效率比较低,而编译执行只需要编译一次,以后再运行就无需编译,因此效率高。
USB
通用串行总线(Universal Serial Bus),是一个外部总线标准, 是一种输入输出接口的技术规范,规范电脑与外部设备的连接和通讯。 它只有 4 根线,两根电源,两根差分信号线,故信号是串行(每次传输一个数据位)传输的。 黑线:gnd ;红线:vcc ;绿线:data+ ;白线:data-
大数据 Hadoop
大数据是通过传统数据库技术和数据处理工具不能 处理的庞大而复杂的数据集合,具有规模大(volume)、速度快(velocity)、 类型多(variety)、价值(value)四大特征。
总线
是用于传送信息的公共途径。总线可以分为数据总线 DB(Data Bus)、地址总线 AB(Address Bus)和控制总线 CB(Control Bus)
什么是分页?
分页(英语:Paging),是一种操作系统里存储器管 理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系 统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。 当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数 据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持 文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
网络安全技术有哪些
虚拟网技术,防火墙技术,病毒防护技术,入侵检测技术,安全扫描技术,认证和数字签名技术,VPN,应用系统安全技术。
c/s 架构和 b/s 架构的区别
1、B/S 架构是针对 C/S 架构缺点进行 改进后提出的网络结构模式。 B/S 结构属于 C/S 结构,是一种特殊的 C/S,因为 浏览器只是特殊的客户端。 2、C/S 可以使用任何通信协议,而 B/S 架构规定必 须实现 HTTP 协议。
CSMA/CD
即载波侦听多路访问/冲突检测,是广播型信道中采用一 种随机访问技术的竞争型访问方法,具有多目标地址的特点。它处于一种总线型 局域网结构,其物理拓扑结构正逐步向星型发展。CSMA/CD 采用分布式控制方法, 所有结点之间不存在控制与被控制的关系。
TCP 拥塞控制四种方法
滑动窗口机制、慢启动机制、拥塞避免机制、 快速重传与恢复。
java 线程同步实现方法
使用同步代码块、使用同步方法、使用互 斥锁 ReetrantLock(更灵活的代码控制)
文件系统中文件的打开和关闭有什么作用
对于操作系统而言,文件来操作的最高级别的目的,就是对于文件的独享权。 没有打开文件之前,文件只是存在于硬盘上的数据集合。 当进行打开文件操作时, 操作系统会建立文件登记表中记录该文件处于打开状态,除了申请进行打开文件操作的进程,其他程序不能对文件进行访问和写入。 同理,进行关闭文件操作时,操作系统会在文件登记表中清除该文件的打开状态, 此时,其他的程序,才能获得文件的完全控制权。
为什么主存是动态的而缓存是静态的
主存用动态是因为价格低, 容量大,体积小。 缓存需要的速度快,而静态的 RAM 比动态的快,读写速度快。
网络地址变换协议是什么
网络地址转换协议简称NAI ,把局域网地址转换成公网地址,或者内网地址转换成内网地址。
软件工程模型
瀑布模型、 V 过程模型、 原型实现模型、 快速应用开发(RAD)、 增量模型 、螺旋模型、 极限编程(XP)
操作系统分类
批处理系统(MVX、DOS/VSE) 分时系统(WINDOWS、UNIX、XENIX、MAX OS) 实时系统(iEMX、VRTX、RTOS、RT Linux) 网络操作系统(Netware、Windows NT、OS/2warp) 分布式系统(Amoeba)
子网掩码
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网, 以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。子网掩码是一个 32 位地址,用于屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说 明该 IP 地址是在局域网上,还是在远程网上。
ASCII
ASCII:(American Standard Code for Information Interchange, 美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 代英语和其他西 欧语言。它是现今最通用的单字节编码系统。
外围设备
计算机系统中除主机外的其他设备。是计算机与外界进行通信的工具。包括输入和输出设备、外存储器、模数转换器、数模 转换器、外围处理机等。 - 例如打印机、磁盘驱动器或键盘。
抽象类和接口的区别?
1.接口里面只能包含抽象方法、静态方法和默认方法,不能为普通方法提供实现; 抽象 类则可以包含普通方法; 2.接口里只能定义静态常量,不能定义普通变量;抽象类里都可以; 3.接口不能包含构造器,抽象类可以; 4.一个类只能有一个直接父类,一个类可以直接实现多个接口;
重载和重写
重写:在子类中把父类本身有的方法重新写一遍,返回类型必须相同; 重载:在一个类中,同名方法如果有不同的参数列表,则视为重载,返回类型没有要求