中国站长之站

中国站长之站,第1张

站长(WEBMASTER):就是拥有独立域名网站,通过互联网和网站平台向网民提供资讯、渠道、中介等网络服务的个人。随着互联网的普及,出现了一群特殊的人,他们共有一个名字叫做“站长”。站长泛指拥有个人网站的群体,因此成为一名站长必须满足一个前提,那就是拥有一个或一个以上独立域名网站。拥有个人主页、博客、空间都不能算真正意义上的站长。站长是一种特殊的群体,而不是一种职业。很多站都有正式的职业,可能是学生、教师、科学家、公务员等,还有一些站长甚至有自己的企业,因此大多数站长以网名示人,而真正的名字并不为大家熟知。站长是最贴近互联网的草根群体,是推动中国互联网发展的源动力。目前中国互联网上,大多数中小型网站都是个人站长搭建的。大多数站长的网站都有通用的程序搭建,站长创建的站点几乎包含所有类型的网站,其中以资讯和网络社区最多。在这个特殊的“站长”群体里面,不乏大部分是个人站长,在他们坚持梦想的同时不断创新,有部分已经开始了商业转型。音乐、小说、下载、影视、私服等有版权争议的站长,均在此不一一列举。编辑本段2007年互联网十大杰出青年2007年已经走过,回首2007,展望2008,他们给我们留下深刻的记忆,他们在改变着中国互联网,所以我们有理由给这些人鲜花和掌声。一个伟大的时代总是涌现一个个英雄,一个伟大的网络更是有一位位时代骄子,现选出2007年中国互联网十大杰出青年如下:第一名:马云马云,外号“马大帅”,浙江人,号称“中国电子商务教父”,从一个英语老师走到一个让人高山仰止的巅峰。2007年,阿里巴巴成功上市,并创下中国互联网企业市值之最,手握20亿美元现金的马云又开始做阿里妈妈。阿里妈妈是一个新型广告平台,并且短时间内成为该领域前三名。财散人聚,马云有博大的胸怀,一个了不起的东方小个子。第二名:张朝阳张朝阳,他永远都是焦点,他总是挑战着人们的观念,他的搜狐已经走过10年。2007年,张朝阳花数亿美元购买了豪华游艇,网络游戏天龙八部成功运营,奥运搜狐可能把搜狐带入全新的高度。2007年,搜狐博客开放API,成为中国首个开放接口的门户站点。开放将是2008年的一个大主题,张朝阳明智而大胆,值得敬佩。第三名:史玉柱史玉柱,一直是一个倍受争议的人物,不过不能掩盖他是一个杰出的人物。2007年征途上市,神奇的人物史玉柱在脑白金成功后,在网络游戏领域快速成为巨人。史玉柱,很强大。第四名:许朝军许朝军,基本上还算是80后,目前是校内网的负责人,中科大少年班出来的神童。校内网短短时间内成为国内最大的SNS社区,FACEBOOK奇迹正在中国上演,许朝军就是一个领导者。第五名:刘兴亮刘兴亮,过去的一年十分火爆,人气旺旺,他为人平和,开创了IT龙门阵活动,使得大江南北的IT人能够有机会聚到一起交流心得,让创业者相互交流,让新手学到经验。刘兴亮本人向来生活节俭,经常帮助来北京闯荡的年轻人,来自江西的有志青年詹鹏每逢过节都被刘兴亮带回家一起吃节日饭,詹鹏好几次边说边激动地流眼泪。刘兴亮作出的贡献不是用金钱的数量来衡量的,只能让历史来评说。第六名:戴志康戴志康,康盛创想的创始人,80后,对WEB20的理解非常的深刻,他的DISCUZ代表了中国PHP开发的一大阵营,论坛产品已经被很多著名网站采用。戴志康的产品改变着中国互联网,他是一个看不见的互联网引擎。第七名:达贝妮达贝妮,美女CEO,81年,PCPIE视频搜索的CEO,对视频这一高技术含量的领域敢于开拓,达贝妮勇敢无畏,而且作出了很多创新性的东西,值得称道。曾经被誉为“淘宝女王”,是中国网络拍卖平台捧出的第一颗明星。在网上已销声匿迹一年多后,又出现在IT江湖,而这次她的身份是视频搜索网站PCPIE的CEO。第八名:杨守斌杨守斌,从一个传统企业的成功企业家转换到一个互联网行业的CEO,胆识过人,山东大汉,勇气与智慧于一身。他创建了家里会网站,成为传统行业投入互联网怀抱腛。第九名:王航王航,好大夫在线的创办人,前奇虎副总裁,当年雅虎一搜的总经理。王航创办好大夫在线的原因,据说是妻子生孩子时候找大夫费了好大的劲,所以自己下决心做一个好大夫在线,让人们很容易找到好大夫。第十名:陈中陈中,不是大老板,不是CEO,他是搜狐的一名编辑。他考虑自己所在的网编群体,创建了一家叫鞭牛士的网站,专门关注网编们的故事、情感、工作等等,并迅速取得了网编群体的认可,据传鞭牛士已经被人花了50万美元收购。他们这里面的有些人就是典型的站长。

