test

46 篇文章 1 订阅

1、为什么要有类的继承性

类的继承性可以减少代码冗余度,提高代码复用性,提高代码操作效率

2、继承的格式(语法)

子类 extends 父类

3、子类继承父类后有哪些不同

子类范围大于父类,子类的属性小于父类

4、java中继承的说明

1 - 继承在Java中代表extend拓展属性,子类继承父类属性,子类方法必须大于父类,一个父类可有多个子类继承是用过extends(扩展)实现的
2 - 通过继承,子类中无需再声明父类中已经存在的属性和方法,减
少的代码的冗余,提高的代码的复用性
3 - 子类和父类之间的关系不同于子集和集和之间的关系。子类的功
能更丰富,子类可以扩展父类没有的功能
4 - 子类继承了父类的所有属性和方法,包括私有属性,只是因为访
问权限的问题不能直接访问。可以间接访问get、set方法访问。
5 - 一个类可以被多个类继承
6 - java中的继承是单继承,即只能有一个父类,但子类下可以再有
子类,所有就有了间接继承和直接继承。
7 - 子类继承了父类后就可以获取到直接父类和间接父类的所有属性
和方法

5、java.lang.object的说明

是所有Java类的父类,所有子类都从object继承而来

6、static关键字可以修饰什么,如何理解static关键字

修饰类的属性和方法,类存在static就存在

7、abstract可以修饰什么、如何理解abstract

可以修饰对象的属性和方法,abstract必须被继承,不能被实例化

8、手写单例设计模式(两种方式)

单例模式基本实现
public class Singleton {
 	private Singleton(){//私有化构造方法
 		System.out.println("Singleton is create");
 	}
 	private static Singleton instance = new Singleton();//创建静态对象
 	public static Singleton getInsatnce(){//调用静态方法
		 return instance;
 	}
}

首先单例类必须要有一个 private 访问级别的构造函数,只有这样,才能确保单例不会在系统中的其他代码内被实例化,;其次,instance 成员变量和 getInstance 方法必须是 static 的。

上述代码唯一的不足是无法对 instance 实例做延时加载,例如单例的创建过程很慢,而由于 instance 成员变量是 static 定义的,因此在 JVM 加载单例类时,单例对象就会被建立,如果此时这个单例类在系统中还扮演其他角色,那么在任何使用这个单例类的地方都会初始化这个单例变量,而不管是否会被用到。

延迟加载的单例模式代码
public class LazySingleton {
 private LazySingleton(){
 System.out.println("LazySingleton is create");
 }//私有化构造器
 private static LazySingleton instance = null;//私有化静态对象
 public static synchronized LazySingleton getInstance(){//调用静态对象方法
 if(instance == null){
 instance = new LazySingleton();
 }
 return instance;
 }
 public static void createString(){
 System.out.println("create String");
 }
  
 public static void main(String[] args){
 LazySingleton.createString();
 }
}

9、static修饰的方法是否可以使用this和super关键字?为什么?

这里就引入了另外一个知识点,static修饰的方法内部是不允许出现非静态成员变量或成员方法,即static修饰的方法与该类相关,但是不跟该类的具体实例相关(具体可参考),而this(即对象)是具体类的对象实例,
this表示这个类的当前实例,super表示父类的当前实例,static是属于类的,this是类的一个对象,当然调用了不了他,static只有类名可以调用它,static叫静态方法,也叫类方法,就是在程序启动的时候,就会为这个方法分配一块内存空间,所以什么时候都可以调用这个方法。所以,静态方法里不能调用非静态方法,除非你先实例化那个类。如果在static修饰的方法中使用this关键字,而这个关键字就无法指向合适的对象;所以我们也说,静态成员不能直接访问非静态成员;

10.谈谈你对多态的理解

多态是同一父类,不同的实例化可以有不同的属性和行为

11.实现多态的思路?

继承,重写,向上转型(子类转父类)

12.基本类型和引用类型转换的方式? 不同引用类型如何转换?

基本类型通过自动转换,强制转换实现,不同引用类型强制转换(子父类,instanceof判断)但要明确转换过后的范围要比转换之前的范围大

13.重写和重载的区别?

重写是继承之后子类重写父类方法或属性,重载是同一类中构造方法传入不同的参数,形成不同的方法

14、写出“==”和equals的区别

是逻辑运算符,equals()是方法,在object类中equals使用的就是判断,String,failed和Date重写了equals方法,

15、写出8中基本数据类型的包装类

byte int short long char double boolean float
Byte Integer Short Long Character Double Boolean Float

16、字符串如何转换为包装类、基本类型?举例说明

字符串转换为包装类
通过包装类
的.pase静态方法
字符串转换为基本类型
Integer sr=(Integer)“a”;
int sr;

17、基本类型,包装类如何转换为字符串?举例说明

基本类型加空字符串
String sr=12+"";
包装类先转换
调用包装类的Value()方法

18、你所知道的哪些类重写了toString和equals方法。

toString 和equals在file,string,Date

19、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)

接口可以被继承,抽象类可以实现接口,抽象类可以继承实体类

20、抽象类和接口有哪些共同点和区别?

共同点:抽象类和接口都需要被重写;
区别:抽象类中方法体可以被具体实现,只能有一个父类,一个类可以实现多个接口,

21、谈谈你对面向接口编程的两种方式的理解?

面向接口可以类似于多态,
关心类有何能力而不关心接口实现细节
面向接口约定而不考虑具体实现

22 、instance是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是private static final,接口中的成员方法默认的修饰符是static。

1、java中集合框架的体系结构?

collection ------>list,set------>arrylist,kinderlist,

2、Collection接口中的常用方法?(>=10个)

add,remove,addall,removeall,set,get,clean, size, hashcode,

3、使用迭代器遍历集合。(示例代码)

iterator

Iterator iterator = coll.iterator();

while(coll.iterator()hasNext()){

system.out.println(coll.iterator()Next());

}

4、List集合的常见实现类及特点(面试内容)

arrylist,有序可重复
kinderlist,双向链表,增加删除很方便
vector古老

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值