A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fzc123 中级黑马   /  2016-7-26 20:13  /  348 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

60. final如果修饰局部变量,会发生什么事情?
答:基本类型,是值不能被改变,引用类型,是地址值不能被改变,对象中的属性可以改变。
61. 什么是多态?多态的体现,前提,好处和弊端分别是什么?
答:同一事物在不同时刻表现出来的不同状态(形态)。
前提:(1)要有继承(实现)关系(2)要有方法重写(3)父类或者父接口引用指向子类对象。
好处:(1)提高了代码的维护性(2)提高了代码的扩展性
弊端:父类引用不能直接调用子类特有的属性和行为。
*向上转型:父类或者父接口引用指向子类对象。
*向下转型:把那个引用强制转为子类对象。
62.多态中成员的访问特点是什么?
答:非静态方法,编译看左边,运行看右边。其他(变量,静态方法)都是编译和运行都看左边。原因是因为方法有重写。
63.抽象类和抽象方法的特点,有什么关系?
答:抽象类不能实例化,需要子类继承;抽象方法没有方法体,需要子类去重写。抽象类中不一定含有抽象方法,有抽象方法的类一定在抽象类。
64.抽象类中的抽象方法和非抽象方法的区别?
答:抽象方法要求子类必须重写,一般是用来强制要求子类完成某些事情的;非抽象方法让子类继承,提高代码的复用性。
65.abstract不能和哪些关键字共同存在?
答:abstract修饰的方法是抽象方法,没有方法体,而且要求子类必须重写。
private:私有的方法子类不能继承的,所以无法被复写,概念冲突。
    final:被final修饰的方法是最终方法,无法被复写,概念冲突。
    static:被static修饰的方法,可以被类名点的形式调用,而抽象方法是没有方法体的,所以类名点抽象方法无意义,所以不能共存。
66.final修饰的变量、方法、和类有什么特点?
答:final修饰的变量其实是一个常量;final修饰的方法不能被子类重写;final修饰的类不能被继承,但是可以继承别的类。
67.final、finally、finalize的区别?
答:(1)final是一个关键字,是用来修饰类,成员变量,成员方法的,
    它修饰的类不能被继承,但是可以继承其他类,
    它修饰的成员变量是一个常量,只能赋值一次
    它修饰的成员方法不能被子类重写
(2)finally是 try-catch-finally语句的一个模块,正常情况下里边的代码永远会执行,一般是用来释放资源的
(3)finalize是Object类中的方法,当对象变成垃圾的时候,由GC(Java中的垃圾回收机制)来调用该类的finalize()方法回收垃圾。
68.接口中的成员的特点?
答:接口中有且只能有常量或者抽象方法。因为常量的默认修饰符是public static final ;方法的默认修饰符是:public abstract;
69、类与类、类与接口、接口与接口的关系?
答:
类与类之间是继承关系,只能单继承,不能多继承,但是能够多层继承;
类与接口之间是实现关系,可以单实现也可以多实现,还可以在继承一个类的同时实现多个接口。
接口与接口之间是继承关系,可以单继承也可以多继承。
70.接口和抽象类的区别?
(1)成员特点的区别:抽象类可以有变量、常量、构造方法、一般方法、抽象方法;接口有且只能有常量和抽象方法。
(2)关系特点的区别:
类与类之间是继承关系,只能单继承,不能多继承,但是能够多层继承;
类与接口之间是实现关系,可以单实现也可以多实现,还可以在继承一个类的同时实现多个接口。
接口与接口之间是继承关系,可以单继承也可以多继承;
(3)设计理念的区别:抽象类定义的是该继承体系的共性功能,是is a的关系。接口定义的是该体系的扩展功能,是like a的关系。
71.接口的思想特点?
(1)是程序对外暴露的规则(2)接口是程序对外的功能扩展(3)接口是用来多实现的(4)接口的出现降低了类与类之间的耦合性。
72.什么是内部类,特点是什么?
答:类中还有一个类,里边的那个类就是内部类。
特点(1)能够直接访问外部类的成员,包括私有的。(2)外部类访问内部类成员需要创建内部类的对象。
73.成员内部类是什么?
答:成员内部类是定义在成员位置的内部类。能够被私有、静态修饰。
74.内部类的方法如果访问局部变量,内部类的成员变量,外部类的成员变量?
答:局部变量可以直接访问;内部类的成员变量this.   ;外部类的成员变量:外部类名.this.
75.局部内部类访问其所在方法的局部变量时,该局部变量必须要加final修饰,为什么?
答案:为了延长该局部变量的生命周期。但是JDK1.8以后取消了这个特性,会默认加上final的。(所以我认为这是一个Bug)
答:因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用。但是JDK1.8以后取消了这个特性,会默认加上final的。(所以我认为这是一个Bug)
76.什么是匿名内部类?
答:匿名内部类就是没有名字的局部内部类,他的本质是一个继承了该类或者实现该接口的匿名的子类对象。
前提:必须要有一个类或一个接口。
使用:(1)当接口(抽象类)中的抽象方法只有一个时,并对方法调用一次的时候(2)如果方法的形参是接口或抽象类,也可以考虑使用匿名内部类。
77、匿名对象何时使用?
答:(1)当对对象方法调用一次的时候(2)可以作为实际参数进行传递
79.四种权限修饰符的比较?
答:public  强调的是给大家使用
Protected强调的是给子类使用
默认     强调的是同一个包下的类
Private  强调的是给自己使用
80.package,import,class三者的顺序是什么?
package在第一行,只能有一个;然后是import导包,可以导多个包;最后是class,建议一个java文件中只写一个类(接口)。
81.代码块的分类:
局部代码块:让变量尽早的消失,节约资源,提高效率。
构造代码块:用于给对象初始化;
静态代码块儿:一般是用来加载驱动。
同步代码块:用来解决多线程的安全问题的。  Synchronized

3 个回复

倒序浏览
水水更健康。。。
回复 使用道具 举报
日常水一发。。。
回复 使用道具 举报
知道的这么细,顶顶顶顶!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马