晕,当然是不需要设置啦,说的再深奥如果说的你不理解的话也等于没说,而且在新手眼前表现的很有水平也很垃圾,鄙视一下然后回答你的问题,因为你在windows下选的那个winnt32的批处理了,只要双击了然后就不用管了,电脑会自动重启自动重装到C盘里,不会提示你是否先格式化,重装之后就等于格式化了一遍。如果想还原C盘的文件的话用easy recovery,这不关SP3的事,不论是那个系统都是这样的,如果你确定是一键还原的话那就是直接调用硬盘上的GHOST文件,你还原出来的系统和光盘的内容没有任何关系。等于还是你现在的系统。有不明白的问题发信息问我就行

权利即实体

其实这是程序正义与实体正义的选择问题:

首先,从程序法与实体法的产生来看,有社会就有纠纷,通过一定的社会制度来解决纠纷就尤为必要,出于保持社会安定的本能,倾向于对一定种类的纠纷采取大致相同的解决方法,社会的组成人员对此也加以承认并形成特定的期待。长期演化的结果是:只要没有特殊情况,当权者反而逐渐要受这种纠纷解决方式的约束。正是经过这样的过程,实体法才得以形成。英美法系与大陆法系的根源——英国法与罗马法中,私法实体法上的重要法则,全部是经过现实的诉讼而形成的。依当时的社会习惯,通常是解决纠纷的实践程序在前,而总结法官的判例和逐渐形成的实体法在后。由此可见,程序法具有实体法形成的母体作用。

其次,从程序法与实体法的发展来看,诉讼程序的发展推动了实体法的进程。无论是对习惯的确认,还是由于社会的发展带来新的事态而有新的诉讼形式、诉权被追加进来,都要通过诉讼程序加以肯定。当然,实体法的发展也带动了程序法的发展,如刑法关于一些高科技、高智商犯罪的规定明确后,刑事诉讼法对这些新型犯罪的证据的理论研究又深入了一层。可以说,实体法的发展又推动了程序法的发展,并确立了一些新的诉讼程序原则,使得程序法能够适应变化了的实体法。

程序法的独立性表现为程序正义。实体法追求的是实体正义,但变动不居的社会现实,不可能形成完美无缺的实体法,法官审判的正义性不仅仅是实体正义,还应有程序正义。诉讼程序自身追求程序正义,以确保诉讼参与人在诉讼中的地位平等,人格尊严、人身权利受到尊重,能在公正地位上充分行使自己的控告、辩护、作证等权利;保证法官能公正地听取各方意见,遵守回避制度,保证司法独立。英国有句古老的箴言:正义不仅要得到实现,而且要以人们看得见的方式得到实现,这种“看得见的方式”就是正义的诉讼程序。诉讼程序正义的核心在于公正听审,体现司法公正。诉讼的目的在于实现诉讼结果正义,而程序正义与实体正义的结合,才能真正实现诉讼结果正义,单独强调实体正义,就会为了实现实体正义而不择手段,刑讯逼供也就成为常用手段,人权、人格尊严将会被践踏,而单独强调程序正义,则可能导致审判的僵化,不利于实体正义的实现,甚至妨碍实体正义的实现,当然也就违背了诉讼的根本目的。

程序法具有自生的独特内在价值。一方面,它是实现实体正义的工具,是一种手段;另一方面,它又追求着独特的本身固有品质,即程序的公正、独立、正义。正是因为这种属性使得程序法独立于实体法,具有独立性。诉讼程序在实现实体正义过程的同时,向诉讼参与者展示、证明判决的公正性,吸收因实体法的不同带来的缺憾,以消除人们心中对实体结果不满的情绪。当今世界已变得越来越错综复杂,其价值体系五花八门,常常很难就实体上的某一点达成一致,一个问题的答案往往会因人而异,因组织而异。程序是他们唯一能达成一致的地方,一旦他们同意了程序,则无论是何结果,都必须接受所同意的程序带来的结果。程序正义同时也是衡量法官审判正义的一项根据,法官要根据实体法的规定断案,而法官对实体法规定的执行很大程序上取决于程序法,因此,法官的法律意识中必须有程序正义,这也是司法公正对裁判者素质的一项基本要求。

程序法的另一特性是它的优先性。相对于个案而言,一个实体案件的判决结果是否正确,是否进行重审或再审,案件的判决结果是产生积极还是消极影响,都是个案影响,不会也不能影响到整个司法体系。若牺牲程序法的优先性去满足个案的需要,并形成习惯,那么法官的自由裁量权会被滥用,法律的指引、教育、评价、预测功能就会下降,当事人对自身利益无法作出正常的预测,人们对法律的威严会失去信心。而诉讼程序是社会成员都同意的解决纠纷的方式,即使在诉讼程序下得到了实体并不公正的结果,即个案不公,人们仍然会认为是合理的结果。

