耦合性,法律对抄袭定义是什么

2023-05-17 01:00:05 98阅读

耦合性,法律对抄袭定义是什么?

推荐一篇文章《汤啸天:学术抄袭与合理使用的法律界定》

作者:汤啸天,上海市法学会副秘书长,教授

耦合性,法律对抄袭定义是什么

来源:学术批评网

本文替广大的文科博士生导师说句话

我国《著作权法》第46条规定:“剽窃、抄袭他人作品的”是侵权行为。而该法第22条又允许“为介绍、评论某一作品或者说明某一问题,在作品中适当引用他人已经发表的作品”。从司法实践看,正确区分合理使用与剽窃抄袭是著作权的保护中的常见难题。显然,知识的传播与著作权的保护是并不矛盾的。在知识经济时代,对合理使用与抄袭剽窃作出准确界定,尤显重要。

一、合理使用的内涵与限制条件

(一)合理使用的基本含义

合理使用是著作权法中具有特定含义的术语,但对于研究什么是合理使用却颇有争论。曾有学者将合理使用与自由使用作为同义术语使用。不过,趋向于共识的观点认为:自由使用未必是合理的。自由使用一词易产生可以不受限制地使用他人著作的误解,是一种不科学的提法。显然,合理使用是对他人著作有条件、循规范的正当使用;否则,“合理”二字便无立足之地。笔者认为,合理使用是在法律允许的范围内,出于正当目的,不经著作权人同意,不向其支付报酬,但不损坏其利益而使用其作品的合法行为。

1.使用他人作品的范围要合法

这主要有二层含义:一是指只允许使用他人已经发表的作品,如果抢在他人作品发表之前复制、传播其内容,就是对作者发表权的侵犯;二是对他人作品的使用必须严格限制在《著作权法》第22条所规定的12种情形之内。

2.使用他人作品的目的要正当

这里所指的目的正当并非最终意义上的对社会有益处,而主要是指是否影响著作权人合法权益的实现。质言之,使用他人作品不得具有商业目的,不得有直接或间接营利的意图。我国《著作权法》第22条用“为个人学习研究或者欣赏”、“为介绍、评论某作品或者说明某一问题”、“为报道时事新闻”、“为学校课堂教学或者科学研究”、“为执行公务”、“为陈列或者保存版本的需要”,以及为适宜少数民族或盲人阅读等提法对使用目的作了明确限制。

3.使用他人作品的手段要磊落

从纯技术的角度说,使用他人作品的具体手段有复制、临摹、摄影、录像等。而从法律角度看,唯有指明作者姓名、作品名称,并且不侵犯作者合法权益的使用手段才是光明磊落的。我们之所以将不注明出处抄录他人成果冒充自己的作品称为抄袭,将充当“挂名”作者,不劳而获的做法称之为剽窃,因为这些手段都是非法的,是故意混淆他人成果与自我作品界限的不义之举。

4.使用他人作品的质与量均要适当

任何科学成果概括表达时,都可以浓缩成为一个公式、配方或观点。而这个公式、配方或观点恰是某篇论文(著作)的灵魂和精华所在,通常我们称之为作品的实质性内容。如果使用了他人作品的实质性内容,而自己只是添附与延伸了某些从属性的见解,这种使用就不在合理范围之列。就使用他人作品的数量而言,原俄罗斯、原南斯拉夫、英国等国家都有明晰的量化规定,我国也有过类似的规定。从实践的角度看,引用他人成果无论在质量还是数量方面都是有限制的,我国的《著作权法实施条例》第27条已明确规定:“所引用部分不能构成引用人作品的主要部分或者实质部分。”

(二)合理使用的必要限度

有人认为,凡是符合《著作权法》第22条所列的12种情形的使用都是合理使用。其实,这是一种误解。笔者认为,《著作权法》所列的12种情形是划定了允许使用的范围。允许使用与合理使用是不同的概念,在允许使用的范围内仍可能出现不合理的使用。不经著作权人许可,不向其支付报酬是法律赋予使用人的权利;同时,使用人必须履行注明作者姓名、作品名称、不侵犯著作权人权益的义务。换句话说,准确、完整地履行使用义务是对使用权的必要限制。

依照民法原理,使用是指直接按照财产的性能和用途加以利用、运用。使用包括所有人的使用与非所有人的使用两种情况。所有人对自己的财产具有使用权是不言自明的。非所有人对他人财产(包括知识产权)的使用,必须限定在法律规定或合同约定的范围内,必须严格履行相应的义务。著作权人允许他人合理使用自己的作品并不表示著作权的转移或消失。如果使用他人作品已经或足以给公众造成著作权转移的误解,危害或足以危害著作权人合法权益的获取,非所有人的使用行为即构成侵犯。由此可见,引用他人成果时凡注明作者姓名、作品名称的(习惯上称之为“注明出处”)是明确表示了该知识产权的归属。而使用他人成果不注明出处的,无论因故意或过失,在客观上都会造成该知识产权转移的公众错觉。如果虽已采用注明出处的方式,但因大量抄用他人成果,有碍原作的再版或再次印刷,也应视为侵犯了著作权人的合法权益。

二、学术抄袭的法律界定

