Java 虚拟机运行时数据区域划分详解
Java 虚拟机(Java Virtual Machine,简称 JVM)是 Java 程序(字节码)的运行环境,其主要提供 Java 字节码执行(解释执行或者即时编译为本地机器码执行)、内存管理(内存分配和垃圾回收等)、多线程支持和安全控制等功能,是 Java 语言「一次编写,到处运行」口号得以实现的基石。
阅读更多Java 虚拟机(Java Virtual Machine,简称 JVM)是 Java 程序(字节码)的运行环境,其主要提供 Java 字节码执行(解释执行或者即时编译为本地机器码执行)、内存管理(内存分配和垃圾回收等)、多线程支持和安全控制等功能,是 Java 语言「一次编写,到处运行」口号得以实现的基石。
阅读更多1 题目描述 假设我们有一个记录用户登录的日志文件,该文件有多行记录,每一行记录包含用户 ID、登录日期(格式为:yyyy-MM-dd)和登录时间(格式为:HH:mm:ss)三个以空格分割的条目。记录并不是以时间先后排序的,而是乱序的(如:样例输入中的记录 1002 2023-02-06 12:10:01 在 1002 2023-02-05 11:10:01 之前)。请计算每个用户的最长连续登录天数,输出格式为:用户 ID: 最长连续登录天数(如:样例输出中的 1002: 5)。
阅读更多面向对象编程中有一条经典的设计原则:组合优于继承,即多用组合少用继承。什么是继承?什么是组合?为什么不推荐使用继承?组合有哪些优势?如何判断该用组合还是该用继承?本文将围绕这几个问题来分析组合优于继承的原因。 1 什么是继承?什么是组合? 继承(Inheritance)和组合(Composition)是面向对象编程(Object-Oriented Programming)中两种不同的代码复用机制。
阅读更多我们知道,Serenity BDD 和 Cucumber Java 是两个常用的、适用于 Java 语言的自动化测试框架。Serenity BDD 框架功能丰富、内置了对业界通用的软件测试设计模式(诸如:页面对象模型、Screenplay 模式等)的支持,而 Cucumber 框架的一大优势是可以使用类似自然语言的方式(Gherkin 语法)来编写测试场景。因此,将两者进行集成将拥有叠加的能力。
阅读更多前文「如何使用 Serenity BDD 进行 UI 测试?」介绍了使用 Serenity BDD 与 Selenium 进行 Web UI 测试的方法,但 Serenity BDD 不仅限于进行 UI 测试,还可以使用其进行 REST API 测试。本文即介绍使用 Serenity BDD 与 REST Assured 进行 API 测试的方法。
阅读更多Screenplay 模式是一个用于软件测试的设计模式,本文探索如何使用 Screenplay 模式编写 Web UI 测试用例。
本文首先会介绍 Screenplay 模式的基本概念;接着,以登录 GitHub 并在页面创建 Issue 为测试场景,来分析该场景中的操作者与行为分别对应 Screenplay 模式中的哪个部分;最后,针对该测试场景,使用 Serenity BDD 测试框架来编写满足 Screenplay 模式的测试用例,示例工程使用 Maven 管理。
阅读更多