自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (28)
  • 收藏
  • 关注

原创 安利一个好用的IDEA插件 object-helper-plugin

因为它很早之前就停止维护了,新版本IDEA无法使用该插件,所以自己参考它的交互模式,基于新版本API开发了初版。File->Settings->Tools->Object Helper 即可进入插件的配置页面。中提出宝贵意见,也可以联系我成为一名插件开发者,共同完善插件的功能。代表当目标字段在源对象中不存在时,是否以注释的形式生成代码,如果为。插件是一个日常开发工具集插件,提供丰富的功能,最开始是基于。代表以方法入参类型的字段为基础生成对象拷贝。插件不断迭代,提供着我们的开发效率。根据日常开发中的痛点,

2022-10-29 12:50:13 7008

原创 详细剖析RocketMQ消息消费原理

消息消费以组的模式开展,一个消费组可以包含多个消费者,每个消费组可以订阅多个主题,消费组之间有集群模式和广播模式两种消费模式。集群模式是当前主题下的同一条消息只允许被其中一个消费者消费。广播模式是当前主题下的同一条消息将被集群内的所有消费者消费一次。消息服务器与消费者之间的消息传送也有两种方式:推模式和拉模式。所谓的拉模式,是消费端主动发起拉取消息的请求,而推模式是消息到达消息服务器后,再推送给消息消费者。RocketMQ消息推模式基于拉模式实现,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。

2024-09-21 21:31:19 922

原创 Raft协议深度解析:RocketMQ中基于DLedger的日志主从复制

Raft 协议主要包含两个部分:Leader选举和日志复制。前面我们在 Raft协议深度解析:RocketMQ中的自动Leader选举与故障转移 一文中已经详细介绍了DLedger如何实现Leader选举的,而本文主要聚焦于Leader选举完成后的日志复制的过程。说起日志的复制,就必须要从日志存储实现说起,它约束着Raft每一个结点如何存储数据。下面先介绍一次Raft存储的核心实现类:DLedgerStore:存储抽象类,该类有如下核心抽象方法:DLedgerMemoryStore:DLedger基于内存实

2024-07-27 17:40:31 1506

原创 Raft协议深度解析:RocketMQ中的Leader选举与故障转移

在分布式系统应用中,高可用、一致性是经常面临的问题,针对不同的应用场景,我们会选择不同的架构方式,比如master-slave、基于ZooKeeper选主。随着时间的推移,出现了基于Raft算法自动选主的方式,Raft 是在 Paxos 的基础上,做了一些简化和限制,大大简化了算法的复杂度。Raft协议是目前分布式领域一个非常重要的一致性协议,RocketMQ 的主从切换机制也是介于Raft协议实现的。Raft 协议主要包含两个部分:Leader选举和日志复制。

2024-07-27 16:55:42 2023

原创 深度解析 Raft 分布式一致性协议

对于我们的KV服务,要像操作一台机器一样,对用户来说在写入成功后,就应该能读到最近写入的值,而不关心具体底层是如何分布式实现。最终一致性:读取可能暂时读不到但是总会读到线性一致性:最严格,线性时间执行(写完KV确保就能读到),是最理想中的状态选主(Leader election)就是在分布式系统内抉择出一个主节点来负责一些特定的工作。在执行了选主过程后,集群中每个节点都会识别出一个特定的、唯一的节点作为 leader。

2024-07-06 21:42:14 2501

原创 手把手教你改造Sentinel Dashboard 实现配置持久化

Sentinel客户端默认情况下接收到 Dashboard 推送的规则配置后,可以实时生效。但是有一个致命缺陷,Dashboard和业务服务并没有持久化这些配置,当业务服务重启后,这些规则配置将全部丢失。通过 API 直接修改 (loadRules通过DataSource适配不同数据源修改// 修改流控规则// 修改降级规则手动修改规则(硬编码方式)一般仅用于测试和演示,生产上一般通过动态规则源的方式来动态管理规则。上述。

2024-06-16 13:36:20 2869

原创 一文读懂Apollo客户端配置加载流程

Apollo 启动时会在扩展点开始加载远端配置,而Apollo客户端获取配置采用多层设计->->,最终由完成远端配置拉取负责拉取远端配置并通知更新配置。负责将远端配置缓存至本地文件,设计这一层主要是为了在Apollo Server 不可用时保证业务服务的可用性。当配置发生变更时负责通知更新配置。负责缓存Apollo配置信息在内存中,当配置发生变更时,会回调方法更新Java Bean 中的属性。

2024-05-26 16:41:36 4298

转载 Java21 GA新特性-虚拟线程详解

然虚拟线程建造器屏蔽了执行器Executor实例的公共访问权限,在目前预留功能版本下只能所有虚拟线程的任务最终都是由全局的执行,可以通过VarHandle/***/});Class

