- 博客(74)
- 资源 (4)
- 收藏
- 关注
原创 不是吧,还有人连Java最强大的技术之一:反射还没搞懂?赶紧码住
Java 反射是可以让我们在运行时获取类的方法、属性、父类、接口等类的内部信息的机制。也就是说,反射本质上是一个“反着来”的过程。我们通过new创建一个类的实例时,实际上是由Java虚拟机根据这个类的Class对象在运行时构建出来的,而反射是通过一个类的Class对象来获取它的定义信息,从而我们可以访问到它的属性、方法,知道这个类的父类、实现了哪些接口等信息。复制代码类 Class 的实例表示运行中的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组也属于一个类,这个类反映为一个。
2022-09-19 14:45:42 395 1
原创 Java设计模式:你见过大厂是怎么玩单列模式的吗?
在实际工作中,单例的使用还是比较常见的,在几种实现方式中,双重检测机制、静态内部类、枚举方式都是比较推荐。以上就是这篇文章的全部内容了,希望能对铁子们有帮助和收获。如果觉得文章有用,喜欢这篇文章的铁子们文章持续更新,也可以评论出你想看哪一块技术。创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见。
2022-09-17 10:24:11 330
原创 八股文系列:程序开发中的集合容器,你了解多少?
什么是集合集合框架:用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。对外的接口、接口的实现和对集合运算的算法。接口: 表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现, 从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。实现: 集合接口的具体实现,是重用性很高的数据结构。算法: 在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个 接口被多个类实现时有不同的表现。
2022-09-16 15:12:04 400
原创 数据库连接池、线程池等管理的关键点,你知道吗?
连接池和线程池你并不陌生,不过你可能对它们的原理和使用方式上还存在困惑或者误区,我在面试时,就发现有很多的同学对线程池的基本使用方式都不了解。借用这节课,我想再次强调的重点是:池子的最大值和最小值的设置很重要,初期可以依据经验来设置,后面还是需要根据实际运行情况做调整。池子中的对象需要在使用之前预先初始化完成,这叫做池子的预热,比方说使用线程池时就需要预先初始化所有的核心线程。如果池子未经过预热可能会导致系统重启后产生比较多的慢请求。
2022-09-16 09:33:55 690
原创 从程序员成长为500强企业的架构师,如何掌控自己的职业生涯?
一转眼从学校毕业已经超过10年了,从一名普通的程序员成长为500强企业的架构师,如今也开始做IT管理工作,可以算是一个过来人。前两天公司一位初入职场的同事希望我给一些建议与经验。我觉得这个话题很有价值,这里以个人的想法与经历写成此文,希望给年轻的开发者们一些启发。
2022-09-15 10:22:03 327
原创 阿里开源的分布式事务揭秘:Seata原理及流程剖析
分布式事务有各种实现方案,不过大体可分为两类,一种不需要关注事务分支与全局事务的交互过程。另一种是将逻辑拆分成三个部分准备、提交、回滚,分支事务加入全局事务。这两种在Seata里前者称为AT模式,后者称为MT模式。
2022-09-14 15:30:32 1238
原创 来自阿里十余年的老架构师自述:成为架构师你只差了一步
Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量、连接池,线程池。Java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案Java字节码技术;nio,没什么好说的,值得注意的是”直接内存”的特点,使用场景;java多线程同步异步;
2022-09-14 10:20:00 1699
原创 金九银十已到,大厂面试大全+面试经历都在这了(建议收藏)
疫情到现在已经持续有3年的时间了,由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难。我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中。毕竟一年过去了,会的还是原来的知识,人的身价就摆在那里,无论怎么折腾,也不会拿到更好的 offer。这样的跳槽其实没有意义,也许就有人问,现在都是互联网寒冬了,要怎样才能把握好机会,拿到跟好跟适合自己的 offer 呢?技术才是我们程序员的立身之本,在再好的机遇面前我们也要有这个实力去抓住它。
2022-09-13 11:58:51 1750
原创 阿里架构师一文讲明白,大白话聊分布式事务及系统架构,答出两种就算过
在分布式、微服务大行其道的今天,分布式事务永远都是绕不开的一个话题。相信大家对这些名词都不会陌生。而说到使用分布式,或者拆分微服务的好处,你肯定能想到一大堆。比如每个人只需要维护自己单独的服务,没有了以前的各种代码冲突。自己想测试、想发布、想升级,只需要care自己写的代码就OK了,很方便很贴心!然而事物都有两面性,但是它也同时也会带来的一些问题,今天的文章谈的就是分布式系统架构带来的其中一个棘手的问题:分布式事务
2022-09-09 14:04:54 199
原创 如何学习java性能调优?这10个技巧一定要知道
如何学习java性能调优?首先你得知道两个标准。一个是性能调优标准,告诉你可以通过哪些参数去衡量系统性能;另一个是调优过程标准,带你了解通过哪些严格的调优策略,我们可以排查性能问题,从而解决问题。然后,把 Java 性能调优分成5个层级:Java 编程、多线程、JVM 、设计模式、数据库,每个层级下都覆盖了最常见的*性能*问题。最后是实战演练场。以上五个层级的内容,都是基于某个点的调优,现在是时候把你前面所学都调动起来了,这里综合性能问题高频出现的应用场景,学习整体调优方法。
2022-09-08 13:58:47 195
原创 蚂蚁金服十年架构师教你深入理解分布式锁
分布式锁分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。 举个不太恰当的例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人,分布式锁就是保证这个房子只有一个门并且一次只有一个人可以进,而且门只有一把钥匙。然后许多人要去看书,可以,排队,第一个人拿着钥匙把门打开进屋看书并且把门锁上,然后第二个人没有钥匙,那就等着,等第一个出来,然后你在拿着钥匙进去,然后就是以此类推为什么要用锁为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统
2022-09-08 10:11:33 436
原创 来自从事Java十年的老架构师给大家的一些经验,Java工程师必看
一转眼从学校毕业已经超过10年了,从一名普通的程序员成长为500强企业的架构师,如今也开始做IT管理工作,可以算是一个过来人。这一路走来,自己有一些感悟,也看到其他人的一些经验教训,还有很多朋友不知道怎么从工程师成长为一名合格的架构师,我总结了一些我的人生经验,希望对那些处在迷茫中的年轻朋友们有些许帮助。同时也分享一套架构师的面试题,能答出80%其实已经算是一名合格的架构师了。
2022-09-07 15:32:47 434
原创 浅谈一下java设计模式——命令模式
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。
2022-09-07 15:06:41 192
原创 抽奖小程序解析,如何实现订阅消息推送?
前言最近在研究一个抽奖小程序,使用过抽奖小程序的同学都知道,在小程序开奖都时候都会有一个提醒让用户点击查看结果。查看结果后不管是否中奖,还会引导用户去抽其他的奖品,这一招可谓是一石二鸟,活跃和留存都做到了。效果步骤想要实现发送模版消息有以下步骤:管理后台申请模版 获取用户推送授权 进行推送订阅消息实现管理后台申请模版进入后台选择订阅消息菜单,点击添加按钮搜索关键词,选中你需要的模版可自定义顺序和勾选需要的字段选中成功后在这里我们可
2021-12-10 16:59:22 1152
原创 仿抽奖助手奖品详情页面向上翻页效果
看效果上代码// jsPage({ data: { list: [ // scrollList { name: '111' }, { name: '222' } ], catchTouchMoveEvent: 'catchtouchmove', // 禁止滑动事件名参数;当为null的时候,不会禁止滑动; isShort: true, // 翻页时候是否可以抖动 now
2021-12-04 21:24:20 816
原创 云开发实战-如何维护用户表?(优化版)
前言之前写过一篇《云开发实战-如何维护用户表》,这种方式是最简单的,经过阅读了一些开源项目的代码,我优化了部分写法。对比优化前实现思路:通过 login 云函数获取 openid 存放到本地 在授权信息的时候去添加 userInfo 根据 openid 去查询是否已经存储 没有查到就是新用户进行添加并存放 id 到本地 查看后老用户就根据 id 进行更新信息优化后实现思路:在 app.js 通过 queryCurrentUser 云函数查询 openid 是否在用户表 得到状
2021-11-30 22:28:37 1042
原创 实战:如何降低云开发服务器成本?
两步直接降低 20 倍成本成本完全hold不住首先我们可以看到这幅图,CDN流量消耗和存储读请求次数特别大。原因是因为在大量的登记里面上传图片需求非常高频,加上当时「群登记助手」日活高达4w。我原本采购的 CDN 3(2199/月)套餐完成抗不住这个CDN消耗。所以我直接升级到旗舰 3 套餐。这个套餐每月4699/月(目前该套餐已下线)作为一名独立开发者来说,这个成本非常高。成本降低 1 倍于是我在「微信开放社区」进行了提问我说什么时候能推出按需计费?
2021-11-29 22:38:30 782 1
原创 小程序云开发:data exceed max size 解决方案
说现象前两天有客服消息说我的小程序无法进行正常功能的使用了,后来定位到问题了,在 update 的时候出现错误信息:data exceed max size。并且这个错误还开发工具上不出现,只有在手机上才出现。原因是 update 的字段内容太大了导致无法正常修改,那么我们要做的就是让参数变小。分析问题这个小程序是实现的是投票功能,有多层嵌套,之前的更新方案是直接修改 optionData 里面的所有内容。数据结构解释:optionData 是一个数组里面存储选项数据op
2021-11-28 21:47:07 1506
原创 云开发实战:小程序导出Ecxcl表格功能
需求作为信息收集者需要把用户填写的内容,用Ecxcl表格的方式导出。可以支持在线查看或者复制文件下载链接。查看 excle 表格可以直接在手机上查看表格 复制下载地址可以通过链接在电脑上下载实现以收集姓名信息为例:云函数代码// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()//操作excel用的类库const xlsx = require('node-xlsx');// 云函数入口函数exp
2021-11-28 21:43:26 1550
原创 开源推荐|小程序数字滚动动效组件
话不多说,上效果图使用方法组件介绍两种组件类型:animateNumber: 范围内的所有数字连贯滚动,显示效果佳,但仅限于上下500内,否则页面卡顿animateNumbers: 各个数位的数字单独滚动,0以上皆可// animateNumber 使用示例<animate-number value="{{value}}" min='{{-50}}' max='{{300}}' options='{{options}}'/>// 配置项如下option.
2021-11-27 17:39:33 1273 1
原创 四种方法解决微信小程序设置背景图片,哪种最好?
做了许久的小程序,现在选择用博客记录我遇到的问题以及问题的解决办法,也分享给大家一些自己的心得,记录如下:问题描述在微信小程序当我们使用本地图片作为背景图片的时候我们会参与以下问题。代码:.bg{ width: 750rpx; height: 540rpx; background-image: url(../../images/head_bg.png);}在页面使用这个样式的时候小程序会报错。解决方案小程序背景图片无法直接使用本地图片。有4种解决方案:使用
2021-11-27 17:01:26 9682
原创 Spring整合Quartz分布式调度
前言为了保证应用的高可用和高并发性,一般都会部署多个节点;对于定时任务,如果每个节点都执行自己的定时任务,一方面耗费了系统资源,另一方面有些任务多次执行,可能引发应用逻辑问题,所以需要一个分布式的调度系统,来协调每个节点执行定时任务。Spring整合QuartzQuartz是一个成熟的任务调度系统,Spring对Quartz做了兼容,方便开发,下面看看具体如何整合:1.Maven依赖文件<dependencies> <dependency>
2020-08-03 17:09:45 291
原创 深入理解线程间的通信方式
因为存在对共享变量的操作,才有了讨论线程的话题。在线程中存在这样一种场景,一个线程操作了共享变量的值而另一个线程感知了此次操作,然后进行相应的操作。整个过程开始于一个线程,结束与另一个线程。前者我们可以称作生产者,后者我们可以称作消费者,因为有了前者的活动才出发后者逻辑的发生,这种隔离模式在功能实现方面具备了良好的伸缩性。等待/通知的java方法是任何对象都具备的,因为这些方法被定义在java的超类java.lang.Object上下图展示了Object 类的所有方法:等待、通知机制就是,线程A调用了对
2020-08-02 21:54:00 221
原创 微服务必备的设计入门知识
在技术方面,微服务系统允许开发单个功能模块。这种开发单一功能模块的趋势为大型和小型组织提高了灵活性,性能和成本效率,同时实现了持续测试和早期交付。但是,在我们深入研究微服务设计的基础知识之前,让我们先看看它的优点。微服务架构的优点 对于单一体系结构,开发人员经常面临有限的可重用性和可伸缩性的挑战。但是,通过微服务设计,可以将这个单元分解为不同的模块,从而简化开发,部署和维护。那么让我们来看看微服务架构的一些主要优点:技术灵活性 虽然单片架构总是让开发人员寻找“适合工作的正确工具”,但微服务架构在一个.
2020-07-31 21:56:21 150
原创 依赖 ZooKeeper的Kafka
一、ZooKeeper 简介1.基本介绍ZooKeeper 的官网是:https://zookeeper.apache.org/。在官网上是这么介绍 ZooKeeper 的:ZooKeeper 是一项集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。当我们编写程序的时候,通常会将所有的配置信息保存在一个配置文件中,例如账号、密码等信息,后续直接修改配置文件就行了,那分布式场景下如何配置呢?如果说每台机器上都保存一个配置文件,这时候要一台台的去修改配置文件难免出错,而且要管理这些机器也会变
2020-07-30 15:55:00 255
原创 强大且易用的shiro安全框架
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。####1.SsS
2020-07-30 15:08:32 265
原创 java由数组和内存地址基础理解
一.数组的概念1.数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同语言的实现及处理也不尽相同。但凡写过一些程序的人都知道数组的价值及理解数组的重要性,与链表一道,数组成为了基本的数据结构。尽管Java提供了很棒的集合API和集合类如:ArrayList、HashMap,他们内部都是基于数组。如果你是来自于基于c或c++背景的程序员,那么你会发现一些关于数组的行为和如何在Java工作中的异同。最值得注意的是C中的数组与Java中的数组的边界检查,c编译器不检查如果程序访问无效的数组索引,而jav
2020-07-29 19:40:11 1200 1
原创 解析Redis网络模型的源码
Redis的网络模型是基于I/O多路复用程序来实现的。源码中包含四种多路复用函数库epoll、select、evport、kqueue。在程序编译时会根据系统自动选择这四种库其中之一。下面以epoll为例,来分析Redis的I/O模块的源码。epoll系统调用方法Redis网络事件处理模块的代码都是围绕epoll那三个系统方法来写的。先把这三个方法弄清楚,后面就不难了。epfd = epoll_create(1024);创建epoll实例参数:表示该 epoll 实例最多可监听的 socket f
2020-07-28 20:58:35 279
原创 提升你 Java 代码运行效率的5 个小细节
前言代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是1.减小代
2020-07-26 14:29:40 111
原创 面试官:Java中是否直接可以使用enum进行传输
背景我们在进行传输的时候 会有一些状态值,如Status为1代表删除,为0代表失败或者怎么样的。只传输一个)0或者1过去给第三方(此处不包括给前端),如果没有契约第三方会不认识你这个是什么意思,那我们在平时写业务逻辑的时候使用枚举很轻易就知道了什么状态什么值。所以我们在构建DTO对象的时候里面放一个枚举来表示。首先在阿里的规范里是这样说的:【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的 POJO 对象。那到底为啥不能用呢?枚举首先我们得先
2020-07-24 15:32:57 316
原创 多种可以反手“调戏”面试官的方案
**数组去重核心原理(1)一般我们都会创建临时变量tmp,存储不重复的元素(以数组元素存储或对象的键来存储);(2)遍历待去重数组arr,依次判断tmp中是否包含该元素;(3)若tmp中不存在该元素,则放入;否则跳过不处理。基本上无论什么样的实现,其核心皆是如此(判断是否已存在)。不行你就留言,咱们可以battle一下经典去重方案一:设置tmp为对象,对象的键存储数组元素的值,最终返回对象的所有键。function array_unique (arr) { if (arr.length
2020-07-22 22:06:21 138
原创 又被面试官问到了Spring Bean的生命周期
面试过程中被问到Bean的生命周期是很正常的,相信很多人都能答上来,但是放到spring框架里面,难度就提升了很多,今天就来讲一讲Spring框架中Bean的声明周期Spring 容器可管理 singleton 作用域 Bean 的生命周期,知道创建,初始化完成,销毁时间。prototype 作用域 Bean,Spring 只负责创建,实例就交给客户端代码管了解 Spring 生命周期意义:Bean指定时刻相关操作,Bean 被加载到 Spring 容器时,就有生命1)根据配置情况调用 Bean
2020-07-21 19:18:35 800
原创 MySQL 四种隔离级别,来复习一下吧
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。Read Committed(读取提交内容)这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了
2020-07-20 21:55:28 124
原创 Spring Boot系列中的死信队列
死信队列可以实现消息在未被正常消费的场景下,对这些消息进行其他处理,保证消息不会被丢弃。在说死信队列之前,我们先介绍下为什么需要用死信队列。如果想直接了解死信对接,直接跳入下文的"死信队列"部分即可。ack机制和requeue-rejected属性我们还是基于上篇《Spring Boot系列——7步集成RabbitMQ》的demo代码来说。在项目springboot-demo我们看到application.yaml文件部分配置内容如下listener: type: simple
2020-07-19 17:08:31 317
原创 一文带你学会利用mybatis-generator自动生成代码!
一、MyBatis Generator简介MyBatis Generator是MyBatis官方提供的代码生成器,可以生成xml、dao、entity。官网介绍见:http://mybatis.org/generator/二、使用方式MyBatis Generator的使用方式有4种:命令行生成Maven方式生成使用Ant任务生成使用Java代码生成本文将使用Intel IDEA+Maven方式生成代码,因为集成和使用比较简单,配置完成后直接双击运行即可。三、实战首先新建一个Sprin
2020-07-15 20:44:08 396
原创 来讲讲Java中String 类的知识点
本文来总结一下Stirng 的有关知识点1.String中的引用String 可以通过new和构造方法来创建一个对象,用s来引用它(也就是相当于把asdf这个字符串赋值给sString s = new String("asdf");那么什么是引用呢?打个比方:就好比是你的学号,那么对象就是你,那就需要你(对象)来找到的学号,那怎吗可以找到你的学号呢?就需要学号来引用你(对象),那么你就可以知道你的学号是什么了,这个比方就可以解释什么是引用了2.String(字符串)可以和数字相互转换[1] 字
2020-07-12 21:27:46 228
原创 Nginx 性能调优怎么做?
NGINX以高性能的负载均衡器,缓存,和web服务器闻名,驱动了全球超过 40% 最繁忙的网站。在大多数场景下,默认的 NGINX 和 Linux 设置可以很好的工作,但要达到最佳性能,有些时候必须做些调整。本文将讨论当调优系统时要考虑的一些NGINX和Linux设置有太多可以调优的设置,但本文只涵盖一小部分设置,这些设置对大多数使用者有优化的好处。本文不包括那些设置,那些需要必须深入理解 NGINX 和 Linux,或者需要 Nginx 支持团队或专业服务团队指导才能做的设置。专业服务团队已经和很多全球
2020-07-10 20:38:33 270
原创 字节跳动、腾讯后台开发分享面试经历、整理
近期有些朋友和我分享了一些面试字节跳动和腾讯的经历,抽空整理成博文与大家分享一下。1. 字节跳动头条技术面共三面,之后是HR面,面试形式是 视频。时间均控制在1个小时。1.1 第一面:第一面主要考察基础,先简单自我介绍,以及介绍一下项目,然后开始考察基础。1.1.1 TCP相关基础知识1.问题1: 请详细描述三次握手和四次挥手的过程要求熟悉三次握手和四次挥手的机制,要求画出状态图。2.问题2: 四次挥手中TIME_WAIT状态存在的目的是什么?这个问题是画出四次挥手状态图,会引申问你。不排
2020-07-09 22:06:56 572
原创 Java虚拟机执行引擎知识总结
大家好,这篇文章主要介绍了有关Java虚拟机执行引擎的知识,文中实例简单易懂,方便大家更好的学习,有兴趣的朋友可以了解下。执行引擎也只有几个概念, JVM方法调用和执行的基础数据结构是 栈帧, 是内存区域中 虚拟机栈中的栈元素, 每一个方法的执行就对应着一个栈帧在虚拟机栈中出栈入栈的过程.栈帧:则是包含有局部变量表, 操作数栈, 动态连接, 方法返回地址, 附加信息.1 局部变量表:存储单位是 slot, 一个slot占据32位, 对于64位的数据类型, 则是分配连续两个slot空间. 而对于一个
2020-07-08 15:40:32 95
原创 面试官:ZooKeeper典型应用场景有哪些?
**简单聊一下 zookeeper 都有哪些使用场景?**现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么他可能开始要跟你聊分布式相关的其它问题了。分布式锁这个东西,很常用的,你做 Java 系统开发,分布式系统,可能会有一些场景会用到。最常用的分布式锁就是基于 zookeeper 来实现的。其实说实话,问这个问题,一般就是看看你是否了解 zookeeper,因为 zookeeper 是分布式系统中很常见
2020-07-07 17:24:09 786
JVM与性能优化知识点的整理.docx
2020-06-10
1000道 互联网Java工程师面试题 485页_PDF密码解除.doc
2020-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人