自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 如何实现定下的目标

前一篇《三步确定你的目标》中介绍了把目标拆解成若干个小项目来完成,但是很多时候,我们的目标看起来非常宏大,在计划过程中已经打退堂鼓了。再次,每次完成一个目标后,把这个目标再放大一些,让自己再去挑战。不断地把目标与自己所知道的极限进行比对,直到成为最优秀的一个。首先,把这个雄心勃勃的目标分解成一个个最简单的小项目,简单到以你目前的能力,加把劲就可以完成的。此阶段完成胜于完美。其次,在每次实施项目,遇到类似的部分的时候,做一些微小的改进来提高完成项目的成功率和效率。好的,今天我们就谈怎样实现这种目标。

2023-05-04 16:32:58 214 1

原创 三步确定你的目标

大家对树立正确的目标的重要性,但真的动手梳理时却无从下手。情况往往不是想不出东西,而是脑子的东西太多了,时间和精力明显无法应付这么多想法。就算最后勉强确定下来,也发现无从落地,这些目标就留到明年再考虑了。如果大家也遇到这种情况的话,我这有一个快速、简单的方法,可以帮助大家三步确定自己的目标。

2023-05-04 16:05:57 203

原创 技术人如何做好向上管理

向上管理是为了给公司、上级以及自己取得最好的结果而有意识地配合上级一起工作的过程,本质是通过沟通来影响上级的决策的行为。但很多时候被认为是一种政治行为,甚至拍马屁的小动作,被很多职场人士,特别是技术人员所不齿。很多时候,虽然自己不愿做向上管理,但随着角色的变化,升为主管后,却发现下属不懂主动沟通,经常导致事情失控,为此懊恼不已。是不是有那么一瞬间的双标呢?

2023-05-04 11:17:21 219

原创 一文讲清楚JDK、JRE和JVM的关系

当通过编译器把源代码(.java)编译成字节码文件(.class)后,加载到jvm后,jvm就会通过内置的解释器,把字节码翻译成对应操作系统的机器码,机器码才是操作系统能识别的语言指令。不同的操作系统,有不同的jvm。JVM是建立在具体的计算机操作系统之上的一个虚拟计算机,它屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(.class),就可以在多种平台上不加修改地运行。是官网为Java应用开发者提供的一个工具包,包括了运行环境,以及一些常用的工具。

2022-10-07 16:34:54 366

原创 掌握Dubbo:框架概况及基本工作流程

Duboo是一个出现比较早的分布式框架,比Spring cloud要早。它是由阿里巴巴研发出的一款开源的基于Java语言的RPC分布式服务框架,主要目的是为了提升系统性能、提供透明化的RPC远程服务调用方案,以及SOA服务治理方案。因其优秀的性能,被国内很多大厂封装成自己的分布式服务框架的内核,duboo在当中充当远程服务调用的核心模块。

2022-10-07 13:13:33 441

原创 掌握Dubbo:从认识SPI开始

Duboo作为一款高可扩展的RPC框架,其SPI机制在Java SPI的基础上进行了改造。本文作者主要为大家讲述SPI的原理,帮助大家加快duboo的学习速度和提升学习质量。

2022-10-06 15:21:54 223

原创 JVM内存模型及常见问题处理

我们在日常工作中,会遇到OOM或者SOF的问题,今天我们从JVM的模型入手,并对这两种问题进行详细解剖,帮助大家掌握解决问题的方法。

2022-07-18 10:15:38 263

原创 初探Netty:Netty原理、核心组件、数据容器以及运行机制

Netty的特点:1、对NIO进行封装,让开发者不需关注NIO底层的原理,调用netty组件即可完成开发工作。2、对网络的调用透明,socket建立TCP连接、网络异常处理等都进行了封装。3、对数据的处理灵活,支持多种序列化框架,并通过ChannelHandler机制,可以自定义编码/解码器4、对性能调优友好,提供线程池模式以及buffer重用机制。...

2022-07-18 08:48:08 422

原创 scrum发布模型、团队速率计算和不能如期交付的措施