2023-12-17 19:38:12 5404

原创 Java21新特性-虚拟线程

是轻量级线程(类似于 Go 中的 “(Goroutine)”),可以减少编写、维护和调度高吞吐量并发应用程序的工作量。是可供调度的最小处理单元,它与其他类似的处理单元并发运行,并且在很大程度上是独立运行的。线程()有两种,和。

2023-12-17 16:22:14 8769

原创 RocketMQ阅读源码前的准备

本文将讲解如何在IDEA中导入 RocketMQ 源码,并运行 Broker 和 NameServer,编写一个消息发送与消息消费的示例。

2023-12-02 10:39:54 5223

原创 RocketMQ主从同步原理

主从同步这个概念相信大家在平时的工作中,多少都会听到。其目的主要是用于做一备份类操作,以及一些读写分离场景。比如我们常用的关系型数据库mysql,就有主从同步功能在。主从同步,就是将主服务器上的数据同步到从服务器上,也就是相当于新增了一个副本。而具体的主从同步的实现也各有千秋,如mysql中通过binlog实现主从同步,es中通过translog实现主从同步,redis中通过aof实现主从同步。那么,rocketmq又是如何实现的主从同步呢?另外,主从同步需要考虑的问题是哪些呢?数据同步的及时性?

2023-12-02 10:18:25 5943

原创 RocketMQ事务消息源码解析

半事务消息:指的是发送至broker但是还没被commit的消息,在半事务消息被确认之前都是无法被消费者消费的。消息回查:由于网络闪断、生产者应用重启等原因,导致某条事务消息的二次确认丢失,broker 通过扫描发现某条消息长期处于“半事务消息”时,需要主动向消息生产者询问该消息的最终状态(commit 或是 rollback),该询问过程即消息回查。

2023-12-02 10:07:16 5267

原创 RocketMQ消息过滤机制源码详解

RocketMQ支持两种方式的消息过滤:TAG/SQLTAG 过滤分两个阶段完成:第一阶段:broker率先根据tag的hashcode完成过滤第二阶段:consumer根据tag值完成最后的过滤SQL过滤只能在Broker中完成。

2023-12-02 09:55:47 5344

原创 详解RocketMQ消息存储原理

RocketMQ存储的文件主要包括CommitLog文件、ConsumeQueue文件、Index文件。RocketMQ将所有topic的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大的能力确保消息发送的高性能与高吞吐量。因为消息中间件一般是基于消息主题的订阅机制,所以给按照消息主题检索消息带来了极大的不便。为了提高消息消费的效率,RocketMQ引入了ConsumeQueue消息消费队列文件,每个topic包含多个消息消

2023-10-15 20:16:51 7467

原创 ShardingJDBC使用不当引发的线上事故

本文由故障现象定位到了具体的问题点是因为 MyBatis-Plus 批量插入没有返回数据库组件,而跟踪源码后我们却发现是因为ShardingJDBC不支持批量插入获取主键值。ShardingJDBC不支持批量插入后获取主键,主要是因为在批量插入操作中,ShardingJDBC可能需要将数据插入到多个不同的数据库节点,在这种情况下,每个节点都可能有自己的主键生成规则,并且这些节点可能并不知道其他节点的主键值。

2023-09-24 21:10:03 6483

原创 JVM Sandbox入门详解

在日常开发中,经常会接触到面向AOP编程的思想,我们通常会使用Spring AOP来做统一的权限认证、异常捕获返回、日志记录等工作。之所以使用Spring AOP来实现上述功能,是因为这些场景本质上来说都是与业务场景挂钩的,但是具有一定的抽象程度,并且绝大多数业务逻辑类都已经被Spring容器托管了。

2023-05-27 21:36:53 9390

原创 Immich让你从此告别百度网盘备份手机照片

Immich是一个开源的图片自托管服务,它能实现类似于百度网盘的照片自动备份、分类等功能,它同时提供了Web管理页面,和移动端APP,可以轻松备份手机中的照片至家庭服务器中。这一应用也在很多群辉玩家中用于替代“群辉相册”。

