Java面试题

 

一、java面向对象有哪些特征?

  • 继承:增加了代码的复用性;
  • 封装:增加了代码的复用性;
  • 多态:增加了代码的可移植性;

二、ArrayList和LinkedList的区别?

ArrayList和LinkedList都实现了List接口,他们有以下不同点:

  • ArrayList是基于索引的数据接口,他的底层是数组。LinkedList是以元素列表的形式存储他的数据。
  • LinkedList的插入,添加,删除操作速度更快;因为不涉及重排元素
  • LinkedList更占内存

三、高并发中的集合有哪些问题?

1.第一代线程安全集合类:Vector,Hashtable

使用synchronized修饰方法,缺点:效率底下

2.第二代线程非安全集合类:ArrayList,HashMap  性能好

如果需要线程安全Collections.synchronizedList(list);

四、JDK1.8的新特性有哪些?

1.接口的默认方法

2.lamdba表达式

3.函数式接口

五、java接口和抽象类的区别?

1.抽象类中可以定义构造器,接口不行;

2.抽象类中有抽象方法和具体方法,接口中全部都是抽象方法;

3.抽象类中的成员可以是private,默认,protected,public,接口中的成员都是public;

4.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法;

5.抽象类中可以包含静态方法,接口中不能;

6.抽象类中可以可以定义成员变量,接口中定义的成员变量实际上都是常量;

7.一个类只能继承一个抽象类,一个类可以实现多个接口;

什么时候用抽象类?

抽象类描述的是一个概念,比如动物,植物;

接口描述的是某些共同事物有的共同特征,比如飞,吃;

六、hashcode和equals的区别?

七、Java代理的几种实现方式?

1.JDK实现的动态代理;

2.

八、==和equals的区别?

1.==:基本类型,数值相等,引用类型:对象的地址值是否相等;

2.equals():用来比较两个对象内容是否相等;

九、java中的异常处理方式是什么?

1.抛出异常 thorw

2.捕获异常 try--catch--finally

3.声明异常 throws

十、重写和重载有哪些区别?

1.重载是在同一个类中,重写是在子类和父类中;

2.重载无修饰符,重写

3.方法名相同。

4.重载参数不同,重写方法名相同;

十一、Sting,StringBuffer,StringBuilder的区别及使用场景?

1.String是不可变的字符串,StringBuffer和StringBuilder是可变的字符串;

2.StringBuffer线程安全的,效率低,StringBuilder则相反;

十二、怎么样声明一个类不会被继承?final修饰

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值