【面试总结】
退役人员
静以修身,俭以养德
展开
-
Java面试专题-多线程(3)-原子操作
Q:什么是CAS算法?CAS(compare and swap)的缩写。 Java利用CPU的CAS指令,同时借助JNI来完成对Java的非阻塞算法,实现原子操作(其实就是自旋操作,不断循环,直到成功)。其它原子操作都是利用类似的特性来完成的。CAS有三个关键操作值:内存值V、预期值A、要修改的值B。当且仅当预期值A和内存值V一致时,才会将内存值V内容修改为B,否则将什么都不做。CAS的缺点也很明显:在并发量比较高的情况下,如果许多线程反复尝...转载 2020-12-19 17:30:03 · 165 阅读 · 1 评论 -
Java面试专题-多线程篇(2)- 锁和线程池
Q:乐观锁 和 悲观锁乐观锁:乐观锁(Optimistic Locking)其实是一种思想。相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。悲观锁:Java在JDK1.5之前都是靠synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程持有共享变量的锁,都采用独占的方式来访问这些变量。独占锁就是一...转载 2020-12-19 17:27:04 · 128 阅读 · 1 评论 -
Java面试专题-多线程篇(1)
Q:线程 和 进程有什么区别?进程:进程是程序运行资源分配的最小单位。进程内部有多个线程,会共享这个进程中的资源。线程:线程是CPU调度的最小单位。必须依赖进程而存在。特点: 线程的划分尺度小于进程,这使得多线程拥有高并发性; 进程在运行时各自内存单元相互独立,线程之间内存共享; 多线程开发可以拥有更好的性能和用户体验。 (注意:多线程开发对于其他程序是不友好的,占据大量CPU资源。)Q:如何安全的终止线程?理解中断:...转载 2020-12-19 17:21:58 · 138 阅读 · 1 评论 -
最近面试Java后端开发的感受,3年经验的候选人怎样才算有竞争力?附解决方案
上周,密集面试了若干位Java后端候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架。我相信其它公司招初级开发时,应该也照着这个标准来面的。我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。但现实情况是,大多数人可能面试前没...转载 2018-12-24 17:43:16 · 447 阅读 · 0 评论