江建名先生认为:“剽窃与抄袭义在微殊,但一般理解为:以多少改变形式或内容的方法,将他人作品的全部或部分作为自己的作品加以发表的行为。而抄袭则是剽窃的一种直接手段。”江先生还一针见血地指出:剽窃、抄袭侵权行为的本质是将他人的作品据为己有 。笔者认为,剽窃是侵权的实质——将他人的成果窃为已有,抄袭是剽窃的主要手段——将他人成果直接抄用或略加改头换面后充当本人之作。剽窃还有一种常见的手段是非法署名,即不付出应有的劳动便在他人成果上署名。由于非法署名的争议焦点是某人是否具有署名权,故本文从略不作讨论。

在著作权纠纷中最为棘手、最难正确判断的是抄袭与合理使用的界限。有的法官甚至将此类纠纷的判决责任完全推给鉴定人,采取“鉴定书怎么写我就怎么判“的态度。其实,我国的《著作权法实施条例》第27条已经就区分适当引用与抄袭作了原则的规定,即引用目的仅限于介绍、评论某作品或者说明某一问题;所引用部分不能构成引用人作品的主要部分或实质部分;不得损害被引用作品著作权人的利益。在审判实践中,一般均为原告认为被告抄袭,被告辩称系合理使用,如能依据上列三项规定,从以下方面进行认真审查,就能对案情作出准确的判断。

(一)时间性审查——查明原、被告作品形成谁在先或另有第三方作品在先

时光不能倒流,抄袭之作总是形成于被抄原作以后这是不言而喻的。如果原告能够举证说明被抄袭的原作形成、发表于抄袭之作以前的,法庭应询问被告有无相反的证据,若无相反的证据,则可认定被抄的原作在先。如果争议双方所指向的内容另有第三方作品在先,则应考察原、被告之作与第三方作品间的先后关系以及相似程度。在特定情况下,也会出现A作形成在先,B抄袭A作而A不知晓,C从B作中转抄后被A发现提起诉讼的局面。特别应注意在高等教育与科研领域,有的先创作完成的成果最初以“内部资料“的形式少量印发,某些所谓的“快手”会迅即抄袭抢先公开发表,故必要时可要求原、被告提供原始手稿或原始资料。

(二)内容性审查——查明被告作品是否独立于原告之作

非演绎类的学术作品之间不应当存在隶属、重复、缩简、扩张关系,原因在于不同作品是不同人的研究成果。就像世界上没有两个完全相同的人一样,不同主体在不同时间、空间条件下的研究成果不可能完全相同。在科学研究中出现殊途同归现象是合理的,这里所说的“殊途“实际上是从不同起点或角度出发而目标相一致的曲线,各曲线除可能出现交叉与少量重叠之外,各自的实际形成是不一致的。这一观点无论在自然科学或社会科学领域均概莫能外。一般地,越是高起点、高水平的作品,与他人作品在构思、主题、内容和表述上出现偶合的概率越小。但由于抄袭者的目光总是盯住佳作,故必须对争议之作的独立性进行审查。

1. 内容独立否

学术成果的内容是指其所表达的实质性信息及其意义。非抄袭作品在内容上的独立性显而易见,尤其是自成一说的作品,尽管研究范围可能与他人相同,甚至连论文标题均相同或相似,但细看其内容即可见到彼与此的实质性差别。这就是说,在同一研究范围内,可以出现研究对象一致或大体一致的论著,但只要不是抄袭,各成果彼此独立,各有不同的依据和见解,在表达方式上也是个性多于共性。

有的“文抄公”特别善于做改头换面的“整容术”,审查时应特别过细。形式与内容是对立的统一,内容决定形式,形式依赖于内容;有什么样的内容,就有什么样的与之相适应的形式。凡从他人成果中“拷贝”或“翻版”而成的作品,只能作文字的移位、修饰、增删及改变次要的提法等修补之术。

2. 论据相似否

任何一部学术论著都有论点、论据、论证三要素。论点是作者的主张和观点,在同一学术领域中出现近似或相同的论点不足为奇,除了从大论点到小观点都通盘抄袭之外,应着重考查论据是否相同或相似。有的抄袭者凭借其“小聪明”会搞移花接木式的“挪用”。在同一研究领域内,当甲作品中的材料证明的均是观点A,乙就可能将观点A的论据分解为a1、a2……an,然后将甲作品中的材料分别列为证实观点B的论据。这种抄袭方法会造成表面上论点不同的假象,但只要对论据进行核查即可真相大白。请看一例:

原告作品(发表在先) 被告作品(发表在后)

论点:巡逻中的观察与识别(A)论点:对盘查对象嫌疑的认定(B)

对携带可疑工具之物者的识别 携带可疑工具之物品者

对面有惊恐失常之态者的识别 面有惊恐失常之态者

对衣着染有血精之斑者的识别 衣着染有血迹者

对身带大量不明之钱者的识别 身带大量不明之钱者

对持有不符身份之证者的识别 持有不符身份之证件者

对身负不明原因之伤者的识别 身负不明原因之伤者

对体貌类似通缉之犯者的识别 类似通缉之犯者

对诱逼劫持女性者的识别 诱逼劫持女性者

3. 论证有别否

论证是具体解决论点和论据之间逻辑关系的过程。抄袭者毫不费力从甲作之中剽取或“翻版”处某一论点,又从乙、丙等多人处“拷贝”到了论据,在使用时往往照搬照抄或之添加了一些起连接性作用的话。故此,争议之作论证方法往往与被抄袭之作如出一辙。需要强调的是,论证方法上的区别应当具有本质意义,诸如隐去或改换例证中的人名、地名、时间,将他人之作中的一、二、三等序号改成首先、其次、再次等“加工”,均不能视抄袭者付出了自己的劳动。至于整页整段地将他人成果挪用到自己的论点之下的,只要不注明出处则属抄袭无疑。