2023-05-14 15:05:11 10547

原创 Java应用的优雅停机

static {} }在的静态块中,Dubbo 注册了一个 shutdown hook,用于执行 Dubbo 预设的一些停机逻辑,继续跟进。本文从操作系统、语言、框架层面分别阐述了一个Java应用优雅停机流程,从进程层面,优先推荐使用 SIGTERM 信号通知进程进入销毁流程,JVM虚拟机进程会监听该事件,并执行注册的ShutdownHook。在框架层面不同的框架都会自行注册自身框架的ShutdownHook,从而保证各种框架的正常销毁退出。

2023-04-21 22:38:27 9879

原创 工作面试老大难-MySQL中的锁类型

间隙就是是指索引两两之间的一个左开右开区间。

2023-04-08 15:37:47 6649

原创 CentOS搭建Jellyfin影音服务器

要使用 JellySkin 主题,请将下面的行复制到“仪表板 -> 常规 -> 自定义 CSS”并单击保存,它将立即在服务器范围内应用到所有用户可能正在使用的任何主题之上。要删除主题,请清除“自定义 CSS”字段,然后单击保存。「硬件转码」是流媒体中很重要的一部分,不管是 PLEX 亦或是 Emby,硬解功能都是收费的。所以只要进入「控制台」-「播放」,选择「In­tel QuickSync (QSV)」,把能勾选的视频编码格式全勾上,其他选项根据自己的理解勾选。相当简单的是吧,复杂的地方在后头。

2023-04-05 12:19:25 10998 1

原创 动态类型语言 VS 静态类型语言

动态编程语言是是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。

2023-02-03 17:15:09 7167

原创 深入剖析Arthas源码

Arthas 相信大家已经不陌生了,肯定用过太多次了,平时说到 Arthas 的时候都知道是基于Java Agent的,那么他具体是怎么实现呢,今天就一起来看看Arthas源码。Arthas。至此 Arthas 整体流程分享完成,我们从 arthas-boot 开始,它的核心作用就是启动引导用户选择需要增强的Java进程PID,最终将PID传入 arthas-core 中;arthas-core根据用户选择的PID,利用Java Agent机制使用 arthas-agent 对目标进程进行增强;

2022-12-23 20:27:58 8863 3

原创 Dubbo SPI扩展机制源码详解(基于2.7.10)

本文主要分享 Dubbo 的拓展机制 SPI。想要理解 Dubbo ,理解 Dubbo SPI 是非常必须的。在 Dubbo 中,提供了大量的拓展点,基于 Dubbo SPI 机制加载在看具体的 Dubbo SPI 实现之前,我们先理解 Dubbo SPI 产生的背景:Dubbo 的扩展点加载从 JDK 标准的 SPI (Service Provider Interface) 扩展点发现机制加强而来。Dubbo 改进了 JDK 标准的 SPI 的以下问题:用户能够基于 Dubbo 提供的扩展能力,很方便基于

2022-12-04 17:29:27 5492

原创 详解 XSS 攻击原理

跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分,将跨站脚本攻击缩写为XSS。因此XSS是跨站脚本的意思。XSS跨站脚本攻击(Cross Site Scripting)的本质是攻击者在web页面插入恶意的script代码(这个代码可以是JS脚本、CSS样式或者其他意料之外的代码),当用户浏览该页面之时,嵌入其中的script代码会被执行,从而达到恶意攻击用户的目的。

2022-10-29 10:53:21 11056

转载 算法的本质

坦白说,大部分开发岗位工作中都是基于现成的开发框架做事,不怎么会碰到底层数据结构和算法相关的问题,但另⼀个事实是,只要你想找技术相关的岗位,数据结构和算法的考察是绕不开的,因为这块知识点是公认的程序员基本功。而计算机解决问题的思维恰恰相反有没有什么数学公式就交给你们人类去推导吧,如果能找到⼀些巧妙的定理那最好,但如果找不到,那就穷举呗,反正只要复杂度允许,没有什么答案是穷举不出来的,理论上讲只要不断随机打乱⼀个数组,总有⼀天能得到有序的结果呢!其实计算机思维也没什么高端的,你想想计算机的特点是啥?...

2022-07-30 11:39:24 5191

原创 一文读懂Spring的SPI机制

