面试真题

Java · 中等 · 京东

JUC 中的 `synchronized` 与可重入锁(`ReentrantLock`)的区别?

中等 Java 🎤 京东
参考答案
结论:synchronized是JVM内置关键字,自动加解锁;ReentrantLock是JUC提供的API锁,需手动释放但功能更灵活。区别:1.实现机制:synchronized基于monitor指令,ReentrantLock基于AQS队列;2.灵活性:ReentrantLock支持可中断锁、超时获取、公平锁及多Condition;3.释放方式:synchronized退出同步块自动释放,ReentrantLock必须在finally中调用unlock;4.性能:JDK6后偏向锁轻量级锁优化使两者相近,高并发下ReentrantLock可控性更好;示例:lock.lock(); try{ doWork(); } finally { lock.unlock(); }
题目整理自公开面经,答案由校招宝自研生成,仅供参考

🏢 京东 在招岗位(5 条)

保险服务 北京市-北京店长储备 上海市-上海,云南省-昆明,北京市-北京,吉林省-长春市-朝阳区,四川省-成都,四川省-成都市-新都区,天津市-天津,安徽省-合肥,安徽省-合肥市-包河区,安徽省-宿州,安徽省-淮南,安徽省-滁州,安徽省-芜湖,安徽省-蚌埠,安徽省-阜阳,山东省-济南市-历下区,山东省-济南市-历城区,山东省-青岛市-李沧区,山西省-太原,广东省-广州,广东省-深圳,广西壮族自治区-南宁,江苏省-南京,江苏省-南通,江苏省-宿迁,江苏省-徐州,江苏省-扬州,江苏省-无锡,江苏省-淮安,江苏省-盐城,江苏省-苏州,江西省-南昌,河北省-保定,河北省-廊坊,河北省-石家庄,河南省-郑州市-金水区,浙江省-宁波,浙江省-杭州,湖北省-武汉,湖南省-长沙,福建省-福州,辽宁省-沈阳,重庆市-重庆,陕西省-西安家政运营 上海市-上海,北京市-北京,吉林省-长春,四川省-成都,山东省-济南,广东省-广州,广东省-深圳,江苏省-南京,浙江省-杭州,湖北省-武汉,陕西省-西安后端开发,前端开发,客户端开发,测试,数据,运维,人工智能/算法,研发工程师,销售技术支持,通信,技术支持,产品,运营,用户研究,风控,投融资,保险,市场/营销,客服,商务,咨询/调研,财务审计,人事,行政,法务,供应链,物流,交互/设计 上海,北京,广州,成都,杭州,武汉,深圳物流储备类,门店储备类,金融风控储备类,健康储备类,客服储备类,审核储备类,金融保险储备类,销售类,人力资源类,物流防损类,财务会计类,行政类,法务风控类,健康类,品控类,运维支持类,业务支持类 上海,北京,山东等全国各地区,江苏,浙江
查看「京东」企业档案与全部在招岗位 ›