Java 内存划分:
在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。
程序计数器:
作用是当前线程所执行的字节吗的行号指示器。Java的多线程是通过线程轮流切换并分配处理器执行时间方式来实现的。因此,每个线程为了能在切换后能恢复到正确的位置,每个线程需要独立的程序计数器。
Java 虚拟机栈:
每个放在被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。虚拟内存栈就是我们经常讲的“栈”。其中局部变量表所需内存是在编译期完成分配。
本地方法栈:
与虚拟机栈类似,区别在于虚拟机栈为虚拟机执行Java方法服务,而本地方法栈为虚拟机使用Native方法服务。
Java 堆:
被所有程序共享,并且在虚拟机启动时创建。此内存区域作用是存放对象实例。根据Java虚拟机规定,Java堆可以处于物理上不连续的内存空间,只要逻辑上连续即可。
方法区:
与堆相同,在各个线程间共享。作用是存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
运行时常量池:
是方法区的一部分。作用是存储编译期生成的各种字面量和符号引用。
想成为下一个海明威吗?或许只是想在校刊有自己的豆腐块,让自己的博客富有动人文字?那么,你需要先把自己的文笔犀利起来。而且成为一位优秀的作家并不是一件容易的事情。你需要艰苦卓绝的努力,但是这些支出的努力是值得的。只要你从今天做起,一点一滴的努力,你一定可以成为一个优秀作家。
就我个人而言,我已经写了17年了,各式各样的文体出版物都写过:小说,报刊杂志,博客等等,但是我现在还在努力着,以使自己写出更好的文章。对于任何作家都是一样的:没有最好,只有更好。回顾我近二十年的写作生涯,其中有过痛苦的经历,也有成长的喜悦。下面和大家分享一些体会,我想,无论你现在是什么水平,这些建议(至少第12条)对你而言,觉得会有所启迪,共勉吧。
- 阅读优秀的作品:这是显而易见的,但立竿见影的方法。如果你不读更多的好作品,你就不知道如何写出更好的作品。优秀的作家都是从阅读别人的佳作开始,接着开始模仿,最后超越他们,形成自己的风格。尽可能的多读名著,在看内容的时候,更要留意文章的问题和写作的技巧。
- 尽可能多的写:每天都写,如果可能话,每天写几次。你写得多了,也就写得好了。学习如何写作和其他的学问道理是一样的,熟能生巧。写写你自己,写写博客,向出版社投稿。只是写,全情投入的写,练得越多,你的写作水平就提升得越快。
- 随时随地记下你的灵感:随身带一本小笔记本(纳博科夫身上装满了小卡片),当你对你构思的小说,文章,或是小说里的人物有什么灵感的时候,马上记下来。当你听别人谈话时的只言片语而所有顿悟时,或看到一段散文诗或是一句歌词让你很感动时,都可以马上当他们记下来。灵感总是转瞬即逝,你及时的记录下来,便可以成为你写作的素材。我的习惯是,为我的博客要写的文章列一个清单,不断的补充它。
- 专门的写作时间:每天找一个没有任何打扰的时间段作为专门的写作时间,让这成为习惯。对我而言,清晨的时间是最佳的,午饭,傍晚,或者深夜的那段时间也可以。无论你是做什么工作的,把写作当作每天必须完成的任务去做。每天至少写半个小时,当然有一个小时更好。若你同我一样,是一个全职的作家,那么你需要写更多的小时,请你不要担心,这只会让你写得更好。
- 随便涂鸦:面对整张的白纸,整版的白屏,无从开始,肯定恐怖。你会想:我还是看看邮件或是小憩一会了吧!先生,千万别这样。马上开始写,马上打字,你写什么没有关系,只是让我听到你敲键盘的声音吧。只要你开始写了,什么都好办了。像我的话,我喜欢先敲上我的名字和文章的标题,这应该不难吧,然后再慢慢的展开情节,全身心地融入进去…关键是:开始可以随便写写,随便涂鸦,但是尽快开始写正文。
- 集中精神:写作是一件一心一意的事情,在嘈杂的环境或是同时干着别的事情,是不可能写好的。写作需要一个安静的环境,需要一点点柔和的背景音乐。即使是最低要求,你也需要在全屏(没有其他软件得干扰)的条件下,使用WriteRoom, DarkRoom,Writer这些写作软件,不受打扰的写作。关掉邮箱,关点MSN和Gtalk,关掉电话和手机,关掉电视,清理掉书桌上无用的东西。清除与写作无关的一切杂念,现在就是写作的时间,好像把自己放进一个盒子里,在没有任何打扰下进入写作状态。
- 先计划,再写:
这好像和“随便涂鸦”有些矛盾,实际上不是这样。在坐下来正式写之前,先做个计划或是脑子里先预演一下,这是非常管用的办法。每天跑步的时候想想要写的东西,或是散步的时间来个头脑风暴;然后把想到的记下来,做一个扼要的提纲;等真正准备好开始写了,可以很快的展开,因为思路和想法都有了。这里,有一个构思小说的三部曲,可以参考这个:Snowflake
Method. - 创新:
你需要模仿名家,这并不意味你要跟他们写得一模一样。你可以试试新的写法,从这里学一点,从那里学一点。渐渐地,你就会有了自己的风格,自己的文体,自己的思路。试试一些不一样的表达,或创造一些与众不同的表达方式,每一方法你都可以尝试,看看它到底怎么样,不好就不用呗。 - 修改:
你开始构思你的文字,然后试着写,让故事情节展开,最后你需要回过头再看看你都写了什么。这点很重要,很多写手一旦写好就不想修改,已经费时费力地写好了,还要再花时间修改,实在是一件吃力不讨好的活。但如果你想写得更好,你就要学会如何修改。好的作品是经过反复的推敲和修改而成的,这会让你的作品从平庸中脱颖而出。看看你写的东东,不仅仅是那些拼写和语法错误,还有那些无意义的词,混乱的结构,和让人搞不懂的句子。修改的目标是:更清晰,更直接,更鲜活。 - 简明扼要:
这是你在修改的过程中,最重要的一件事情。一句句,一段段的修改,把无关主题的统统都删掉。一个短句比一段冗长的废话更具说服力,大白话比晦涩的专业术语更受欢迎。记得:简单就是力量。 - 富于感染力的句子:在短句中使用富有感染力的动词,当然,并没有要求每一句都是这样,你需要变化。但是,多试试能够吸引人的句子。而且,你没有必要等到你要修改的时候再用,你刚开始写的时候就要考虑这个问题。
- 获取别人的反馈:
闭门造车不会有任何进步,让别人读读你的文章给你回馈,最好有经验的作家和编辑。他们见多识广,会给你很中肯和有见地的建议。认真的听,即使是一些批评,也接受它,忠言逆耳,这样只会让你写得更好。 - 是骡子还是马,拉出来溜溜:就你而言,你需要让别人读到你的作品。你的作品不是你想谁看谁就看的,让所有的人都读到你的文章。你就要出版自己的书,发表自己的短篇小说和诗歌,给出版社供稿。如果你已经开始写博客了,恭喜你,这是一个好的开始。若现在还没有人浏览过,你就需要把它放到流量更大的博客服务网站上去,让读者给你留言,给你提出建议。所有的人都会看你写东西,也许刚开始时会是件伤脑筋的事情,但这是每一位作家成长的必由之路,马上发表你的文字吧。
- 采用对话式的文体:
很多人的写作都很正式,但是我发现像我们说话一样写作会使文章更流畅(没有叹生词)。这样一来,读者看起来会更舒服。刚开始这么写并不容易,你需要坚持这么做。也许,会带来另一个问题,为了读起来更口语化,你需要打破一些语法规则(就像我的前一句那样)。因为如果生搬硬套语法,会让你的文章看起来很不自然。若没有其他原因,就不要破坏语法规则。你需要知道你在做什么和为什么这样做。 - 好开头和结尾:
开头和结尾是文章的重点。特别是开头。如果你不能在故事的开始就吸引读者,那他们就很难有耐心把整篇文章读完。所以投入更多的时间去考虑怎么写好开头,读者一旦对你开头感兴趣,他们会想知道得更多…写好开头后,再弄一个精彩的结尾,这会让读者更加期待你的下一篇佳作。
原文:A Guide to Becoming a Better Writer: 15 Practical Tips – Zenhabits | 翻译:Cooldog111
1,什么是字符编码?
字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。一组抽象字符的集合就是字符集(Charset)。字符集的出现是为了信息进行传播储存提供方便。目前常用到字符集有:ASCII,ISO 8859-1,Unicode,GB2312
3,各种编码集有哪些特点?
ASCII:
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。
包含内容:控制字符(回车,退格,换行键),可显示式字符(英文大小写,阿拉伯数字和西文符号)。
技术特征:7位(bits)表示一个字符,共128字符
不足之处:只能表示英语,想西欧,东亚和拉美地区的语言符号无法表示。
ISO 8859-1:
ISO 8859-1,正式编号为ISO/IEC 8859-1:1998,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。
它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。曾推出过 ISO 8859-1:1987 版。
包含内容:ASCII编码包含的,部分西欧使用的语言。
技术特征:8位表示一个字符。
Unicode:
Unicode字符集编码是Universal Multiple-Octet Coded Character Set 通用多八位编码字符集的简称,是由一个名为 Unicode 学术学会(Unicode Consortium)的机构制订的字符编码系统,支持现今世界各种不同语言的书面文本的交换、处理及显示。该编码于1990年开始研发,1994年正式公布,最新版本是2005年3月31日的Unicode 4.1.0。
技术特征:16位编码,每个字符占用2个字节。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)。如果一个7位的ASCII字符的Unicode文件,在传输过程中如果使用2个字节的原Unicode编码传输会造成比较大的浪费。对于这种情况,可以使用UTF-8编码,这是一种变长编码,它将基本7位ASCII字符仍用7位编码表示,占用一个字节(首位补0)。而遇到与其他Unicode字符混合的情况,将按一定算法转换,每个字符使用1-3个字节编码,并利用首位为0或1进行识别。
GB2312:
GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
包含内容:6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
技术特征:每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。“高位字节”使用了0xA1-0xF7,“低位字节”使用了0xA1-0xFE0xA0)。 由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
什么是绩效?
所谓的绩效,简单的说就是事物运动过程中表现出来的状态或结果,可通过客观的考核和主观评估等评价表现出来。绩效管理一直以来是团队管理过程中最让人头疼的事情了。首先,作为智力工作者很难用一种量化指标来衡量团队成员的绩效。其次,绩效关系到广大人民群众的既得利益,所以大家在这方面看得比较重。还有,绩效的高低关乎着团队价值观的导向,作为团队的管理者你想让团队成为什么样的团队就要靠这个来进行价值导向。总而言之,绩效只是一种手段而非目的。
华为绩效管理经验:
说起大公司绩效经验,不得不提华为公司。华为公司绩效考核注重内部公正,透明,很好的将组织目标与个人目标进行结合。考评人须第一时间将考评结果反馈给被考评人,且专门由一级部门主要经理,组成经理人管理团队对绩效考评结果进行评议,并作出最终裁定。华为普通员工每半年进行评估。绩效评估主要采取自下而上的方式进行。绩效评价主要根据员工PBC和KPI计划完成情况进行评估。评估第一步采取自评,由员工根据个人PBC进行自我打分,并根据分数评定绩效等级。第二步,主管根据员工PBC完成情况,结合员工工作态度以及自评分对员工进行打分并作出评价,确定员工绩效等级。第三步,人力资源部对部门人员绩效比例控制情况进行审核,并对绩效评定等级中有明显异常情况进行跟踪审查。第三步,员工绩效最终结果由所在一级部门AT团队进行评定。半年度绩效考核结果出来后,各级主管第一时间与员工进行沟通,对绩效结果评定的原因进行说明,帮助员工制订绩效考核方案,并签订下半年PBC计划,如果员工对绩效结果存有异议,可以向人力资源部或AT团队进行投诉。整体来看整个绩效管理做到公平公开。将绩效的作用发挥到最大。绩效不仅仅只是激励员工的一种手段更多的是一种管理手段。
我们的团队绩效:
就目前我所处的团队来说,做到像华为这样合理的绩效管理还很难。毕竟那么做需要公司级组织的支持。我们只是公司中的一个团队而已。但我们可以借鉴其中的部分东西。
1)设计一份KPI考评体系,主要有工作能力,学习能力和团队配合能力,三个大方面,然后再将其中每一项细分,列出详尽的指标体系。每一个KPI度量指标都附有一个权值,供计算时使用。
2)将指标体系公布,征求大家意见。可以对其中的几项或多数项进行权值调整或删减。
3)每季度进行考评一次,每次先由员工进行工作答辩,由员工向全体成员进行本季度工作总结以及在工作中自己有哪些突出表现和有哪些不足之处。
4)员工进行自评,针对KPI体系中的每一项进行自我打分。
5)员工考评完成后,提交到项目经理处,项目经理根据员工平时表现以及考评答辩和自我考评这几部分,进行评定得出最终考评成绩。
6)项目经理在考评完后,将考评结果反馈给员工,并帮助员工对自己不足处进行改进。
绩效考评要做到科学合理公平的体系很难,但逐步的向科学合理迈进。绩效只是一种工具而非目的。
什么是许可协议?
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。
不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。
而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机。在我们所能想到的应用领域,都有开 源软件存在(象 WordPress,Drupal 这些开源CMS)。然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别。
Apache Licence 2.0
Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。
Apache 协议还有以下需要说明的地方:
- 永久权利 一旦被授权,永久拥有。
- 全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
- 授权免费,且无版税 前期,后期均无任何费用。
- 授权无排他性 任何人都可以获得授权
- 授权不可撤消 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码
分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
- 需要给代码的用户一份Apache Licence
- 如果你修改了代码,需要再被修改的文件中说明。
- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
GNU GPL
通用性公开许可证(General Public License,简称GPL)。GPL同其它的自由软件许可证一样,许可社会公众享有运行、复制软件的自由;发行传播软件的自由;获得软件源码的自由,以及改进软件并将自己作出的改进版本向社会发行传播的自由。GPL还规定,只要这种修改文本的整体或者其某个部分来源于遵循GPL的程序,则该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己做出的限制。因此,遵循GPL流通的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念“相左”。
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
- 可自由复制 你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
- 可自由分发 在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
- 可以用来盈利 你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
- 可自由修改 如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下 @PierreJoye 写的 Practical Guide to GPL Compliance 一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。
我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的“传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
GPL许可证是自由软件的应用最广泛的软件许可证,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。 (这个似乎最严格,需要公开源代码)
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
GNU LGPL(GNU Lesser General Public License)
GNU 还有另外一种协议,叫做 LGPL (Lesser General Public Licence),它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求,使用了 GPL 代码的产品必须也使用 GPL 协议,开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。
BSD
BSD 在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新 BSD 协议与简单 BSD 协议,这两种协议经过修正,都和 GPL 兼容,并为开源组织所认可。
新 BSD 协议(3条款协议)在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款。
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
- 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
- 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
- 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
MIT
MIT 协议可能是几大开源协议中最宽松的一个,除了必须包含许可声明外,再无任何限制,核心条款是:
该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版权和许可提示。
这意味着:
- 你可以自由使用,复制,修改,可以用于自己的项目。
- 可以免费分发或用来盈利。
- 唯一的限制是必须包含许可声明。
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制。也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
Mozilla Public License
MPL License,允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,它要求基于这种软件得修改无偿贡献版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

