JavaSE面试题(六)

String类为什么是final的

两点:

  • 为了效率,如果不是final修饰使用率高可能会降低程序的性能
  • 为了安全,JDK中提供的好多核心类是String类,如果不是final修饰可能会被继承重写,成为直接攻击操作系统代码

String、StringBuffer、StringBuilder区别与联系

三者都代表字符串。

最早出现的是String,因为String被final修饰无法更改,会导致内存浪费的问题,而StringBuffer和StringBuild的出现解决了String内存浪费的问题。

StringBulid是在JDK1.5版本出现的,对于StringBuffer来说,StringBuild是线程不安全的,而StringBuffer是线程安全的。但同时,StringBuffer效率低。

为了节省空间和提高效率,应该选择使用的是StringBuild。

String类型是基本数据类型吗?

不是,它是引用数据类型。(java.lang.String)

java.sql.Date和java.util.Date

java.sql.Datejava.util.Date的子类

java.sql.Date就是与数据库Date相对应的一个类型,而java.util.Date是纯java的Date。

java.util.Date 就是Java的日期对象,而java.sql.Date 是针对SQL语句使用的,只包含日期而没有时间部分

Java集合体系结构

Collection和Map是平行关系

Collection有List和Set组成,List分为ArrayList和LinkedList,Set分为hashSet和TreeSet组成

Map包含hashMap和TreeMap

Vector和ArrayList的区别和联系

实现原理相同,功能相同,都是长度可变的数组结构,很多情况下可以互用

  1. Vector是早期JDK接口,ArrayList是替代Vector的新接口
  2. Vector线程安全,ArrayList重速度轻安全,线程非安全
  3. 长度需增长时,Vector默认增长一倍,ArrayList增长50%

ArrayList和LinkedList的区别和联系

  1. 两者都实现了List接口,都具有List中元素有序不唯一的特点。
  2. ArrayList实现了长度可变的数组,遍历和随机访问元素效率高
  3. LinkedList底层结构是链表结构,插入,删除效率高

Collection和Collections的区别

Collection是Java提供的集合接口,存储一组不唯一,无序的对象。

Collections是专门操作集合的类,它提供一系列静态方法实现对各种集合的搜索,排序,线程安全化等操作。

为什么引入集合

第一,集合符合面向对象的思想。

第二,集合灵活,可以存储多种不同数据类型的元素

  • 集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性调用即可实现各种复杂操作,进而大大提高软件的开发效率。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值