黑马点招面试问题

上传人:飞*** 文档编号:38058616 上传时间:2018-04-26 格式:PDF 页数:41 大小:328.09KB
返回 下载 相关 举报
黑马点招面试问题_第1页
第1页 / 共41页
黑马点招面试问题_第2页
第2页 / 共41页
黑马点招面试问题_第3页
第3页 / 共41页
黑马点招面试问题_第4页
第4页 / 共41页
黑马点招面试问题_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《黑马点招面试问题》由会员分享,可在线阅读,更多相关《黑马点招面试问题(41页珍藏版)》请在金锄头文库上搜索。

1、1.静态变量和实例变量的区别局部变量不能用静态的,如果用了静态的,则不会从静态区消失* 静态变量也叫类变量成员变量也叫对象变量* A: 所属不同* 静态变量属于类,所以也称为为类变量* 成员变量属于对象,所以也称为实例变量( 对象变量 ) * B: 内存中位置不同* 静态变量存储于方法区的静态区* 成员变量存储于堆内存* C: 内存出现时间不同* 静态变量随着类的加载而加载,随着类的消失而消失* 成员变量随着对象的创建而存在,随着对象的消失而消失* D: 调用不同* 静态变量可以通过类名调用,也可以通过对象调用* 成员变量只能通过对象名调用2.Interger和 int的区别int是 java

2、提供的 8 种原始数据类型之一。Java 为每个原始类型提供了封装类,Integer是 java 为 int提供的封装类。int的默认值为0,而 Integer的默认值为null ,即 Integer可以区分出未赋值和值为0的区别, int则无法表达出未赋值的情况,另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。3.谈谈你对面向对象的理解如何大象装进冰箱?面向过程:为了把大象装进冰箱,需要3 个过程。1) 把冰箱门打开(得到打开门的冰箱)2) 把大象装进去(打开门后,得到里面装着大象的冰箱)3) 把冰箱门

3、关上(打开门、装好大象后,获得关好门的冰箱)每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。1: 冰箱开门 ( 冰箱 ) 冰箱装进 ( 冰箱 , 大象 ) 冰箱关门 ( 冰箱 ) =换个写法( 冰箱开门冰箱 ) ( 冰箱装进冰箱大象 ) ( 冰箱关门冰箱 ) 2: 冰箱关门 ( 冰箱装进 ( 冰箱开门 ( 冰箱 ), 大象 ) =换个写法( 冰箱关门 ( 冰箱装进 ( 冰箱开门冰箱 ) 大象 )面向对象:每个动作有一个执行者,它就是对象。1) 冰箱,你给我把门打开2) 冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)3) 冰箱,你给我把门关上依次做这些动作,就能把

