阿里巴资深程序员面试题及答案.docxVIP

  • 0
  • 0
  • 约5.86千字
  • 约 18页
  • 2026-03-23 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年阿里巴资深程序员面试题及答案

一、编程基础(3题,每题10分,共30分)

1.题目:

请用Java实现一个函数,输入一个正整数`n`,返回其二进制表示中`1`的个数。要求不使用内置函数。

答案:

java

publicstaticintcountOnes(intn){

intcount=0;

while(n!=0){

count+=n1;

n=1;

}

returncount;

}

解析:

-使用位运算`n1`判断最低位是否为1,然后右移一位继续统计。

-``是无符号右移,适用于Java中的整型。

-时间复杂度O(logn),空间复杂度O(1)。

2.题目:

请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`的区别。

答案:

-`volatile`保证变量对所有线程的可见性,禁止指令重排序,但不保证原子性。

-适用于读多写少的场景。

-与`synchronized`的区别:

-`volatile`轻量级,只影响变量可见性;`synchronized`是重量级锁,涉及锁状态和线程阻塞。

-`volatile`不保证原子性,需要额外措施实现原子操作(如`AtomicInteger`);`synchronized`保证代码块原子

文档评论(0)

1亿VIP精品文档

相关文档