自我介绍不多说!

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后端面经的更多相关文章

  1. 大小厂必问Java后端面试题(含答案)

    你好,我是yes. 这个系列的文章不会是背诵版,不是那种贴上标准答案,到时候照着答就行的面试题汇总. 我会用大白话尽量用解释性.理解性的语言来回答,但是肯定没有比平时通过一篇文章来讲解清晰,不过我尽量 ...

  2. python后端面试题

    1. 果壳 电话面试: 说一下TCP的三次握手,四次挥手,为什么会这样? http安全的性的了解,说一下对cookie和session的了解: 对mysql的了解,说一下你常用的数据类型,char和v ...

  3. 面试java_后端面经_5

    情话部分: 小姐姐:为什么有很多人在感情中付出很多,却得不到想要的结果? 你答:我听过一个这样的故事:讲的是蚯蚓一家人,有一天,蚯蚓爸爸特别无聊,就把自己切成了俩段愉快的打羽毛球去了,蚯蚓妈妈见状,把 ...

  4. 面试java后端面经_4

    作者:早该变坏链接:https://www.nowcoder.com/discuss/157627来源:牛客网 情话部分: 当有自己心仪的小姐姐,又没确定关系,有时候分享彼此爱情观的时候,你就可以开始 ...

  5. 面试java后端面经_2

    1 自我介绍(介绍一下帅气的自己哦) 2 对象深浅复制(浅复制:对象内引用的对象不会复制,深复制会把引用对象复制.如何进行深浅复制,这块不懂的童鞋可以百度一下) 3 wait方法和sleep方法的区别 ...

  6. 面试java后端面经_1

    1 自我介绍(建议提前准备:没准备的可以这样说:来自某学校 姓名 专业 学的啥 为啥学 自己陆陆续续开发的项目 毕业将近 找工作 在哪看到贵公司的招聘 准备了啥 大概这样) 例子:您好!我是来自XXX ...

  7. 小米Python后端面试题

    电话面 时长:30m 说一下对浏览器缓存的理解: 说一下MySQL优化: 说一下redis: 说一下从输入url到返回都发生了什么: 域名怎么解析的: 一面 1h 编程实现翻转单链表: MySQL中v ...

  8. java后端面试题汇总

    转载链接:https://www.nowcoder.com/discuss/90776?type=0&order=0&pos=23&page=0 基础篇 数据结构与算法 线性表 ...

  9. 面试java后端面经_3

    小姐姐说:你一点都不懂表达,一点都不懂爱情,一点也不爱我! 你答:你知道吗,我听说过一个这样的故事,讲的就是有一个小女孩和一个男孩在一起,小男孩呢很不幸是位聋哑人,虽然如此,但是他们的日子过得特别的美 ...

随机推荐

  1. 基于C#的机器学习--微基准测试和激活功能

    本章我们将学习以下内容: l  什么是微基准测试 l  如何将它应用到代码中 l  什么是激活函数 l  如何绘制和基准测试激活函数 每个开发人员都需要有一个好的基准测试工具.质量基准无处不在;你们每 ...

  2. 跨站脚本攻击(存储型xss)笔记(二)

    测试目标字段:页面下方的红色框位置. 由于编辑状态是编辑器,所以有可能出现跨站! 我插了个input然而并没有当代码执行 可能有些测试人员就认为被过滤掉了,因为尝试了各种尖括号.js事件.转义.编码等 ...

  3. Sublime Text 3 实现C++代码的编译和运行

    在数据结构代码的编写中,我选用了优秀的编辑器 Sublime Text 3,但是在实现C++代码的编译和运行上费了一番周折,接下来我贴出 C++ 编译系统的代码,供各位参考. 编译后是在弹出的CMD命 ...

  4. Excel催化剂开源第43波-Excel选择对象Selection在.Net开发中的使用

    Excel的二次开发有一极大的优势所在,可以结合用户的交互进行程序的运行,大量用户的交互,都是从选择对象开始,用户选择了单元格区域.图形.图表等对象,之后再进行程序代码的加工处理,生成用户所需的最终结 ...

  5. 「Sqlserver」数据分析师有理由爱Sqlserver之九-无利益关系推荐Sqlserver书单

    在前面系列文章的讲述下,部分读者有兴趣进入Sqlserver的世界的话,笔者不太可能在自媒体的载体上给予全方位的带领,最合适的方式是通过系统的书籍来学习,此篇给大家梳理下笔者曾经看过的自觉不错值得推荐 ...

  6. 【TensorFlow 2】矩阵基础

    placeholder placeholder为tf中的占位符,用来保存数据.语法为: tf.placeholder(dtype, shape=None, name=None) dtype:数据类型  ...

  7. spring使用thymeleaf

    一.spring使用thymeleaf做解析器其实很简单,这是基于xml配置的方式 <?xml version="1.0" encoding="UTF-8" ...

  8. rem的基准字体大小的设置

    1.移动端 UI 给的设计稿通常是640px.720px.750px的宽度,但是我们要做适配,兼容不同的终端,rem布局是比较常用的一种方式,比较关键的是确定根节点的字体大小. 这里以640px为例, ...

  9. Java秒杀系统实战系列~商品秒杀代码实战

    摘要: 本篇博文是“Java秒杀系统实战系列文章”的第六篇,本篇博文我们将进入整个秒杀系统核心功能模块的代码开发,即“商品秒杀”功能模块的代码实战. 内容: “商品秒杀”功能模块是建立在“商品详情”功 ...

  10. 微服务之springboot 自定义配置(一)Application配置文件

    配置的文件的格式 springboot可以识别两种格式的配置文件,分别是yml和properties 文件.我们可以将application.properties文件换成application.yml ...