初级工程师如何在职场生存

2020-11-09
阅读 2 分钟
1.2k
如果你是刚走上工作岗位的毕业生,或者是工作一两年但是不得其法的新人,是不是也有以下这些困惑:为啥我写的代码TL一直不满意?为啥加班很多,也很辛苦,但是最终的产出还是不够?如果你有类似的疑问,那么今天这篇文章就是为你准备的。

Spring Boot 2.x实战之定时任务调度

2019-12-22
阅读 5 分钟
2.8k
在后端开发中,有些场景是需要使用定时任务的,例如:定时同步一批数据、定时清理一些数据,在Spring Boot中提供了@Scheduled注解就提供了定时调度的功能,对于简单的、单机的调度方案是足够了的。这篇文章准备用实际案例看下@Scheduled的用法。

为什么Java进程使用的RAM比Heap Size大?

2019-09-21
阅读 3 分钟
1.6k
Java进程使用的虚拟内存确实比Java Heap要大很多。JVM包括很多子系统:垃圾收集器、类加载系统、JIT编译器等等,这些子系统各自都需要一定数量的RAM才能正常工作。

一起MySQL时间戳精度引发的血案

2019-09-07
阅读 3 分钟
4.9k
最近工作中遇到两例mysql时间戳相关的问题,一个是mysql-connector-java和msyql的精度不一致导致数据查不到;另一例是应用服务器时区错误导致数据查询不到。通过这篇文章,希望能够解答关于mysql中时间戳的几个问题:

谈谈我对SOFA模块化的理解

2019-09-01
阅读 3 分钟
6.1k
SOFABoot是蚂蚁金服开源的基于Spring Boot的研发框架,它在Spring Boot的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等能力。在增强了Spring Boot的同时,SOFABoot提供了让用户可以在Spring Boot中非常方便地使用SOFA中间件的能力。

JVM调优实战:G1中的to-space exhausted问题

2019-08-24
阅读 3 分钟
1.5k
最近刚刚将自己的一个应用从CMS升级到G1,在一天早上,刚刚到办公室坐下,就收到手机一阵报警,去查看了监控,发现机器的内存出现了一个90度的涨幅,如下图所示:

函数式编程让你忘记设计模式

2019-07-06
阅读 6 分钟
3.7k
有点标题党,但是这确实是我最近使用Lambda表达式的感受。设计模式是过去的一些好的经验和套路的总结,但是好的语言特性可以让开发者不去考虑这些设计模式。面向对象常见的设计模式有策略模式、模板方法、观察者模式、责任链模式以及工厂模式,使用Lambda表达式(函数式编程思维)有助于避免面向对象开发中的那些固定代...

vavr:让你像写Scala一样写Java

2019-06-29
阅读 6 分钟
10.1k
Hystrix是Netflix开源的限流、熔断降级组件,去年发现Hystrix已经不再更新了,而在github主页上将我引导到了另一个替代项目——resilience4j,这个项目是基于Java 8开发的,并且只使用了vavr库,也就是我们今天要介绍的主角。

RocketMQ学习-概览

2018-04-27
阅读 1 分钟
4.2k
持续学习、刻意练习、保持好奇心 快速开始 参考官网的文档Quick-Start,在我的Mac上部署rmq,并体验了发消息和收消息的功能。 RocketMQ的架构 参考官网文档RocketMQ Architecture。总结如下: 概览 基于RocketMQ的分布式系统,一般可以分为四个集群:Name server、broker、producer、consumer name server 提供轻量级的...

浅谈源码阅读

2018-04-27
阅读 1 分钟
2.4k
读研期间,为了掌握嵌入式开发,读了很多Linux的内核源码,摸索清楚了一个Linux系统从系统加电到控制台出现的流程。刚毕业转Java开发那会,为了掌握后端开发,读了很多Spring的源码,搞清楚了一个请求从到达后端服务器开始,到返回响应的流程、搞清楚了IoC和AOP的工作原理。

事件派发器模式

2016-11-07
阅读 4 分钟
5.3k
在项目开发中,会遇到如下情形:我们自己的服务订阅、接收来自消息队列或者客户端的事件和请求,基于不同的事件采取对应的行动,这种情况下适合应用派发器模式。

Spring实战5-基于Spring构建Web应用

2016-01-21
阅读 27 分钟
32.6k
写在前面:关于Java Web,首先推荐一篇文章——写给java web一年左右工作经验的人,这篇文章的作者用精练的话语勾勒除了各种Java框架的缘由和最基本的原理。我们在学习Spring的过程中也要切记,不仅要知道怎么做?还要深究背后的思考和权衡。