java synchronized 语句块问题

今天突然发神经想到如下问题:
是关于synchronized(object)
废话不多说,只问当Object是个基本数据类型的时候,线程怎么能获得这个基本数据类型的 “锁”???基本数据类型不是Object子类,哪来的锁啊?

请不要百度后复制粘贴,谢谢...

基本数据类型可以放进去吗?
编译会出错吧

synchronized(){}这里面不能放基本类型,可以放Integer,放int错了。
不是挺明白的么,还是我理解的不对呢?