scrum发布模型,整合了发布、冲刺、用户故事以及任务的关系。产品的发布时包含了若干个sprint。每个sprint包含若干个用户故事。每个用户故事包含若干个task。也许对于sprint、用户故事大家都比较熟悉,而task(任务)则相对比较陌生。我们估计例子:对于出行平台中,前台模块“搜索景点”这个用户故事,可以分为前端景点查询、后端逻辑处理等两个任务。具体拆解的粒度由系统的复杂性而定。...

2022-07-17 11:46:05 536

原创 MySQL 中一条查询 SQL 是执行流程

开发过程中经常使用mysql,比如进行记录查询。不过很多人不清楚类似,"select age from t_person where id=1" 是怎样执行的。下面为大家一起解剖这个问题。

2022-07-13 16:17:48 529

原创 Spring事务的传播机制

spring事务指封装在数据库事务之上的一种事务处理机制。其管理方法有两种,分别是编程式事务以及声明式事务。事务的传播,是指一个方法调用另一个方法并将事务传递给它。事务的转播机制主要针对被调用者而言,控制它是否被传播或者被怎样传播。......

2022-07-12 16:59:29 15589

原创 Spring:组成的七大模块

Spring 由七大模块组成,分别是Spring 核心容器(Spring Core)、应用上下文(Spring Context)、Spring面向切面编程(Spring AOP)、JDBC和DAO模块(Spring DAO)、对象实体映射(Spring ORM)、Web模块(Spring Web)以及MVC模块(SpringWebMVC)。 ...

2022-07-12 15:24:34 10386

原创 springcloud:网关组件zuul的功能介绍、运行机制

Spring Cloud集群中,用于内部通信的组件有服务管理组件Eureka、负载均衡组件Ribbon。不过如果是集群提供了Api或者WEB服务的话,就需要与外部进行通信。这时候需要一个代理层作为集群的大门,网关可以将集群的服务隐藏在后面,而对于外部客户端来说只需关心网关的配置,不许关系集群的内部结构。官方定义:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。即Zuul为微服务集群提供代理、过滤和路由等

2022-07-11 10:54:22 1196

原创 springcloud:集群保护框架Hystrix特性、工作原理以及整合流程

微服务集群中,服务端和客户端都支持集群部署。而庞大的集群中,部分服务出现问题不可避免,如何减少故障的影响以及确保集群高可用,是一个需要解决的问题。Hystrix就是Spring Cloud提供的一个集群保护框架。Hystrix 是一个延迟和容错库,旨在隔离远程系统、服务和第三方库的访问点,停止级联故障,并在故障不可避免的复杂分布式系统中实现弹性。Hystrix通过添加延迟阈值和容错逻辑,帮助控制分布式系统组建的交互。...

2022-07-09 21:27:16 397

原创 springcloud:REST客户端组件Feign的工作原理、整合流程

Feign是一种声明式、模板化的HTTP客户端,Spring Cloud将其整合到了Netflix项目下。其主要目的是为了简化web service客户端开发,在springcloud体系中负责调用集群服务,降低开发量,擅长于RPC的调用领域。Feign与eureka、ribbon集成后,就具备负载均衡的功能。其对自带注解和第三方注解都支持,另外提供编码器和解码器来帮助用户封装请求、解析响应。............

2022-07-08 21:28:18 463

原创 Spring Cloud:负载均衡组件Ribbon机制、子模块

负载均衡是分布式架构的重点,其机制对整个集群的性能和稳定起到决定作用。Ribbon是奈飞的一个负载均衡项目,可为集群中的客户端通信提供服务。Spring Cloud对Ribbon进行集成,与注册中心组件(例如Eureka)集合,则可以实现客户端的负载均衡。...

2022-07-04 23:08:31 479

原创 springboot:常见注解的使用细节(持续更新)

springboot的常见注解应用广泛,对其注解的作用以及属性的细节有深入的了解,对研发速率有很大的提升。

2022-07-04 10:50:16 142

原创 springcloud:注册中心组件Eureka的架构、使用、集群及常用配置