一. 从类加载说起Java中的类加载器负载加载来自文件系统、网络或者其他来源的类文件。jvm的类加载器默认使用的是双亲委派模式。三种默认的类加载器Bootstrap ClassLoader、Extension ClassLoader和System ClassLoader(Application ClassLoader)每一个中类加载器都确定了从哪一些位置加载文件。于此同时我们也可以通过继承 java.lang.classloader 实现自己的类加载器。Bootstrap ClassLoader:负责

2022-05-22 10:46:27 11391 5

原创 一文搞懂 Spring Bean 的生命周期

一. 前言在学习Spring框架的IOC、AOP两大功能之前,首先需要了解这两个技术的基础——Bean。在Spring框架中,Bean无处不在,IOC容器管理的对象就是各种各样的Bean。理解Bean的生命周期有助于我们更好的理解和使用Spring框架的IOC功能,也有助于我们理解框架如何初始化、使用和管理Bean。接下来我们通过代码实现观察 BeanFactory 与 ApplicationContext 中bean的生命周期。二. BeanFactory中Bean的生命周期Bean 的生命周期概括

2022-05-03 17:19:59 2569

原创 详解Spring循环依赖

一. 什么是循环依赖循环依赖,就是两个或则两个以上的bean互相依赖对方,最终形成闭环。比如“A对象依赖B对象,而B对象也依赖A对象”,或者“A对象依赖B对象,B对象依赖C对象,C对象依赖A对象”;类似以下代码:public class A { private B b;}public class B { private A a;}常规情况下,会出现以下情况:通过构建函数创建A对象(A对象是半成品,还没注入属性和调用init方法)。A对象需要注入B对象,发现对象池(缓存)

2022-04-10 18:36:35 5035 2

原创 布隆过滤器在缓存系统中的实践

一. 背景在业务开发中,在并发量很高的情况下,通常会使用缓存对系统查询性能进行优化,在缓存命中率很高的情况下,缓存的使用能够大幅提升系统查询性能。但是在缓存命中率非常低场景下,如果采用传统缓存读取模式,大部分的请求会穿透至数据库,造成数据库的巨大压力。例如:最近上线一个“贵族”功能,由于贵族价格比较贵,拥有比较强的特权,该功能也主要面向平台头部大R用户,所以如果采用传统的缓存模式,查询一个用户的贵族信息就会大概率出现缓存无法命中去读库的情况。有些同学可能会将“空结果”缓存至数据库,这样下次去查询该用户

2022-04-03 13:59:02 1597

原创 开发中你不得不知的一个Git小技巧

一. 背景在工作中大家应会碰到需要频繁在两个分支中切换工作的情况,我们通常做法是利用git stash命令暂存当前工作区中的变更,然后git checkout到目标分支中工作,工作完成后回到刚刚分支使用git stash pop命令还原历史工作区变动。整体流程大致如下:# 当前工作分支,存在变更$ worktree-test (dev1) git statusOn branch testChanges not staged for commit: (use "git add <file

2022-03-20 11:11:02 3197

原创 tcc-transaction源码详解

本文主要介绍TCC的原理,以及从代码的角度上分析如何实现的;不涉及具体使用示例。本文通过分析tcc-transaction源码带大家了解TCC分布式事务的实现原理。需要注意的是,本文所有代码都基于master-1.7.x分支,不同版本的源码会存在一定的差异。完整代码注释请参考:bigcoder84/tcc-transaction一. 概述1.1 项目模块本文对 tcc-transaction 源码分析。主要涉及如下四个模块:tcc-transaction-core:tcc-transaction

2022-01-02 22:02:04 3847 5

原创 Linux进程Fork详解

一. fork函数详解一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。我们来看一个例子:#include <unistd.h>#include &lt

2021-10-24 11:36:18 4623

原创 深入理解Docker原理

本文参考转载至:《深入剖析Kubernetes - 张磊》更过优秀博文请关注:https://blog.bigcoder.cn容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。对于 Docker 等大多数 Linux 容器来说,Cgroups 技术是用来制造约束的主要手段,而Namespace 技术则是用来修改进程视图的主要方法。你可能会觉得 Cgroups 和 Namespace 这两个概念很抽象,别担心,接下来我们一起动手实践一下,你就很容易理解这两项技术了。一.

2021-08-01 18:58:32 971

原创 synchronized锁升级过程

