首页 > 代码库 > Atitit  深入理解命名空间namespace  java c# php js

Atitit  深入理解命名空间namespace  java c# php js

Atitit  深入理解命名空间namespace  java c# php js

 

1.1. Namespace还是package1

1.2. import同时解决了令人头疼的include1

1.3. 在不支持ns的语言里面使用ns,前缀发1

1.4. 常用命名空间的统计(约150个)1

1.5. 命名空间2

1.5.1. struts22

1.6. Linux 就支持6种不同类型的命名空间。2

 

 

1.1. Namespace还是package

 

1.2. import同时解决了令人头疼的include

import引入了真正的包(package)或者namespace的概念,更好的组织程序的结构,比include只是简单的把头文件的内容加入源文件的原始处理方法要先进。
import同时解决了令人头疼的include循环引用定义的问题。
至于include编译次数的问题,解决头文件被多次编译,其实可以把常用的头文件加入预编译头,以缩短编译的时长。
因为include的原始性,include也具有优势:在处理一些冗长的宏定义,可以通过多次include来充当代码生成器。



 

 

 

1.3. 在不支持ns的语言里面使用ns,前缀发

Qt著名的Q前缀,  oc著名的ns前缀命名空间

 

1.4. 常用命名空间的统计(约150个)

项目常用模块与组织命名空间.xlsx

 

XML也有类似的命名空间(namespace)机制

 

1.5. 命名空间

编辑 

1.5.1. struts2

struts2里,namespace是package里的一个属性,用来标记action的访问路径。注意:只有package的namespace才能标记路径而不是name属性。在struts2里,存在着一个是默认namespace-"",若package不指定namespace,则package里的action就使用默认namespace。若访问action时没有指定namespace则struts2会先在根namespace-"/"里查找action,找不到再到默认namespace里查找action。再找不到就会报错,也就是说struts2只会查找两层namespace

 

1.6. Linux 就支持6种不同类型的命名空间。

它们的出现,使用户创建的进程能够与系统分离得更加彻底,从而不需要使用更多的底层虚拟化技术。

· CLONE_NEWIPC: 进程间通信(IPC)的命名空间,可以将 SystemV IPC POSIX 的消息队列独立出来。

· CLONE_NEWPID: 进程命名空间。空间内的PID 是独立分配的,意思就是命名空间内的虚拟 PID 可能会与命名空间外的 PID 相冲突,于是命名空间内的 PID 映射到命名空间外时会使用另外一个 PID。比如说,命名空间内第一个 PID 1,而在命名空间外就是该 PID 已被 init 进程所使用。

· CLONE_NEWNET: 网络命名空间,用于隔离网络资源(/proc/netIP 地址、网卡、路由等)。后台进程可以运行在不同命名空间内的相同端口上,用户还可以虚拟出一块网卡。

· CLONE_NEWNS: 挂载命名空间,进程运行时可以将挂载点与系统分离,使用这个功能时,我们可以达到 chroot 的功能,而在安全性方面比 chroot 更高。

· CLONE_NEWUTS: UTS 命名空间,主要目的是独立出主机名和网络信息服务(NIS)。

· CLONE_NEWUSER: 用户命名空间,同进程 ID 一样,用户 ID 和组 ID 在命名空间内外是不一样的,并且在不同命名空间内可以存在相同的 ID

 

 

参考

Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package  

 

编程语言中import比起include来是更先进的模块管理机制吗? - 知乎用户的回答 - 知乎.htm

DFS 命名空间概述.htm

介绍 Linux 的命名空间_Linux教程_Linux公社-Linux系统门户网站.htm

 

 作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名:Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui 

埃米尔 阿提拉克斯 阿克巴  马哈茂德  阿提拉 所罗门  阿尔 拉帕努伊   

常用名艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源:attilax的专栏   http://www.cnblogs.com/attilax/

--Atiend

 

Atitit  深入理解命名空间namespace  java c# php js