编程语言:Java
几种Java常用序列化框架的选型与对比
通用性、易用性、可扩展性、性能和Java数据类型及语法支持。
Java Map中那些巧妙的设计
最近拜读了一些Java Map的相关源码,不得不惊叹于JDK开发者们的鬼斧神工。他山之石可以攻玉,这些巧妙的设计思想非常有借鉴价值,可谓是最佳实践。然而,大多数有关Java Map原理的科普类文章都是专注于“点”,并没有连成“线”,甚至形成“网状结构”。因此,本文基于个人理解,对所阅读的部分源码进行了分类与总结,归纳出Map中的几个核心特性,包括:自动扩容、初始化与懒加载、哈希计算、位运算与并发,并结合源码进行深入讲解,希望看完本文的你也能从中获取到些许收获(本文默认采用JDK1.8中的HashMap)。
如何吃透一个Java项目?(附学习实践)
应该怎样才能掌握一个项目所有的知识点?
带你深入理解Java内存模型理论
Java并发是一个很大的主题,包含很多方面的知识。本文从内存模型的角度分析,从概念理论上尽量精确理解Java内存模型,及其对并发的影响。
Java单元测试技巧之PowerMock
编写Java单元测试用例,其实就是把“复杂的问题要简单化”——即把一段复杂的代码拆解成一系列简单的单元测试用例;写好Java单元测试用例,其实就是把“简单的问题要深入化”——即学习一套方法、总结一套模式并应用到实践中。这里,作者根据日常的工作经验,总结了一些Java单元测试技巧,以供大家交流和学习。
Java异步非阻塞编程的几种方式
8种方式简介。
Java类加载器 — classloader 的原理及应用
想搞清楚loadClass的机制,应先知道什么?
jOOQ Internals: Pushing up SQL fragments – Java, SQL and jOOQ.
How does jOOQ's implicit join work?
Java AQS 核心数据结构-CLH 锁
本篇文章从自旋锁出发,详细介绍了 CLH 锁及 AQS 对 CLH 的改造。
Java 多线程上下文传递在复杂场景下的实践
本文描述了vivo海外商城在发展过程中为了适应多个国家的商城系统开发 ,如何把识别出来的国家信息在系统中传递下去,并且解决多线程,定时任务等多种场景下的问题。
谈谈Java Instrumentation和相关应用
对于Java 程序员来说,Java Instrumentation、Java agent这些技术可能平时接触的很少,听上去陌生但又好像在哪里见到过。实际上,我们日常应用的各种工具中,有很多都是基于他们实现的,例如常见的热部署(JRebel, spring-loaded)、各种线上诊断工具(btrace, Greys)、代码覆盖率工具(JaCoCo)等等。
java脚本引擎的设计原理浅析
QLExpress是一个脚本引擎工具,类似Groovy,JRuby等,是为了解决当时电商规则动态编译、表达式高精度计算、复杂布尔运算、自定义函数和操作符号、语法树生成等需求而设计的。
如何实现Java类隔离加载?
Java 开发中,如果不同的 jar 包依赖了某些通用 jar 包的版本不一样,运行时就会因为加载的类跟预期不符合导致报错。如何避免这种情况呢?本文通过分析 jar 包产生冲突的原因及类隔离的实现原理,分享两种实现自定义类加载器的方法。
Java 黑科技——Serviceability Agent
基于 SA 获取 JVM 中的方法调用数据,实现零侵入业务系统获取可下线代码。Java SA 是如何做到的呢?其实现原理让我产生了浓厚的兴趣,探索的过程中发现网上的资料极少,也无详细官方文档,只能通过啃源码才能了解一二,过程中个人收获颇丰,谨以此文记录整个探索过程,希望对其他想了解 Java SA 的同学提供些帮助,同时通过对 SA 的使用,向大家介绍一个深入了解 JVM 内部运行时数据及内部实现机制的利器。
抖音 Android 性能优化系列:Java 内存优化篇
内存作为计算机程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。抖音作为一款用户使用广泛的产品,需要在各种机器资源上保持优秀的流畅性和稳定性,内存优化是必须要重视的环节。
Improving Code Quality for Java Projects
We’ve all seen the above image being mentioned in the context of code quality. But what do we mean when we say that a particular piece of…