案例介绍本案例主要介绍通过java代码从class文件中解析;class文件、常量池、属性表;环境准备jdk 1.8.0IntelliJ IDEA Community Edition 2018.3.1 x64配置信息调试配置配置位置:Run/Debug Configurations -> program arguments配置内容:-X jre “C
......
226
0
0
2023-11-04
默认情况下,当我们使用“.”时表达式中,我们将匹配输入 字符串 中的每个字符,直到遇到新行字符。 使用此标志,匹配也将包括行终止符。我们将通过以下示例更好地理解。这些例子将略有不同。由于我们感兴趣的是针对匹配的字符串进行断言,因此我们将使用matcher的group方法来返回之前的匹配。 首先,我们将看到默认行为: @Test
publ
......
234
0
0
2023-11-04
系统变的复杂,系统的层次划分越来越细,边界也越来越明确。 然后每一层之间一般都有自己要处理的领域对象,统称为 pojo 一般在model或者domain包下(类的后缀不能为pojo)。 常见的一些模型类型: PO、 DO :持久层对象,一般和数据库直接打交道。 DTO :数据传输对象,系统之间的交互,再服务层提供服务的时候输出到其它系统。 VO:视图对象
......
230
0
0
2023-11-04
Class类文件结构字节码解析 java 的 Class 文件是以8字节为基础的二进制流存储,数据项之间没有分割符,当遇到超过8字节的数据项时,按高位在前的顺序切分成多个8字节进行存储,每个位置代表的含义都有明确的规定,8字节对齐市为了提高内存寻址效率 从《虚拟机规范》中规定class文件中使用无符号数和表两种数据类型存储数据, jvm 解析字节码都是以
......
191
0
0
2023-11-04
在某些情况下,你可能需要在 Java 中实现你自己的数据或语言解析器,也许是这种数据格式或语言缺乏标准的Java或开源解析器可以使用。或者虽然有现成的解析器实现,但它们要么太慢,要么太占内存,要么就是没有符合你所需要的特性。又或者是某个开源的解析器存在缺陷,要么是某个开源解析器的项目中止了,原因不一而足。不过无论原因是什么,总之事实就是你必须要自己去实现这
......
254
0
0
2023-10-31
作为一名 Java 开发人员,我们从事不同的领域,从编写核心 Java 代码到创建 JSP 页面、编写 RESTAPI ,有时甚至创建 Groovy 脚本以实现构建自动化。这就是为什么我们还需要了解可以用来自动化测试的不同工具。 在本文中,我将与大家分享 10 种最好、最基本的工具、框架和库,它们可以帮助 Java 开发
......
262
0
0
2023-10-30
作者介绍 李辉 ,原新浪爱彩票 运维 负责人,常用网名:门牙没了。曾主导新浪爱彩票的 MySQL 运维工作。培训合伙人、资深讲师,中国科学院大学在读研究生(大数据方向),擅长大型项目的关系型数据库运维和管理,现在在数据库运维自动化方向研究。随着MySQL自身的发展与不断完善,不知不觉中整个互联网行业已离不开这个完善又小巧的关系型数据库,整个生态链也已经变得非
......
309
0
0
2023-10-30
正文 我认为,代码优化的最重要的作用应该是: 避免未知的错误。 在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言,最后一条其实影响是非常大的,这意味着这段时间用户无
......
278
0
0
2023-10-27
Sharding – JDBC 最早是 当当网 内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为 ShardingSphere ,2020年4⽉16日正式成为 Apache 软件基金会的顶级项目。ShardingSphere-Jdbc定位为轻量级Java框架,在 Java 的Jd
......
326
0
0
2023-10-26
本文大纲: 为什么需要流程控制 平时我们做一件事,一般都会有个 固定流程 。 比如你想吃苹果,你需要找到冰箱,打开冰箱门,取出苹果,回到沙发上,然后开吃。 这个顺序基本不能调换,你不能在打开冰箱门之前去取苹果。 按顺序来控制 ,这是一种流程。 那如果你想吃香蕉,你会发现流程类似,只是从冰箱里取出香蕉就好了。 在这个过程里,
......
260
0
0
2023-10-26
记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些 「JVM内存分配的原理分析」 以及 「常用的JVM问题排查手段和工具分享」 ,希望对大家有所帮助。在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。「本文的主要内容:」 故障描述和排
......
331
0
0
2023-10-25
正如我们在Java Streams:流创建中所学到的,流管道由源、零个或多个中间操作和一个终端操作组成。 我们还了解到,streams流是懒惰的;仅当终端操作启动时,才对源数据执行计算。 在本文中,我们将进一步探讨streams流操作。 streams流操作 流操作可以是中间操作,也可以是终端操作。中间操作产生另一个流。同样,终端操作
......
282
0
0
2023-10-25
synchronized 锁升级原理与过程深入剖析前言 在本篇文章当中我们将仔细介绍 JVM 对synchronized的各种优化的细节。 工具准备 在正式谈synchronized的原理之前我们先谈一下 自旋锁 ,因为在synchronized的优化当中 自旋锁 发挥了很大的作用。而需要了解 自旋锁
......
253
0
0
2023-10-25
一、前言 本文介绍Java多线程技术,分为四个部分: 多线程的两种实现方式——继承Thread类和实现Runnable接口; 线程同步应用:三人吃苹果; 线程同步+线程通信应用之一:生产者-消费者问题; 线程同步+线程通信应用之二:打蜡抛光问题。 二、初识多线程 上小学的时候,语文老师让我们用”一边…,一边…”造句,比如“小明一边吃饭,一边看电视”、“妈妈一
......
266
0
0
2023-10-24
一 Hbase 简介 HBase 是一个 高可靠性 、 高性能 、 面向列 、 可伸缩 的分布式存储系统,利用 HBase 技术可在廉价 PC Server 上搭建起大规模结构化存储集群。HBase 的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的
......
310
0
0
2023-10-24