话题编程语言 › Java

编程语言:Java

一种关于Java的hook技术-JavaAgent初识

Java是一种当前广泛使用的编程语言,它可以用于开发各种类型的应用程序,包括桌面应用程序。Java的跨平台性和易于学习的特点使得它成为开发桌面应用程序的理想选择,然而软件都有出现漏洞的可能性,一旦出现漏洞利用,影响广泛,例如前些年著名的apache log4j2漏洞。

在预研一种对用户侧Java程序进行监控和防护的方式过程中,遇到的问题是Java编译的代码是字节码,在jvm中运行,不是可以执行的CPU指令,无法以常规windows hook方式对程序进行注入和拦截。最终经过探讨,以asm+ JavaAgent方式来实现,后续本文将针对JavaAgent技术进行说明。

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

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

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

讨论起 Java 泛型,书籍博客经常会提到类型擦除(Type Erasure),其实潜藏着 2 层意思:

  • 类型擦除其实是一个运行时概念,指的是对于 JVM 而言,泛型参数被擦除了。
  • 对于 Java 语言来说,泛型信息其实得到了很大程度保留,否则便无法解决数据对象的反序列化问题。

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

本文来带大家一起从0到1搭建属于自己的脚手架项目。

Java的AQS源码浅析

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

了解Java可见性的本质

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

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

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

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

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

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

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

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

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

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-2024 iteam. Current version is 2.123.1. UTC+08:00, 2024-03-29 21:40
浙ICP备14020137号-1 $访客地图$