4、大象装进冰箱。1: 冰箱 . 开门 () 冰箱 . 装进 ( 大象 ) 冰箱 . 关门 () 2: 冰箱 . 开门 (). 装进 ( 大象 ). 关门 ()4.谈谈面向对象的三个特征, 分别是什么 ? 各特征有什么优缺点 ?(封装 继承多态)封 装(:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。好处:将变化隔离;便于使用;提高重用性;安全性。继 承好处:1:提高了代码的复用性。2:让类与类之间产生了关系,提供了另一个特征多态的前提。多 态:函数本身就具备多态性,某一种事物有不同的具体的体现。体现:父类引用或者接口的引用指向了自己的子类对象。/Animal a = new Cat();

5、 多态的好处:提高了程序的扩展性。多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。我理解的多态与继承体系有关,与方法覆盖有关,与方法重载无关。5.重写和重载的区别?1、重写 override概念 ( 掌握 ) 子父类关系中,子类中存在与父类中方法声明完全一样的方法叫重写一句话:除了方法体以外其他都相同, 但是子类修饰符权限要大于等于父类2、重载 overload概念 ( 掌握 ) 一个类中或者子父类关系中存在多个同名方法,并且参数列表不同的方法叫重载子父类关系中:子类中的方法和父类中的方法构成了重载关系3、重写的作用应用 ( 理

6、解 ) 升级改造父类的方法4、注意 ( 掌握 ) 只有方法才存在重写,变量不存在6.构造方法的特点?* A: 构造方法概述和作用* 给对象的数据( 属性 ) 进行初始化* B: 构造方法格式特点* a: 方法名与类名相同( 大小也要与类名一致) * b: 没有返回值类型,连void 都没有* c:没有具体的返回值return;(有 return 语句 return;)当创建对象的时候,系统就调用了构造方法;构造方法不能用对象调用7.Static关键字有什么特点,静态方法是否可以加this和 super?为什么1、概述1、static 可以修饰成员变量和成员方法2、被 static修饰的成员有一

7、个最大的特点,就是可以被该类下所有的对象共享2、什么时候用多个对象共享某一数据的时候,我们就把这个数据用static修饰 . 举例:小鸡吃食3、特点 ( 掌握 ) 1、被 static修饰的内容随着类的加载而加载,优先于对象存在2、可以直接通过类名调用3、被该类下所有对象共享4、注意事项1、在静态方法中是没有this关键字 , 因为静态是随着类的加载而加载。而this是对象创建才存在的2、静态方法只能访问静态成员变量和静态成员方法一句话静态只能访问静态3、静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用8.多态的特点(包括多态中调用成员的特点)1、概念 - 什么是多态 ( 掌握

8、) 对象在不同时刻表现出来的不同状态。2、针对引用类型的理解编译期间状态和运行期间状态不一样比如Person p = new Person();/第一行p = new Man();/第二行p = new Woman();/第三行p在第一行和第二行的状态是不一样的,在第一行表示人对象,在第二行表示学生对象3、举例水 ( 水, 冰, 水蒸气 ) 狗:狗是狗,狗是动物,狗是宠物,狗是食物/ 该处强调谁是谁的一种4、前提条件 ( 掌握 ) A:要有继承关系或实现关系B:要有方法重写或实现关系C:要有父类引用指向子类对象,或父接口引用指向子类对象1、成员变量编译看左边 , 运行看左边。/ 就是因为变量不

9、存在重写( 掌握 ) Fu fu = new Zi(); System.out.println(fu.name);/调用的是父类的name属性2、非静态成员方法编译看左边 , 运行看右边。/ 因为方法存在重写( 掌握 ) Fu fu = new Zi(); fu.show();/调用的是子类的show() 3、产生以上现象的原因( 掌握 ) 因为方法有重写,变量没有总结一句话:方法运行看右边* 成员变量* 编译看左边 ( 父类 ) ,运行看左边( 父类 ) 。* 成员方法* 编译看左边 ( 父类 ) ,运行看右边( 子类 ) 。* 静态方法* 编译看左边 ( 父类 ) ,运行看左边( 父类 )

10、 。* ( 静态和类相关,算不上重写,所以,访问还是左边的) * 只有非静态的成员方法, 编译看左边 , 运行看右边9.抽象类和接口的区别?抽象类和接口的关系( 掌握 ) 抽象类:成员变量:可以是变量,也可以是常量。构造方法:有构造方法。成员方法:可以是抽象方法,也可以是非抽象方法。接口:成员变量:只能是常量。默认修饰符:public static final 成员方法:只能是抽象方法。默认修饰符:public abstract A:抽象类只能被单继承;接口可以被多实现。B:抽象类中的成员:成员变量 : 可以是常量,也可以是变量。成员方法 : 可以是抽象的,也可以是非抽象的。构造方法 : 虽然

11、不可以创建对象,但是可以给子类实例化用。接口中的成员:成员变量:只能是常量。默认修饰符 public static final 成员方法:只能是抽象的。默认修饰符 public abstract C:抽象类中定义的是体系结构中的共性的内容。接口中定义的是对象的扩展功能。D:抽象类被继承表示的是:“is a“的关系。 xx 是 yy 中的一种。接口被实现表示的是: “like a“的关系。 xx 像 yy 中的一种。10. 抽象类中能是否可以有构造方法?构造方法有构造方法,但是不能通过构造方法创建对象问:既然不能被实例化,那么有构造方法有什么用? 答:可以用于子类访问父类数据前,对父类数据进行初

12、始化。11. 接口中是否可以有构造方法?没有构造方法因为接口中的成员变量都被final修饰,定义的时候必须做初始化任何类如果没有继承父类,那么这个类就继承自Object 类。/ 所有类都直接或者间接的继承自Object 类。 Object类是所有类的超类12. 接口是否可继承接口 ? 类与类:继承关系 , 只能单继承 ,可以多层继承。类与接口:实现关系 , 可以单实现 ,也可以多实现。并且还可以在继承一个类的同时实现多个接口。接口与接口:继承关系 , 可以单继承 ,也可以多继承。13. 抽象类是否可实现 (implements) 接口? 可以14. 抽象类是否可继承具体类(concrete c

13、lass)? 可以class Tool abstract class List extends Tool 15. 抽象类中是否可以有静态的main 方法?可以public static void main(Strirng args) 只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。(掌握)16. 抽象类的特点(掌握) (演讲内容 ) A:一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方法。B:抽象类是不能够被实例化的。不能够创建对象的。C:如果一个类继承抽象类,那么,它要么实现抽象类中的所有抽象方法,要么本身也是抽象类。17. 抽象类的成员

14、特点:(掌握)A:成员变量:子类可以直接继承抽象类中的成员变量。( 抽象类中的成员变量可以和以前是一样的 ) B:成员方法: 抽象类中分为两种方法,一种是抽象方法,这种方法在子类中必须要被实现。C:构造方法:抽象类不能被实例化,那么它有构造方法吗?抽象类是class ,那么它就有构造方法。它的构造方法有用吗?有,为了让子类实例化的时候使用。18. 抽象类的相关问题:A:抽象类中是否有构造函数?B:抽象关键字abstract不可以和哪些关键字共存?private 私有的,外部直接无法访问。static 那么这个时候抽象方法就可以可以通过类名调用,但是这样是没有意义的。final final修饰的

15、方法不能被重写。所以它和abstract冲突。C:抽象类中可不可以没有抽象方法?可以。防止其他类创建该类对象。19. 接口特点: ( 掌握, 演讲面试题 ) A:接口是对外暴露的规则B:接口是功能的扩展C :接口降低了程序的耦合性。* 内聚 ( 自己实现功能的能力) * 高内聚,低耦合。举例:主板和CPU,USB 接口 , 电源插座。D :扩展说了下接口的理解* 狭义的理解就是java 中的接口。* 广义的理解就是:任何定义的规范都是接口。20. 什么叫匿名对象* A: 什么是匿名对象* 没有名字的对象* B: 匿名对象应用场景调用方法,仅仅只调用一次的时候。匿名对象可以作为实际参数传递那么,

16、这种匿名调用有什么好处吗? * 节省代码;匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。21. 匿名内部类和匿名对象的区别(理解) 不同点匿名内部类是一个继承了类或者实现了接口的子类对象匿名对象就是这个类的本类对象相同点都作为实际参数传递时使用,或者该对象的方法只调用 1 次的时候使用. 注意:一般情况匿名对象或者匿名内部类对象里面最多有3 个方法无论是匿名内部类还是匿名对象,一般使用方式1、只调用该类中的一个方法,这种情况一般该抽象类或者该接口只有一个抽象方法时使用2、作为实际参数传递( 一般该匿名对象或匿名内部类中的方法不超过3 个) 22. 什么是内部类?B类如果要直接使用A类中的所有 ( 包括私有 ) 成员的时候就把B类定义到A类里面内部类访问特点* a: 内部类可以直接访问外部类的成员,包括私有。* b: 外部类要访问内部类的成员,必须创建对象。* 外部类名 . 内部类名对象名 = 外部类对象 . 内部类对象 ; 静态的:外部类名. 内部类名对象名 = 外部类对象 . 内部类 ; 23. 介绍

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号