随笔分类 -  面试题总结

对自己面试经历和他人面试遇到的题目进行总结
摘要:从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接 垃圾收集”。由于引用计数式垃圾收集算法在本书讨论到的主流Java虚拟机中均未涉及,所以 阅读全文
posted @ 2020-12-12 11:20 JustJavaIt 阅读(295) 评论(0) 推荐(0)
摘要:蜜源 (1)MQ 用的是哪个? MQ 丢失问题和顺序问题怎么解决? (2)Rabbit MQ, RocketMQ 内部机制, 比如 RocketMQ 有哪些组件,他们分别做了什么事, 比如。broker, nameServer 都做了什么? YY (1)MQ 使用上有哪些东西需要注意,怎么做的, 消 阅读全文
posted @ 2020-12-10 21:38 JustJavaIt 阅读(196) 评论(0) 推荐(1)
摘要:蜜源: (1)项目中我们的 Redis 部署了多少个节点? YY: (1)Redis 集群模式,主从模式, 哨兵集群的区别是啥? (2)Redis 持久化机制有哪些?RDB 、 AOF重启过程中RDB、AOF 哪个文件会更大?如果redis 用在缓存场景,选哪个比较合适? 答:AOF 文件比较大,缓 阅读全文
posted @ 2020-11-21 07:21 JustJavaIt 阅读(87) 评论(0) 推荐(0)
摘要:二叉树? 二叉树(Binary Tree)是指每个节点最多只有两个分支的树结构(即不存在分支大于 2 的节点),如下图所示: 这是一棵拥有 6 个节点深度为 2(深度从 0 开始),并且根节点为 3 的二叉树。二叉树的左右两个分支通常被称作“左子树”和“右子树”,而且这些分支左右次序不能随意地颠倒。 阅读全文
posted @ 2020-11-08 17:08 JustJavaIt 阅读(1908) 评论(0) 推荐(0)
摘要:JVM 内存结构、Java 内存模型,这是两个截然不同的概念,但是很容易混淆。我们就先从整体上概括一下这两者的主要作用: JVM 内存结构和 Java 虚拟机的运行时区域有关; Java 内存模型和 Java 的并发编程有关。 为什么需要 JMM(Java Memory Model,Java 内存模 阅读全文
posted @ 2020-10-18 22:19 JustJavaIt 阅读(420) 评论(0) 推荐(0)
摘要:几乎所有的 Java 面试都是以 String 开始的,String 源码属于所有源码中最基础、最简单的一个,对 String 源码的理解也反应了你的 Java 基础功底。 String 是如何实现的?它有哪些重要的方法? 以主流的 JDK 版本 1.8 来说,String 内部实际存储结构为 ch 阅读全文
posted @ 2020-10-06 22:36 JustJavaIt 阅读(277) 评论(0) 推荐(0)
摘要:高效并发是从JDK 5升级到JDK 6后一项重要的改进项,HotSpot虚拟机开发团队在这个版本上花费了大量的资源去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(Lightwei 阅读全文
posted @ 2020-09-20 17:05 JustJavaIt 阅读(342) 评论(0) 推荐(0)
摘要:String s = new String("xyz") 创建了几个对象? 实例分析1 javac编译代码,然后用javap来反编译,执行javap -c Test 从结果来看,ldc命令在常量池中创建了一个"xyz"的对象,然后把他推至操作数栈顶,然后astore保存到局部变量,return返回。 阅读全文
posted @ 2020-09-06 22:57 JustJavaIt 阅读(280) 评论(0) 推荐(0)
摘要:从 Java 代码到 CPU 指令 我们都知道,编写的 Java 代码,最终还是要转化为 CPU 指令才能执行的。为了理解 Java 内存模型的作用,我们首先就来回顾一下从 Java 代码到最终执行的 CPU 指令的大致流程: (1)最开始,我们编写的 Java 代码,是 *.java 文件; (2 阅读全文
posted @ 2020-08-24 20:38 JustJavaIt 阅读(460) 评论(0) 推荐(0)
摘要:类的加载过程? 一个Java文件从编码完成到最终执行,一般主要包括”编译”和”运行”两个过程.编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译生成的.class文件交给Java虚拟机(JVM)执行。而类加载过程即是指JVM虚拟机把. 阅读全文
posted @ 2020-08-08 22:18 JustJavaIt 阅读(291) 评论(0) 推荐(0)
摘要:GC是什么?为什么要有GC? GC(Garbage Collection)是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,垃圾回收的执行速度则影响着整个程序 阅读全文
posted @ 2020-07-24 15:00 JustJavaIt 阅读(388) 评论(0) 推荐(0)
摘要:幂等性最早是数学里面的一个概念,后来被用于计算机领域,用于表示任意多次请求执行的结果均与一次请求执行的结果相同,对于一个接口而言,即无论调用多少次,最终得到的结果都是一样的,用数学语言表达就是f(x)=f(f(x))。 如何保证幂等性? (1) 前端拦截 (2) 使用数据库实现幂等性 (3) 使用 阅读全文
posted @ 2020-06-29 21:53 JustJavaIt 阅读(3460) 评论(0) 推荐(0)
摘要:目前市面上比较常用的 MQ(Message Queue,消息队列)中间件有 RabbitMQ、Kafka、RocketMQ,如果是轻量级的消息队列可以使用 Redis 提供的消息队列,其中 Redis 属于轻量级的消息队列,而 RabbitMQ、Kafka 属于比较成熟且比较稳定和高效的 MQ 中间 阅读全文
posted @ 2020-05-15 11:16 JustJavaIt 阅读(2406) 评论(0) 推荐(0)
摘要:如何手动实现一个消息队列和延迟消息队列? 我们可以通过 JDK 提供的 Queue 来实现自定义消息队列,使用 DelayQueue 实现延迟消息队列。 我们可使用 Queue 来实现消息队列,Queue 大体可分为以下三类: • **双端队列(Deque)**是 Queue 的子类也是 Queue 阅读全文
posted @ 2020-05-13 18:03 JustJavaIt 阅读(860) 评论(0) 推荐(0)
摘要:使用缓存的收益和成本(优缺点) 如图左侧为客户端直接调用存储层的架构,右侧为比较典型的缓存层+存储层架构. 下面分析一下缓存加入后带来的收益和成本。 收益(优点) (1)加速读写:因为缓存通常都是全内存的(例如Redis、Memcache),而存储层通常读写性能不够强悍(例如MySQL),通过缓存的 阅读全文
posted @ 2020-05-12 23:08 JustJavaIt 阅读(451) 评论(0) 推荐(0)
摘要:关系型数据和文档型数据库有什么区别? 关系数据库(Relational Database)是建立在关系模型基础上的数据库,借助于几何代数等数学概念和方法来处理数据库中的数据。所谓关系模型是一对一、一对多或者多对多等关系,支持事务和持久化,关系型数据库都会支持的 ACID 特性,也就是原子性(Atom 阅读全文
posted @ 2020-05-08 20:24 JustJavaIt 阅读(1220) 评论(0) 推荐(0)
摘要:介绍 “存储引擎”从字面理解,“存储”的意思的存储数据。“引擎”一词来源于发动机,它是发动机中的核心部分。在软件工程领域,相似的称呼有“游戏引擎”、“搜索引擎”,它们都是相应程序或系统的核心组件。所以从这里可以看出“存储引擎”似乎也是数据库的核心。 存储引擎是MySQL有别于其他数据库管理系统的最大 阅读全文
posted @ 2020-05-07 21:27 JustJavaIt 阅读(250) 评论(0) 推荐(0)
摘要:单例模式 作用:如果一个全局使用的类需要频繁地创建与销毁,那么我们可以用单例模式来减少内存的开销。 定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。”比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 要点:一单例类只能有一个实例;二是它必须自行创建这个实例;三 阅读全文
posted @ 2020-04-25 13:35 JustJavaIt 阅读(3568) 评论(0) 推荐(5)
摘要:什么是事务?事物的四大特性? 事务是指单个逻辑工作单元执行的一系列操作(ACID),这些操作要么全部执行,要么全部不执行,是不可中断的。 (1)原子性(Atomicity)是指事务所有操作是不可中断的,要么全部执行成功,要么全部失败回滚。 (2)一致性(Consistency)是指一个事务执行之前和 阅读全文
posted @ 2020-04-22 10:14 JustJavaIt 阅读(682) 评论(0) 推荐(0)
摘要:你对Spring中的bean了解吗?都有哪些作用域(Scope)? Spring 官方文档对 bean 的解释是: In Spring, the objects that form the backbone of your application and that are managed by th 阅读全文
posted @ 2020-04-22 10:04 JustJavaIt 阅读(450) 评论(1) 推荐(1)