诉讼程序优先性的内在要求,是要求人们确立一种非经正当程序的审判结果即非法的意识。尽管各国的文化、历史、经济背景不同,但人们对这方面的认识已走向趋同。程序优先性在审判中的地位也日益重要。虽然,在某些情况下,程序优先性与个案的实体公正有冲突之处,但从保障人格尊严、保障参与者处于公平的法律地位,充分发表自己意见的权利来看,保证程序法的优先性,利大于弊。诉讼程序的属性是诉讼程序的固有属性,正因其有独立性,决定了它独立于实体法;因为其有优先性,决定了它撇开个案影响而维持诉讼程序的完整划一体系。程序法与实体法之间有着千丝万缕的联系,但又彼此独立,自成体系。两者的发展虽有不平衡,但差距在缩小。实体、程序并重时代已到来,二者不可偏废,对它们中的任何一个轻视都会带来不利影响。两者和谐的结合、消除、减少冲突,才能使诉讼结果正义实现,达到立法者、民众的意愿。

程序性是现代法治极重要的特性。在程序正义与实体正义之间,法律坚决地站在程序正义的一边。这里面极重要的一点,我认为来自英美思想的经验主义气质。经验主义的法律观很谦虚,它认为严格守住程序性,就是守住了凡人可能到达实质正义的唯一路径。就如一个瞎子摸着大象的腿大叫这就是大象。这在我们看来很可笑,然而这的确就是人类社会及其理性空间的现实,没有其他的途径可以比触摸更加接近真相。程序正义是一种看得见的正义,看不见的正义就算实现了(你怎么知道实现了),当事人之一也不一定服气,说不定双方都不满意。当然,程序正义和实体正义间,常常有差距甚至是巨大的落差,这是现代法律必须关注的问题,但它关注的方式也是非常谨慎和谦虚的,即放弃对实质正义的直接追求,转而追求程序的无懈可击。他假定程序不合法的事情实体就不合法,比如,非法的逮捕是不合法的,即使那个被捕的人真是罪犯,这个观点,刘少奇同志在1956年就曾表明过,但随即被否定。几十年后,我们在刑事法里才重新确立了这个姿态,但已还有相当数量的执法人员心中依旧不服气。然而“真的是罪犯”这个判断是如何作出的呢?离开了程序,事实上我们无法检验和复原这个结论,也无法放心的把评判权交给某个法官。

从实体正义和程序正义的关系看,审判公正包括实体公正和程序公正。刑事审判的实体公正,就是法院的最终裁判使有罪者受到法律应有的惩罚,轻罪轻判,重罪重判,无罪者免受法律追究。这是结果的公正,是实体法律的要求。同时,体现在刑事审判的过程中的程序公正也是极为重要的。公正既是设定程序的基本要求,又是程序所要追求的终极目的。程序公正是实体公正的保障和体现。“正义不仅应得到实现,而且要以人们能够看得见的方式得到实现。”程序公正要求法官在刑事诉讼中要公平地对待控辩双方,保障其平等充分地享有和行使诉权,公正地作出裁决而不偏袒。在刑事诉讼中,由于被告人具有的特殊诉讼角色和社会身份,任何程序上的偏袒和不平等,甚至法官态度、语言、表情上表现出来的先入为主情绪,都有可能使被告人及其家庭成员和社会关系产生某种不公正的感觉,即使裁判做到了实体公正,也不容易服判,影响裁判的权威性和公信度。在司法实践中,有的法官对被告人及其辩护人的意见不注意听,听不进去,甚至听不下去,这不仅形象上不公正,而且也不能保证裁判法结果的公正。因此,法官的形象公正尤为重要。

