Java程序员面试宝典(免费).pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 程序员面试宝典(重点有标记 推荐初级学者认真看最后一道面试题 我几回笔试都看到了类此的 必考题哦) 面向对象 面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看做是对象。对 象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象 都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动 的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编 程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持 3 个概念,即封装、多态性和继承,Java 也不例外。现实 世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表 示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架 把对象的数据和方法连在一起形成一个整体。可以说,对象是支持封装的手段,是封装 的基本单位。Java 语言的封装性较强,因为 Java 无全程变量,无主函数,在 Java 中绝大 部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java 也提供了相应的对象类型以便与其他对象交互操作。 “这个世界是由什么组成的?”这个问题如果让不同的人来回答会得到不同的答案。如果是 一个化学家,他也许会告诉你:“还用问吗?这个世界是由分子、原子、离子等化学物质 组成的” 。如果是一个画家,他也许会告诉你:“这个世界是由不同的颜色所组成的” 。但 如果让一个分类学家来考虑问题就有趣多了,他会告诉你:“这个世界是由不同类型的物 与事所构成的” 。好!作为面向对象的程序员,我们要从分类学家的角度去考虑问题!是 的,这个世界是由动物、植物等组成的。动物又分为单细胞动物、多细胞动物、哺乳动 物等,哺乳动物又分为人、大象、老虎……就这样分下去了! 现在,从抽象的角度,我们给“类”下个定义吧!我的意思是,从抽象的角度,你回答我“什 么是人类?”首先让我们来看看人类所具有的一些特征,这个特征包括属性(一些参数、 数值)及方法(一些行为,他能干什么)。每个人都有身高、体重、年龄、血型等一些 属性。还有人会劳动、人都会直立行走、人都会用自己的头脑去创造工具等方法。人之 所以能区别于其他类型的动物,是因为每个人都具有人这个群体的属性与方法。“人类” 只是一个抽象的概念,它仅仅是一个概念,它是不存在的实体。但是所有具备“人类”这个 群体的属性与方法的对象都叫人。这个对象“人”是实际存在的实体。每个人都是人这个群 体的一个对象。老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会 直立行走,不会使用工具等,所以说老虎不是人。 由此可见,类描述了一组有相同特性(属性)和相同行为(方法)的对象。在程序中, 类实际上就是数据类型,例如,整数、小数等。整数也有一组特性和行为。面向过程的 语言与面向对象的语言的区别就在于,面向过程的语言不允许程序员自己定义数据类型, 而只能使用程序中内置的数据类型。而为了模拟真实世界,为了更好地解决问题,我们 需往往要创建解决问题所必需的数据类型。 面向对象编程为我们提供了解决方案。以下的考题来自真实的笔试资料,希望读者先不 要看答案,自我解答后再与答案加以比对,找出自己的不足。 11.1 面向对象的基本概念 面试例题 1:对象与实例有什么区别? 解析:在 Java 的内存分配中,对象和实例是不同的,前者分配在内存堆里,后者分配在 堆栈里,至于为什么要这样分,参考一下其他的资料。对象是不变的东西,它是对客观 事物的抽象,实例是对操作对象的引用,你不能直接操作对象。 答案:对象和实例从宏观的角度看,区别是:对象是同类事物的一种抽象表现形式,而实 例是对象的具体化,一个对象可以实例化很多实例,对象就是一个模型,实例是照着这 个模型生产的最终产品。实际上就是这样,一个对象可以实例化 N 个实例。就像根据一 个模型可以制造多个实际的产品一样。 从内存分配的角度来看,对象是保存在堆中的,而实例是存储在栈中的,实例其实只是 对象的一个引用,也就是指向对象的指针。 面试例题 2 :Java 中所有的类都继承了java.lang.Object 类,而在 C++ 中没有像java.lang.Object 这样的类,这是为什么呢?都是面向对象,Java 这样做有什么好处呢? 解析:Java 采用的是单根结构,所有的类都继承了java.lang.Object 类。对于 Java 这种纯 面向对象的语言来说,这种设计具有很好的灵活性,比如对垃圾收集来说很有利,所有 的类都具有java

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档