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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[size=12.0000pt]1. 谈谈面向对象的三个特征,分别是什么? 各特征有什么优缺点?(封装 继承 多态)
(:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;安全性。
好处:
1:提高了代码的复用性。
2:让类与类之间产生了关系,提供了另一个特征多态的前提。
:函数本身就具备多态性,某一种事物有不同的具体的体现。
体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();
多态的好处:提高了程序的扩展性。
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。
我理解的多态与继承体系有关,与方法覆盖有关,与方法重载无关。
2 重写和重载的区别?
1、重写override概念(掌握)
   子父类关系中,子类中存在与父类中方法声明完全一样的方法叫重写
   一句话:除了方法体以外其他都相同,但是子类修饰符权限要大于等于父类
2、重载overload概念(掌握)
   一个类中或者子父类关系中存在多个同名方法,并且参数列表不同的方法 叫重载
   子父类关系中:子类中的方法和父类中的方法构成了重载关系
3、重写的作用\应用(理解)
   升级改造父类的方法
4、注意(掌握)
   只有方法才存在重写,变量不存在
3. 静态变量和实例变量的区别?(面试题)
* 静态变量也叫类变量  成员变量也叫对象变量
* A:所属不同
        * 静态变量属于类,所以也称为为类变量
        * 成员变量属于对象,所以也称为实例变量(对象变量)
* B:内存中位置不同
        * 静态变量存储于方法区的静态区
        * 成员变量存储于堆内存
* C:内存出现时间不同
        * 静态变量随着类的加载而加载,随着类的消失而消失
        * 成员变量随着对象的创建而存在,随着对象的消失而消失
* D:调用不同
        * 静态变量可以通过类名调用,也可以通过对象调用
        * 成员变量只能通过对象名调用
4. 能不能自己写个类,也叫java.lang.String?(面试题)
可以,但在应用的时候,需要用自己的类加载器去加载,
否则,系统的类加载器永远只是去加载jre.jar包中的那个java.lang.String。
由于在tomcat的web应用程序中,都是由webapp自己的类加载器先自己加载WEB-INF/classess目录中的类,然后才委托上级的类加载器加载,如果我们在tomcat的web应用程序中写一个java.lang.String,这时候Servlet程序加载的就是我们自己写的java.lang.String,但是这么干就会出很多潜在的问题,原来所有用了java.lang.String类的都将出现问题。
     虽然java提供了endorsed技术,可以覆盖jdk中的某些类,具体做法是….。但是,能够被覆盖的类是有限制范围,反正不包括java.lang这样的包中的类。
5. flush()和close()有什么区别?(面试题)
* flush()方法
* 用来刷新缓冲区的,刷新后可以再次写出
* close()方法
* 用来关闭流释放资源的的;
   如果是带缓冲区的流对象的close()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出
     flush只刷新缓冲区,不释放流资源,流对象还可以继续使用
     close刷新并且释放流资源,流对象不可以继续使用
6. String是最基本的数据类型吗? (面试题)
基本数据类型:整数类型,浮点类型,字符型,布尔型
引用数据类型:类,接口,数组,枚举
String类虽然是引用数据类型,但是它作为参数传递时和基本数据类型是一样的
7. 是否可以继承String类?(面试题)
String类是final类故不可以继承。
8. StringBuffer与StringBuilder的区别?(面试题)
StringBuffer和StringBuilder的区别
StringBuffer是jdk1.0版本的,是线程安全的,同步的,效率低
StringBuilder是jdk1.5版本的,是线程不安全的,不同步的,效率高
String和StringBuffer,StringBuilder的区别
String是一个不可变的字符序列
StringBuffer,StringBuilder是可变的字符序列

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马