轰动全国的沈阳刘涌黑社会性质组织案因辽宁省高级人民法院终审将一审法院判处死刑立即执行改判为死刑缓期二年执行,在全国引起了极大争议。对于本案,刘涌该不该判死刑,只能由人民法院经过公正的审判作出结论,但该案给我感触最深的莫过于对于本案的两种截然相反的评论,一是主要由非法律专业人士所主张的观点:刘涌不杀不足以平“民愤”,辽宁省高级人民法院改判刘涌案乃是冒天下之大不韪;另一方则主要是由法律专业人士所主张的观点,即刘涌案件的改判说明法治的进步;说明我们国家对于人权的保障正在走向完善,对于程序违法应当有强有力的制裁措施。假如刘涌案件的案件事实如同判决书所讲的存在刑讯逼供,那么对于刘涌案件的两种观点正代表了两种理念,前者为包青天式的实体正义理念,而后者为辛普森式的程序理念。程序正义与实体正义的碰撞在刘涌案件中得到了突出反映,这一问题引发了人们更广泛的思考。我国的刑事诉讼制度已经走向了对抗式,我们的许多司法改革措施也是以倡导程序正义的英美国家为模型,程序正义在学界受到了大力推崇。台湾学者苏永钦教授在评价台湾的司法改革时曾形象地称之为“漂移在两种司法理念之间的司法改革”,仔细思索刘涌案,人们之所以对这一案件的评论“漂移在两种理念之间”,其深层原因在于:我们国家传统的实体正义至上的司法传统使得普通老百姓难以接受辽宁省高级人民法院的判决,他们认为,一个“罪大恶极”的集团犯罪的首犯竟然没有被判处死刑,其原因竟然是因为刑讯逼供。然而,人们又对刑讯逼供行为深恶痛绝,同样轰动全国的云南杜培武案所引发的人们对刑讯逼供的讨论就充分体现了这一点。当然,两个案件存在着很大差异,一个是罪行累累,而另一个则是蒙冤入狱。具体到刘涌案之所以导致两种司法理念的撞击的直接原因就在于辽宁省高级人民法院所作出的判决书,我们不难发现在这样一份判决书中竟然使用了许多含糊的不确定的表达。依照常理,凡是全国有重大影响的案件,司法机关一般都会调配精兵强将予以审理,其制作的判决书也代表了本院的最高水平。然而,辽宁省高级人民法院以如此含糊的判决文本了断此案,很难让人认为这纯粹是一个技术错误。相反,更容易使人陷入无限遐想,是否本案另有隐情,主审法官是否迫于压力,法院之诉运用这种手法作出这样的判决,是否是在为以后的再审埋下伏笔等等。正是这样一份措辞含糊的判决书使得普通百姓乃至法律人士对判决结果的合理性提出了“合理的怀疑”。一些法律人士对于刘涌案也持一种审慎的批评态度,并且对刘涌案中的一些问题进行过探讨。在刘涌案中为什么有这么多人不接受人民法院作出的“能够经得起历史考验的判决”,为什么“民愤”因为判决书的作出而被再次激起,一个更直接的缘由恐怕就是信息的不公开,当一个案件的真实情况尚未公开,当普通老百姓连一份完整的判决书都难以看到的情况下,他们完全有理由去展开想象,完全有理由去猜测。他们完全可以认为此案之所以改判是因为强权在作案,尤其是在目前刑事司法实践中存在诸多黑幕的情况下,民众有理由这样认为。如今,我们的司法机关也在倡导“司法为民”,这也是“三个代表”重要思想的体现。试想如果我们的法院在作出一份判决书尤其是象这样一份有着重大影响的判决书而不向公众说明真相,这样的司法又怎能让公众满意?

我们注意到我们周边国家和地区进行的司法改革都在强调“民众”,日本推出的“一揽子司法改革计划”,其中明确提出国民的司法参与,在日本司法改革白皮书中明确规定“在刑事诉讼中,应建立广大普通国民与法官共同分担责任,相互配合,主动地实际参与决定审判内容的新制度”,其目的就在于让人民参与司法,了解司法。而我国人民参与司法,不外乎有两种方式。一是参加法庭审判或者旁听(如今电视直播以及媒体能够详细报道的案件还为数不多),另一个途径则是裁判文书,如果裁判文书作为司法程序的最终结果,但我们不能通过它来告知被审判者,告知公众此案的情况是什么,法庭上发生了什么?那么,法院就向公众隐瞒了真相,公众就有理由怀疑案件结果的正当性,因而,其裁判文书的公开是审判公开的课题中应有之义。

尽管刘涌案件的判决书措辞比较含糊,认为案件侦查过程中可能存在刑讯逼供,并且法院基于“案件的具体情况”作出了改判的判决,但就判决书本身来讲,尽管我们批评这份判决没有充分说理,但我们不得不承认这份判决书在形式上存在着一个进步。从这份判决书我们可以看出我们国家的法院在刑事司法实践中日益认识到程序的重要性,敢于排除因为刑讯逼供所取得的证据,并且因此而改判。当然,这一进步并不意味着做到了真正的非法证据排除,但是,辽宁省高级人民法院毕竟迈出了这一步。然而,正是本案中对于刑讯逼供所得的证据的排除以及因此而引发的大讨论,促使我们必须密切关注以后刑事司法改革中对于程序违法问题的解决。如何构建我国的“程序性裁判”则又是一个重大的问题,也是一个刻不容缓的问题。本案中凸显的则是非法证据排除规则的构建问题,而我国目前刑事诉讼法以及司法解释仅仅规定了言词证据的排除规则,并且这些规定还缺乏可 *** 作性。目前学界有关建立“程序性违法的法律后果”的呼声日渐高涨。但从刘涌案件的讨论所展示的“民众的呼声”,又使得我们必须去审慎地思考如何构建中国的程序性裁判。在很多老百姓还受包青天式的实体正义观念深刻影响下,我们能否移植程序正义理念指导下的程序性裁判制度?经过移植或借鉴,在中国构建程序性裁判后,民众能否接受这一制度?这一制度能否发挥积极的功效等一系列问题都是我们还得认真思考的问题。

终极:

1穷尽;最后。

迸溅:

向四外溅:火花~ㄧ激流冲击着岩石,~起无数飞沫。

繁密:

多而密:人口~ㄧ~的树林

ㄧ~的鞭炮声。

