前端开发的核心技术是什么(web前端核心技术)
531
2022-05-29
Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!、
用坚持缔造技术、用指尖敲动未来!
和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣!
在此专栏《Java核心面试宝典》记录我们备战梦想的【day 10】!
面向对象的方面的相关面试题也和大家总结了好几天了,把其中的内容分成了好几个板块和知识点,今天就来继续和大家分享最后的一部分,
1、聚集关系和组合关系有什么区别?
聚集关系描述两个对象之间的所属关系,模拟具有(has-a)关系,一个对象可以被几个聚集对象所拥有;
如果一个对象被一个聚集对象所专有,该对象和聚合对象之间称为组合。
如一个人驾驶一辆汽车,而一辆汽车可以被多个人驾驶,这就是聚集关系
一个人拥有一个身份证,一个身份证也只能被一个人拥有,这就是组合关系。
2、什么是“强是关系”和“弱是关系”,对于这两种关系,分别如何在代码中体现?
“强是关系”描述直接继承关系,“弱是关系”描述一个类具有某些属性,“强是关系”可以用类的继承表示,“弱是关系”可以用接口表示。
3、内聚和耦合的含义是什么?类的设计原则对于内聚和耦合是如何要求的?
内聚指同一个类或模块内部的元素的关联性和紧密程度,耦合指不同类或模块之间的联系紧密程度。
类的设计原则要求高内聚低耦合,即同一个类或模块内部关联性强,不同类或模块之间的关联尽可能少,每个类或模块尽可能独立存在。
4、如何判断两个类之间应该使用继承关系还是聚集关系?
如果两个类之间为“是关系”,则使用继承关系;如果两个类之间为“具有关系”,则使用聚集关系。
如“拉布拉多”是“狗”,则拉布拉多和狗之间就是继承关系,
“教室”里面具有“学生”,则教室和学生就是聚集关系
5、如何实现数据域的封装性?
确保类中数据域的封装性的方法是给其增加 private修饰符隐藏其可见性,避免从外部直接访问数据域。
如果需要从外部读取数据域的值,则提供读取器get方法。如果需要从外部修改数据域的值,提供设置器set方法。
如果一个方法只在类的内部使用,则应该对该方法使用 private 修饰符,避免从外部调用该方法。这就确保了数据域的封装性。
6、序列化和反序列化的含义分别是什么?
把对象转化为字节序列的过程称为对象的序列化,把字节序列恢复成对象的过程称为对象的反序列化
7、Serializable接口的作用是什么?这个接口包含哪些信息?
或:如何将一个对象标识成是可被序列化的?
Serializable接口的作用是标识一个对象是否可被序列化,只有当一个类实现了Serializable接口时,这个类的实例才是可序列化的,这个接口是标识接口,不包含任何数据域和方法。
8、关键字transient的作用是什么?
关键字transient的作用是执行数据域不被序列化,当一个数据域不能被序列化,或者不想对一个数据域序列化时,给这个数据域加上关键字transient,在序列化的过程中将忽略这个数据域。
9、Class类的作用是什么?
Class类的作用是在程序运行时保存每一个对象所属的类的信息,在程序运行时分析类。
10、Class类有哪些常用的方法,这些方法的作用分别是什么?
Class 类中最常用的方法是getName,该方法返回类的名字。
Class 类中还有方法可以返回类中的数据域、方法和构造方法。
其中,方法名不包含 Declared 的方法只返回公有的数据域、方法和构造方法,
方法名包含 Declared的方法会返回所有的数据域、方法和构造方法。
方法名以 s 结尾的返回所有的数据域、方法和构造方法,
方法名不以 s 结尾的返回单个的数据域、方法和构造方法。
今日总结
今天和大家分享了面向对象的面试题中的最后一部分,这部分的内容主要要掌握的其实就两点,一个是了解序列化和反序列化操作,另一个是熟悉反射机制,其中反射是比较重要的一点,也是之后开发中会经常用到的内容。
到现在,面向对象相关的面试题就暂时和大家总结完了,如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习!
我是==灰小猿==,我们下期见!
Java 面向对象编程
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。