(二)程度性审查——查明被告使用原告文字的性质和数量

程度性审查主要解决争议之作抄用了他人之作哪些内容及抄用的数量如何。认定抄袭必须从质与量两个方面进行核查。当然,抄用的量过多则无可逃遁地构成侵权。如暨南大学某教授发表的一篇论文共4334字,其中,几乎只字不漏地抄袭了他人论文2024字,抄袭量占46.7%,已被取消教授任职资格 。如果抄袭数量并不是很多,但指向著作权作品的核心,同样仍构成侵权。有专家认为:“作品的实质部分应是整个作品的灵魂和精华所在。”“在科学作品中,则表现为作者独立性和创造性的思想阐发和理论说明。上述内容及其表述在整个作品中具有核心地位和重要价值。因此过“量”损“质”的使用,都不符合“合理性”要求 。”笔者认为,在制裁抄袭行为时必须防止“唯数量论”。一部专著可以浓缩为一篇论文,一篇论文可以压缩成二、三百字的要点。抄袭者如果仅剽窃了数百字,而这数百字恰是该著作的要点,那么这本专著的著作权已在实际上被侵害。在沈阳某高校,《杀人案件的侦破方法》一书的作者彭某被黑龙江省的李某指控抄袭。彭某答辩称:“《杀人案件的侦破方法》全书341页,20多万字,而原告著作中此部分内容仅仅61页,3万字。如此这般竟告本人侵权,岂不是无理取闹。”按照彭先生的观点,其作品为“株”,好似一颗独立的大树,被其抄来的他人作品中的内容充其量只能称之为“枝”,只要“株大于枝”,就可以否定抄袭的存在,这显然是形而上学的观点。认定抄袭的标准是非法使用他人成果的质与量,而不是他人成果的质与量。文字量大并不一定表明信息量大。“株”与“枝”之间的大小与是否抄袭无关,即便是“大部头”抄袭了“小册子”也应认定抄袭。如果一部作品的主题或主要观点(此处亦借用“株”喻之)十分单薄,某一个分论点(此处借用“枝”喻之)却精彩异常,就会出现“枝大于株”或“枝秀于株”的局面。一般来说,此种情况认定抄袭的难道相对较低,故不再赘述。

对于抄袭既要查明数量,更要注重质的分析。有一种俗称的“兑水抄袭法”就是将他人成果的核心内容窃取后,再“稀释”成自己的长篇之作。这类抄袭者在学术上并非一无是处,否则的话,他会连“兑水”的本事也没有。由于贪图功名利益和投机取巧心里作祟,同行间特别容易出现“兑水抄袭”。在进行程度性审查时,必须查明核心内容来自何处,而不能机械地查对抄袭了多大的文字量。特定的质是特定事物存在的本身,质和事物的存在是直接同一的。从著作权的角度说,独创性与可复制性是受保护作品的本质存在,作品的独创性主要体现在作者将其作品的思想内容用一定的形式表现出来。抄袭者如将载有核心内容的表现形式窃为己有,就是在本质上、整体上的侵权。由于“兑水抄袭”非法使用的是他人成果的精华,故抄袭之作中出现“枝秀于株”的现象也就不足为怪。

三、认定学术抄袭的主要方法

认定学术抄袭是一项严肃而又颇具难度的任务。按照民法的基本原则,首先应当请原告与被告提出各自的证据,必要时应聘请专家进行鉴定。鉴于法官在审理著作权纠纷中处于主导地位,除必须掌握认定学术剽窃的主要方法外,还应根据案情的不同,不断探索新的方法。

(一)比较法

所谓比较法是将原、被告提供的事实逐项加以对照,以查明以下“四个是否”:

1.作品的论题与基本结构是否相同或相似;

2.主要论点是否相同或系衍生而成;

3.主要论据(尤其是数据与例证)是否相同或相似;

4.论证方法与文字表述是否一致或基本一致。

(二)查源法

所谓查源法是要求原告、被告均提供争议之作形成的原始根据,以判明何为长期酝酿、精心构思所得,何为信手移植、拼装组合而成。一般而言,创作者能够提供最初原始稿、中间修改稿、数据采集及处理记录等证据,而抄袭者大多谎称原始资料已散失或未加保留。

(三)剔除法

所谓剔除法适用于局部抄袭的著作权纠纷案。主要方法是将双方有征集的文字用颜料遮盖,然后看残留的部分是否仍能表达处明晰、确定的含义。凡有整段、整页抄袭之嫌的,应审查经剔除后争议之作的论点是否完整,论证是否出现“空缺”现象。如果经过剔除,残留部分的内容已模糊不清,表达已残缺不全,则应认定抄袭。

(四)水平测定法

对于“枝秀于株”的抄袭纠纷或翻译、古籍整理等演绎作品发生的纠纷,可邀请有关方面的专家对原、被告的实际水平进行当场测试,以判明何者并不具备创作、演绎的能力。专家组的测试结论可以作为著作权纠纷的判决依据之一。

四、认定抄袭中的几个疑难问题

由于抄袭的手段复杂多样,抄袭又是在故意心里支配下实施的,故实践中时常会遇到似是而非的说法,把本来已经明朗的案情“搅”得难以下判。

(一)共识与己见

