- 博客(35)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 干货! Semaphore详解,非常深入
文章目录Semaphore - 信号量Semaphore获取锁流程acquire 方法doAcquireSharedInterruptibly 方法获取锁流程总结Semaphore释放锁流程releaseShared 方法tryReleaseShared 方法doReleaseShared 方法释放锁总结图解Semaphore结束语Semaphore - 信号量Semaphore在构造的时候,...
2020-04-22 21:14:30
2491
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Kafka发送消息过长详解
Kafka发送消息大小问题⚠️ 本文实验的Kafka版本为2.11版本.消息概述kafka中的消息指的就是一条ProducerRecord,里面除了携带发送的数据之外,还包含:topic 发往的Topicpartition 发往的分区headers 头信息key 数据value 数据timestamp-long 时间戳Producer生产消息过长在生产者发送消息的时候,并...
2019-05-19 00:22:00
7470
原创 彻底理解Java对象头
文章目录对象头介绍对象头详细结构 -- 32位虚拟机Normal StateBiased StateLightweight StateHeavyweight State对象头详细结构 -- 64位虚拟机写在最后的话对象头介绍Java每个对象都包含两个部分, 对象头(Object Header)和对象体(Object Body). 对象头中存储代表该对象运行时的一些信息, 这部分信息与对象体的内容没有关系.对象头被分为两个部分, 第一个部分是Mark Word, 代表标记信息, 例如hash code,
2020-05-19 21:15:26
992
原创 系统线程和Java线程的状态
文章目录学会线程状态转换能做什么?常说的线程Java线程学会线程状态转换能做什么?Java体系和计算机系统联系起来定位问题有理论支持常说的线程进程是操作系统分配资源的最小单位, 线程是操作系统调度的最小单位. 一个进程可以包含多个线程, 所以进程和线程的关系就是1 : N. 线程需要由具体的操作系统提供支持(比如Windows, Linux, MacOSX), 并且提供相应的系统调用给用户进程调用.用户进程调用创建线程的系统调用, 发生用户态到内核态的变化.上面所说的线程叫做轻量级进程
2020-05-18 20:24:17
328
原创 happens-before规则和示例
文章目录写在前面的话简述深入理解写在前面的话理解happens-before的关键在于理解Java的内存模型. 关于Java内存的模型可以简单理解为下图.每个线程都有自己的一片小区域用于当前的操作, 因此用到的变量会从主存拷贝到本地内存, 每个线程在自己的本地内存中操作变量, 而主存保留的还是最原始没有修改的数据, 因此多个线程对同一份数据进行操作时, 就会发生意向不到的结果.简述happens-before共有8个规则程序次序规则: 在一个线程中, 按照程序代码顺序,书写在前面的操作先行发
2020-05-17 01:02:05
342
原创 Java虚拟机总结, 面试前快问快答
文章目录代码运行原理Java内存模型对象分配对象结构和定位对象判断对象是否存活收集算法收集器代码运行原理Java源代码编译成字节码. 字节码是二进制文件, 用户不能直接查看, 若想查看需要使用javap 命令反编译文件. java命令启动Java虚拟机开始将给定的字节码解释给操作系统. 综上来说, java是编译型+解释型语言.Java内存模型虚拟机栈, 本地方法栈,程序计数器 三者线...
2020-05-12 19:10:55
603
原创 CASS 第一章总结
文章目录本章目标解释程序文本文件和二进制文件编译系统本章目标了解程序的本质文本文件和二进制文件的区别程序到进程的全部过程(预处理,编译,汇编,链接)了解机器字长知道指令集架构和微体系结构是什么解释程序程序大家都不陌生, 日常开发的Java程序, C程序, 写的代码都是程序中的一部分, 而程序在计算机中表示是什么呢? 是如何在电脑断电再次通电之后还能读取到上次写的程序?要想知道...
2020-05-05 15:38:49
433
原创 剖析ThreadPoolExecutor
文章目录基本使用体系结构核心组件核心组件互相协助基本使用ThreadPoolExecutor主要提供两种能力线程缓存: 执行大量异步任务时通过缓存一定数量的线程减少线程切换,提供较好的性能.资源管理: 当执行任务时, 提供有限的资源供执行任务使用, 并且提供基本的统计结果.在了解基本API之前, 需要了解它的几个构造参数的含义.参数类型参数含义corePool...
2020-05-03 03:01:19
512
原创 CSAPP环境配置
阅读书籍前提安装一个Linux环境准备一本C语言手册无论是MacOSX, Windows 甚至是Linux系统, 都建议使用Docker安装一个用于实验的干净的Linux环境.Docker安装Centos可以去Docker Hub中查看有关Centos的介绍.简单介绍一下Docker, docker是一起容器引擎, 可以借助其实现虚拟化, 这里是实现centos环境. dokce...
2020-04-28 00:09:13
1679
原创 剖析AQS后,决定手写一个可重入锁
文章目录基本概念介绍结束语基本概念介绍可重入锁, 表示同一个线程可重复对某个资源进行上锁. 同时它也是独占锁, 表示任一时刻当且仅当最多有一个线程占用.下面自己写个不可重入锁举例.// 在Java中, 可以很好的设计一种不可重入锁.class NonReentrantLock { private volatile boolean isLock; priva...
2020-04-26 13:46:20
290
原创 通过CounDownLatch的源码,来了解AQS的共享锁
文章目录CountDownLatch获取共享锁acquireShared方法doAcquireShared方法释放共享锁releaseShared方法doReleaseShared方法深入CountDownLatch结束语点击了解AbstractQueuedSynchronizerCountDownLatchCountDownLatch的使用很简单, 构造CountDownLatch时需要传...
2020-04-20 19:33:53
199
原创 通过源码了解AQS
文章目录AQS介绍双向链表介绍获取独占锁acquire方法acquireQueued方法shouldParkAfterFailedAcquire方法释放独占锁release方法unparkSuccessor方法独占锁内部状态图解总结AQS介绍AbstractQueuedSynchronizer,简称AQS, 提供了一种实现同步器的框架. 该框架提供可以阻塞的加锁和释放锁. 其底层依赖FIFO双...
2020-04-18 17:47:49
537
原创 关于LockSupport,你应该知道这些
文章目录初步了解了解代码park 一类APIunpark 一类API使用示例分析lock方法分析unlock方法总结提示: 关于 interrupt 你应该了解这些.若不了解 interrupt 可以点击查看了解.初步了解LockSupport的功能是使线程进行"驻留", 也就是让线程停止工作. 线程暂停的状态如下:BLOCKEDWAITINGTIMED_WAITING但是...
2020-04-16 15:00:01
335
原创 常见数据结构堆的误区,3分钟了解堆
文章目录什么是堆?最小堆建立最小堆删除堆中一个节点堆排序代码优先队列总结什么是堆?在数据结构中, 堆是一个具有特殊顺序的数组, 不过能近似的看成一个完全二叉树..将数组转换成完全二叉树的形式, 可以看出非常关键的点:左孩子序号 = 父节点序号 * 2右孩子序号 = 父节点序号 * 2 + 1最小堆最小堆的性质: 任意一个节点, 都必须小于等于他的子节点. 根据这个性质. 可以...
2020-04-14 19:27:15
159
原创 SICP阅读环境
文章目录Lisp安装Lisp技巧资料总结总结阅读采用中文版纸质书 + 国外免费开源,含有习题解答(英文)Lisp安装安装环境: Lisp的方言-Scheme brew install mit-scheme, 然后直接可以在终端输入scheme 进行写代码, 但是没有办法进行上下切换. 于是采用github文章方式. brew install rlwrap, 之后运行命令替换为 rlwra...
2020-04-13 20:43:57
170
原创 必不可少的ARP原理, 3分钟快速了解
文章目录预备知识ARP基本原理ARP实际使用ARP拓展ARP代理ARP欺骗免费ARPAddress Resolution Protocol 地址解析协议ARP协议简介预备知识ARP基本原理ARP实际使用ARP拓展ARP代理ARP欺骗免费ARP参考:[1]. TCP/IP 协议 卷一Address Resolution Protocol 地址解析协议文章目录预备知识ARP基本原...
2020-04-07 17:34:08
367
原创 深入理解栈和队列, BFS & DFS
文章目录背景队列的基本概念入队出队栈的基本概念入栈出栈BFS的基本概念DFS的基本概念实际应用二叉树广度优先遍历二叉树深度优先遍历拓展题目背景为了让程序有自己的灵魂, 以及锻炼自己的思维逻辑能力. 特此学习了下Leetcode的栈和队列, 受益良多, 因此写下感受来使更多人看见, 方便他们.面向刚刷leetcode的新人和对数据结构不了解的人.队列的基本概念队列的基本思想就是收入队的...
2020-04-05 00:37:58
731
原创 图解Mysql隔离级别
Mysql隔离级别ACIDAtomicity – 原子性Consistency – 一致性Isolation – 隔离性Durability – 持久性原子性多个SQL要么全部成功, 要么全部失败一致性开启事务之后,在中间发生宕机,最后的结果并不会写入到数据库中.隔离性事务之间的隔离持久性修改后的数据不会因为宕机等各种原因, 发生数据丢失.隔离性级别read_u...
2020-03-30 22:36:20
142
原创 SpringBoot自定义解密
SpringBoot自定义解密文章目录SpringBoot自定义解密背景难点解决思路理解加载Bean原理创建用户自定义的Bean背景SpringBoot中使用Redis组件, 但是Redis设置了密码, 而明文密码不允许出现在配置文件中, 并且需要将明文按照公司的规定加密,最后使用时再按照公司的要求解密.难点SpringBoot无法自动解密用户配置的密文. 需要使用第三方加密, 比如大名...
2020-03-24 11:31:35
408
原创 进程(Process)状态
进程(Process)状态文章目录进程(Process)状态背景研究方式方法论三态五态查看linux文档Max OSXCentos???? 查看 Mac OSX 的进程背景工作过程中,要定义任务的状态有哪些. 于是突发奇想要了解一下linux的进程状态管理.研究方式先查看相关文章, 得知进程状态相关的方法论, 最后通过查看linux文档的方式,理论结合实际.方法论维基百科百度百科三态...
2020-03-11 12:32:02
421
原创 进程(Process)控制
进程(Process)的控制文章目录进程(Process)的控制背景进程(Process)的属性实例代码kill命令发送信号信号解析kill命令使用自定义处理信号背景在阅读<<深入理解计算机系统>>第八章中,为了更好的理解知识, 于是做了如下小实验.进程(Process)的属性每个进程都有特属自己的id,称为pid(process id). 同时每个进程都属于一个...
2020-03-10 19:10:31
274
原创 Java ClassPath详解
Java ClassPath文章目录Java ClassPath前提概括指定ClassPath环境变量方式命令方式两种方式共存深入剖析CLASSPATH参考前提在类Linux环境下实验. 本文环境是Centos和Mac OSX. 一切命令都是在shell脚本提交,命令行同理.概括ClassPath就是Java应用程序在运行中,用于从ClassPath指定的位置加载Class文件和其他资源...
2019-10-22 15:51:32
237
原创 Scala权限
Scala权限文章目录Scala权限前提理解package理解Classthis权限private权限protected权限public权限作用域保护前提理解权限的关键在于理解package的定义.理解package在Scala中,package必须定义在最上面的一行,用来说明该文件中的内容属于那个包,如果没有显示说明,则属于编译放置后的一级目录下. 按照以往开发的规则,包的名字代表了目...
2019-10-09 11:10:29
256
原创 Shell函数传递参数
Shell函数传递参数文章目录Shell函数传递参数背景错误用法解决办法思考提取变量,不加引号提取变量,加引号结论透过现象看本质背景函数之间调用时,如果把$@ (全部参数,可以用shift进行截断) 直接全部传递过去可能会造成参数个数变化,这是因为把带空格的参数(传入时用双引号包裹)解析为了多个参数.错误用法假如有如下脚本function say() { name=$1 ech...
2019-09-27 11:48:24
7048
原创 Maven针对不同环境编译
Maven针对不同环境编译文章目录Maven针对不同环境编译背景Maven ProfileProfile的编写Profile激活默认激活通过-P激活通过系统属性激活通过文件存在是否激活通过操作系统激活通过setting.xml文件背景假如某程序运行在不同的环境下,每个环境下的Zookeeper集群的IP不一致,因此要根据环境来编译程序.Maven ProfileMaven为了针对不同环境...
2019-09-27 11:47:18
894
原创 [翻译] Maven生命周期和插件
Maven生命周期和插件文章目录Maven生命周期和插件生命周期和插件的关系生命周期概括阶段 phaseclean生命周期的阶段default生命周期的阶段site生命周期的阶段插件目标内建的绑定简单示例注明生命周期和插件的关系生命周期是抽象的,插件是具体的. 生命周期直接提供给用户操作,但是插件对用户透明. 最重要的一点是生命周期由插件组成.生命周期概括Maven有三套互相独立的生命周...
2019-09-27 11:42:48
332
原创 查看文件(夹)占用空间
文章目录概括简单列出当前目录下每个文件夹的大小按照大小过滤数据显示当前目录下,每个文件(夹)的大小概括平时会查看文件夹(包含下面)的使用空间. 可以使用du命令来查看. 具体涉及到平台(MacOS,Ubuntu,Centos)可以使用man du来查看手册.单纯du命令不会显示文件大小.简单列出当前目录下每个文件夹的大小# -h 可阅读# -d 代表du -h -d 1 .(这个...
2019-08-13 17:33:46
220
原创 Kafka压缩详解
Kafka压缩文章目录Kafka压缩概括Kafka存储格式消息比较用可视化的方式分析结论概括需要理解kafka压缩则需要理解Kafka的存储格式.Kafka存储格式RecordBatchbaseOffset: int64batchLength: int32partitionLeaderEpoch: int32magic: int8 (current magic value is ...
2019-05-21 18:13:45
2429
1
原创 Kafka消息序列化
Kafka消息序列化文章目录Kafka消息序列化概括Kafka中序列化自定义序列化器用第三方jar包实现自定义序列化总结阅读文章,希望能解决以下问题:序列化主要解决的问题不同的序列化对消息大小的影响可以用序列化来解决消息太大的问题吗概括序列化主要是用来解决数据在网络中传输的问题. 在网络中传输的数据必须全是字节,也称为字节流. 而文本数据到字节数据的这一步就是序列化(将非字节数据...
2019-05-20 18:04:19
873
原创 3分钟了解interrupt
合理中断线程文章目录合理中断线程合理中断被调用线程处于阻塞状态被调用线程处于正常运行interrupted()和isInterrupt()的区别源码解析合理中断在Thread类中,提供了stop(),suspend()和resume()方法,这三个方法分别是用来结束,暂停,恢复线程. 但是都已经被标记为@Deprecated废弃了. 因为一个线程不应该由其他线程来结束,他应该收到别人的通知,...
2019-05-16 23:16:49
205
原创 Kafka生产者保证数据可靠传输
Kafka是众多MQ(Message Queue)中的一种,MQ普遍都会面临消息丢失的问题,造成消息丢失的原因有很多种,例如:生产者将消息发送,但是不确保消息到达MQ中MQ接收到消息,但是消息丢失了…本文实验采用的Kafka是kafka_2.11-1.1.1版本Kafka发送消息模型考虑有一个Topic,只有一个分区(num.partitions=1),副本因子是2(replica...
2019-05-16 23:14:13
950
原创 Skywalking配置多个项目
部署Java-Agent文章目录部署Java-AgentJava-Agent使用Agent目录结构多个项目System propertiesAgent optionsSystem environment variablesNode: 基于 Skywalking 6.xJava-Agent使用想要使用java-agent,在启动java应用程序时,需要通过参数(-javaagent:/pat...
2019-04-29 11:35:48
6804
原创 网络模型(TCP/IP)介绍
网络模型(TCP)介绍文章目录网络模型(TCP)介绍问题分层实战网络模型Ethernet IIIPv4TCP问题什么是计算机网络?计算机网络出现的原因?分层网络模型具有很有种. 但是最常用的有两种:TCP/IP 四层模型OSI 七层模型TCP/IP 网络模型是现在网络中使用的模型.对应关系如下图实战网络模型下图是四层模型的具体体现.网络接口层 - Etherne...
2019-04-27 22:17:22
268
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) (原创精品系列)
2018-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人