- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2. 面向对象的理解
面向对象是Java的基本特征,是软件开发过程使用的基于面向过程一种思维方式,将功能封装进对象,强调具备功能的对象和调用结果,不关注具体实现这个功能的过程。
面向对象特点:是一种更符合人们思考习惯的思想,可以将复杂的事情简单化,将程序由执行者转换成为指挥者。
面向对象特性:封装,继承,多态
封装:封装是把数据和方法包装进类中,隐藏其具体实现细节,对外提供公共访问方法。封装的结果是一个同时带有特征和行为的数据类型。(安全性,复用性)
继承:当一个类的属性与行为均与现有类相似,属于现有类的一种时,这一个类可以定义为现有类的子类。或者,当多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,再创建相似的”兄弟”类时只要继承父类即可。当子类继承父类后,拥有了父类非私有的方法并可以直接调用。如果认为父类提供的方法不够强大,子类可以按照子类自身的逻辑重写继承过来的父类方法。(复用性,可维护性,多态前提)
多态:继承是多态的前提,多态是指一种事物具有多种形态,比如猫具有猫类的形态,也具有动物的形态,多态的具体表现是父类引用指向子类对象,父类的引用也可以接收自己子类的对象。(可维护性,扩展性)
面试:跟我谈谈什么是面向对象
1 面向对象是基于面向过程的2 什么是面向过程什么是面向对象3 面向对象的特点
3. 面向对象和面向过程的区别
面向过程强调的是功能行为,分析解决问题所需的步骤,以函数为基础,完成各种步骤的操作和实现。
面向对象是基于面向过程的,将功能封装成对象,强调的是具备了这些功能的对象,让对象去调用方法来解决问题。
面向对象举例
4. abstract与哪些关键字不能共存为什么
private:私有的方法是不可见的,无法被重写
final:被final修饰的方法是最终方法,无法被重写
static:被static修饰的方法,要随类加载到方法区,由于抽象方法没有方法体所以不能加载
5. static的特点
(1) 随着类的加载而加载;优先于对象存在;
被所有对象所共享;可以直接被类名所调用。
(2) 静态方法只能访问静态,非静态方法既可以访问静态也可访问非静态
(3) 静态方法中不可以定义this、super关键字,因为静态优先于对象存在,this和super所代表的对象还不存在。
6. 类与类、类与接口、接口与接口的关系
继承(单继承,多层继承,object),实现(多实现),继承(多继承)
7. final、finally、finalize的区别
final:可以修饰类、方法和变量,被final修饰的类无法被继承,方法无法被重写,变量为常量只能赋值一次
finally:异常处理,和try、catch结合使用,可以添加也可以不添加,用于执行一些必须执行的代码,如释放资源等
finalize:Object类中的方法,其中定义了对象要被垃圾收集器回收之前要做的相关的清理工作
8. 什么是多态,多态的好处和弊端
多态可以理解为事物存在的多种体现形态。父类的引用指向了自己的子类对象;父类的引用也可以接收自己子类的对象。
提高了程序的可维护性和扩展性
弊端:父类的引用只能访问父类中有的成员而无法调用子类中特有的方法
10. wait()和sleep()的区别
(1)所在的类不同:wait是Object类中的方法,sleep是Thread类中的方法 (2)sleep方法没有释放同步锁,而wait方法释放了同步锁,使得其他线程可以使用。
(3)sleep()必须指定时间,wait()可以指定也可以不指定时间。
(4)wait,notify和notifyAll只能在同步方法或者同步代码块里面使用,而sleep可以在任何地方使用
(5)sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
16. 对匿名内部类的理解
匿名内部类就是没有名字的内部类,是内部类的简化形式。一般只使用一次的时候使用匿名内部类,匿名内部类本质上是一个匿名子类对象。匿名内部类的使用前提:内部类继承一个类或实现接口。匿名内部类包括两个步骤:创建一个类或者接口的子类,即刻创建该子类的对象。简化书写。
17. IO体系
字节流InputStream/OutputStream |--FileInputStream/FileOutputStream:文件字节流,用于文件的读写操作 |--BufferedInputStream/BufferedOutputStream:加缓冲区的字节流,用于提高效率 字符流Reader/Writer |--FileReader/FileWriter:文件字符流,用于文本文件的读写操作 |--BufferedReader/BufferedWrite:加缓冲区的字符流,用于提高效率 转换流Input
文档评论(0)