一般而言,学术成果的价值在于具有正确而又独到的见解,能够给实践以强有力的指导。勿庸讳言的是,当前低水平重复的论文并不罕见,只不过多数作者是努力用自己的语言表述早已形成共识的观点,故其作品尽管无甚价值,但并不涉及侵权。这就是说,在同一学科的研究中,同行间对诸多问题均有共识是正常的,但任何共识都不能代替、也不可能排斥己见。用自己的语言表述共识是允许的,法律所禁止的是抄录他人的文字时不注明出处,事后又以“此系共识”作辩解。著作权法并不要作品具有首创性,而只要求“具有独创性并能以某种有形形式复制”。首创是指前所未有的创造,独创指不依赖于他作的独立构思和创作。既然是表述共识就谈不上首创,但在独立构思前提下所表述的必然是属于作者自己的思想和情感,必然无须依赖他人的作品。譬如,对流行性感冒的症状医学界早已达成共识,但是,因研究者的角度及自身水平的差别,形成的文字表达表述必然各有区别。如果以“同行共识”为借口抄录他人文字且不注明出处,则应视为抄袭。

(二) 区别与巧合

任何事物皆有共性与个性,越是优秀的成果个性越强,无论在结构、内容及表达上与他人之作雷同的概率都越小。同一领域的学术成果的部分内容出现交叉性的重复,甚至在个别表达形式上相似或相近,都可能系巧合所致;但是,学术成果必须有独特的个性特征,以显示出“这个”与“那个”的区别。可以说,真正独创的成果与他人之作的区别是绝对的、本质意义上的。如果某一作品虽从总体上具有自身的风格,但部分内容却与他人之作完全一致,甚至连文字都相一致,则应承担局部抄袭的责任。认定抄袭的最有力的证据是将他人笔误、失校等差错也当做正确的内容照搬到自己的“作品”中。这除了证明抄袭属实之外,还可以佐证抄袭者的水平低于被抄袭者。有的被告在法庭上一再用“巧合”为自己辩解,其实是徒劳的。如果同行间对某一问题的表述逐字、逐句甚至逐段、逐页都相同或只有改头换面的差异,形成在后的作品的独立性便不复存在。

(三)教材与讲稿

讲稿是否具有著作权是一个复杂的问题。一般而言,为建立一门新的学科或课程而不依赖于他人作品,由主讲教师直接创作完成的讲稿应视为编著作品,笔者称之为原创性讲稿。为诠释某本教材的内容,经搜集资料整理加工而成的讲稿应视为演绎作品,笔者称之为演绎教材讲稿。有些教学内容已比较稳定的课程,同类教材有多个版本,当教师缺乏创造性精神时,就会为完成教学任务在多本教材中选取相关内容照本宣科,对此笔者称之为多本教材拼凑的讲稿。多本教材拼凑的讲稿的致命弱点是没有创造性,除略加取舍外,基本内容是对他人作品的摘抄与连缀。在教学活动中,我们没有必要苛求教师一一声明讲授内容的出处,但如果将由多本教材拼凑成的讲稿作为教材出版,就难以逃避抄袭的责任。如欲将演绎教材的讲稿交付出版,也应采取格外谨慎的态度,对并非作者原创的内容一一注明出处。

我国目前的教材出版尚欠规范,有些自称为“某某学”的教材,其实是东拼西抄的大家烩。在法学界也有相当一部分教材是在对现行法律作解释,故稍微多翻几个版本就会发现内容惊人地相似。结构大同小异,不少文字亦如出一辙。有的教师写稿时依赖“剪刀与胶水”,很少注入创造性的劳动,当其草率地将讲稿略作整理出版后,一连串的著作权官司就会接连而来。

(四)直接营利与间接营利

随着复制技术的普及和复制费用的低廉化,复制文字或视听材料已成举手之劳。为此,各国著作权法都明确规定禁止出于商业目的的复制。有的人认为,只要是为了教学或科学研究就可以不受限制地复制他人作品。这是一种十分危险的误解。在市场经济条件下,学校教学与科学研究并不一定是非营利性的,如举办各种类型的函授、刊授、培训班、研修班都与“创收”有直接或间接联系,义务教育知识对未成年人与成年文盲而言。笔者赞同江建名先生的观点,《著作权法》中所说的“学校课堂教学”当指全日制学校的课堂 。其他凡有直接或间接营利目的的复制他人已发表作品的活动均属禁止之列。为课堂教学、科学研究及公益、公务需要有复制已发表作品时,数量必须限制在少量范围内。

近年来,我国的评定技术职称时对科研成果要求较严,各学术刊物时常收到水准一般但又急需发表的“职称稿”,有的则采取收“版面费”或单独出版专题性论文集的办法予以发表。在多数情况下,发表“职称稿”者不仅稿酬分文不得,反而要合理使用范围的著作权纠纷,作者皆不得以未得稿酬解脱侵权责任。这是因为,引用是复制的一种形式,未获得稿酬只能排除直接营利、名誉等非物质利益的获得是典型的间接营利,亦属禁止之列。

你遇到过哪些高质量的面试题?

1. java基础以及多个“比较”

1.Collections.sort排序内部原理

在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其对对象间比较的实现要求更加严格

2.hashMap原理,java8做的改变

从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全。ConcurrentHashMap线程安全。解决碰撞:当出现冲突时,运用拉链法,将关键词为同义词的结点链接在一个单链表中,散列表长m,则定义一个由m个头指针组成的指针数组T,地址为i的结点插入以T(i)为头指针的单链表中。Java8中,冲突的元素超过限制(8),用红黑树替换链表。

