计算机专业读书笔记.docx
《计算机专业读书笔记.docx》由会员分享,可在线阅读,更多相关《计算机专业读书笔记.docx(15页珍藏版)》请在冰豆网上搜索。
计算机专业读书笔记
计算机专业读书笔记
计算机专业读书笔记
【篇一:
计算机书籍读书笔记】
读书笔记
第一篇css精粹之布局技巧
1.若有疑问立即检测。
在出错时若能对原始代码做简单检测可以省去很多头痛问题。
w3c对于xhtml与css都有检测工具可用,请见请注意,在文件开头的错误,可能因为不当的结构等因素造成更多错误;我们建议先修正一些最明显的错误之后重新检测,这样也许会让错误数量爆减。
2.使用浮动功能时记得适当清除指令。
浮动是个危险的功能,未必会产生您所期望的结果。
如果您遇到浮动元素延伸到外围器的边框或者其他不正常情况,请先确定您的做法是正确的。
3.边界重合时利用padding或border来避免。
您可能会为了一点不应该出现的空间而焦头烂额,或者您需要一点点空间时,怎样都挤不出来。
如果您有用到margin,那么很容易产生边界的重合;andybudd在他的网站上解释了可能的做法。
4.尝试避免同时对元素指定padding/border以及高度或宽度。
windows版ie经常导致width与height的计算问题。
有些方法可以解决此问题,但如果母元素需要指定高度与宽度时,最好能够在母元素之内的子元素套用margin,或者当子元素需要指定高度与宽度时,在母元素套用padding以达效果。
5.不要依赖min-width/min-height。
windows版ie并不支援两种语法。
但是在某种程度下,windows版ie可以达到相当于min-width/min-height的效果,所以只要对ie做点过滤功能,即可达到您想要结果。
第二篇何为一个“丰满”的设计
1.“丰满”的含义并不代表将一个版面撑满。
每个设计都必须含有一个点子,点子以“产品特性”、“目标消费群”及“卖点”所支撑。
整个设计围绕其而发展,统一与一个中心,环环相扣,由浅入深或由深化浅,循序渐进,有规律,有节奏,有重点,才不失为一个“丰满”的设计。
2.做一个“不浪费”的设计
大多数设计由图片及文案两部分组成。
设计之前必须充分理解文案,读懂读通,再开始下一步工作。
因为你所需要达到的最理想结果(就设计本身而言)就是将图片和文案完美结合。
只有这样才能不使广告目的偏移,不使文案内容变质,发挥寸“字”寸金的广告文案的原汁原味。
广告不允许你有任何浪费(贵)。
第三篇页面空白空间的魅力
设计的意思就是策划,设计的过程就是从混乱和随意中找到条理,条理有利于读者,他们可以很轻松地理解一个条理清楚的信息。
斯蒂温-阿-克里蒙特的《建筑历史》杂志评论中写到:
“不要把时尚和风格混淆起来。
风格是在社会和顾客的实际需要中形成的。
时尚则是个些急于表现优雅或老练的人所表现出的一种肤浅的状态”。
这些必须通过和谐的排印、有效地利用图画和空白空间,有节制的利用(字行)来完成......多次重复,在视觉上形成必然联系可以引导视线和帮助读者快速浏览。
设计中,留出大量空白空间作为空白表现领域,使标题“突出”,大的图画得到视觉上的延伸。
页面空白空间的最佳使用能够帮助信息易于浏览,而不仅仅只是使页面看上去漂亮,那是自然而然的结果。
关键在于提高页面的可理解性。
第四章导航设计与信息架构
大部分时候我们讲导航,讲的是导航对内容和结构的一种表现。
就是说我们在讨论导航的时候,更多的去关注怎么与之交互,以及视觉上是怎么好看。
但是导航,不仅仅局限于交互方式和视觉形式。
不要为了导航而导航,前面一个导航是指表现形式,后面一个导航是指实际的导航系统。
对于导航的设计,信息架构比交互方式、视觉形式更加的重要。
导航不仅仅是内容的一种分类,也包括类似交互操作的分类。
导航的目的是为了让使用者高效的完成任务、达成目标。
情景式导航有可能是导航设计的一种发展趋势。
第五篇css六大密技
1.css字体简写规则
2.同时使用两个class
通常我们只为属性指定一个class,但这并不等于你只能指定一个,实际上,你想指定多少就可以指定多少
3.css中边框(border)的默认值
当编写一条边框的规则时,你通常会指定颜色、宽度以及样式(任何顺序均可)。
4.!
important会被ie忽略
在css中,通常最后指定的规则会获得优先权。
然而对除了ie以外的浏览器来说,任何后面标有!
important的语句将获得绝对的优先权
计算机系统:
硬件系统和软件系统。
硬件系统:
运算器,控制器,存储器,输入设备,输出设备。
软件系统:
系统软件,应用软件。
计算机系统层次结构:
应用软件层》实用软件层》操作系统层》硬件层
数制:
按进位的原则进行计数,进位计数制
位权:
一种进制中某个位置上的单位值
十进制:
0,1,…,9,逢十进一,基数为10。
二进制:
0,1,逢二进一,基数为2。
二进制的优点:
便于实
八进制:
0,1,2,…,7,。
0,倒排余数。
小二进制转换为十六进制方法:
从小数点开始,每4位一组,不足4位的用0补齐,每一组用一个十六进制数表示。
八进制(十六进制)数转换为二进制数方法:
每位八进制数(十六进制数)用3(4)位二进制数表示,删除两端无意义的0。
机器数:
正负号用数字表示的数。
0为正,1为负。
真值:
与机器数对应的数学中的数。
定点整数:
将小数点的位置约定在机器数的末端。
补0为符号位后面。
定点小数:
将小数点的位置约定在符号位的右侧。
补0为数值后面。
浮点数:
将一个数表示为尾数和阶码。
阶码用定点整数,尾数用定点小数。
与科学计数法类似。
原码:
整数含0的符号位为0,负数含0的符号位为1.数值部分为对应数的绝对值。
0的原码有两种编码,00000000(0.0000000),10000000(1.0000000)。
优点:
与真值转换简单。
缺点:
运算不方便且有错误。
8位定点整数原码的表示范围:
--127--+127
反码:
正数含0的反码与原码一样;将负数含0原码除符号位外,每位变反。
0的反码有两种编码00000000(0.0000000),11111111(1.1111111)反码的反码为原码。
补码:
正数含0的补码与原码一样;将负数的反码末位加1,注意进位。
0的补码只有1种。
00000000(0.0000000)正数的原码、反码、补码均相同。
补码的补码为原码。
先原码再反码后补码。
求补:
包括符号位在内,每位变反,末位加1。
对某个数的补码求补即可得到该数相反数的补码。
规格化浮点数:
提高了存储的精度。
阶码采用定点整数补码,尾数采用定点小数补码。
对于整数,规格化就是将小数点移到数值部分第一个1的左侧,对于负数而言就是将小数点移到第一个0的右侧。
ascii美国国家标准信息交换码。
7位ascii码又称基本ascii码,用7位二进制表示128个字符编码,包括33个控制字符。
常用字符代码由小到大:
空格(32)、数字(0的代码为48)、大写字母(a的代码为65)、小写字母(a的代码为97)。
小写字母的代码比对应大写字母的代码大32。
8位ascii码又称扩展ascii码,用8位二进制表示256种,其中0---127即为前面的128个基本ascii码,特点是最高位为0;128—255是扩展部分,特点是最高位为1。
汉字编码:
国标码:
中国制定的用于计算机系统间交换汉字信息时使用的编码。
输入码:
利用键盘输入汉字的编码。
机内码:
计算机内部存储、处理和传输汉字的编码。
字型码:
表示汉字形状的编码。
(点阵字型:
将一个汉字均匀的分成若干行、若干列,形成一个点阵。
)cpu与内存构成主机。
主机与外部设备股票拟共同构成了计算机硬件系统。
外存既是输入设备又是输出设备。
存储器包括内存与外存。
控制器与运算器构成了中央处理器cpu。
计算机的主机和外部设备之间通过接口电路(简称接口)连接。
运算器:
算数运算、逻辑运算。
控制器:
控制各部件协调工作。
存储器:
保存程序和数据,分为内存和外存。
内存:
可以与cpu(运算器+控制器)直接交换信息,保存正在处理的数据和正在执行的程序。
内存主要包括随机存储器ram(randomaccessmemory)和只读存储器rom(readonlymemory)两类。
ram可以进行读取和写保存两种操作,但断电时信息丢失。
rom只能进行读操作,不能执行写操作,但是断电时信息不丢失。
rom主要保存最基本的固定不变的程序和数据。
rom容量<ram。
通常所说的内存容量指ram。
ram分为动态随机存储器dram和静态随机存储器sram。
dram存储密度高、存取速度慢、需要定期刷新。
sram存储密度低、存取速度快、不需要刷新。
存储单位有:
位(bit)、字节(byte)、字(word)。
位是存储设备的最小存储单位存储一位二进制的存储设备。
字节是内存的最小编址单位,即每个字节都有唯一的一个地址,一般由连续的8位构成。
cpu一次能够处理的连续字节称为字。
字长有8位,16位,32位,64位。
字长越长,cpu的处理速度越快。
存储容量:
单位:
KB,MB,GB,TB。
1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB外存的功能:
保存需要长期存储的内容和扩充内存容量。
断电时,外存中内容不丢失。
cpu不能直接访问外存。
常用外存:
软盘存储器、硬盘存储器、光盘存储器、移动存储器(u盘)、cache高速缓存l1,l2、指令存储器、寄存器等。
软盘存储器:
磁道:
每个同心圆。
扇区:
每个磁道被分成相同数目的区段,每个区段就是扇区。
一个扇区的容量为512b,即0.5kb。
面数*每面磁道数*每磁道扇区数*512b。
硬盘存储器:
分为固定式和可移动式两种。
容量=柱面数*每柱面容量=柱面数*盘面数*每磁道容量=柱面数*盘面数*每磁道扇区数*512b。
光盘存储器:
光盘主要包括cd和dvd两种,cd的容量通常为600mb左右,而dvd的容量通常都在4.7gb以上。
cd紧凑光盘,cd有cd—rom、cd—r、cd—rw。
dvd是数字多功能光盘或数字激光视盘的简称,包括dvd—rom、dvd—r、dvd—rw等。
u盘存储器特点:
不使用驱动器,节省开支;使用的是usb接口,无需外接电源,支持即插即用和热插拔;存取速度比软盘快得多;体积非常小且很轻,便于携带;防震性能好。
为了满足用户对存储系统速度快、价格低和容量大的需求,存储系统采用了层次结构。
cache是与cpu和内存直接交换信息的高速缓冲存储器(简称高速缓存),其读写速度远高于内存。
cache存储系统由cache和内存构成,目的:
提高cpu访问内存的速度。
虚拟存储系统由内存和外存(通常使用硬盘存储器)构成,目的:
扩大内存的容量。
输入设备:
负责将计算机外部的信息转换为计算机能够识别的二进制形式并保存到计算机的内存中。
常见的输入设备:
键盘、鼠标器、扫描仪、数码相机(dc)、数码摄像机(dv)、麦克、光笔、条形码阅读机和触摸屏等。
键盘:
字符输入设备。
输出设备:
负责将计算机内部的二进制信息转换为人或其他设备能够识别的形式并输出。
常见的输出设备:
显示器、打印机、音箱、绘图仪等。
外存既是输入设备又是输出设备。
计算机硬件的各部分之间通
过总线相互传输信号。
总线:
计算机中实现各部分之间通信的公共通道。
根据传输信号功能的不同,总线分为数据总线、地址总线和控制总线3种。
数据总线db:
传输数据信息的双向总线。
地址总线ab:
传输地址信息的单项总线。
控制总线cb:
传输cpu发往其他部件的控制信息,或传输其他部件发给cpu的状态和请求等信息。
控制总线中某个线是单向的,但总体是双向的。
根据层次的不同,常见的:
片内总线、系统总线和外部总线3种。
接口:
输入输出设备接口的简称。
也称为输入输出适配器,功能:
连接主机和外设并实现两者之间数据的传输。
用接口的目的:
解决主机和外设的差异并使两者协调工作的功能。
软件分为系统软件和应用软件。
系统软件:
用于管理计算机系统的软、硬件资源、控制计算机系统运行、维护计算机系统的软件的集合。
主要包括:
操作系统、计算机语言处理程序、数据库管理系统和服务程序4类。
操作系统(os)计算机语言处理程序:
计算机语言包括:
低级语言和高级语言。
低级语言:
包括机器语言和汇编语言。
机器语言:
能直接执行、执行速度快、编程效率低和不通用的特点。
汇编语言:
执行速度快、不能直接执行、编程效率低(但比机器语言效率高)和不通用的特点。
高级语言:
编程效率高、通用、不能直接执行和执行速度慢的特点。
数据库管理系统服务程序
计算机犯罪:
利用计算机进行的犯罪。
特点:
智能性、隐蔽性、危害性、广域性、低龄化、诉讼困难性、司法滞后性。
计算机病毒是程序。
黑客是人。
防火墙防黑客。
杀毒针对程序。
计算机病毒特点:
传染性、潜伏性、隐蔽性、破坏性、寄生性、针对性、不可预见性。
预防计算机病毒应从管理制度和技术手段入手。
在技术上可以安装防毒卡和防毒软件。
病毒的检测有手工检测和自动检测。
杀毒有手工杀毒和自动杀毒。
没有一种防毒软件可以查杀所有的病毒。
第2章操作系统基础
操作系统(operatingsystem,os):
直接控制和管理计算机系统的软、硬件资源,合理的组织计算机的工作流程,方便用户充分而有效的使用这些资源的程序集合。
操作系统是软件,而且是系统软件,由一组程序组成;功能:
管理计算机系统内的各种资源,组织多道程序运行;是用户和计算机之间通信的桥梁,为用户提供良好的界面,以方便用户使用计算机,并扩充硬件功能。
操作系统的史前时代:
手工操作。
程序设计全部采用机器语言,没有操作系统,人们采用手工操作方式来控制计算机的基本功能。
慢速的手工操作与快速的cpu之间出现了矛盾,另一方面cpu与输入输出设备之间速度不匹配。
操作系统的雏形:
监督程序(早期批处理)。
单道批处理分为联机批处理和脱机批处理。
联机批处理:
由cpu直接控制作业输入与输出。
脱机批处理:
加设的“卫星机”专门处理输入与输出。
现代意义上操作系统的出现:
多道批处理。
通道、中断和缓冲技术的使用使得多道程序的并发执行称为可能。
优点:
在内存中总有多道程序等待运行,系统资源得到比较充分的利用。
缺点:
作业平均周转时间长,用户无法干预程序的执行,没有交互能力。
操作系统步入实用化:
分时操作系统。
在分时操作系统中,用户通过终端设备与计算机交互作用来运行自己的作业。
多用户分时系统是当今计算机系统中使用最普遍的一类操作系统。
为了实时的对特定任务进行可靠处理,人们又开发出实时系统。
实时系统具有专用性,不同的实时系统有不同的应用领域。
现代操作系统的发展
批处理操作系统:
“单道”:
一次只能有一个作业装入计算机系统的内存运行。
“多道”:
一次允许多个作业同时装入内存,使cpu轮流的执行多个作业。
单道批处理系统:
大大减少了人工操作的时间,提高了机器的利用率,但是cpu的利用率很低。
多道批处理系统:
具有系统资源利用率高和作业吞吐量大的优点,缺点:
用户作业的等待时间长,没有交互能力,用户无法干预自己作业的运行。
分时操作系统:
多个用户分享使用同一台计算机。
将cpu时间划分成若干个片段,每个时间段称为时间片,操作系统以时间片为单位轮流为每个终端用户服务。
每个用户轮流使用其中的一个时间片。
分时操作系统的特征:
交互性、及时性、独占性、多路性。
多路性提高了系统资源利用率。
节省了开支。
分时操作系统和多道批处理系统有3个方面的差异:
基本目标的不同;提交给系统的作业性质上;对于充分使用系统资源而言。
实时操作系统主要特征:
高响应性、高可靠性、高安全性。
单用户操作系统根本特征:
一个用户独占计算机系统资源,系统所有的软、硬件资源都为一个用户服务,系统单独的执行该用户提交的一个任务。
网络操作系统:
交换数据、实现信息交换、资源共享的系统。
网络操作系统是基于计算机网络的,它负责网络管理、网络通信、资源共享和系统安全等工作。
操作系统的主要特征:
并发性:
指2个或2个以上的事件或活动在同一时间间隔内发生,交替进行。
共享性:
系统中的资源可以被多个用户共同使用。
操作系统的功能:
cpu管理(计算机系统中最重要的资源是cpu,系统以进程为单位对cpu分配和运行,对cpu的管理可归结为对“进程”的管理,进程指正在执行的程序)存储管理(管理内存资源)设备管理(输入输出设备)文件管理(针对系统中的信息资源管理,计算机的程序和数据通常以文件的形式存放在外部存储器上,需要时再将它们载入内存)用户接口(命令接口、程序接口、图形用户接口)
现代主流操作系统简介:
windows操作系统:
当前个人微型计算机中应用最广泛的一种操作系统。
1990
年5月windows3.0版,1995年8月24日windows95逐步取代了dos系统,2000年windows2000,2001年windowsxp。
windows操作系统成功的特点:
易学易用的面向对象的图形用户界面;支持多任务多窗口;即插即用功能;支持多媒体技术;内置网络和通信功能。
unix操作系统:
unix系统正式发布于1974年,1975年发布的第6版中引入了多道程序技术,这时unix系统才成为真正的多用户分时系统。
linux操作系统:
免费使用、自由传播。
macos操作系统:
美国apple公司推出,运行在macintosh计算机上。
netware操作系统:
novell公司,netware是其开发的网络操作系统nos。
文件:
具有一定名称的一组相关数据的集合。
每个文件都要用一个名字来标识,称为文件名。
“文件名.扩展名”。
通配符“?
”:
文件名中的一个可用字符。
通配符“*”:
文件名中的一个可用字符串。
windows系统中文件名最多包含256个字符,可以包含字母、汉字、数字和部分符号。
文件的命名:
“文件名.[扩展名]”“*.*”任何文件都包括。
操作系统中负责存取和管理文件信息的部分称为文件系统。
文件系统的功能:
文件读/写管理;文件目录管理;文件存储空间管理;文件保护与共享;提供方便的用户接口;文件系统的可靠性与一致性。
从文件管理的角度看,文件由文件说明和文件体2部分组成。
文件体即文件本身,而文件说明(又称文件控制块fcb)是保存文件属性信息的数据结构,它通常包含以下内容:
文件名称、文件的结构、文件在外存中的物理存放位置、建立和修改的日期、保护信息等。
文件说明的集合称为文件目录。
目录的功能:
实现“按名存取”;提高检索速度;允许文件同名;允许文件共享。
目录结构:
单级目录结构、二级目录结构、多级目录结构。
路径名有2种表示形式:
绝对路径名和相对路径名。
绝对路径名:
从根目录“\”开始直至指定文件所在位置的目录名序列。
表示方法:
\一级子目录名\二级子目录名\...\n级子目录名。
相对路径:
从当前目录出发到指定文件所在位置的目录名序列。
第3章软件技术基础
程序是人们为了解决实际问题要求计算机执行的动作和操作,程序表达了程序设计者的思想;对于计算机来说,程序是一组计算机能操作的命令。
程序包括:
数据的描述(即数据结构)、对操作的描述。
程序=数据结构+算法。
程序设计=数据结构+算法+程序设计方法+语言工具和环境。
算法:
完成一个问题的有限执行步骤的有序集合。
算法的基本特征(5个重要特征):
输入:
一个算法有0个或多个输入;输出:
一个算法有1个或多个输出;确定性:
算法的每一步骤都必须有确切的含义,不存在二义性;有穷性:
一个算法必须在执行有限步骤之后结束,而不能是无限的;可行性:
算法的每一步骤都必须能有效的执行,得到确定的结果。
算法的表示:
自然语言、流程图、程序设计语言、伪代码(一种介于自然语言和计算机语言之间的文字和符号来描述算法。
数据是对客观事物的符号表示。
数据元素是数据集合中的一个实体,是数据的基本单位。
数据结构:
数据元素和相互之间关系的集合。
数据结构包括:
数据元素之间的逻辑关系,即数据的逻辑结构;数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称数据的物理结构;对数据元素的操作,即数据的运算。
数据的逻辑结构:
数据结构中数据元素之间的逻辑关系。
逻辑结构主要有2种,即线性结构和非线性结构。
线性结构:
在数据结构中的结点(数据元素)之间存在一对一关系。
特点:
开始结点和终端结点是唯一的,除了它们以外,其余结点都有且仅有一个前驱结点和一个后继结点。
顺序表就是典型的线性结构。
非线性结构:
在数据结构中的结点(数据元素)之间存在一对多或多对一的关系。
分为树型结构、图形结构。
树型结构:
在数据结构中的结点之间存在一对多的关系。
特点:
仅有一个前驱结点,可以有多个后续结点,可以有多个终端结点。
图形结构:
在数据结构中的结点之间存在多对多的关系。
特点:
每个结点的前驱结点和后继结点的个数是任意的。
因此,可能没有开始结点和终端结点,也可以有多个开始结点和终端结点。
数据元素之间的关系是指它们的逻辑关系,与它们在计算机中的存储位置无关。
通常采用二元组表示:
ds=(d,s)ds是一个数据结构,d是在一个数据结构(ds)中数据元素的集合,s是定义在d上的关系的集合,可以称s为逻辑结构。
数据的存储结构:
数据的逻辑结构在计算机存储空间中的存放形式,数据的存储结构又称为数据的物理结构。
数据的存储结构可分为:
顺序存储结构、链式存储结构、索引存储结构、散列(或哈希)存储结构。
顺序存储结构:
把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点之间的逻辑关系由存储单元的邻接关系来体现。
优点:
节省存储空间,因为分配给数据的存储单元全用于存放结点的数据,结点之间的逻辑关系没有占用额外的存储空间。
可以实现对结点的随机访问,即每个结点对应有一个序号,由该序号可直接计算出结点的存储地址。
缺点:
不便于修改(对结点的插入、删除运算可能涉及移动一系列的结点);要求有连续的空间。
链式存储结构:
在每个结点中至少包含一个指针域,用来指出数据元素之间的逻辑关系,不要求在逻辑上相邻的结点在物理位置上也相邻。
优点:
便于修改(在进行插入、删除运算时,仅需修改结点的指针域值,不必移动结点);可运用零散的空间。
缺点:
存储空间的利用率低,因为分配给数据的存储单元有一部分要用来存储结点之间的逻辑关系。
另外,由于逻辑上相邻的结点在存储器中不一定相邻,所以不能对结点随机访问。
索引存储结构:
在存储信
息的同时,还建立附加的索引表。
索引表中的每一项称为索引项,索引项的一般形式是关键字与地址。
关键字唯一标识一个结点,地址作为指向结点的指针,可以大大提高数据查找的速度。
散列(或哈希)存储结构:
根据结点的关键字通过散列(或哈希)函数直接计算出一个值,并将这个值作为该结点的存储地址。
优点:
查找速度快,只要给出带查结点的关键字,就可立即算出该结点的存储地址。
散列存储方法只存储结点的数据,不存储结点之间的逻辑关系。
一般只适合要求对数据进行快速查找和插入。
线性表:
具有相同特性的数据元素的一个有限序列。
用n表示,n≥0.当n=0时空表,即不包含任何数据元素。
非空线性表特点:
有且只有一个根结点,无前驱;有且仅有一个终端结点,无后继;除根结点和终结点外,其他所有结点有且只有一个前驱和一个后继。
线性表中结点的个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构是把线性表中的所有元素按照其逻辑顺序,依次存储到连续的计算机存储空间中。
每一个数据元素占k个字节。
顺序存储结构有2个基本特点:
线性表中所有数据元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
线性表的链式存储结构有2个基本特点:
线性表中所有数据所占空间不一定是连续的;线性表中各数据元素在存储空间的逻辑关系是由各结点的指针域来表示的。
栈:
只能在一端进行插入与删除运算的线性表(类似于水桶放砖),在栈中,允许进行插入和删除的一端叫栈顶,另一端为栈底。
栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后被删除的元素。
栈有记忆作用,原则是:
先进后出,后进先出。
指针top来指示站定的位置,指针bottom指向栈底。
栈的基本运算:
入栈、退栈、读栈顶元素。
入栈运算:
在栈顶