秋招第一面

便利蜂第一面

1.介绍下寄几

2.介绍下你做的项目

3.volatile 与 synchronized 区别

1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.

2)volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.

3)volatile仅能实现变量的修改可见性,而synchronized则可以保证变量的修改可见性和原子性.
  《Java编程思想》上说,定义long或double变量时,如果使用volatile关键字,就会获得(简单的赋值与返回操作)原子性
  
4)volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.

5、当一个域的值依赖于它之前的值时,volatile就无法工作了,如n=n+1,n++等。如果某个域的值受到其他域的值的限制,那么volatile也无法工作,如Range类的lower和upper边界,必须遵循lower<=upper的限制。

6、使用volatile而不是synchronized的唯一安全的情况是类中只有一个可变的域。

4.hashmap的底层实现

我:数组+链表的形式实现
Hr:如果出现碰撞很严重的情况或者怎么扩容,该怎么办
我:(当时没经过脑子),我再建一个数组+链表,hash的结果是两个hashmap的结果的并。
Hr:你这个说的是普通的hashmap实现原理,说说java是怎么实现的
我:不会!
(想想真是傻–。)
参考链接

5.Oracle的事务是怎么实现的

(其实问的感觉好模糊啊)
我:是通过加锁的方式,比如在事务启动之后,我针对某些表要进行操作,我会对这些表进行加锁操作,进行一系列操作之后,我提交操作,固化结果,我释放锁。在加锁过程中,其他线程不得对这几张表进行操作。
hr:那你自己来实现一个事务机制。
我:???然后我就说,我就开始瞎掰了。我说,首先,你得确定所有的操作都是不可分的(原子性),其次对于数据而言,可能会出现,脏读,幻读等的情况,那我对于读数据而言,我设立一个标志位,这个标志位标志这数据的更新情况,在读之前,我判断标志位,如果数据不是最新的,那就再读一次;对于写写,那我也是一个标志位,或者这个标志位就是一个锁,。。。。(回到了加锁的行为了)

6.JVM你了解什么

我说了内存模型和gc方式,hr没问,就是静静的听

7.OS你了解什么,你了解linux吗,你知道shell吗

这个时候我是保持微笑的,除了OS我咕咕了一些任务分配问题,其他不会!

8.数据库的索引

回答了b树和b+树,以及他们之间的区别

9.你用过什么设计模式吗

我针对了我的项目说了生产者消费者模式

10.算法优化题:一个数组,存了数字,其中一个数字的数量,比另外所有数字数量的和还多,怎么求

我:遍历一遍数组,针对每个数字进行统计,结果存放在另一个数组中,在对这个统计结果数组进行遍历,求最大
hr:时间复杂度,空间复杂度
我:时间复杂度是O(M*N),空间复杂度是O(M),其中M是数组中数字的种类,N是数组长度
hr:有没有不需要或者少用额外空间的算法
我:排序,再求相同数字的长度
hr:这个不需要空间,那有没有更为折中的算法
我:???思索一通后说不会
hr:遍历一遍,两个数据相同我就都删掉,剩下的就是你要找的数字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值