更过博文请关注:https://blog.bigcoder.cnJDK 1.6后锁的状态总共有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁,这四种锁状态分别代表什么,为什么会有锁升级?其实在 JDK 1.6之前,synchronized 还是一个重量级锁,底层使用操作系统的 Mutex Lock(互斥锁)实现,而操作系统实现线程之间的切换需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么重量级锁效率低的原因。但是在JDK 1.6后,JVM为了提.

2021-07-02 20:48:50 842

原创 线上内存泄露排查

一. 排查过程前不久测试环境一直无缘无故的挂掉,这可苦了我们一线开发人员,每次测试都得把挂掉服务全部起起来。面对几十个微服务模块,我想大家看到这样的场景内心也是一万个草泥马飞过….硬着头皮把代码写完了,但是大规模的服务宕机显然不正常,看了一波还是热乎的日志,发现是服务器OOM了,顺道看了一下JVM配置,居然没有任何配置,看到这里嘴角丝丝上扬,觉得自己破案了。随即给核心服务都加上了JVM参数:JAVA_OPTS: "-server -Xmx256m" #因为是测试环境对扩容抖动并不敏感,所以没有设置

2021-06-04 09:08:20 528

原创 探寻Dubbo集群容错机制

一. timeout 与 retriesDubbo的服务可以通过timeout配置超时时间,防止远程调用失败,该属性的默认值为1000(ms),用户可以在多个地方配置服务的超时时间:图中涉及的配置方式从上至下优先级越来越低,总体来说配置覆盖遵循以下规律:consumer配置优先于provider配置,细粒度配置优先于整体配置。我们在消费者中sleep一段时间人为制造超时效果:@DubboService(timeout = 3000)@Slf4jpublic class UserServiceI

2021-06-02 09:06:07 291 1

原创 Java SPI详解

SPI的英文全称为Service Provider Interface,字面意思为服务提供者接口,它是jdk提供给“服务提供厂商”或者“插件开发者”使用的接口。在面向对象的设计中,模块之间我们一般会采取面向接口编程的方式,而在实际编程过程过程中,API的实现是封装在jar中,当我们想要换一种实现方法时,还要生成新的jar替换以前的实现类。而通过jdk的SPI机制就可以实现,首先不需要修改原来作为接口的jar的情况下,将原来实现的那个jar替换为另外一种实现的jar即可。总结一下SPI的思想:在系统的各个

2021-05-14 17:18:18 5601 1

原创 一文详解编辑距离(Levenshtein Distance)

更多博文请关注:https://blog.bigcoder.cn一. 什么是Levenshtein DistanceLevenshtein Distance,一般称为编辑距离(Edit Distance,Levenshtein Distance只是编辑距离的其中一种)或者莱文斯坦距离,算法概念是俄罗斯科学家弗拉基米尔·莱文斯坦(Levenshtein · Vladimir I)在1965年提出。此算法的概念很简单:Levenshtein Distance指两个字串之间,由一个转换成另一个所需的最少编.

2021-04-17 22:25:31 23115 2

原创 网络广告代理商是如何通过Cookie收集用户信息的

更多博文请关注:https://blog.bigcoder.cn不知道大家有没有这样的经历,我在某宝上搜索一个商品,然后再打开其它网站,它会非常“智能”的给我推荐同一商品。这样的操作大多都是因为Cookie在搞鬼,在了解厂商这些骚操作前,我们先了解一下浏览器的同源策略。一. 同源策略由于浏览器默认的同源策略只能获取到“自己”的Cookie。所谓的同源策略就是指A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"协议相同域名相同端口相同.

2021-04-13 17:53:08 1591

原创 Windows系统命令行的最佳实践

更多博文请关注:https://blog.bigcoder.cn每次看到Mac生态中炫酷的命令行工具,我就一脸羡慕,但是奈何财力不足,整不起动辄上万的电脑,搬砖人就只能折腾折腾手里的这台windows了。效果展示:Mac终端自带的zsh完全移安装到了WSL上面,命令交互样式变得更加美观,默认能够显示当前所在文件夹下的git分支更加智能的命令提示,这也是我最喜欢的一点open命令,使用open命令可以使用系统默认软件打开文件夹以及文件[外链图片转存失败,源站可能有防盗链机制,建.

2021-03-27 09:46:08 477 5

《只是为了好玩-Linux之父林纳斯自传》

该书是Linux之父林纳斯的自传,有兴趣的小伙伴可以下载。该资源不得用于商业用途。

2019-05-22

《码出高效:Java开发手册》

本PDF为高清版,该资源不得用于任何商业用途,如有侵权请联系博主删除。