3.String 和 StringBuilder 的区别

1)可变与不可变:String不可变,每一次执行“+”都会新生成一个新对象,所以频繁改变字符串的情况中不用String,以节省内存。

2)是否多线程安全:StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。StringBuffer和String均线程安全。

4.Vector 与 Array 的区别

1)ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍。2)Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。

5.HashMap 与 Hashtable 的区别

1) 历史原因: Hashtable继承Dictonary类, HashMap继承自abstractMap

2) HashMap允许空的键值对, 但最多只有一个空对象,而HashTable不允许。 3) HashTable同步,而HashMap非同步,效率上比HashTable要高

6.ConncurrentHashMap和hashtable比较

两个线程并发访问map中同一条链,一个线程在尾部删除,一个线程在前面遍历查找,问为什么前面的线程还能正确的查找到后面被另一个线程删除的节点)

ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,即线程安全,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable是阻塞的,每次同步执行的时候都要锁住整个结构,ConcurrentHashMap正是为了解决这个问题而诞生的,

ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术(一个Array保存多个Object,使用这些对象的锁作为分离锁,get/put时随机使用任意一个)。它使用了多个锁来控制对hash表的不同部分进行的修改。在JDK 1.6中,有HashEntry结构存在,每次插入将新添加节点作为链的头节点(同HashMap实现),而且每次删除一个节点时,会将删除节点之前的所有节点拷贝一份组成一个新的链,而将当前节点的上一个节点的next指向当前节点的下一个节点,从而在删除以后有两条链存 在,因而可以保证即使在同一条链中,有一个线程在删除,而另一个线程在遍历,它们都能工作良好,因为遍历的线程能继续使用原有的链。

Java8中,采用volatile HashEntry保存数据,table元素作为锁;从table数组+单向链表加上了红黑树。红黑树是一种特别的二叉查找树,特性为:1.节点为红或者黑 2.根节点为黑 3.叶节点为黑 4.一节点为红,则叶节点为黑 5.一节点到其子孙节点所有路径上的黑节点数目相同。

7.ArrayList与 LinkedList 的区别?

最明显的区别是ArrrayList 底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构书链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。LinkedList是双向链表

8.Java 中,Comparator 与Comparable 有什么不同?

Comparable 接口用于定义对象的自然顺序,是排序接口,而 comparator 通常用于定义用户定制的顺序,是比较接口。我们如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么我们就可以建立一个“该类的比较器”来进行排序。Comparable 总是只有一个,但是可以有多个 comparator 来定义对象的顺序。

9.抽象类是什么?它与接口有什么区别?你为什么要使用过抽象类?

抽象类是指不允许被实例化的类;一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系

实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。但在Java8中允许接口中有静态默认的方法。

用抽象类是为了重用。减少编码量,降低耦合性。

10.描述 Java 中的重载和重写?

重载和重写都允许你用相同的名称来实现不同的功能,但是重载是编译时活动,而重写是运行时活动。你可以在同一个类中重载方法,但是只能在子类中重写方法。重写必须要有继承

重写:1、在子类中可以根据需要对从基类中继承来的方法进行重写。2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。3、重写方法不能使用比被重写的方法更严格的访问权限。

重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

11.Collection与Collections的区别是什么?

Collection<E>是Java集合框架中的基本接口;

Collections是Java集合框架提供的一个工具类,其中包含了大量用于操作或返回集合的静态方法。

12.Java中多态的实现原理

所谓多态,指的就是父类引用指向子类对象,调用方法时会调用子类的实现而不是父类的实现。多态的实现的关键在于“动态绑定”。

13.object中定义了哪些方法?

clone(), equals(), hashCode(), toString(), notify(), notifyAll(),wait(), finalize(), getClass()

14. Java泛型和类型擦除

泛型即参数化类型,在创建集合时,指定集合元素的类型,此集合只能传入该类型的参数。类型擦除:java编译器生成的字节码不包含泛型信息,所以在编译时擦除:1.泛型用最顶级父类替换;2.移除。

15.说出 5 个 JDK 1.8 引入的新特性?

Java 8 在 Java 历史上是一个开创新的版本,下面 JDK 8 中 5 个主要的特性:Lambda 表达式;允许像对象一样传递匿名函数 Stream API,充分利用现代多核 CPU,可以写出很简洁的代码 ;Date 与 Time API,最终,有一个稳定、简单的日期和时间库可供你使用 扩展方法,现在,接口中可以有静态、默认方法; 重复注解,现在你可以将相同的注解在同一类型上使用多次。

16.java中public,private,protected以及默认关键字的访问范围:

Protected可在包内及包外子类访问,default只能同一包内访问,prvate只能同一类

17. 常用数据结构:

集合,线性结构(数组,队列,链表和栈),树形结构,图状结构

18.Java 中的 TreeMap 是采用什么树实现的?(答案)

Java 中的 TreeMap 是使用红黑树实现的。

19. 匿名内部类是什么?如何访问在其外面定义的变量?

匿名内部类也就是没有名字的内部类,匿名内部类只能使用一次,它通常用来简化代码编写。

匿名内部类只能访问外部类的Final变量. Java 8更加智能:如果局部变量被匿名内部类访问,那么该局部变量相当于自动使用了final修饰。

20. 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?

一种是通过枚举,一种是通过静态内部类。

