面试题
文章平均质量分 85
阿昌喜欢吃黄桃
这个作者很懒,什么都没留下…
展开
-
Day908.join&snlj&dist和group问题和备库自增主键问题 -MySQL实战
Hi,我是阿昌,今天学习记录的是关于的内容。原创 2023-03-05 20:47:40 · 1389 阅读 · 0 评论 -
Day894.加锁规则的一些问题 -MySQL实战
Hi,我是,今天学习记录的是关于的内容。加锁规则,这个规则中,包含了两个“原则”、两个“优化”和一个“bug”:接下来,是基于下面这个表 t:一、不等号条件里的等值查询来看下这个例子,分析一下这条查询语句的加锁范围:利用上面的加锁规则,这个语句的加锁范围是主键索引上的 (0,5]、(5,10]和 (10, 15)。也就是说,id=15 这一行,并没有被加上行锁。为什么呢?说加锁单位是 next-key lock,都是,但是这里用到了优化 2,,所以 next-key lock 退化为了间隙锁 (1原创 2023-02-19 17:13:00 · 780 阅读 · 1 评论 -
Day879.数据库日志和索引相关问题 -MySQL实战
创建了一个简单的表 t,并插入一行,然后对这一行做修改。这时候,表 t 里有唯一的一行数据 (1,2)。会看到这样的结果:结果显示,匹配 (rows matched) 了一行,修改 (Changed) 了 0 行。更新都是先读后写的,MySQL 读出数据,发现 a 的值本来就是 2,不更新,直接返回,执行结束;MySQL 调用了 InnoDB 引擎提供的“修改为 (1,2)”这个接口,但是引擎发现值与原来相同,不更新,直接返回;原创 2023-02-04 21:24:57 · 779 阅读 · 2 评论 -
Day846.并发工具类一些问题 -Java 并发编程实战
Hi,我是阿昌,今天学习记录的是关于并发工具类一些问题的内容。关于Java SDK 提供的并发工具类(JUC),这些工具类都是久经考验的,所以学好用好它们对于解决并发问题非常重要。在介绍这些工具类的时候,重点介绍了这些工具类的产生背景、应用场景以及实现原理,目的就是在面对并发问题的时候,有思路,有办法。只有思路、办法有了,才谈得上开始动手解决问题。。千里之堤毁于蚁穴,细节虽然不能保证成功,但是可以导致失败,所以一直都强调要关注细节。原创 2023-01-01 19:14:38 · 922 阅读 · 0 评论 -
Day808.设计模式一些列问题 -Java 性能调优实战
Hi,我是阿昌,今天学习记录的是关于之前设计模式中的一些问题设计模式一些问题的记录。不仅可以优化代码结构,使代码可扩展性、可读性强,同时也起到了优化系统性能的作用。在一些高并发场景中,线程协作相关的设计模式可以大大提高程序的运行性能。原创 2022-11-22 22:25:33 · 355 阅读 · 0 评论 -
Day802.JVM热点问题 -Java 性能调优实战
JVM部分热点问题的内容。原创 2022-11-16 21:21:17 · 576 阅读 · 0 评论 -
Day795.监测上下文切换异常的命令排查工具&BlockingQueue -Java 性能调优实战
Hi,我是阿昌,今天学习记录的是关于的内容。原创 2022-11-09 20:57:08 · 697 阅读 · 0 评论 -
Day767.Redis常见问题④ -Redis 核心技术与实战
集群是实际业务应用中很重要的一个需求。一个小建议。集群部署和运维涉及的工作量非常大,所以,一定要重视集群方案的选择。集群的可扩展性是我们评估集群方案的一个重要维度,一定要关注,集群中元数据是用 Slot 映射表,还是一致性哈希维护的。如果是 Slot 映射表,那么,是用中心化的第三方存储系统来保存,还是由各个实例来扩散保存,这也是需要考虑清楚的。Redis Cluster、Codis 和 Memcached 采用的方式各不相同。:使用 Slot 映射表并由实例扩散保存。- Codis。原创 2022-10-12 22:44:33 · 269 阅读 · 0 评论 -
Day760.Redis常见问题③ -Redis 核心技术与实战
Hi,我是阿昌,今天学习记录Redis常见问题③的部分。原创 2022-10-05 11:27:04 · 384 阅读 · 0 评论 -
Day748.Redis常见问题② -Redis 核心技术与实战
Hi,我是阿昌,今天记录统计聚合一下前面学习过来的一系列Redis常见问题②。原创 2022-09-23 23:46:00 · 263 阅读 · 0 评论 -
Day736.Redis常见问题① -Redis 核心技术与实战
Hi,我是阿昌,今天记录的是之前文章中一些列Redis常见问题①。原创 2022-09-11 17:00:58 · 297 阅读 · 0 评论 -
Day667.开发避免踩坑注意点 -Java业务开发常见错误
Hi,我是阿昌,今天学习记录关于的学习记录。在并发工具这提到的 。如果你仅仅认为 CopyOnWriteArrayList 是rrayList 的线程安全版本,在不知晓原理之前把它用于的场景,那么很可能会遇到性能问题。JDK 或各种框架随着时间的推移会不断推出各种特殊类,用于极致化各种细化场景下的程序性能。在使用这些类之前,我们需要认清楚这些类的由来,以及要解决的问题,在确认自己的场景符合的情况下再去使用。而且,越普适的工具类通常用起来越简单,越高级的类用起来越复杂,也更容易踩坑。比如,代码加锁提到的,锁工原创 2022-07-04 21:21:43 · 410 阅读 · 0 评论 -
Day664.思考题解答⑥ -Java业务开发常见错误
Hi,我是阿昌,今天的来很迟,但是虽迟但任必到,这次记录分享的关于一些问题。问题:对于并行流部分的并行消费处理 1 到 100 的例子,如果把 forEach 替换为 forEachOrdered,你觉得会发生什么呢:forEachOrdered 会让 parallelStream 丧失部分的并行能力,主要原因是 forEach 遍历的逻辑无法并行起来(需要按照循序遍历,无法并行)。比较下面的三种写法:得到输出:从输出中,我们可以看到:问题 1:使用 Stream 可以非常方便地对 List 做各种操作原创 2022-07-01 23:49:28 · 550 阅读 · 0 评论 -
Day657.思考题解答⑤ -Java业务开发常见错误
Hello,我是阿昌,今天记录学习分析的是针对之前的的一些思考题答案。问题 1:在讲述用户标识不能从客户端获取这个要点的,我提到开发同学可能会因为用户信息未打通而通过前端来传用户 ID。那我们有什么好办法,来打通不同的系统甚至不同网站的用户标识吗?答:打通用户在不同系统之间的登录,大致有以下三种方案。因为我们不会对外暴露 ClientSecret,也不会对外暴露访问 Token,同时使用授权码换取 Token 的过程是服务端进行的,客户端拿到的只是一次性的授权码,所以这种模式比较安全。问题 2:还有一类和客原创 2022-06-24 23:33:51 · 974 阅读 · 0 评论 -
Day652.思考题解答④ -Java业务开发常见错误
Hello,阿昌来也,今天记录学习的是针对学习文章的一些思考题答案。问题 1:除了模板方法设计模式是减少重复代码的一把好手,观模式也常用于减少代码重复(并且是松耦合方式),Spring 也提供了类似工具(点击这里查看),你能想到观察者模式有哪些应用场景吗?答:其实,和使用 MQ 来解耦系统和系统的调用类似,应用内各个组件之间的调用我们也可以使用来解耦,特别是当你的应用是一个大单体的时候。观察者模式除了是让组件之间可以更松耦合,还能更有利于消除重复代码。其原因是,对于一个复杂的业务逻辑,里面必然涉及到大量其它原创 2022-06-19 17:43:37 · 908 阅读 · 1 评论 -
Day645.思考题解答③ -Java业务开发常见错误
Hi,阿昌来也,今天记录学习的是针对学习文章的一些思考题答案。问题 1:在讲“为什么我的日志会重复记录?”的案例时,我们把 INFO 级别的日志存放到 _info.log 中,把 WARN 和 ERROR 级别的日志存放到 _error.log 中。如果现在要把 INFO 和 WARN 级别的日志存放到 _info.log 中,把 ERROR 日志存放到 _error.log 中,应该如何配置 Logback 呢?答:要实现这个配置有两种方式,分别是:直接使用 EvaluatorFilter 和自定义一个原创 2022-06-12 21:25:31 · 404 阅读 · 1 评论 -
Day636.思考题解答② -Java业务开发常见错误
Hi,我是,这是针对前面学习文章记录结尾总和在一起的思考题解答。在介绍二级索引代价时,我们通过 EXPLAIN 命令看到了索引覆盖和回表的两种情况。你能用 optimizer trace 来分析一下这两种情况的成本差异吗?答:如下代码所示,打开 后,再执行 SQL 就可以查询 表查看执行计划了,最后可以关闭 optimizer_trace 功能:假设我们为表 person 的 NAME 和 SCORE 列建了联合索引,那么下面第二条语句应该可以走索引覆盖,而第一条语句需要回表:通过观察 OPTIMI原创 2022-06-02 17:04:17 · 349 阅读 · 0 评论 -
Day629.思考题解答① -Java业务开发常见错误
思考题解答①Hi,我是阿昌,这是针对前面学习文章记录结尾总和在一起的思考题解答。一、ThreadLocalRandomThreadLocalRandom是 Java 7 引入的一个生成随机数的类。你觉得可以把它的实例设置到静态变量中,在多线程情况下重用吗?答:不能。ThreadLocalRandom 文档里有这么一条:Usages of this class should typically be of the form: ThreadLocalRandom.current().nextX(原创 2022-05-26 22:44:54 · 568 阅读 · 0 评论 -
Day530.图灵学院之面试题④ -面经
图灵学院之面试题④1、双亲委派机制2、Java中的异常体系3、sleep()、wait()、join()、yield()的区别是什么?4、说说你对线程安全的理解5、Thread和Runnable的区别6、说说你对守护线程的理解7、ThreadLocal原理和使用场景8、并发、并行、串行的区别9、简述线程池的处理流程10、线程池为什么采用阻塞队列的方案?为什么线程池中先是将阻塞队列放满了后才开始增加线程数至最大线程数?11、线程池中线原创 2022-02-06 14:20:49 · 1921 阅读 · 1 评论 -
Day527&528&529.图灵学院之面试题③ -面经
图灵学院之面试题③一、HashMap的扩容机制原理是什么?新建一个老数组的两倍大小的新组,遍历老数组,且若含有链表,就再遍历(套了两层遍历)。根据hash+新数组容量计算出新数组数组下标位置,并转移到新数组。1.8若遍历链表时,发现为红黑树,依然重新计算新数组所对应的下标(老数组对应一个红黑色的位置,不代表新数组的位置是相同) ,经过再计算后,再次判断是否需要建立生成红黑色(代表扩容后,之前的红黑树会被拆分为链表+链表或链表+红黑树或不同位置的红黑树或仍然是相同位置的红黑树)。二、Conc原创 2022-02-02 17:25:27 · 2699 阅读 · 1 评论 -
Day507&508&509&510.图灵学院之面试题② -面经
Day507.图灵学院之面试题② -面经1、聊一聊RBD和AOFRDB:AOF:2、Redis单线程为什么这么快?3、Redis的过期键删除策略4、Redis分布式锁底层实现是什么?5、Redis和MySql如何保持数据一致性?6、Redis有哪些数据结构?应用场景是什么?7、Redis中的集群策略有哪些?8、布隆过滤器是什么?原理是什么?一个key存的时候,比如先通过不同的hash算法3次,会得到对应的index下标,把那个下标的值改成1.一原创 2022-01-13 21:52:51 · 1628 阅读 · 5 评论 -
Day505&506.图灵学院之面试题① -面经
图灵学院之面试题①1、B树和B+树的区别,为什么MySql使用B+树2、CopyOnWriteArrayList的底层原理是怎样的⾸先ArrayList是线程不安全的。CopyOnWriteArrayList是线程安全的,其为解决前者线程不安全的情况它内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会复制⼀个新的数组,写操作在新数组上进⾏,读操作在原数组上进⾏并且,写操作会加锁,防⽌出现并发写⼊丢失数据的问题写操作结束之后会把原数组指向新数组CopyOn原创 2022-01-11 22:05:13 · 2869 阅读 · 9 评论 -
Day499&500&501&502&503&504.马士兵22春招面试题① -面经
马士兵22春招面试题①1、Java面向对象有哪些特征?三大特征继承父类方法属性复用,增强代码的复用性多态必备要求:继承重写父类引用指向子类对象Animal animal = new Dog();增加代码的可移植性增加代码的健壮性灵活性封装增加了代码的可维护性增强代码的复用性2、ArrayList和LinkedList的区别相同点都实现了List接口不同点前者底层数组访问数据更方便后者原创 2022-01-05 22:37:16 · 3795 阅读 · 14 评论 -
Day495&496&497&498.尚硅谷之高频重点面试题⑤ -面经
尚硅谷之高频重点面试题⑤一、Spring5/4的区别是什么?1、Spring4Aop执行顺序正常流程:报异常情况:流程:2、Spring5Aop执行顺序正常流程:出现异常情况:3、两版本对比针对后置通知和后环绕通知的位置发生了变化二、Spring循环依赖0、前置内容实例化申请内存空间,但未进行操作初始化对已申请的空间进行属性赋值,装修…等操作总体相关对象A/B两对象在三级缓存中的迁移说明1、什么是Spring原创 2022-01-01 20:52:03 · 1800 阅读 · 3 评论 -
Day492&493&494.尚硅谷之高频重点面试题④ -面经
尚硅谷之高频重点面试题④一、生产环境服务器变慢了,怎么诊断思路和性能评估?指令top—整机系统性能3个值相加除以3*100%,如果大于60%表示系统压力大vmstat—cpu性能vmstat -n 2 3#每2秒采样一次,共计3次[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEOqNY8P-1640787067441)(C:/Users/PePe/AppData/Roaming/Typora/typora-user-images/im原创 2021-12-29 22:15:55 · 1442 阅读 · 3 评论 -
Day489&490&491.尚硅谷之高频重点面试题③ -面经
尚硅谷之高频重点面试题③一、快速回顾1、JVM内存结构类的加载器是什么?双亲委派机制是什么?Java沙箱安全机制是什么?堆的由什么组成?新生代幸存者1幸存者2伊甸区养老区永久代(7)、元空间(8)2、GC作用域哪些部位是JVM线程私有的?程序计数器Java栈本地方法栈JVM线程共有?堆方法区3、常见垃圾回收算法引用计数算法有对象引用+1,没对象引用-1。存在循环引用问题标记清除先标记出要回收的对象,后清除原创 2021-12-26 17:19:16 · 1293 阅读 · 5 评论 -
Day486&487&488.尚硅谷之高频重点面试题② -面经
高频重点面试题②一、说说锁公平锁每个线程获取锁的时候,会根据维护的等待队列去一个一个按次序获取锁吞吐量大非公平锁并不会根据声明的顺序去严格按照顺序获取锁,会“插队”,尝试失败就会再采用类似公平锁机制会出现饥饿等情况可重入锁(递归锁)锁里套锁,直接获取锁内锁的锁避免了死锁自旋锁尝试获取锁的线程不会立刻阻塞,而是采用循环的方式去获取锁,通过循环代替阻塞减少线程上下文切换消耗CPU资源手写自旋锁写锁(独占锁)只能被一个线程原创 2021-12-23 22:30:07 · 1533 阅读 · 7 评论 -
Day481&482&483&484&485.尚硅谷之高频重点面试题① -面经
高频重点面试题①一、自增变量题目代码int i = 1;i = i++; //i = 1int j = i++; //i = 2, j = 1int k = i + ++i * i++;//2+3*3,i=4System.out.println("i="+i);//i = 4System.out.println("j="+j);//j = 1System.out.println("k="+k);//k = 11理解等号的右侧从左到右依次压入操作数栈计算的顺序依然还是根据运算原创 2021-12-18 22:35:25 · 2158 阅读 · 12 评论 -
Day288.多线程-面试题汇总 -Juc
多线程高频面试题汇总有多少种实现线程的方法?本质是一种,方式有两种实现Runnable接口&继承Thread类包装的方式有许多,lambta、线程池实现Runnable接口 和 继承Thread类 哪种方式更好?为什么实现Runnable接口的方式更好;一个线程两次调用start()方法会怎么样?为什么会报错,因为start()执行完毕后,线程的生命周期会进入死亡状态,当再次执行,start()方法运行开始他会对线程状态进行检测,那此时这个线程已经处于死亡状态,那就进原创 2021-06-04 23:15:31 · 559 阅读 · 2 评论 -
Day220、Zookeeper、Redis、Dubbo、ActiveMQ -面试复习
ZookeeperDubboActiveMQRedis原创 2021-03-14 22:21:19 · 441 阅读 · 0 评论 -
Day219、Java框架、mysql -面试复习
面试题【框架】Xmind文件下载【mysql】Xmind文件下载原创 2021-03-13 19:09:38 · 493 阅读 · 0 评论 -
Day218、Java基础 -面试复习
Java面试题复习下面思维导图Xmind文件下载原创 2021-03-12 20:38:30 · 596 阅读 · 0 评论