栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

字节一面试题分享

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字节一面试题分享

自我介绍 Java中什么是不可变类,如何设计不可变类?

String是不可变的;

除了string还有哪些不可变类?

所有基本类型的包装类都是不可变类

不可变类:使用private修饰,不提供setter方法

Java中常用的集合?

ArrayList、Vector、linkedList、HashSet、TreeMap、HashMap、HashTable、ConcurrentHashMap;分别解释各个类的数据结构和区别

linkedBlockQueue的实现原理?

put和take实现原理?

入队和出队可以同时操作吗?可以。通过出队锁和入队锁实现

线程池几大核心参数?几大组件?

任务和线程池参数的阈值的关系?

线程池的常见的拒绝策略?

new一个线程池,核心线程数多大比较合适?,有没有调过?

io计算型和cpu计算型

volatile有哪些特性?

可见性、有序性

有序性如何保证? 内存屏障

单例模式的懒汉式,如何保证线程安全?

双重检测法如何使用

为什么使用volatile修饰单例对象?

禁止指令重排序找

为什么双重检测法中为什么有两个if?不要第二个if会怎么样?

RenntratLock如何实现?

state和aqs队列 node(线程名、头指针)

Node节点的状态?

公平锁和非公平锁是怎样?

非公平锁中;会进行cas操作,成功持有锁,没有成功,则过一段时间再去cas操作

RenntratLock提供的Condition释放的原理? 线程之间想要通信?

wait、notify(notifyAll)、join、countdownlatch、cyclibarrier

JVM相关: JVM内存结构

线程私有:虚拟机栈、本地方法栈、程序计数器

线程共享:堆、元空间

元空间比较重要的区域:常量池

常量池的作用?

字符串常量池:String a = new String("a"); 创建几个对象?

参考:Java String字符串比较问题_秒怂_z-CSDN博客_java string 比较

使用常量池的方法:intern方法 和 显示赋值给一个变量

intern方法 在jdk1.7和jdk1.8中区别?

常量池中放一个字符串“a”的常量;在堆中创建一个对象;返回把引用返回。

String s1= "a"

String s2= "b"

String s3 = "ab"

String s4 = s1 + s2 ->相当于new String对象,append(a).append(b).toString()

String s5 = "a" + "b" ->编译时是做的常量池的拼接

s3 == s4 -> false

s3 == s5 -> true

垃圾回收算法?优缺点?

标记清除算法

复制算法

标记整理算法

垃圾回收工作的机制?

堆分为几个区域?年轻区、老年代

区域比例?

年轻代使用什么算法?

创建的对象首先放到哪个区域?什么时候会放入到老年代?什么时候触发垃圾回收?

晋升年龄默认最大是15

cms默认是多少?cms是老年代回收器和阈值没有关系;年轻代晋升到老年代,默认需要15次;

CMS使用场景和目标?

目标:减少stw

工作原理:初始标记、并发标记、重新标记、并发清理

有STW阶段:初始标记和重新标记

一次会把垃圾清空干净吗?在并发清理阶段会产生浮动垃圾,只能到下次进行清理

cms什么时候退化?

空间不足时,cms使用标记清除算法,会产生很多的碎片,如果老年代没有连续的内存空间,实际上4m放不下,此时触发一次gc,此时会触发失败,此时就会退化成单线程垃圾回收器,垃圾回收时间比较慢

mysql msql中的索引数据结构

使用b+数

为什么不使用红黑树?

因为红黑数需要平衡、红黑数子节点只有两个节点,深度变深后会进行多次的磁盘io操作,降低性能

为什么不使用b树?

b树每个节点存放索引+数据,b+只有叶子节点才存储数据。--》数据大小一定情况下,存的节点越多,磁盘io次数会越少?

联合索引? a,b,c建联合索引,此时会建几个索引表?

建立三个索引:a ab abc

分析一下语句会不会走索引?

select * from test where a=? and b =? and c = ?;

select * from test where a =? and c = ? and b = ?;

select * from test where a= ? and b> ? and c=?; -> 走 a、 ab索引

select * from test where a!=?; ->不走索引吗?

select * from test where b=? and c= ?;不走索引吗?

最后推出索引的匹配原则:最左匹配原则

Spring传输特性有哪些?

参考:看完就明白_spring事务的7种传播行为_gnixlee的博客-CSDN博客_事务的传播行为

required:如果存在事务上下文,则加入该事务,否则开启一个新事务

supports:如果存在事务上下文,则加入该事务,否则以非事务执行

mandatory:如果存在事务上下文,则加入该事务,否则抛出异常

requries_new:总是开启一个新事务,如果存在事务上下文,则把这个事务挂起;两个事务互相不影响

not_supported:总是以非事务执行,有事务上下文则被挂起

never:总是以非事务执行,有事务上下文则抛出异常

nested:外层事务失败,则内层事务也会回滚;但是内层事务失败不会影响外层事务,只会回到外层事务的保存点

Spring的事务隔离级别?

参考:Spring事务传播属性和隔离级别 - Eunice_Sun - 博客园

默认级别:使用数据库默认隔离级别:mysql使用可重复读级别

读未提交:产生【脏读】

读已提交:解决【脏读】

可重复读:解决【不可重复读】

序列化:解决【脏读】

mysql事务的四个特性:

原子性、一致性、隔离性、持久性

cap理论、base理论?

https://www.cnblogs.com/stateis0/p/9062123.html

项目中使用:ap和最终一致性

设计题:

使用redis实现消息队列?

https://www.cnblogs.com/-wenli/p/12777703.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445650.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号