伫立:

1亦作"伫立"。

2久立。

3泛指站立。

凝望:

注视:凝望着亲人远去。

伶仃:

也作“零丁”。孤独无依的样子:孤苦伶仃|弱体瘦伶仃。

稀零

稀少。

忍俊不禁:

忍俊:含笑;不禁:无法控制自己。指忍不住要发笑。

剩下的词典里没有,不好意思,尽力了^_^

 

看情况而定。如果有些后期团战没点作用,从很远的地方跑过来,不但人没杀到,反而送了人头。长期这样他也是废人一个。小规模的团战,如果因为有一个人的加入而改变局势,参站还是要来的,一般不管是谁,都要习惯带TP,养成随时支援的习惯。一心打钱也的确没意思。有些伪后期喜欢中单,中单后继续打钱,其实不管是谁,中单后有等级,技能优势。都可以抓人得钱的。关键队友别抢你人头,因为你没打钱,而在抓人。玩电棍,血魔,白牛,兽王。中单抓人一般抓一个死一个。法师就不用说了。

1) 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候,刚刚出现了一些准实时编译器,它们能显著加快速度。当然,我们完全有理由认为会出现适用于更多流行平台的纯固有编译器,但假若没有那些编译器,由于速度的限制,必须有些问题是Java不能解决的。

(2) 和C++一样,Java也提供了两种类型的注释。

(3) 所有东西都必须置入一个类。不存在全局函数或者全局数据。如果想获得与全局函数等价的功能,可考虑将static方法和static数据置入一个类里。注意没有象结构、枚举或者联合这一类的东西,一切只有“类”(Class)!

(4) 所有方法都是在类的主体定义的。所以用C++的眼光看,似乎所有函数都已嵌入,但实情并非如何(嵌入的问题在后面讲述)。

(5) 在Java中,类定义采取几乎和C++一样的形式。但没有标志结束的分号。没有class foo这种形式的类声明,只有类定义。

class aType()

void aMethod() {/ 方法主体 /}

}

(6) Java中没有作用域范围运算符“::”。Java利用点号做所有的事情,但可以不用考虑它,因为只能在一个类里定义元素。即使那些方法定义,也必须在一个类的内部,所以根本没有必要指定作用域的范围。我们注意到的一项差异是对static方法的调用:使用ClassNamemethodName()。除此以外,package(包)的名字是用点号建立的,并能用import关键字实现C++的“

import javaawt;

(7) 与C++类似,Java含有一系列“主类型”(Primitive type),以实现更有效率的访问。在Java中,这些类型包括boolean,char,byte,short,int,long,float以及double。所有主类型的大小都是固有的,且与具体的机器无关(考虑到移植的问题)。这肯定会对性能造成一定的影响,具体取决于不同的机器。对类型的检查和要求在Java里变得更苛刻。例如:

■条件表达式只能是boolean(布尔)类型,不可使用整数。

■必须使用象X+Y这样的一个表达式的结果;不能仅仅用“X+Y”来实现“副作用”。

(8) char(字符)类型使用国际通用的16位Unicode字符集,所以能自动表达大多数国家的字符。

(9) 静态引用的字串会自动转换成String对象。和C及C++不同,没有独立的静态字符数组字串可供使用。

(10) Java增添了三个右移位运算符“>>>”,具有与“逻辑”右移位运算符类似的功用,可在最末尾插入零值。“>>”则会在移位的同时插入符号位(即“算术”移位)。

(11) 尽管表面上类似,但与C++相比,Java数组采用的是一个颇为不同的结构,并具有独特的行为。有一个只读的length成员,通过它可知道数组有多大。而且一旦超过数组边界,运行期检查会自动丢弃一个异常。所有数组都是在内存“堆”里创建的,我们可将一个数组分配给另一个(只是简单地复制数组句柄)。数组标识符属于第一级对象,它的所有方法通常都适用于其他所有对象。

(12) 对于所有不属于主类型的对象,都只能通过new命令创建。和C++不同,Java没有相应的命令可以“在堆栈上”创建不属于主类型的对象。所有主类型都只能在堆栈上创建,同时不使用new命令。所有主要的类都有自己的“封装(器)”类,所以能够通过new创建等价的、以内存“堆”为基础的对象(主类型数组是一个例外:它们可象C++那样通过集合初始化进行分配,或者使用new)。

(13) Java中不必进行提前声明。若想在定义前使用一个类或方法,只需直接使用它即可——编译器会保证使用恰当的定义。所以和在C++中不同,我们不会碰到任何涉及提前引用的问题。

(14) Java没有预处理机。若想使用另一个库里的类,只需使用import命令,并指定库名即可。不存在类似于预处理机的宏。

(15) Java用包代替了命名空间。由于将所有东西都置入一个类,而且由于采用了一种名为“封装”的机制,它能针对类名进行类似于命名空间分解的 *** 作,所以命名的问题不再进入我们的考虑之列。数据包也会在单独一个库名下收集库的组件。我们只需简单地“import”(导入)一个包,剩下的工作会由编译器自动完成。

