2021年三月份Java面试题(含答案)

2021年三月份Java面试题(含答案)1.说说String,StringBuild,StringBuffer之间的区别答案:String:字符串变量,final修饰,不可变! String的变量赋过一次值之后就不能被修改StringBuffer:字符串变量(线程安全,可变)StringBuilder:字符串变量(线程不安全,可变)StringBuffer和StringBuilder则可以使用append方法进行字符串拼接。效率:stringbuild>stringbuffer>
摘要由CSDN通过智能技术生成

2021年三月份Java面试题(含答案)

1.说说String,StringBuild,StringBuffer之间的区别
答案:

  • String:字符串变量,final修饰,不可变! String的变量赋过一次值之后就不能被修改
  • StringBuffer:字符串变量(线程安全,可变)
  • StringBuilder:字符串变量(线程不安全,可变)
  • StringBuffer和StringBuilder则可以使用append方法进行字符串拼接。
  • 效率:stringbuild>stringbuffer>string(线程安全,则效率就会低)
    当你说String是用final修饰的时候,对方可能会问一句,那么被final修饰过的类能被继承吗,答案是不能

2.访问修饰符有哪些,并写出它们的作用域:
答案:

修饰符 当前类 同包 子类 其他包
private × × ×
default × ×
protected ×
public

3.用java语言写出冒泡排序:(看完之后可以自己手写一遍加深印象,一共两次循环)

// 第一层循环实现总趟数
for (int i=0; i<arr.length-1;i++){
// 第二层的循环为一趟走多少次
for (int j=0; j<arr.length-1-i; j++){
if (arr[j] > arr[j+1]){
// 临时变量,暂时存储arr[j],如果满足if条件,好将它之后赋值给arr[j+1]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

4.说说set、List、Map三种集合之间的区别
答案:
List,Set都是继承自Collection接口
set:无序,不可重复,增加删除操作快
List:有序,可重复,访问数据块
set:HashSet,TreeSet.,LinkedHashSet
List:LinkList, ArrayList
Map:HashMap
-HashSet:以哈希表的形式存放元素,插入删除速度很快
-TreeSet:升序对对象排序的集的实现
-ArrayList:动态数组。由数组实现的List,允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。
-LinkedList:链表,队列,堆栈。对顺序访问进行了优化,向List中间插入与删除的开销并不大,随机访问则行对较慢
-HashMap:采用键值对,允许存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个)。

5.描述一下栈和队列
答案:
栈:栈的特点是“后进先出”,也就是说后存放的先取,先存放的后取。栈只能在一端进行插入和删除的线性表。允许进行插入和删除操作的一端称为栈顶,另一端为栈底。当栈中没有元素时,称为空栈。
队列:队列是先进先出,有出口和入口,先进去可以先出来。

6.&和&&的区别
&&称为短路运算,只要&&左边的表达式值为false,则右边的表达式就不会运算,被直接短路掉。
举例:当判定用户名不是null并且不是空字符串是,应当写成:
userName!=null && !userName.equals("")。这是就不能用&运算符或者将两个表达式的位置换一下,因为如果userName为null的话,在对它用equals方法会出现nullPointerException(空指针异常)。
逻辑或运算符(|)和短路或运算符(||)差别也是如此

7.两个对象的值相同,他们的ha

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值