Eureka 是基于REST,用于服务管理,其客户端实现了负载均衡功能。Eureka维护服务的注册列表以及检查这些服务状态(通过心跳)。

2022-07-01 22:09:55 367

原创 Java基础:对象序列化详解

在我们平日开发中,经常让PO类去实现Serializable接口,然后让其可序列化。不过有时我们并不是特别清楚为什么要序列化,特别是对于纯Web项目开发的同学来说,需求环境不一定能用上。下面我简单和大家分享下自己对序列化的认知。......

2022-06-27 15:55:57 4163

原创 数据安全:通用的数据加密方法(AES、RSA、数字签名和数字证书)

在日常的接口交互中,数据的安全性是优先考虑的问题之一。那么一般我们在实际工作中如何去保证数据的安全呢?一般是通过数据加密的方式来处理。加密算法,如果按是否可以把密文还原成明文来划分的话,可以分为可逆加密和不可逆加密。......

2022-06-21 22:11:15 9027

原创 消息队列:MQ架构设计优化

消息队列,在复杂系统中应用广泛。虽然说加入mq后,系统的复杂度提高、系统可用性也变低而且可能引发数据出现一致性的问题,那么为什么还要用MQ呢?其实主要是其在特殊的场景下能解决我们很多问题。...

2022-06-17 00:40:10 2844

原创 Java多线程:CAS从原理到应用

CAS是Java多线程开发中一个基础概念,包括很多其他的中间件都会用到它。那么我们就从原理到应用,一起去揭开它的面纱。

2022-06-14 23:56:58 825

原创 Java多线程:JMM原理在软硬件层面的剖析

在Java并发知识体系中,JMM是一个非常重要的概念,掌握JMM可以让我们对多线程编程的理解更进一步。

2022-06-14 00:06:44 178

原创 扫盲贴:Java程序执行流程

使用java编程的朋友,通过IDE执行程序,或者把项目打包成war包或者jar包然后放到tomcat或者jetty上面执行。可能对从编译到解释执行的流程不是那么地了解。那么请读下这篇文章,帮助大家梳理整个java程序的执行流程。...

2022-06-09 12:31:33 2922

原创 Java多线程:在看源码之前,更建议掌握的知识

接触Java多线程编程多了后,大家也许会发现,无论是Thread的各种方法、JMM、JVM,还是各种同步、锁等高大上的概念,都是围绕着一个主题去开展的,那就是并发设计。并发设计则是在指定系统或者单元中,因资源有限出现资源冲突(如CPU、内存),为了解决这些问题让计算机的资源利用率更高、时间更节省而设计了针对性的解决方案,这过程叫并发设计。...

2022-06-07 23:50:04 107

原创 Java多线程:几种常见的线程创建方法在源码级别的比较

继承Thread类的方式,操作简单,但是因为其继承了Thread后,就限制了再继承其他类的可能性。实现Runnable的方式,操作较复杂,不过其只关注run方法,在不需要增强类其他方法的前提下,官方更推荐这种方式。实现Callable的方式,操作是三种中最复杂的,但是其提供异步返回结果,对于一些需要计算结果的场景来说是非常友好的。.........

2022-06-06 23:20:26 115

原创 回顾敏捷实践踩过的坑:如果重新做,我会这样做(一)

在自己工作中有过几次敏捷的实践,从懵懂不知何物,到步步踩坑,再到顺利实施完整的流程,当中的滋味只有自己最清楚。

2022-06-03 23:52:33 293

原创 Java多线程: fail-fast机制深入源码进行解析

fail-fast机制,在并发的情况下,对错误进行快速预测,减少问题影响时间。不过其为一种预测性的判断,并不是每次运行都能发生,因此掌握其机制原理,也要学会如何避免。

2022-06-02 22:57:32 236

原创 代理设计模式与Java动态代理

代理模式应用范围广泛,使用代理对目标对象进行保护,并可对调用方法进行改写。代理分为静态代理和动态代理,jdk动态代理和cglib代理是常见的代理方式,应用场景广泛。

2022-06-01 16:46:14 163

原创 Oracle 的执行计划初探