(16) 被定义成类成员的对象句柄会自动初始化成null。对基本类数据成员的初始化在Java里得到了可靠的保障。若不明确地进行初始化,它们就会得到一个默认值(零或等价的值)。可对它们进行明确的初始化(显式初始化):要么在类内定义它们,要么在构建器中定义。采用的语法比C++的语法更容易理解,而且对于static和非static成员来说都是固定不变的。我们不必从外部定义static成员的存储方式,这和C++是不同的。

(17) 在Java里,没有象C和C++那样的指针。用new创建一个对象的时候,会获得一个引用(本书一直将其称作“句柄”)。例如:

String s = new String("howdy");

然而,C++引用在创建时必须进行初始化,而且不可重定义到一个不同的位置。但Java引用并不一定局限于创建时的位置。它们可根据情况任意定义,这便消除了对指针的部分需求。在C和C++里大量采用指针的另一个原因是为了能指向任意一个内存位置(这同时会使它们变得不安全,也是Java不提供这一支持的原因)。指针通常被看作在基本变量数组中四处移动的一种有效手段。Java允许我们以更安全的形式达到相同的目标。解决指针问题的终极方法是“固有方法”(已在附录A讨论)。将指针传递给方法时,通常不会带来太大的问题,因为此时没有全局函数,只有类。而且我们可传递对对象的引用。Java语言最开始声称自己“完全不采用指针!”但随着许多程序员都质问没有指针如何工作?于是后来又声明“采用受到限制的指针”。大家可自行判断它是否“真”的是一个指针。但不管在何种情况下,都不存在指针“算术”。

(18) Java提供了与C++类似的“构建器”(Constructor)。如果不自己定义一个,就会获得一个默认构建器。而如果定义了一个非默认的构建器,就不会为我们自动定义默认构建器。这和C++是一样的。注意没有复制构建器,因为所有自变量都是按引用传递的。

(19) Java中没有“破坏器”(Destructor)。变量不存在“作用域”的问题。一个对象的“存在时间”是由对象的存在时间决定的,并非由垃圾收集器决定。有个finalize()方法是每一个类的成员,它在某种程度上类似于C++的“破坏器”。但finalize()是由垃圾收集器调用的,而且只负责释放“资源”(如打开的文件、套接字、端口、URL等等)。如需在一个特定的地点做某样事情,必须创建一个特殊的方法,并调用它,不能依赖finalize()。而在另一方面,C++中的所有对象都会(或者说“应该”)破坏,但并非Java中的所有对象都会被当作“垃圾”收集掉。由于Java不支持破坏器的概念,所以在必要的时候,必须谨慎地创建一个清除方法。而且针对类内的基础类以及成员对象,需要明确调用所有清除方法。

(20) Java具有方法“过载”机制,它的工作原理与C++函数的过载几乎是完全相同的。

(21) Java不支持默认自变量。

(22) Java中没有goto。它采取的无条件跳转机制是“break 标签”或者“continue 标准”,用于跳出当前的多重嵌套循环。

(23) Java采用了一种单根式的分级结构,因此所有对象都是从根类Object统一继承的。而在C++中,我们可在任何地方启动一个新的继承树,所以最后往往看到包含了大量树的“一片森林”。在Java中,我们无论如何都只有一个分级结构。尽管这表面上看似乎造成了限制,但由于我们知道每个对象肯定至少有一个Object接口,所以往往能获得更强大的能力。C++目前似乎是唯一没有强制单根结构的唯一一种OO语言。

(24) Java没有模板或者参数化类型的其他形式。它提供了一系列集合:Vector(向量),Stack(堆栈)以及Hashtable(散列表),用于容纳Object引用。利用这些集合,我们的一系列要求可得到满足。但这些集合并非是为实现象C++“标准模板库”(STL)那样的快速调用而设计的。Java 12中的新集合显得更加完整,但仍不具备正宗模板那样的高效率使用手段。

(25) “垃圾收集”意味着在Java中出现内存漏洞的情况会少得多,但也并非完全不可能(若调用一个用于分配存储空间的固有方法,垃圾收集器就不能对其进行跟踪监视)。然而,内存漏洞和资源漏洞多是由于编写不当的finalize()造成的,或是由于在已分配的一个块尾释放一种资源造成的(“破坏器”在此时显得特别方便)。垃圾收集器是在C++基础上的一种极大进步,使许多编程问题消弥于无形之中。但对少数几个垃圾收集器力有不逮的问题,它却是不大适合的。但垃圾收集器的大量优点也使这一处缺点显得微不足道。

(26) Java内建了对多线程的支持。利用一个特殊的Thread类,我们可通过继承创建一个新线程(放弃了run()方法)。若将synchronized(同步)关键字作为方法的一个类型限制符使用,相互排斥现象会在对象这一级发生。在任何给定的时间,只有一个线程能使用一个对象的synchronized方法。在另一方面,一个synchronized方法进入以后,它首先会“锁定”对象,防止其他任何synchronized方法再使用那个对象。只有退出了这个方法,才会将对象“解锁”。在线程之间,我们仍然要负责实现更复杂的同步机制,方法是创建自己的“监视器”类。递归的synchronized方法可以正常运作。若线程的优先等级相同,则时间的“分片”不能得到保证。

