黑马点招面试问题.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《黑马点招面试问题.doc》由会员分享,可在线阅读,更多相关《黑马点招面试问题.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. 静态变量和实例变量的区别局部变量不能用静态的,如果用了静态的,则不会从静态区消失* 静态变量也叫类变量 成员变量也叫对象变量* A:所属不同* 静态变量属于类,所以也称为为类变量* 成员变量属于对象,所以也称为实例变量(对象变量)* B:内存中位置不同* 静态变量存储于方法区的静态区* 成员变量存储于堆内存* C:内存出现时间不同* 静态变量随着类的加载而加载,随着类的消失而消失* 成员变量随着对象的创建而存在,随着对象的消失而消失* D:调用不同* 静态变量可以通过类名调用,也可以通过对象调用* 成员变量只能通过对 象名调用2. Interger和int的区别int是java提供的8种
2、原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况, 另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。3. 谈谈你对面向对象的理解如何大象装进冰箱?面向过程:为了把大象装进冰箱,需要3个过程。1) 把冰箱门打开(得到打开门的冰箱)2) 把大象装进去(打开门后,得到里面装着大象的冰箱)3) 把冰箱门关上(打开门、装好大象后,获
3、得关好门的冰箱)每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。1:冰箱开门(冰箱)冰箱装进(冰箱, 大象)冰箱关门(冰箱)=换个写法(冰箱开门 冰箱)(冰箱装进 冰箱 大象)(冰箱关门 冰箱)2:冰箱关门(冰箱装进(冰箱开门(冰箱), 大象)=换个写法(冰箱关门 (冰箱装进 (冰箱开门 冰箱) 大象)面向对象:每个动作有一个执行者,它就是对象。1) 冰箱,你给我把门打开2) 冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)3) 冰箱,你给我把门关上依次做这些动作,就能把大象装进冰箱。1:冰箱.开门()冰箱.装进(大象)冰箱.关门()2:冰箱.开门().装进(大象
4、).关门()4. 谈谈面向对象的三个特征,分别是什么? 各特征有什么优缺点?(封装 继承 多态)封 装(:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。好处:将变化隔离;便于使用;提高重用性;安全性。继 承好处:1:提高了代码的复用性。2:让类与类之间产生了关系,提供了另一个特征多态的前提。多 态:函数本身就具备多态性,某一种事物有不同的具体的体现。体现:父类引用或者接口的引用指向了自己的子类对象。/Animal a = new Cat();多态的好处:提高了程序的扩展性。多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。
5、我理解的多态与继承体系有关,与方法覆盖有关,与方法重载无关。5. 重写和重载的区别?1、重写override概念(掌握) 子父类关系中,子类中存在与父类中方法声明完全一样的方法叫重写 一句话:除了方法体以外其他都相同,但是子类修饰符权限要大于等于父类2、重载overload概念(掌握) 一个类中或者子父类关系中存在多个同名方法,并且参数列表不同的方法 叫重载 子父类关系中:子类中的方法和父类中的方法构成了重载关系3、重写的作用应用(理解) 升级改造父类的方法4、注意(掌握) 只有方法才存在重写,变量不存在6. 构造方法的特点?* A:构造方法概述和作用* 给对象的数据(属性)进行初始化* B:
6、构造方法格式特点* a:方法名与类名相同(大小也要与类名一致)* b:没有返回值类型,连void都没有* c:没有具体的返回值return;(有return 语句 return;)当创建对象的时候,系统就调用了构造方法; 构造方法不能用对象调用7. Static关键字有什么特点,静态方法是否可以加this和super?为什么1、概述 1、static 可以修饰成员变量和成员方法 2、被static修饰的成员有一个最大的特点,就是可以被该类下所有的对象共享2、什么时候用 多个对象共享某一数据的时候,我们就把这个数据用static修饰.举例:小鸡吃食3、特点(掌握) 1、被static修饰的内容随
7、着类的加载而加载,优先于对象存在 2、可以直接通过类名调用 3、被该类下所有对象共享4、注意事项 1、在静态方法中是没有this关键字,因为静态是随着类的加载而加载。而this是对象创建才存在的 2、静态方法只能访问静态成员变量和静态成员方法 一句话 静态只 能访问静态 3、静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用8. 多态的特点(包括多态中调用成员的特点)1、概念-什么是多态(掌握) 对象在不同时刻表现出来的不同状态。2、针对引用类型的理解 编译期间状态和运行期间状态不一样 比如 Person p = new Person();/第一行 p = new Man();/第
8、二行 p = new Woman();/第三行 p在第一行和第二行的状态是不一样的,在第一行表示人对象,在第二行表示学生对象3、举例 水(水,冰,水蒸气) 狗:狗是狗,狗是动物,狗是宠物,狗是食物/该处强调谁是谁的一种4、前提条件(掌握) A:要有继承关系或实现关系 B:要有方法重写或实现关系 C:要有父类引用指向子类对象,或父接口引用指向子类对象 1、成员变量 编译看左边,运行看左边。/就是因为变量不存在重写(掌握) Fu fu = new Zi(); System.out.println(fu.name);/调用的是父类的name属性 2、非静态成员方法 编译看左边,运行看右边。/因为方法
9、存在重写(掌握) Fu fu = new Zi(); fu.show();/调用的是子类的show() 3、产生以上现象的原因(掌握) 因为方法有重写,变量没有 总结一句话:方法运行看右边* 成员变量* 编译看左边(父类),运行看左边(父类)。* 成员方法* 编译看左边(父类),运行看右边(子类)。* 静态方法* 编译看左边(父类),运行看左边(父类)。* (静态和类相关,算不上重写,所以,访问还是左边的)* 只有非静态的成员方法,编译看左边,运行看右边 9. 抽象类和接口的区别?抽象类和接口的关系(掌握)抽象类: 成员变量:可以是变量,也可以是常量。 构造方法:有构造方法。 成员方法:可以是
10、抽象方法,也可以是非抽象方法。接口: 成员变量:只能是常量。 默认修饰符:public static final 成员方法:只能是抽象方法。 默认修饰符:public abstractA:抽象类只能被单继承;接口可以被多实现。B:抽象类中的成员:成员变量:可以是常量,也可以是变量。成员方法:可以是抽象的,也可以是非抽象的。构造方法:虽然不可以创建对象,但是可以给子类实例化用。接口中的成员:成员变量:只能是常量。默认修饰符 public static final成员方法:只能是抽象的。默认修饰符 public abstractC:抽象类中定义的是体系结构中的共性的内容。接口中定义的是对象的扩展功
11、能。D:抽象类被继承表示的是:is a的关系。xx是yy中的一种。接口被实现表示的是: like a的关系。xx像yy中的一种。10. 抽象类中能是否可以有构造方法?构造方法 有构造方法,但是不能通过构造方法创建对象问:既然不能被实例化,那么有构造方法有什么用?答:可以用于子类访问父类数据前,对父类数据进行初始化。11. 接口中是否可以有构造方法?没有构造方法因为接口中的成员变量都被final修饰,定义的时候必须做初始化任何类如果没有继承父类,那么这个类就继承自Object类。/所有类都直接或者间接的继承自Object类。Object类是所有类的超类12. 接口是否可继承接口? 类与类:继承关
12、系,只能单继承,可以多层继承。类与接口:实现关系,可以单实现,也可以多实现。并且还可以在继承一个类的同时实现多个接口。接口与接口:继承关系,可以单继承,也可以多继承。13. 抽象类是否可实现(implements)接口? 可以14. 抽象类是否可继承具体类(concrete class)? 可以class Toolabstract class List extends Tool 15. 抽象类中是否可以有静态的main方法?可以public static void main(Strirng args)只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。(掌握)16.
13、抽象类的特点(掌握)(演讲内容)A:一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方法。B:抽象类是不能够被实例化的。不能够创建对象的。C:如果一个类继承抽象类,那么,它要么实现抽象类中的所有抽象方法,要么本身也是抽象类。17. 抽象类的成员特点:(掌握)A:成员变量:子类可以直接继承抽象类中的成员变量。(抽象类中的成员变量可以和以前是一样的)B:成员方法:抽象类中分为两种方法,一种是抽象方法,这种方法在子类中必须要被实现。C:构造方法:抽象类不能被实例化,那么它有构造方法吗?抽象类是class,那么它就有构造方法。它的构造方法有用吗?有,为了让子类实例化的时候使用。1
14、8. 抽象类的相关问题:A:抽象类中是否有构造函数?B:抽象关键字abstract不可以和哪些关键字共存?private私有的,外部直接无法访问。static那么这个时候抽象方法就可以可以通过类名调用,但是这样是没有意义的。finalfinal修饰的方法不能被重写。所以它和abstract冲突。C:抽象类中可不可以没有抽象方法?可以。防止其他类创建该类对象。19. 接口特点:(掌握,演讲面试题)A:接口是对外暴露的规则B:接口是功能的扩展C:接口降低了程序的耦合性。*内聚(自己实现功能的能力) *高内聚,低耦合。举例:主板和CPU,USB接口,电源插座。D:扩展说了下接口的理解*狭义的理解就是
15、java中的接口。*广义的理解就是:任何定义的规范都是接口。20. 什么叫匿名对象* A:什么是匿名对象* 没有名字的对象 * B:匿名对象应用场景调用方法,仅仅只调用一次的时候。匿名对象可以作为实际参数传递那么,这种匿名调用有什么好处吗?* 节省代码;匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。21. 匿名内部类和匿名对象的区别(理解)不同点匿名内部类是一个继承了类或者实现了接口的子类对象匿名对象就是这个类的本类对象相同点都作为实际参数传递时使用,或者该对象的方法只调用 1次的时候使用.注意:一般情况匿名对象或者匿名内部类对象里面最多有3个方法无论是匿名内部类还是匿名对象,一般使用方式1
16、、只调用该类中的一个方法,这种情况一般该抽象类或者该接口只有一个抽象方法时使用2、作为实际参数传递(一般该匿名对象或匿名内部类中的方法不超过3个)22. 什么是内部类?B类如果要直接使用A类中的 所有(包括私有 ) 成员的时候就把B类定义到A类里面内部类访问特点* a:内部类可以直接访问外部类的成员,包括私有。* b:外部类要访问内部类的成员,必须创建对象。* 外部类名.内部类名 对象名 = 外部类对象.内部类对象;静态的:外部类名.内部类名 对象名 = 外部类对象.内部类;23. 介绍一下匿名内部类?概念:没有名字的局部内部类 (掌握)前提:必须存在一个类,抽象类或者接口(掌握) 格式: (
17、掌握) new 类名或接口名() /重写类或者接口中的方法 /也可自定义方法 ; 本质:其实就是继承了一个类或者实现了一个接口的匿名的子类对象(掌握) 24. 匿名内部类中的方法是否可以调用局部变量?为什么?局部内部类在访问他所在方法中的局部变量必须用final修饰,为什么?因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用25. 介绍一下异常?异常就是Java
18、程序在运行过程中出现的错误Throwable |Error 严重的错误,比如硬件坏了 |Exception |RuntimeException 运行时异常,不需要处理,需要改代码 |非RuntimeException 编译时异常,需要处理26. Throw和throws的区别?有几种方式处理?A:throw用法:用在方法内部,后面跟的是异常对象。区别:用 throw抛出了编译时期异常,方法上面必须用 throws抛出。 用throw抛出了运行时期异常,方法上面可以不用 throws抛出。B:throws用法:用在方法声明上,后面跟的是异常类名。区别:用 throws在方法上声明了异常,内部可以
19、没有 throw* a:throws* 用在方法声明后面,跟的是异常类名* 可以跟多个异常类名,用逗号隔开* 表示抛出异常,由该方法的调用者来处理* b:throw* 用在方法体内,跟的是异常对象名* 只能抛出一个异常对象名* 表示抛出异常,由方法体内的语句处理27. 谈一下set和list的区别set集合元素存入取出有序,元素可以重复list集合元素存入取出无序,元素唯一28. String类的特点?与Stringbuffer有什么区别?特点及注意事项 字符串一旦被赋值,就不能改变。 注意:字符串的值不能改变,引用是可以改变的。String是一个不可变的字符序列StringBuffer,St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑马 面试 问题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内