在开发过程中进行sql调优的时候,执行计划是个非常有用的方法。一、执行计划的什么执行计划是一条查询语句在 Oracle/数据库中的执行过程或访问路径的描述。我们一般使用它来判断SQL执行的效率。二、执行计划的执行方式oracle中执行的方式有两种,一种是预估,一种是真实执行。1、预估的方式,可以借用pl/sql developer工具来查看,数据是预估的。2、真实执行方式,则是通过完整执行后得到的数据,是精准的。三、使用建议一般情况下,我们在未明确表的数据量的情况下,

2022-05-31 11:50:56 189

原创 持续集成两个主流组合:svn+jenkins+docker和gitlab+jenkins+k8s

持续集成环境给自动化测试以及敏捷实施提供了很大的支持。而主流的持续集成方案有两种:1、svn+jenkins+dockersvn负责代码版本维护,而jenkins负责构建,而docker则负责镜像管理以及运行容器跑应用。2、gitlab+jenkins+k8s大致工作流程: 手动/自动构建-> Jenkins 调度 K8S API->动态生成 Jenkins Slave pod-> Slave pod 拉取 Git 代码/编译/打包镜像->推送.

2022-05-30 09:26:05 501

原创 敏捷项目管理-如何从0-1搭建敏捷团队

一、从哪里开始?敏捷是一种方法、工具,和其他方法或者工具一样,在其适用范围内可以返回显著的作用。那么有没有比较直观的判断标准来确定是否合适使用敏捷方法来进行项目管理呢?答案是有的!1、从做事的对象角度判断complex部分就是我们实施敏捷项目管理的适用范围。需求和技术都明确的简单问题,可用传统预测方法去处理即可,需求和技术都不明确的混沌问题,由研究院去探索。既不简单又不确定的复杂问题,可以考虑用敏捷方法!2、从做事的过程角度判断通过实验性的过程,快速迭代试错,...

2022-05-29 22:37:14 4223

原创 敏捷项目管理-如何破解敏捷实践中的三大难题

敏捷是一种实践,只有在落地才能取得真正的价值。而实践中每一步的进展都是通过解决问题而得到的。但是源源不断的问题,也会让敏捷团队内部产生危机。 以软件开发为例子,常见的内部危机,包括因与重要关系人沟通不畅导致发生矛盾、研发节奏出现问题,技术团队内部对方案的理解偏差较大、敏捷实施对研发团队成长促进慢等等导致成员对敏捷导入的怀疑等等。对于敏捷教练介入项目后,应先与成员进行沟通,收集到核心问题,然后按优先级等级进行逐个击破,用一句话说就是“先救命再治病,恢复常态后进行日常保健...

2022-05-28 16:42:18 1557

原创 敏捷项目管理-入门篇(一)

一、敏捷的定义数据化时代的不确定性越来越高,其特点为易变性、不确定性、复杂性以及VUCA。人们实践中逐渐发现了四个能力对冲VUCA的影响效果明显,其中敏捷力就是我们平常所说的敏捷。敏捷的比较正式的定义是:创造并响应变化,从而在动荡的商业环境中创造利润的能力。其得到组织的重视在于其可以在商业活动中创造利益。敏捷一般在项目中的实践主要方法之一是scrum,而scrum本质上也是由无数个pdca循环组合的。二、生态圈自然界的生态圈是指在生物自然环境下生存和发展的状态。而...

2022-05-27 12:47:10 908

原创 关于java中Integer缓存数组的分析

今天发现一个很有趣的事情,java中的Integer如果两个变量值大于127,就算值相等,但是比较其对象则不一致。一、现象分析1、当Integer值为处于[-128,127]时候,i1和i2,i5和i6这两组对象相同;2、当Integer值为处于上述取值范围外的时候,i3和i4,i7和i8这两组对象相同;3、在2的情况下,其对象的值是相等的(equals)。二、原因分析Integer是java原生类,我们可以查看其源码进行分析。1、Integer带有一个缓存存放对象,当数据处于[-128,1

2022-05-16 17:42:49 934

空空如也

空空如也

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

TA关注的人

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