(27) 我们不是象C++那样控制声明代码块,而是将访问限定符(public,private和protected)置入每个类成员的定义里。若未规定一个“显式”(明确的)限定符,就会默认为“友好的”(friendly)。这意味着同一个包里的其他元素也可以访问它(相当于它们都成为C++的“friends”——朋友),但不可由包外的任何元素访问。类——以及类内的每个方法——都有一个访问限定符,决定它是否能在文件的外部“可见”。private关键字通常很少在Java中使用,因为与排斥同一个包内其他类的访问相比,“友好的”访问通常更加有用。然而,在多线程的环境中,对private的恰当运用是非常重要的。Java的protected关键字意味着“可由继承者访问,亦可由包内其他元素访问”。注意Java没有与C++的protected关键字等价的元素,后者意味着“只能由继承者访问”(以前可用“private protected”实现这个目的,但这一对关键字的组合已被取消了)。

(28) 嵌套的类。在C++中,对类进行嵌套有助于隐藏名称,并便于代码的组织(但C++的“命名空间”已使名称的隐藏显得多余)。Java的“封装”或“打包”概念等价于C++的命名空间,所以不再是一个问题。Java 11引入了“内部类”的概念,它秘密保持指向外部类的一个句柄——创建内部类对象的时候需要用到。这意味着内部类对象也许能访问外部类对象的成员,毋需任何条件——就好象那些成员直接隶属于内部类对象一样。这样便为回调问题提供了一个更优秀的方案——C++是用指向成员的指针解决的。

(29) 由于存在前面介绍的那种内部类,所以Java里没有指向成员的指针。

(30) Java不存在“嵌入”(inline)方法。Java编译器也许会自行决定嵌入一个方法,但我们对此没有更多的控制权力。在Java中,可为一个方法使用final关键字,从而“建议”进行嵌入 *** 作。然而,嵌入函数对于C++的编译器来说也只是一种建议。

(31) Java中的继承具有与C++相同的效果,但采用的语法不同。Java用extends关键字标志从一个基础类的继承,并用super关键字指出准备在基础类中调用的方法,它与我们当前所在的方法具有相同的名字(然而,Java中的super关键字只允许我们访问父类的方法——亦即分级结构的上一级)。通过在C++中设定基础类的作用域,我们可访问位于分级结构较深处的方法。亦可用super关键字调用基础类构建器。正如早先指出的那样,所有类最终都会从Object里自动继承。和C++不同,不存在明确的构建器初始化列表。但编译器会强迫我们在构建器主体的开头进行全部的基础类初始化,而且不允许我们在主体的后面部分进行这一工作。通过组合运用自动初始化以及来自未初始化对象句柄的异常,成员的初始化可得到有效的保证。

1045页程序

(32) Java中的继承不会改变基础类成员的保护级别。我们不能在Java中指定public,private或者protected继承,这一点与C++是相同的。此外,在衍生类中的优先方法不能减少对基础类方法的访问。例如,假设一个成员在基础类中属于public,而我们用另一个方法代替了它,那么用于替换的方法也必须属于public(编译器会自动检查)。

(33) Java提供了一个interface关键字,它的作用是创建抽象基础类的一个等价物。在其中填充抽象方法,且没有数据成员。这样一来,对于仅仅设计成一个接口的东西,以及对于用extends关键字在现有功能基础上的扩展,两者之间便产生了一个明显的差异。不值得用abstract关键字产生一种类似的效果,因为我们不能创建属于那个类的一个对象。一个abstract(抽象)类可包含抽象方法(尽管并不要求在它里面包含什么东西),但它也能包含用于具体实现的代码。因此,它被限制成一个单一的继承。通过与接口联合使用,这一方案避免了对类似于C++虚拟基础类那样的一些机制的需要。

为创建可进行“例示”(即创建一个实例)的一个interface(接口)的版本,需使用implements关键字。它的语法类似于继承的语法,如下所示:

1046页程序

(34) Java中没有virtual关键字,因为所有非static方法都肯定会用到动态绑定。在Java中,程序员不必自行决定是否使用动态绑定。C++之所以采用了virtual,是由于我们对性能进行调整的时候,可通过将其省略,从而获得执行效率的少量提升(或者换句话说:“如果不用,就没必要为它付出代价”)。virtual经常会造成一定程度的混淆,而且获得令人不快的结果。final关键字为性能的调整规定了一些范围——它向编译器指出这种方法不能被取代,所以它的范围可能被静态约束(而且成为嵌入状态,所以使用C++非virtual调用的等价方式)。这些优化工作是由编译器完成的。

