Java编译和反编译那些事
我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件,这是我们通常意义上理解的编译,但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令,这个过程是通过解释器实现的,叫解释
社招一年半面经分享(含阿里美团头条京东滴滴)
最近一段时间面试了几家互联网公司,陆续通过了阿里、头条、美团,滴滴,京东的面试,基本上面试的公司都通过了
一文带大家快速掌握RabbitMQ
前言周末花了2天时间学习了RabbitMQ,总结了最核心的知识点,带大家快速掌握RabbitMQ,整理不易希
写出好的Join语句,前提你得懂这些
前言最近在读《MySQL性能调优与架构设计》,看到一个关于join的优化原则,如下:大白话解释下:因为驱动结
Redis如何解决频繁的命令往返造成的性能瓶颈
当一个客户端需要连续执行很多请求时,就很容易看出往返时间是影响系统性能的,例如:如果往返时间RTT是250毫秒,即使Redis服务器每秒钟能处理1000个请求,我们也只能每秒钟最多处理四个请求。Redis提供了一种Pipeline(管道)
从源码角度解析ArrayList.subList的几个坑
《阿里巴巴Java开发手册》中提出了以下几点建议和规则:本文通过源码分析,给大家讲清楚《手册》为什么这么规定,ArrayList的subList分析,可以看到 SubList 和 ArrayList 的继承体系非常类似,都实现了
一文搞懂Kafka核心基础知识
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景
条件语句的多层嵌套问题优化,助你写出不让同事吐槽的代码
前言《阿里巴巴开发手册》中,有关于多 if-else 分支和嵌套的建议和解决方案,如下:那么本文介绍几种优化
常用的Lambda表达式案例解析,工作中都会用到
我们日常工作中,Lambda 使用比较多的场景,就是集合类下的 Lambda 流操作,往往几行代码可以帮助我
记一次集合去重导致的线上问题
在工作中一次排查慢接口时,查到了一个函数耗时较长,最终定位到是通过 List 去重导致的。由于测试环境还有线上早期数据较少,这个接口的性能问题没有引起较大关注,后面频繁超时,才引起重视。
ReentrantLock核心原理,绝对干货
ReentrantLock 中文我们叫做可重入互斥锁,可重入的意思是同一个线程可以对同一个共享资源重复的加锁或释放锁,互斥就是 AQS 中的排它锁的意思,只允许一个线程获得锁
聊聊JIT是如何影响JVM性能的
JIT 是现代 JVM 主要的优化点,能够显著地提升程序的执行效率。从解释执行到最高层次的 C2,一个数量级的性能提升也是有可能的。注意:JIT 优化并不见得每次都有用,比如代码中如果发生死循环。
ConcurrentHashMap核心原理,这次彻底给整明白了
个人公众号:月伴飞鱼,欢迎关注ConcurrentHashMap,它在技术面试中出现的频率相当之高,所以我们
最完整的Explain总结,SQL优化不再困难
先看看具体有哪些字段:mysql> EXPLAIN SELECT 1;其实除了以SELECT开头的查询语句,
MySQL存储引擎如何完成一条更新语句的执行
假设我们有一条SQL语句是这样的:update t_user set name='月伴飞鱼' where i
一个简单案例,带你看懂GC日志
如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小,如果大于,则尝试进行一次Young GC,但这次Young GC依然是有风险的
MVCC由浅入深学习
我们知道,根据MySQL的锁机制,写锁和读锁是冲突的,所以MySQl通过MVCC(多版本并发控制)方式来处理读写冲突,提高数据库高并发场景下的吞吐性能
Redis延时队列,这次彻底给你整明白了
所谓延时队列就是延时的消息队列,下面说一下一些业务场景实践场景订单支付失败,每隔一段时间提醒用户用户并发量的
高性能无锁并发框架Disruptor,太强了
Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在
面试中再问到ThreadLocal,应该这么答
「面试中经常被问到ThreadLocal的内容,今天我们来还原下面试现场」?面试官:看你简历写了熟悉JDK常