java面试题2

本文主要探讨了Java中ArrayList和Vector的区别,包括线程安全性和扩容策略。还讲解了面向对象的四大特征:抽象、封装、继承和多态。接着讨论了接口与抽象类的不同点,并解释了String对象的内存分配以及'='和'equals()'在比较对象时的差异。
摘要由CSDN通过智能技术生成

1.ArrayList和vector区别

  1. (线程的状态不同)ArrayList是线程不安全的,(线程异步),性能较好;vector是线程安全的(线程同步)
  2. (扩容空间不同)当他们将要储存的数据超过初始大小时,arrylist将增加初始容量的一半的空间,而vector要增加初始容量一倍的空间

2.说一下面向对象的几大特征

  1. 抽象,抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么
  2. 封装,封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口
  3. 继承,继承是从已有类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段.子类继承父类属性(静态特征)和方法(动态特征),继承必须遵循封装当中的控制访问
  4. 多态,多态性是指允许相同或不同子类型的对象对同一消息作出不同响应(overload,override)

3.接口和抽象类

  1. 接口是通过interface关键字实现的,在其中只能写抽象方法,字段只能是全局常量,其子类是通过implement实现接口

  2. 都不能被实例化(没有构造方法)

  3. 抽象类是通过abstract关键字实现的 可以写抽象方法,也可以写其他方法.抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

父类包含了子类集合的常见的方法,但是由于父类本身是抽象的࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值