2019-03-21

《Spring Boot实战》高清PDF

本PDF带有详细书签,为高清扫描版。 本PDF资源只用于个人学习,不得以任何形式用于商业活动,如有侵权请联系博主删除。

2019-01-24

《Linux就该这么学 刘遄 著》高清

《Linux就该这么学》基于红帽RHEL系统编写,且内容通用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署虚拟环境、安装Linux系统;常用的Linux命令;与文件读写操作有关的技术;使用Vim编辑器编写和修改配置文件;用户身份与文件权限的设置;硬盘设备分区、格式化以及挂载等操作;部署RAID磁盘阵列和LVM;firewalld防火墙与iptables防火墙的区别和配置;使用ssh服务管理远程主机;使用Apache服务部署静态网站;使用vsftpd服务传输文件;使用Samba或NFS实现文件共享;使用BIND提供域名解析服务;使用DHCP动态管理主机地址;使用Postfix与Dovecot部署邮件系统;使用Squid部署代理缓存服务;使用iSCSI服务部署网络存储;使用MariaDB数据库管理系统;使用PXE+Kickstart无人值守安装服务;使用LNMP架构部署动态网站环境等。 声明:该资源不能以任何形式用于商业用途,如有侵权请联系博主删除。

2019-01-09

《Docker实战》PDF

该PDF为高清资源,并且带有详细书签。 声明:该文件不能以任何形式用于商业用途,仅供个人学习使用,如有侵权请联系博主删除。

2018-12-18

《Spring Boot2企业应用实战》PDF高清

该书为高清PDF,带有详细书签,如果有需要的博友欢迎下载。 声明:该PDF不能用于任何商业用途,只能用于个人学习,如有侵权请联系博主删除。

2018-12-08

《HeadFirst设计模式》PDF高清版

HeadFirst设计模式是一本通俗易懂的设计模式入门书籍,它以图文的形式讲述了常见的设计模式。非常适合有一定java基础的博友们阅读。

2018-10-30

Tomcat架构解析 刘光瑞 PDF

本书适用于Web开发进阶的程序员,该书讲述了Tomcat架构组成,让您更加了解Tomcat架构。本书不能用于商业用途,如有侵权,请联系作者删除。

2018-10-21

《剑指Offer 第二版》PDF高清

该书籍讲述了面试需要注意的问题,以及多轮面试中的要点。准备找工作的小伙伴,可以多看看。

2018-09-22

GitHub入门实践完整PDF

该PDF版本为高清版,下载即可阅读,有需要的小伙伴赶快下载吧! 如有侵权,请联系我删除!

2018-09-12

《Java核心技术 卷一 》第十版 PDF

《Java核心技术 卷一 》出自于机械工业出版社,PDF字迹清晰,并有完整标签,需要的小伙伴不要错过。

2018-07-27

《Java程序员上班那点事》清华大学出版社

字迹较为清晰,感兴趣的读者可以下载看一下,里面阐述了常见的软件开发者的误区。

2018-07-27

《程序员的思维修炼》崔康译

《程序员思维修炼》pdf版本,该PDF字迹较为清晰,有详细的标签,需要的小伙伴可以下载。

2018-07-26

《java多线程编程核心技术》高洪岩著

《java多线程编程核心技术》是学习java多线程机制一本比较好的书,该PDF文档字迹非常清晰,并且带有详细标签,需要学习的小伙伴可以下载。

2018-07-25

《深入理解java虚拟机》第一版 周志明著

《深入理解java虚拟机》是java程序员进阶的必看书籍,该PDF字迹清晰,内涵详细标签

2018-07-25

《算法图解》袁国忠译

《算法图解》中采用漫画图解的方式,生动形象的讲述了常用算法。该PDF非常清晰,并且含有详细标签。

2018-07-25

EditPlus破解中文版

EditPlus是一款非常好用的文档编辑器,可以实现多种编程语言的关键字高亮显示,安装即用,在设置中改为中文即可。

2018-06-05

Linux远程访问工具(SSHSecureShellClient-3.2.9)

用于远程登录Linux系统,或者登录本机虚拟机的Linux,简单易用,欢迎下载。

2018-06-05

R-studio数据恢复软件(带教程)

用于硬盘和u盘等存储设备误删除后的恢复,安装时不要安装在需要恢复数据的盘中,以免覆盖需要恢复的数据!

2018-02-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除