21.poll() 方法和 remove() 方法的区别?

poll() 和remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。

22.写一段代码在遍历 ArrayList 时移除一个元素

使用迭代器。

Iterator itr = list.iterator();while(itr.hasNext()) {if(...) { itr.remove();} }

2. JVM

1.JVM如何加载一个类的过程,双亲委派模型中有哪些方法

类加载过程:加载、验证(验证阶段作用是保证Class文件的字节流包含的信息符合JVM规范,不会给JVM造成危害)、准备(准备阶段为变量分配内存并设置类变量的初始化)、解析(解析过程是将常量池内的符号引用替换成直接引用)、初始化。

双亲委派模型中方法:双亲委派是指如果一个类收到了类加载的请求,不会自己先尝试加载,先找父类加载器去完成。当顶层启动类加载器表示无法加载这个类的时候,子类才会尝试自己去加载。当回到最开的发起者加载器还无法加载时,并不会向下找,而是抛出ClassNotFound异常。

方法:启动(Bootstrap)类加载器,标准扩展(Extension)类加载器,应用程序类加载器(Application ),上下文(Custom)类加载器。意义是防止内存中出现多份同样的字节码 。

2.GC算法(什么样的对象算是可回收对象,可达性分析),CMS收集器

jvm是如何判断一个对象已经变成了可回收的“垃圾”,一般是两个方法:引用记数法和根搜索算法。引用记数法没办法解决循环引用的问题,所以用根搜索。从一系列的”GC Roots“对象开始向下搜索,搜索走过的路径称为引用链。当一个对象到”GC Roots“之间没有引用链时,被称为引用不可达。引用不可到的对象被认为是可回收的对象。

3.JVM分为哪些区,每一个区干吗的?

1)方法区(method):被所有的线程共享。方法区包含所有的类信息和静态变量。

2)堆(heap):被所有的线程共享,存放对象实例以及数组,Java堆是GC的主要区域。

3)栈(stack):每个线程包含一个栈区,栈中保存一些局部变量等。

4)程序计数器:是当前线程执行的字节码的行指示器。

4.JVM新生代,老年代,持久代,都存储哪些东西?

持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。所有新生成的对象首先都是放在年轻代的,年老代中存放的都是一些生命周期较长的对象。

5.内存溢出和内存泄漏:

内存溢出:程序申请内存时,没有足够的内存,out of memory;内存泄漏值垃圾对象无法回收,可以使用memory analyzer工具查看泄漏。

6.进程与线程:

进程值运行中的程序(独立性,动态性,并发性),线程指进程中的顺序执行流。区别是:1.进程间不共享内存 2.创建进程进行资源分配的代价要大得多,所以多线程在高并发环境中效率高。

7.序列化与反序列化:

序列化指将java对象转化为字节序列,反序列化相反。主要是为了java线程间通讯,实现对象传递。只有实现了Serializable或Externalizable接口类对象才可被序列化。

8.64 位 JVM 中,int 的长度是多数?

Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的Java 虚拟机中,int 类型的长度是相同的。

9.Java 中 WeakReference 与 SoftReference的区别?

Java中一共有四种类型的引用。StrongReference、 SoftReference、 WeakReference 以及 PhantomReference。

StrongReference 是 Java 的默认引用实现, 它会尽可能长时间的存活于 JVM 内,当没有任何对象指向它时将会被GC回收

WeakReference,顾名思义, 是一个弱引用, 当所引用的对象在JVM 内不再有强引用时, 将被GC回收

虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率,但是 WeakReference ,一旦失去最后一个强引用,就会被 GC 回收,而 SoftReference 会尽可能长的保留引用直到 JVM 内存不足时才会被回收(虚拟机保证), 这一特性使得SoftReference 非常适合缓存应用

10.解释 Java 堆空间及 GC?

当通过 Java 命令启动Java 进程的时候,会为它分配内存。内存的一部分用于创建堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一个进程,回收无效对象的内存用于将来的分配。

11.Java 中堆和栈有什么区别?

JVM 中堆和栈属于不同的内存区域,使用目的也不同。栈常用于保存方法帧和局部变量,而对象总是在堆上分配。栈通常都比堆小,也不会在多个线程之间共享,而堆被整个 JVM 的所有线程共享。

3. 并发,锁

1.volatile关键字, Lock

并发编程中:原子性问题,可见性问题,有序性问题。

volatile关键字能保证可见性,字能禁止指令重排序,但是不能保证原子性。可见性只能保证每次读取的是最新的值,但是volatile没办法保证对变量的操作的原子性。在生成的会变语句中加入Lock关键字和内存屏障。

Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题。用sychronized修饰的方法或者语句块在代码执行完之后锁自动释放,而用Lock需要我们手动释放锁

2.MYSQL常用优化(sql优化,表结构优化等)

SQL优化、表机构优化、索引优化、缓存参数优化

3.java每改一点都需要重新编译打包部署,有没有更好的方法

可以使用热加载

4.进程间通信有哪几种方式?

1)管道(Pipe),2)命名管道(named pipe),3)信号(Signal),4)消息(Message)队列,5)共享内存,6)内存映射(mapped memory),7)信号量(semaphore),8)套接口(Socket)

5.Sychronized修饰静态方法,锁定类本身而不是实例,非静态方法锁定实例。

6. 操作系统什么情况下会死锁?

