- 《Operating System Concepts》阅读笔记:p17-p25
操作系统
《OperatingSystemConcepts》学习第5天,p17-p25总结,总计9页。一、技术总结1.计算机系统的组成结构(1)CPU—Thehardwarethatexecutesinstructions.(2)Processor—AphysicalchipthatcontainsoneormoreCPUs.(3)Core—ThebasiccomputationunitoftheCPU.(
- 阅读笔记:x86系统调用入门
yayong
Solarisx86solarissystempreprocessormakefilewrapper
阅读笔记:x86系统调用入门原作者:RussBlaine原文来自:http://blogs.sun.com/roller/page/rab译注者:BadcoffeeEmail:
[email protected]:http://blog.csdn.net/yayong2005年7月按:要开始学习像操作系统这样复杂的东东是一个令人头痛的问题。为了帮助新学者理清头绪,这里我们将讨论Sol
- 《Operating System Concepts》阅读笔记:p13-p16
操作系统
《OperatingSystemConcepts》学习第4天,p13-p16总结,总计4页。一、技术总结1.storage指令只能在memory上执行,所以要执行程序,那么就要加载到内存上。2.primarystorageprimarystorage包含下面这些分类:(1)register(2)cache(3)mainmemory3.secondarystorageThemostcommonsec
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-patches.py
红色的山茶花
YOLO笔记深度学习
patches.pyultralytics\utils\patches.py目录patches.py1.所需的库和模块2.defimread(filename:str,flags:int=cv2.IMREAD_COLOR):3.defimwrite(filename:str,img:np.ndarray,params=None):4.defimshow(winname:str,mat:np.nda
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-ops.py
红色的山茶花
YOLO笔记深度学习
ops.pyultralytics\utils\ops.py目录ops.py1.所需的库和模块2.classProfile(contextlib.ContextDecorator):3.defsegment2box(segment,width=640,height=640):4.defscale_boxes(img1_shape,boxes,img0_shape,ratio_pad=None,pa
- gitblit如何迁移入gitlab合并迁移_Git 仓库迁移历险记
weixin_39847728
作者:wiLdGoose发布时间:2018年12月17日分类:技术Technology前阵子折腾了一个Git仓库迁移,觉得有必要自行马克一下。需求背景:老的版本库在一台Windows主机上,用Gitblit搭建;我在某云用一台独立主机新搭建了一套Gitlab,前端由另一台主机部署Nginx反向代理。需求内容:将老版本库的所有仓库平滑迁移到新的版本库中。任务拆解:部署并配置Gitlab、创建项目仓库
- paddle 文档阅读笔记
前端corner
深度学习深度学习python
Paddle文档阅读笔记一、说明二、基本概念1、Tensor概念介绍(1)tensor的创建使用paddle.to_tensor()生成tensor使用Numpyarray创建(2)将Tensor转化为Numpyarray(3)创建指定shape的paddleAPI(4)Tensor的shape(5)使用==paddle.reshape==方法重新定义tensor的shape(6)使用paddle
- 【论文阅读笔记|EMNLP2023】DemoSG: Demonstration-enhanced Schema-guided Generation for Low-resource Event Ext
Rose sait
论文阅读笔记
论文题目:DemoSG:Demonstration-enhancedSchema-guidedGenerationforLow-resourceEventExtraction论文来源:EMNLP2023论文链接:2023.findings-emnlp.121.pdf(aclanthology.org)代码链接:https://github.com/GangZhao98/DemoSG0摘要当前大多数
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-dist.py
红色的山茶花
YOLO笔记深度学习
dist.pyultralytics\utils\dist.py目录dist.py1.所需的库和模块2.deffind_free_network_port()->int:3.defgenerate_ddp_file(trainer):4.defgenerate_ddp_command(world_size,trainer):5.defddp_cleanup(trainer,file):1.所需的库
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-instance.py
红色的山茶花
YOLO笔记深度学习
instance.pyultralytics\utils\instance.py目录instance.py1.所需的库和模块2.def_ntuple(n):3.classBboxes:4.classInstances:1.所需的库和模块#UltralyticsAGPL-3.0License-https://ultralytics.com/licensefromcollectionsimportab
- 神经网络压缩实验-Deep-compression
无用技术研究所
首发于个人博客,结合论文阅读笔记更佳实验准备基础网络搭建为了实现神经网络的deepcompression,首先要训练一个深度神经网络,为了方便实现,这里实现一个两层卷积+两层MLP的神经网络classnet(pt.nn.Module):def__init__(self):super(net,self).__init__()self.conv1=pt.nn.Conv2d(in_channels=1,
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-errors.py
红色的山茶花
YOLO笔记深度学习
errors.pyultralytics\utils\errors.py目录errors.py1.所需的库和模块2.classHUBModelError(Exception):1.所需的库和模块#UltralyticsAGPL-3.0License-https://ultralytics.com/licensefromultralytics.utilsimportemojis2.classHUBM
- YOLOv8-ultralytics-8.2.103部分代码阅读笔记-trainer.py
红色的山茶花
YOLO笔记
trainer.pyultralytics\engine\trainer.py目录trainer.py1.所需的库和模块2.classBaseTrainer:1.所需的库和模块#UltralyticsYOLO,AGPL-3.0license"""Trainamodelonadataset.Usage:$yolomode=trainmodel=yolov8n.ptdata=coco8.yamlimg
- YOLOv8-ultralytics-8.2.103部分代码阅读笔记-utils.py
红色的山茶花
YOLO笔记
utils.pyultralytics\data\utils.py目录utils.py1.所需的库和模块2.defimg2label_paths(img_paths):3.defget_hash(paths):4.defexif_size(img:Image.Image):5.defverify_image(args):6.defverify_image_label(args):7.defpoly
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-files.py
红色的山茶花
YOLO笔记深度学习
files.pyultralytics\utils\files.py目录files.py1.所需的库和模块2.classWorkingDirectory(contextlib.ContextDecorator):3.defspaces_in_path(path):4.defincrement_path(path,exist_ok=False,sep="",mkdir=False):5.deffil
- 2025年1月文章一览
python
2025年1月编程人总共更新了27篇文章:1.2024年12月文章一览2.《计算机组成及汇编语言原理》阅读笔记:p177-p1773.《计算机组成及汇编语言原理》阅读笔记:p178-p1994.《计算机组成及汇编语言原理》阅读笔记:p200-p2405.《计算机组成及汇编语言原理》读后感6.《CPythonInternals》阅读笔记:p1-p197.《CPythonInternals》阅读笔记:
- 《Memory Barriers a Hardware View for Software Hackers》阅读笔记
落樱弥城
基础知识c++笔记
CPU设计者引入内存屏障(memorybarriers)是为了应对在多处理器系统(SMP)中,内存引用重排序可能导致的同步问题。尽管重排序可以提高性能,但在某些情况下(如同步原语),正确的操作依赖于有序的内存引用,因此需要使用内存屏障来强制执行顺序。 要深入理解这个问题,需要了解CPU缓存的工作原理,尤其是如何使缓存有效工作。以下是相关内容的概述:缓存结构:介绍缓存的基本结构和工作机制。缓存
- 双线性函数的紧凑超平面散列(Compact Hyperplane Hashing with Bilinear Functions)阅读笔记
Legend105CC
机器学习主动学习机器学习
Abstract超平面散列(Hyperplanehashing)的目的是快速搜索到离超平面最近的点,并在使用支持向量机(SVM)扩大主动学习方面显示出实际效果。存在问题:不幸的是,现有的随机方法需要长哈希码才能达到合理的搜索精度,因此会降低搜索速度和内存开销。解决方法:为此,论文(CompactHyperplaneHashingwithBilinearFunctions)提出了一种新的超平面哈希技
- YOLOv10-1.1部分代码阅读笔记-tasks.py
红色的山茶花
YOLO笔记深度学习
tasks.pyultralytics\nn\tasks.py目录tasks.py1.所需的库和模块2.classBaseModel(nn.Module):3.classDetectionModel(BaseModel):4.classOBBModel(DetectionModel):5.classSegmentationModel(DetectionModel):6.classPoseModel
- YOLOv10-1.1部分代码阅读笔记-checks.py
红色的山茶花
YOLO笔记深度学习
checks.pyultralytics\utils\checks.py目录checks.py1.所需的库和模块2.defparse_requirements(file_path=ROOT.parent/"requirements.txt",package=""):3.defparse_version(version="0.0.0")->tuple:4.defis_ascii(s)->bool:5
- YOLOv10-1.1部分代码阅读笔记-loss.py
红色的山茶花
YOLO笔记深度学习
loss.pyultralytics\utils\loss.py目录loss.py1.所需的库和模块2.classVarifocalLoss(nn.Module):3.classFocalLoss(nn.Module):4.classBboxLoss(nn.Module):5.classRotatedBboxLoss(BboxLoss):6.classKeypointLoss(nn.Module)
- YOLOv9-0.1部分代码阅读笔记-common.py
红色的山茶花
笔记
common.pymodels\common.py目录common.py1.所需的库和模块2.defautopad(k,p=None,d=1):3.classConv(nn.Module):4.classAConv(nn.Module):5.classADown(nn.Module):6.classRepConvN(nn.Module):7.classSP(nn.Module):8.classMP
- YOLOv7-0.1部分代码阅读笔记-common.py
红色的山茶花
YOLO笔记
common.pymodels\common.py目录common.py1.所需的库和模块2.defautopad(k,p=None):3.classMP(nn.Module):4.classSP(nn.Module):5.classReOrg(nn.Module):6.classConcat(nn.Module):7.classChuncat(nn.Module):8.classShortcut
- YOLOv8-ultralytics-8.2.103部分代码阅读笔记-block.py
红色的山茶花
YOLO笔记深度学习
block.pyultralytics\nn\modules\block.py目录block.py1.所需的库和模块2.classDFL(nn.Module):3.classProto(nn.Module):4.classHGStem(nn.Module):5.classHGBlock(nn.Module):6.classSPP(nn.Module):7.classSPPF(nn.Module):
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-head.py
红色的山茶花
YOLO笔记深度学习
head.pyultralytics\nn\modules\head.py目录head.py1.所需的库和模块2.classDetect(nn.Module):3.classSegment(Detect):4.classOBB(Detect):5.classPose(Detect):6.classClassify(nn.Module):7.classWorldDetect(Detect):8.cl
- clean code阅读笔记——如何命名?
HilariousDog
代码质量笔记windows
命名的原则1.“小处诚实非小事“有个词叫做”以小见大“。以建筑作喻,宏大建筑中最细小的部分,比如关不紧的门、未铺平的地板,甚至时凌乱的桌面,都会将整个大局的魅力毁灭殆尽,这就是整洁代码之所系。2.有意义的命名选个好名字,省下来的时间比花掉的多。一旦发现有更好的名字,就换掉旧的名字。2.1名副其实变量、函数和类的名字应该告诉读者:它为什么存在、它做什么事、它应该怎么用。如果名称需要注释来补充,那就不
- 【Innodb阅读笔记】之 二进制文件
꧁瀟洒辵1恛꧂
笔记
一、什么是二进制文件二进制文件记录了对mySQL数据库执行修改的所有操作,不包括select和show这类操作,因为这类操作对数据库本身没有修改。但是,当执行修改操作,数据库没有发生变化,这类操作也会写入二进制文件中。通过配置参数log-bin开启二进制日志。如:#配置文件写入开启二进制指定文件名称为:mysql-bin#log-bin#不指定名称默认使用主机名log-bin=mysql-bin#
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-transformer.py
红色的山茶花
YOLO笔记transformer深度学习
transformer.pyultralytics\nn\modules\transformer.py目录transformer.py1.所需的库和模块2.classTransformerEncoderLayer(nn.Module):3.classAIFI(TransformerEncoderLayer):4.classTransformerLayer(nn.Module):5.classTra
- YOLOv9-0.1部分代码阅读笔记-train.py
红色的山茶花
笔记YOLO深度学习
train.pytrain.py目录train.py1.所需的库和模块2.deftrain(hyp,opt,device,callbacks):3.defparse_opt(known=False):4.defmain(opt,callbacks=Callbacks()):5.defrun(**kwargs):6.if__name__=="__main__":1.所需的库和模块importargp
- 《CPython Internals》阅读笔记:p360-p377
python
《CPythonInternals》学习第20天,p360-p377总结,总计18页。一、技术总结1.seaborn可视化工具。2.dtrace(1)安装sudoapt-getinstallsystemtap-sdt-dev(2)编译./configure--with-dtracemakecleanmake3.snakeviz适用于cProfile的可视化工具。二、英语总结(生词:0)无。关于英语
- 桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
- 《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
- [JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop商城系统jshop电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
- 算法之时间复杂度
周凡杨
java算法时间复杂度效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
- Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
- Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
- android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
- Oracle和谷歌Java Android官司将推迟
aijuans
javaoracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
- linux shell 常用命令
antlove
linuxshellcommand
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
- Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术Java解析xml文档dom技术XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
- underscore.js 学习(二)
bijian1013
JavaScriptunderscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
- plSql介绍
bijian1013
oracle数据库plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
- 【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
- spring mvc开发中浏览器兼容的奇怪问题
bitray
jqueryAjaxspringMVC浏览器上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
- Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
- java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
- 《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
- [轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
- 重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
- Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
- 四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DBbackup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
- github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
githubgitwebhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
- ">的作用" target="_blank">JSP中的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
- guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
- Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScriptjquerycss
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
- 美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
- N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
- C语言算法之打渔晒网问题
qiufeihu
c算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
- XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST