Mobabel Blog

[转]深入解析Java锁机制 0

[转]深入解析Java锁机制

1. 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:

[汇总]其他程序员的思考 0

[汇总]其他程序员的思考

1. 技术 入行 14 年,我还是觉得编程很难:给大项目写代码没意思还危险 写代码很简单,但写好代码很难 编程的精髓是“创造” 打造高效试错的环境至关重要: 理想的编程体验≈“刷题” 避开代码完美主义陷阱 技术很重要,但“人”也许更重要:在软件开发领域,“单一职责原则”(全称为 Single responsibility principle,后简称为 SRP)是一条非常著名的设计原则。它的定义很简单,一句话就可以概括:“每个软件模块应该只有一个被修改的理由。理解 SRP 原则的关键,在于先理解人以及人在软件开发中所扮演的角色。如果缺少了特定的组织规模(也就是“人”)作为前提,空谈微服务的各种技术优势和那些花活,纯属本末倒置。 求知若渴是好事,但也要注意方法。 越早开始写单元测试越好。 程序员最大的敌人是什么?软件生来就是准备被修改的(不然你猜,软件为什么叫“软”件?)。产品经理以及不稳定的需求不是程序员的敌人。复杂度是最大的敌人 。 来看看那些导致项目复杂度不断增长的要素: 不断增加的新功能:更多的功能等于更多的代码,更多的代码通常意味着更高的复杂度 对高可用的需求:为了实现高可用,消息队列等额外的技术组件和代码被引入 对高性能的需求:为了提升性能,缓存和相关模块代码被引入,部分模块被拆分后,换成高性能语言重写 一再被推迟的重构:因项目排期过于紧张,迫在眉睫的重构被一再推迟,技术债越积越多 忽视自动化测试:没人写单元测试,也没人关心测试 减缓复杂度增长的过程   虽然复杂度总是会不可避免地持续增长,但有许多实践可以减缓该过程。如果每个人都能做到以下这些事,复杂度就有可能被长期控制在合理范围内: 精通当前编程语言与工具,写整洁的代码 使用合适的设计模式和编程模式 对重复代码零容忍,抽象库和框架 适当运用整洁架构、领域驱动设计思想 编写详尽的文档和注释编写规范有效的单元测试...

[汇总]Java调优经验 0

[汇总]Java调优经验

Java 性能优化:教你提高代码运行的效率 spring boot 引起的 “堆外内存泄漏” 组内一个项目最近一直报swap区域使用过高异常 没错,老板让我写个 BUG! 主要就是要让一些负载很低的服务器额外消耗一些内存、CPU 等资源(至于背景就不多说了),让它的负载可以提高一些 一次生产 CPU 100% 排查优化实践 你的接口,真的能承受高并发吗? 事务的滥用和锁的粒度 一次 Java 内存泄漏排查过程,涨姿势 Java内存溢出与内存泄漏 你以为JDK8之后用HashMap就没事了?死循环问题依然存在! 让 Spring Boot 启动更快一点 System.currentTimeMillis()竟然存在性能问题 一次简单的 HTTP 调用,为什么时延这么大?抓个包分析下 NullPointerException 的处理新方式,Java14 真的太香了!  ...

[转]滴滴Elasticsearch多集群架构实践 0

[转]滴滴Elasticsearch多集群架构实践

Elasticsearch 是基于 Lucene 实现的分布式搜索引擎,提供了海量数据实时检索和分析能力。Elastic 公司开源的一系列产品组成的 Elastic Stack,可以为日志服务、搜索引擎、系统监控等提供简单、易用的解决方案。

[转]用less查看日志文件 0

[转]用less查看日志文件

一般程序部署在Linux环境,查看日志时,一般用less满足大部分的需求。 列举、记录最常用的场景,代码以Tomcat日志文件catalna.out为例。

[总结]Linux 下 ls 命令的高级用法 0

[总结]Linux 下 ls 命令的高级用法

在Linux下,ls这个命令大家肯定太熟悉了,笔者相信只要是Linux工程师,每天都会离不开这个命令,而且一天会使用个几百次。但是,除了ls -l以外,你还知ls的哪些高级用法呢?笔者今天为大家介绍ls命令的高级用法。

[转]网易云–如何成为一名合格的云架构师? 0

[转]网易云–如何成为一名合格的云架构师?

云架构师负责管理一个组织中的云计算架构,特别是随着云技术日益复杂化。云计算架构涵盖了与云计算相关的一切,包括管理云存储所需的前端平台、服务器、存储、交付和网络。 本文作者从如下几个方面全面剖析云架构师的进阶攻略: 架构的三个维度和六个层面 了解云计算的历史演进与基本原理 开源软件是进阶的利器 了解 Linux 基础知识 了解数据中心和网络基础知识 基于 KVM 了解计算虚拟化 基于 Openvswitch 了解网络虚拟化 基于 OpenStack 了解云平台 基于 Mesos 和 Kubernetes 了解容器平台 基于 Hadoop 和 Spark 了解大数据平台 基于 Lucene 和 ElasticSearch 了解搜索引擎 基于...

0

[转]一文简单理解“推荐系统”原理及架构

本文主要介绍什么是推荐系统,为什么需要推荐系统,如何实现推荐系统的方案,包括实现推荐系统的一些常见模型,希望给读者提供学习实践参考。 1. 为什么需要推荐系统 对于信息消费者,需要从大量信息中找到自己感兴趣的信息,而在信息过载时代,用户难以从大量信息中获取自己感兴趣、或者对自己有价值的信息。