所谓死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局。产生的原因:竞争资源:当系统中多个进程使用共享资源,并且资源不足以满足需要,会引起进程对资源的竞争而产生死锁。进程间推进的顺序非法:请求和释放资源的顺序不当,也同样会导致产生进程死锁

7.产生死锁的四个条件:

1.互斥条件(进程独占资源)2.请求与保持(进程因请求资源而阻塞时,对已获得的资源保持不放) 3.不剥夺条件(进程已获得的资源,在末使用完之前,不能强行剥夺) 4.循环等待(若干进程之间形成一种头尾相接的循环等待资源关系)

8. 如何理解分布式锁?

由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。

9. 线程同步与阻塞的关系?同步一定阻塞吗?阻塞一定同步吗?

线程同步与否 跟 阻塞非阻塞没关系,同步是个过程,阻塞是线程的一种状态。多个线程操作共享变量时可能会出现竞争。这时需要同步来防止两个以上的线程同时进入临界区内,在这个过程中后进入临界区的线程将阻塞,等待先进入的线程走出临界区。

10. 同步和异步有什么区别?

同步和异步最大的区别就在于。一个需要等待,一个不需要等待。同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。

11. 线程池

根据系统自身的环境情况,有效的限制执行线程的数量,使得运行效果达到最佳。线程主要是通过控制执行的线程的数量,超出数量的线程排队等候,等待有任务执行完毕,再从队列最前面取出任务执行

12. 如何调用 wait()方法?使用 if 块还是循环?为什么?

wait() 方法应该在循环调用,因为当线程获取到 CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环检测条件是否满足会更好。

wait(),notify()和notifyall()方法是java.lang.Object类为线程提供的用于实现线程间通信的同步控制方法。等待或者唤醒

13. 实现线程的几种方法

(1)继承Thread类,重写run函数 (2)实现Runnable接口,重写run函数 (3)实现Callable接口,重写call函数

14. 什么是多线程环境下的伪共享(falsesharing)?

伪共享是多线程系统(每个处理器有自己的局部缓存)中一个众所周知的性能问题。缓存系统中是以缓存行(cache line)为单位存储的。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。

4. 网络、数据库

1.TCP如何保证可靠传输?三次握手过程?

在TCP的连接中,数据流必须以正确的顺序送达对方。TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。第一次是客户端发起连接;第二次表示服务器收到了客户端的请求;第三次表示客户端收到了服务器的反馈。

2. Linux下你常用的命令有哪些?

3. 常用的hash算法有哪些?

1.加法hash:所谓的加法Hash就是把输入元素一个一个的加起来构成最后的结果。

2.位运算hash:这类型Hash函数通过利用各种位运算(常见的是移位和异或)来充分的混合输入元素

3.乘法hash:33*hash + key.charAt(i)

4. 什么是一致性哈希?

设计目标是为了解决因特网中的热点(Hot spot)问题,一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1、平衡性(Balance) 2、单调性(Monotonicity) 3、分散性(Spread) 4、负载(Load)

5. 数据库中的范式有哪些?

第一范式----数据库中的表(所有字段值)都是不可分割的原子数据项。

第二范式----数据库表中的每一列都和主键相关,而不能只和主键的某一部分相关。

第三范式----数据库表中每一列数据都和主键直接相关,不能间接相关。范式是为了减小数据冗余。

6. 数据库中的索引的结构?什么情况下适合建索引?

数据库中索引的结构是一种排序的数据结构,数据库索引是通过B树和变形的B+树实现的。什么情况下不适合建立索引:1.对于在查询过程中很少使用或参考的列;对于那些只有很少数据值的列;对于那些定义为image,text和bit数据类型的列;当修改性能远大于检索性能。

根据系统自身的环境情况,有效的限制执行线程的数量,使得运行效果达到最佳。线程主要是通过控制执行的线程的数量,超出数量的线程排队等候,等待有任务执行完毕,再从队列最前面取出任务执行

7. concurrent包下面,都用过什么?

java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock

8. 常用的数据库有哪些?redis用过吗?

Orcale,MySQL,DB2

9. 你知道的开源协议有哪些?

GPL (GNU General Public License) :GNU通用公共许可协议

LGPL (GNU Lesser General Public License) :GNU宽通用公共许可协议

BSD(Berkeley Software Distribution) :伯克利软件分发许可协议

MIT (Massachusetts Institute of Technology):MIT之名源自麻省理工学院

Apache (Apache License) :Apache许可协议

MPL (Mozilla Public License) :Mozilla公共许可协议

10.表单提交中,get和post区别

1.get从服务器获取信息,post向服务器传信息 2.get传送数据量比较小,post可以比较大 3.get安全性比较低

11. TCP 协议与 UDP 协议有什么区别?(answer答案)

TCP(Tranfer Control Protocol)的缩写,是一种面向连接的保证传输的协议,在传输数据流前,双方会先建立一条虚拟的通信道。可以很少差错传输数据。

UDP(User DataGram Protocol)的缩写,是一种无连接的协议,使用UDP传输数据时,每个数据段都是一个独立的信息,包括完整的源地址和目的地,在网络上以任何可能的 路径传到目的地,因此,能否到达目的地,以及到达目的地的时间和内容的完整性都不能保证。

所以TCP必UDP多了建立连接的时间。相对UDP而言,TCP具有更高的安全性和可靠性。

TCP协议传输的大小不限制,一旦连接被建立,双方可以按照一定的格式传输大量的数据,而UDP是一个不可靠的协议,大小有限制,每次不能超过64K。

耦合测试线损校准原理?

