目录

程序员子悠 · 好记性不如烂笔头

技术人生 X 人生技术

标签: 面试 (4)

这么多优秀的面试题,你不心动吗?

人生有涯,学海无涯。 今天给大家分享一些《Java 极客技术》知识星球的部分优质的面试题内容,在分享这些内容之前先解答几个大家疑惑的问题。既然有了《Java 极客技术》的公众号,为什么还要有《Java 极客技术》的知识星球?直接在公众号里面看文章不行吗,为什么要加入到知识星球中去? 解惑 大家有问题,有疑惑很好,人的成长中最怕的是没有问题。那么既然有了问题,下一步自然是提出问题,可惜很遗憾,由于微信的规定导致,我们的《Java 极客技术》的公众号没有留言功能!!!没有留言功能,自然无法让你们提问。大家可能会说,那我在后台留言啊。很好,这是一个方案,但是遗憾的告诉大家,首先后台留言的消息只能保存短暂的几天时间,我们很难在第一时间内看到并回复;其次我们做的是公众号,不是服务号,大家除了日常的工作还要为星球中的用户输出优质的内容,时间不够用,而且我们还要创造更多有趣好玩的干货;最后也是最重要的一个原因是,后台留言的回复只能一对一!!!这个是最严重的问题,同一个问题,成千上万的用户询问,难道我们要一一回复吗?可以很明确的说,这是不可能,也不现实的。 由于上面的种种原因才有了《Java 极客技术....

面试你应该知道的 MySQL 的锁

背景 数据库的锁是在多线程高并发的情况下用来保证数据稳定性和一致性的一种机制。MySQL 根据底层存储引擎的不同,锁的支持粒度和实现机制也不同。MyISAM 只支持表锁,InnoDB 支持行锁和表锁。目前 MySQL 默认的存储引擎是 InnoDB,这里主要介绍 InnoDB 的锁。 InnoDB 存储引擎 使用 InnoDB 的两大优点:一是支持事务;二是支持行锁。 MySQL 的事务 在高并发的情况下事务的并发处理会带来几个问题 脏读:**指在事务 A 处理过程里读取到了事务 B 未提交的事务中的数据。**比如在转账的例子中:小 A 开了一个事务给小 B 转了1000 块,还没提交事务的时候就跟小 B 说,钱已经到账了。这个时候小 B 去看了一下余额,发现果真到账了(然后就开开心心刷抖音去了),这个时候小 A 回滚了事务,把 1000 块又搞回去了。小 B 刷完抖音再去看下余额,发现钱又不见了。 不可重复读:**指在一个事务执行的过程中多次查询某一数据的时候结果不一致的现象,由于在执行的过程中被另一个事务修改了这个数据并提交了事务。**比如:事务 A 第一次读小明的年龄是 18 岁....

聊聊面试中的 ThreadLocal 原理和使用场景

相信大家不管是在网上做题还是在面试中都经常被问过 ThreadLocal 的原理和用法,虽然一直知道这个东西的存在但是一直没有好好的研究一下原理,没有自己的知识体系。今天花点时间好好学习了一下,分享给有需要的朋友。 ThreadLocal 是什么 ThreadLocal 是 JDK java.lang 包中的一个用来实现相同线程数据共享不同的线程数据隔离的一个工具。 我们来看下 JDK 源码中是如何解释的: This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. ThreadLocal instances are typically private static fields in classes ....

聊聊面试中的 Java 线程池

背景 关于 Java 的线程池我想大家肯定不会陌生,在工作中或者自己平时的学习中多多少少都会用到,那你真的有了解过底层的实现原理吗?还是说只停留在用的阶段呢?而且关于 Java 线程池也是在面试中的一个高频的面试题,就像 HashMap 的实现原理一样,基本上面试必问,估计都已经被问烂大街了。 题外话:HashMap 的实现原理真的已经被问烂了,在我自身的多次面试中都不知道被问了几遍了,有的时候想想很奇怪,为什么这个被问的烂大街的问题还是会一直被问呢?但是从面试官的角度来想一下,如果一个被问的都烂大街的问题你都不好好准备对待,那怎么能好好的对待工作呢(个人愚见)。 常用的几种线程池 我们先来看下常用的几种线程池的创建方式,以及底层采用的实现原理 单个线程: Executors.newSingleThreadExecutor(); public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(.....