那些在一个公司死磕了 5-10 年的人,后来都怎么样了? (mp.weixin.qq.com)

【简介】

在互联网红利爆发,人心躁动的今天,可以在一个公司磕到5~10年,真的很不容易,我记得前东家要是有人呆满8年,就可以鲜花伺候,附送一个小金块,据说价值不菲。

点击查看原文 >>

@code小生 2020-11-15 17:45 / 0个评论
赞过的人: @技术头条 @code小生
要不要再学学下面的文章?
【死磕 Redis】—– 如何排查 Redis 中的慢查询 (cmsblogs.com)
我们知道 MySQL 提供了慢查询日志帮助我们定位系统存在的慢操作,同样在 Redis 里面也提供了类似的功能。所谓慢查询日志就是系统记录那些执行时间超过预设阀值的命令,包括发生时间、耗时、命令的详细信息等相关信息都记录下来。

慢查询的作用:通过慢查询分析,找到有问题的命令进行优化。

Redis 执行命令分为四个步骤:发送命令、命令排队、执行命令、返回结果。需要注意的是,慢查询只统计步骤 3 的时间,所以没有慢查询并不代表客户端没有超时问题。
by @技术头条 2022-05-06 23:37 查看详情
【死磕 Redis】—– info 命令详解 (cmsblogs.com)
Redis 提供了一个非常有用的查看状态信息的命令:info。它以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。使用方法有如下三种:
1、info:部分Redis系统状态统计信息。
2、info all:全部Redis系统状态统计信息。
3、info section:某一块的系统状态统计信息,其中section可以忽略大小写。
by @技术头条 2021-05-28 22:59 查看详情
死磕 Redis - 事务 (cmsblogs.com)
Redis 通过 MULTI、EXEC、DISCARD、WATCH 、UNWATCH 来实现事务功能,Redis 事务具备如下几个特性:

1、Redis 会将事务中的多个命令一次性、按顺序一次执行,在执行期间可以保证不会中断事务去执行其他命令;
2、Redis 的事务机制是不能保证原子性的,它只保证隔离性和一致性。
by @技术头条 2021-05-28 08:33 查看详情
死磕 Java 集合之 HashMap 源码分析 (mp.weixin.qq.com)
HashMap采用key/value存储结构,每个key对应唯一的value,查询和修改的速度都很快,能达到O(1)的平均时间复杂度。它是非线程安全的,且不保证元素存储的顺序。
by @zhisheng_blog 2019-09-22 13:33 查看详情
死磕 Java集合之ArrayList源码分析 (mp.weixin.qq.com)
简介
ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。

继承体系
by @zhisheng_blog 2019-05-17 19:59 查看详情
死磕 java集合之CopyOnWriteArrayList源码分析 (mp.weixin.qq.com)
简介
CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉老数组,这样保证了只阻塞写操作,不阻塞读操作,实现读写分离。
by @zhisheng_blog 2019-05-17 19:57 查看详情
【死磕Java并发】—–J.U.C之ConcurrentHashMap红黑树转换分析 (cmsblogs.com)
先看红黑树的基本概念:红黑树是一课特殊的平衡二叉树,主要用它存储有序的数据,提供高效的数据检索,时间复杂度为O(lgn)。红黑树每个节点都有一个标识位表示颜色,红色或黑色,具备五种特性:

每个节点非红即黑
根节点为黑色
每个叶子节点为黑色。叶子节点为NIL节点,即空节点
如果一个节点为红色,那么它的子节点一定是黑色
从一个节点到该节点的子孙节点的所有路径包含相同个数的黑色节点

请牢记这五个特性,它在维护红黑树时选的格外重要
by @技术头条 2017-12-24 19:58 查看详情
【死磕Java并发】—–J.U.C之阻塞队列:PriorityBlockingQueue (cmsblogs.com)
我们知道线程Thread可以调用setPriority(int newPriority)来设置优先级的,线程优先级高的线程先执行,优先级低的后执行。而前面介绍的ArrayBlockingQueue、LinkedBlockingQueue都是采用FIFO原则来确定线程执行的先后顺序,那么有没有一个队列可以支持优先级呢? PriorityBlockingQueue 。

PriorityBlockingQueue是一个支持优先级的无界阻塞队列。默认情况下元素采用自然顺序升序排序,当然我们也可以通过构造函数来指定Comparator来对元素进行排序。需要注意的是PriorityBlockingQueue不能保证同优先级元素的顺序。
by @技术头条 2017-08-21 13:39 查看详情
【死磕Java并发】—–J.U.C之重入锁:ReentrantLock (cmsblogs.com)
ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比synchronized更强大、灵活的锁机制,可以减少死锁发生的概率。

API介绍如下:

一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。ReentrantLock 将由最近成功获得锁定,并且还没有释放该锁定的线程所拥有。当锁定没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁定并返回。如果当前线程已经拥有该锁定,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查此情况是否发生。

ReentrantLock还提供了公平锁也非公平锁的选择,构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁与非公平锁的区别在于公平锁的锁获取是有顺序的。但是公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量。
by @技术头条 2017-03-27 10:05 查看详情
【死磕Java并发】—–J.U.C之AQS:同步状态的获取与释放 (cmsblogs.com)
在前面提到过,AQS是构建Java同步组件的基础,我们期待它能够成为实现大部分同步需求的基础。AQS的设计模式采用的模板方法模式,子类通过继承的方式,实现它的抽象方法来管理同步状态,对于子类而言它并没有太多的活要做,AQS提供了大量的模板方法来实现同步,主要是分为三类:独占式获取和释放同步状态、共享式获取和释放同步状态、查询同步队列中的等待线程情况。自定义子类使用AQS提供的模板方法就可以实现自己的同步语义。
by @技术头条 2017-03-23 23:57 查看详情