Java软件开发面试题(更新中……)

最近整理网盘,发现了之前收藏的一些经典Java面试题,学习资料分享给大家,也很感谢分享这些资料的朋友。

1、简述你所知道的JAVA修饰符及各自的使用机制?(public、abstract、final、synchronized、super…)
public :允许所有客户访问
protected:只能在本包内被该类的子类所使用
private:只允许在本类内使用
abstract:没有提供实现,需要子类提供
static:与整个类相关,与单个对象无关
final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值
synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。
super:构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。

2. String、StringBuffer与StringBuilder之间区别?别简述各自的执行效率?

区别:String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的,
执行速度:三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String
使用场景:1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

3、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗?

静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于该类的对象,必须产生该类对象,才能调用实例变量
静态方法及变量属于整个类,数据将会被存储在公共区域,非静态方法及变量属于对象
静态方法中无法调用实例变量,而实例方法却可以调用静态变量

4、继承和接口是什么?以及他们的区别?

1 接口定义一个类需要实现的方法 属性 索引 事件和可能的参数 返回值类型,具体的实现交由相应的类或结构,从而实现多态;而继承用于在一个现有父类基础上的功能扩展,把几个类中相同的成员提取出来 放在一个父类中,在子类中添加独特的方法 即继承 扩展
2 接口能够实现多接口继承,而继承只能实现单继承
3 继承能够获得父类方法的实现,而接口只能获得方法的定义,所以必须获得所有的方法
4 在继承中 为父类添加方法不影响子类的继承,但在接口中 为父类添加一个方法定义 必须在子类中添加此方法的实现  

4、HashMap和Hashtable的区别?

 1,Hashtable是基于陈旧的Dictionary类的&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青檬笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值