近期的面试题总结

最近几天,我参加了好几个面试。我主要找的是java,并且在简历上写明了只会java基础知识,现在在这里总结一下面试题。

Java面试题

  • java的基本数据类型是什么
    A: java的基本数据类型包括byte,int,long,float,double,boolean,char
  • ==equals的区别
    A: ①==常用来比较基本数据类型,8种基本数据类型有byte、short、long、double、char、int、float、boolean,因为变量直接存储的就是他们的值,所以用==去比较,比较的就是他们的值。但是复合数据类型用“==”比较的是他的堆内存地址。
    equals对于复合数据类型比较的也是它的堆内存地址(不能作用于基本数据类型的变量)。对于String(还有Date,Integer)类型重写了equals方法,使其比较的是存储对象的内容是否相等,而不是堆内存地址。
  • 谈谈对深拷贝和浅拷贝的理解
    A:①浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。
    简而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象
    ②深拷贝: 深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。
    简而言之,深拷贝把要复制的对象所引用的对象都复制了一遍

数据库

  • java如何防止两个人同时更改数据库,造成覆盖?
    A: 悲观锁。在查询的时候加上行级锁,让其他用户无法访问这些记录
    select … from table for update

暂时先写到这里,后面如果有面试再继续补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值