(35) Java不提供多重继承机制(MI),至少不象C++那样做。与protected类似,MI表面上是一个很不错的主意,但只有真正面对一个特定的设计问题时,才知道自己需要它。由于Java使用的是“单根”分级结构,所以只有在极少的场合才需要用到MI。interface关键字会帮助我们自动完成多个接口的合并工作。

(36) 运行期的类型标识功能与C++极为相似。例如,为获得与句柄X有关的信息,可使用下述代码:

XgetClass()getName();

为进行一个“类型安全”的紧缩造型,可使用:

derived d = (derived)base;

这与旧式风格的C造型是一样的。编译器会自动调用动态造型机制,不要求使用额外的语法。尽管它并不象C++的“new casts”那样具有易于定位造型的优点,但Java会检查使用情况,并丢弃那些“异常”,所以它不会象C++那样允许坏造型的存在。

(37) Java采取了不同的异常控制机制,因为此时已经不存在构建器。可添加一个finally从句,强制执行特定的语句,以便进行必要的清除工作。Java中的所有异常都是从基础类Throwable里继承而来的,所以可确保我们得到的是一个通用接口。

1047页程序

(38) Java的异常规范比C++的出色得多。丢弃一个错误的异常后,不是象C++那样在运行期间调用一个函数,Java异常规范是在编译期间检查并执行的。除此以外,被取代的方法必须遵守那一方法的基础类版本的异常规范:它们可丢弃指定的异常或者从那些异常衍生出来的其他异常。这样一来,我们最终得到的是更为“健壮”的异常控制代码。

(39) Java具有方法过载的能力,但不允许运算符过载。String类不能用+和+=运算符连接不同的字串,而且String表达式使用自动的类型转换,但那是一种特殊的内建情况。

(40) 通过事先的约定,C++中经常出现的const问题在Java里已得到了控制。我们只能传递指向对象的句柄,本地副本永远不会为我们自动生成。若希望使用类似C++按值传递那样的技术,可调用clone(),生成自变量的一个本地副本(尽管clone()的设计依然尚显粗糙——参见第12章)。根本不存在被自动调用的副本构建器。为创建一个编译期的常数值,可象下面这样编码:

static final int SIZE = 255

static final int BSIZE = 8 SIZE

(41) 由于安全方面的原因,“应用程序”的编程与“程序片”的编程之间存在着显著的差异。一个最明显的问题是程序片不允许我们进行磁盘的写 *** 作,因为这样做会造成从远程站点下载的、不明来历的程序可能胡乱改写我们的磁盘。随着Java 11对数字签名技术的引用,这一情况已有所改观。根据数字签名,我们可确切知道一个程序片的全部作者,并验证他们是否已获得授权。Java 12会进一步增强程序片的能力。

(42) 由于Java在某些场合可能显得限制太多,所以有时不愿用它执行象直接访问硬件这样的重要任务。Java解决这个问题的方案是“固有方法”,允许我们调用由其他语言写成的函数(目前只支持C和C++)。这样一来,我们就肯定能够解决与平台有关的问题(采用一种不可移植的形式,但那些代码随后会被隔离起来)。程序片不能调用固有方法,只有应用程序才可以。

(43) Java提供对注释文档的内建支持,所以源码文件也可以包含它们自己的文档。通过一个单独的程序,这些文档信息可以提取出来,并重新格式化成HTML。这无疑是文档管理及应用的极大进步。

(44) Java包含了一些标准库,用于完成特定的任务。C++则依靠一些非标准的、由其他厂商提供的库。这些任务包括(或不久就要包括):

■连网

■数据库连接(通过JDBC)

■多线程

■分布式对象(通过RMI和CORBA)

■压缩

■商贸

由于这些库简单易用,而且非常标准,所以能极大加快应用程序的开发速度。

(45) Java 11包含了Java Beans标准,后者可创建在可视编程环境中使用的组件。由于遵守同样的标准,所以可视组件能够在所有厂商的开发环境中使用。由于我们并不依赖一家厂商的方案进行可视组件的设计,所以组件的选择余地会加大,并可提高组件的效能。除此之外,Java Beans的设计非常简单,便于程序员理解;而那些由不同的厂商开发的专用组件框架则要求进行更深入的学习。

(46) 若访问Java句柄失败,就会丢弃一次异常。这种丢弃测试并不一定要正好在使用一个句柄之前进行。根据Java的设计规范,只是说异常必须以某种形式丢弃。许多C++运行期系统也能丢弃那些由于指针错误造成的异常。

(47) Java通常显得更为健壮,为此采取的手段如下:

■对象句柄初始化成null(一个关键字)

■句柄肯定会得到检查,并在出错时丢弃异常

■所有数组访问都会得到检查,及时发现边界违例情况

■自动垃圾收集,防止出现内存漏洞

■明确、“傻瓜式”的异常控制机制

■为多线程提供了简单的语言支持

■对网络程序片进行字节码校验

以上就是关于中国站长之站全部的内容,包括:中国站长之站、番茄花园GHOTS SP3的相关问题、如何理解普通法系国家法律文化中的“程序优先于权利”等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10172714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存