原理是用整机模拟一个实际使用的环境,测试手机在无线环境下的射频性能,重点集中在天线附近一块,即检测天线与主板之间的匹配性。

带液力变矩器的CVT和不带液力变矩器的CVT哪个好?

如果有选择的余地,一定要选带液力变矩器的CVT变速箱 ,也是主流的CVT变速箱。

哪个变速箱好一点呢?目前看带液力变矩器的CVT变速箱是比较成熟变速箱,所谓的不带液力变矩器的变速箱其实就是多片离合器的CVT变速箱。多片离合器CVT变速箱无论是使用寿命还是平顺性都差一些。

两种变速箱有什么不同呢?其实就是动力衔接结构的区别。变速箱与发动机之间并不是直接连接的,而是通过动力衔接装置连接的。例如手动变速箱与发动机之间由离合器衔接,离合器可以切断发动机的动力、也可以通过摩擦的方式来降低变速箱输入轴的转速,这样我们才可以从容的起步、换档。

CVT变速箱与手动变速箱结构不一样,CVT变速箱并不是通过齿轮组来改变传动比的,而是通过改变带轮直径大小来调整传动比。下图就是CVT调速组件原理:

主动锥盘与变速箱输入轴连接,从动锥盘与变速箱输出轴连接。两个锥盘的直径在压力的控制下可以随意改变,当主动锥盘直径小于从动锥盘的时候变速箱速比高,相当于手动变速箱的低档位。当主动锥盘直径大于从动盘的时候变速箱速比降低,相当于手动变速箱的高档位。

虽然CVT变速箱可以实现无极调速,但是仍然离不开离合器,也不能与发动机直接连接。所以也就有了两种动力衔接方式,也就是由液力变矩器或多片离合器把发动机的动力传递到变速箱。

上图就是两种变速箱之间的差别,动力衔接部分一个用了变矩器一个用了多片离合器。

液力变矩器的优点就是通过降低转速可以放大来自发动机扭矩,这点也是与摩擦式离合器最大的区别,摩擦式离合器只能分断动力而不能把动力放大。

同时液力变矩器具备一定的消震能力,可以消除转速不匹配带来的各种震动,发动机与变速箱之间纯粹是软连接,几乎没有顿挫感。我们看一下变矩器的原理:

变矩器内部主要原件就是泵轮、导轮、叶轮、锁止离合器,其中变矩由叶轮导轮涡轮完成的。三原件之间并没有物理连接而是通过液压油连接, 通过液压油来传递动力、就像两个风扇对着吹一样,没有插电的风扇也会转起来,动力通过空气传递。液力变矩器动力传递则通过液压油传递,因此抗震消震能力是一流的。但优点有时候也是缺点,液压油传递动力会有一定的能量损失,传递过程中会消耗一定的能量。因此液力变矩器传动效率稍低一些,不如摩擦式离合器传动效率高。

我们在看一下采用摩擦式离合器组件的CVT变速箱:

变速箱输入部分采用了多片离合器,离合器的作用只能分断动力或者降低转速,分断动力与降低转速都是通过摩擦做到的。原理也是非常简单的:

主要原件由飞轮、摩擦片、压盘组成,摩擦片中间带有花键槽,与变速箱输入轴连接,压盘控制摩擦片与飞轮之间的压力。压力小的时候飞轮只离合器片之间摩擦力小,离合器片的转速自然会低一些,通过打滑来降低转速。压盘施加压力增加时离合器片与飞轮之间的摩擦力增加,两者之间转速差逐渐缩小直到同转速为止。摩擦式离合器最大的优点就是传动效率高,只有打滑时动力稍有损失,一旦换档结束后离合器片与飞轮紧密贴合零差速运转,动力几乎没有损失。

缺点就是动力传递时不具备扭力放大功能、硬性连接震动也会毫无损失的传递过去。因此带有离合器的CVT的变速箱往往会存在顿挫感、与双离合变速箱一样的顿挫感、完全没有发挥出CVT变速箱与生俱来的平顺性,而且离合器工作时不断的分离、结合时的磨损不可以忽略。毕竟这是纯粹的物理摩擦,磨损远远大于柔性连接的液力变矩器,寿命自然也相对短一些。

当你开着一辆CVT变速箱的汽车能感觉到明显的顿挫时,那这就是采用多片离合器的CVT变速箱。而采用液力变矩器的变速箱顿挫感要比AT变速箱还要小,开起来也更舒服一些。理论上采用变矩器的CVT变速箱油耗会高一些,但现实中啊采用多片离合器的CVT变速箱油耗往往会更高一些,变速箱结构并不一定能决定油耗高低,匹配调校更重要一些。

哪些车采用了多片离合器的CVT变速箱呢?大部分采用CVT变速箱的国产车几乎都采用了邦奇CVT变速箱、带有多片离合器,优点是价格偏于而且负责匹配。少部分用的则是万里扬CVT变速箱,动力输入部分采用液力变矩器衔接。合资车采用的CVT变速箱几乎全部带有液力变矩器的,只有奥迪的CVT变速箱采用了多片离合器输入的动力传递方式,但是最近几年也被奥迪所抛弃。国产车更看中成本,采用邦奇的变速箱成本会低一些,也是无奈的选择。

高低空急流的耦合什么意思?

高低空急流的耦合常规是这样理解耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请在一个月内通知我们,请将本侵权页面网址发送邮件到qingge@88.com,我们会做删除处理。