阿里巴巴_java后端面经
自我介绍不多说!
1 多线程有什么用?(
发挥多核CPU的优势
防止阻塞
便于建模
)
2 怎么检测一个线程是否持有对象监视器(
Thread类提供了一个holdsLock(Object obj)方法,
当且仅当对象obj的监视器被某条线程持有的时候才会返回true,
注意这是一个static方法,这意味着“某条线程”指的是当前线程。
)
3 synchronized和ReentrantLock的区别(
ReentrantLock可以对获取锁的等待时间进行设置,这样就避免了死锁
ReentrantLock可以获取各种锁的信息
ReentrantLock可以灵活地实现多路通知
)
4 volatile关键字的作用 (保证线程对内存的可见性,但是不能保证原子性)
5 什么是乐观锁和悲观锁 (乐观锁: 就像他的名字一样,对事情总保持一颗乐观的心,
他认为竞争不总是发生的,因此不需要总持有锁,
用比较替换尝试去修改内存中的值。悲观锁:对安全问题持悲观的状态认为竞争总是会发生的,
对资源进行操作时,总是部分青红皂白直接上锁 )
6 用java编写一个会导致死锁的程序
7 什么是自旋锁(
自旋锁,是指尝试获取锁的线程不会阻塞,
而是循环的方式不断尝试,这样的好处是减少线程的上下文切换带来的开锁,
提高性能,缺点是循环会消耗CPU。
)
8 什么是java内存模型(
Java 内存模型(JMM)规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存。
线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,
而不能直接读写主内存。 不同的线程之间也无法直接访问对方工作内存中的变量,
线程间变量的传递均需要自己的工作内存和主存之间进行数据同步进行。
而 JMM 就作用于工作内存和主存之间数据同步过程。它规定了如何做数据同步以及什么时候做数据同步。
)
9 单例模式的几种实现方式(
懒汉模式
饿汉模式
静态内部类
双重锁机制
枚举
)
祝早日get心仪offer
大量面试经验以及学习资料书籍请关注微信公众号:AVAJ
回复"offer"进行获取
365篇大厂java面经 你想要的我这里都有
(1)
发挥多核CPU的优势
(2)
防止阻塞
(3)
便于建模
阿里巴巴_java后端面经的更多相关文章
- 大小厂必问Java后端面试题(含答案)
你好,我是yes. 这个系列的文章不会是背诵版,不是那种贴上标准答案,到时候照着答就行的面试题汇总. 我会用大白话尽量用解释性.理解性的语言来回答,但是肯定没有比平时通过一篇文章来讲解清晰,不过我尽量 ...
- python后端面试题
1. 果壳 电话面试: 说一下TCP的三次握手,四次挥手,为什么会这样? http安全的性的了解,说一下对cookie和session的了解: 对mysql的了解,说一下你常用的数据类型,char和v ...
- 面试java_后端面经_5
情话部分: 小姐姐:为什么有很多人在感情中付出很多,却得不到想要的结果? 你答:我听过一个这样的故事:讲的是蚯蚓一家人,有一天,蚯蚓爸爸特别无聊,就把自己切成了俩段愉快的打羽毛球去了,蚯蚓妈妈见状,把 ...
- 面试java后端面经_4
作者:早该变坏链接:https://www.nowcoder.com/discuss/157627来源:牛客网 情话部分: 当有自己心仪的小姐姐,又没确定关系,有时候分享彼此爱情观的时候,你就可以开始 ...
- 面试java后端面经_2
1 自我介绍(介绍一下帅气的自己哦) 2 对象深浅复制(浅复制:对象内引用的对象不会复制,深复制会把引用对象复制.如何进行深浅复制,这块不懂的童鞋可以百度一下) 3 wait方法和sleep方法的区别 ...
- 面试java后端面经_1
1 自我介绍(建议提前准备:没准备的可以这样说:来自某学校 姓名 专业 学的啥 为啥学 自己陆陆续续开发的项目 毕业将近 找工作 在哪看到贵公司的招聘 准备了啥 大概这样) 例子:您好!我是来自XXX ...
- 小米Python后端面试题
电话面 时长:30m 说一下对浏览器缓存的理解: 说一下MySQL优化: 说一下redis: 说一下从输入url到返回都发生了什么: 域名怎么解析的: 一面 1h 编程实现翻转单链表: MySQL中v ...
- java后端面试题汇总
转载链接:https://www.nowcoder.com/discuss/90776?type=0&order=0&pos=23&page=0 基础篇 数据结构与算法 线性表 ...
- 面试java后端面经_3
小姐姐说:你一点都不懂表达,一点都不懂爱情,一点也不爱我! 你答:你知道吗,我听说过一个这样的故事,讲的就是有一个小女孩和一个男孩在一起,小男孩呢很不幸是位聋哑人,虽然如此,但是他们的日子过得特别的美 ...
随机推荐
- Socket编程(C语言实现):socket()函数英文翻译
最近开始研究使用Socket API来网络编程,想着把自己的感想.感悟写下来.我发现在编程之外还有不少概念性的东西要学习.我觉得应该有以下几点吧: 1.得了解下计算机网络的基本概念,如OSI的7层模型 ...
- 洛谷P3905 道路重建
题目:https://www.luogu.org/problemnew/show/P3905 分析: 此题是显然的最短路算法,只是看到一起删掉的一堆边感到十分棘手,而且还要求出的是最短添加边的总长度 ...
- 运用KeyCode在浏览器中按WASD使图形运动
如何实现在浏览器中按WASD四个键使图形上下左右运动呢? 其实很简单,用keyCode方法就可以实现了. 先放个div在html中: <div id="ball" style ...
- 【投票】你心目中的Excel催化剂价值有多大(附主流国内外收费插件供参考)?
Excel催化剂开发过程中,在前期功能中,也会参考着其他的插件的功能,也略略收集了一些其他插件的功能及价格信息,在当今免费等于鸡肋的时代,为了让大家不受这个免费的错觉影响,不妨以另一种角度去假设一翻, ...
- c语言进阶10-算法
一. 数据结构和算法关系 为什么要学数据结构和算法? 通常,计算机解决问题的步骤如下: 在数学模型中,计算机处理的对象之间通常存在着一种最简单的线性关系,这类数学模型就是线性的数据结构.著名计算机科 ...
- 将个人网站主页设置为Tomcat默认打开页面
步骤: 1.打开server.xml,在</Host>的上一行添加内容格式如下 <Context path="" reloadable="true&qu ...
- JavaScript ES6 Promiss对象
说明 Node.js中,以异步(Async)回调著称,使用了异步,提高了程序的执行效率,但是,代码可读性较差的. 假如有几个异步操作,后一个操作需要前一个操作的执行完毕之后返回的数据才能执行下去,如果 ...
- docker学习ppt
保存下学习资料
- tcp 3次握手四次挥手
转载link:http://www.jianshu.com/p/9968b16b607e 最近在复习计算机网络,看到TCP这一章,总结一下. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手. ...
- PHP-2.数据库小功能
<?php /* * <PHP数据库部分功能实现> */ $KCNUM = @$_POST['KCNUM']; //建立一个数据库连接 $conn = mysql_connect(' ...