话题编程语言 › Java

编程语言:Java

如何通过变异测试助力Java项目单测覆盖率提升

通常在软件测试过程中,我们会关注测试用例的代码覆盖率。理想情况下,测试用例应该能够覆盖所有业务代码的函数、方法和模块,从而实现100%的代码覆盖率。然而,达到理想目标并不意味着测试用例已经健全。接下来,笔者将向您介绍一种称为“变异测试”的方法,它可以帮助我们实现目标覆盖率并补充测试用例。

Java 类型擦除与泛型信息恢复

Java的泛型在运行时会进行类型擦除,这意味着在JVM中无法知道泛型的具体类型。因此无法直接使用泛型创建对象和数组,也无法对泛型进行实例判断。不过,Java编译器仍会保留泛型信息,以便解决数据对象的反序列化问题。在涉及泛型赋值处,Java编译器会插入checkcast指令,保证类型安全。如果指令失败(返回类型与目标类型不匹配),JVM会抛出ClassCastException异常。这是为了保证泛型体系与非泛型体系的兼容性。例如,将泛型的List赋值给裸类型的List,可能会导致类型转换异常。

解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路

为了提升查询性能和解决查询毛刺问题,滴滴ES原地升级JDK17和ZGC,在过程中我们遇到了哪些问题,怎样解决的,以及最终上线效果如何,这篇文章就带大家深入了解。

Java的AQS源码浅析

本文主要介绍了AQS的部分实现机制,并通过ReentrantLock的实现简单讲解了AQS的源代码。

了解Java可见性的本质

前一段时间重温了伪共享(false sharing)问题,了解到深处有几个问题一直想不明白,加上开发过程中遇到volatile时总觉得理解不够透彻,借着这次脑子里这几个问题,探究下Java可见性的本质到底是什么。

去哪儿一站式 Java 应用诊断解决方案 - Bistoury

对bistoury的底层实现和核心功能进行了介绍和分析。

如何高效优雅的使用java枚举

本文通过几种样例展示如何高效优雅的使用java枚举消除冗余代码。

从0到1搭建自己的脚手架(java后端)

脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构。它是一种标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。

从Java BIO到NIO再到多路复用,看这篇就够了

‍本文从基础概率到引出业界通用c10k问题,然后通过代码演示从BIO,到NIO再到多路复用的演进历程。​​

亚毫秒GC暂停到底有多香?JDK17+ZGC初体验

在本篇文章中,我们探讨了如何升级到JDK 17,并使用最新一代垃圾回收器ZGC。经过实践和测试,我们发现升级后的系统在垃圾回收方面表现出色,暂停时间被有效控制在1毫秒内。

Java中volatile关键字原理深度剖析

由于近两月一直赶项目,中间还夹带一些技改等工作,没什么空闲时间修炼技术。想起很早之前看了不少有关volatile的文章,里面提及过一个单例模式下对该对象进行修饰的必要性问题,刚好在组内一次技术分享中提到了volatile关键字并详细阐述了此问题。借此为契机,顺便对CPU多级缓存架构设计、MESI协议、JMM内存模型等技术进行梳理,这篇文章会把volatile的底层实现分析透彻。

Java中如何获得A<T>泛型中T的运行时类型及原理探究

本文从Java的泛型开始,研究反射针对泛型的扩展,类型擦除的影响。然后通过生成匿名类实例的小技巧,获得了泛型的运行时类型的技巧。

图解JVM内存模型及JAVA程序运行原理

本文主要介绍了JVM内存模型及JAVA程序运行原理。​

Android本地搜索优化

在本文中,我们将通过Android本地搜索业务介绍如何使用JavaScriptCore、JNI相关技术来实现效率提升。

Java编译期注解处理器AbstractProcessor

本文围绕编译器注解都是如何运行的呢? 又是怎么自动生成代码的呢?做出了详细介绍。

一些杂想:Java老矣,尚能饭否?

本文就Java真的老了吗展开讲述,诠释了作者作为一名Java开发者的所思所感。

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.145.0. UTC+08:00, 2025-08-24 15:43
浙ICP备14020137号-1 $访客地图$