Java

Java 10 主要引入了哪些新特性?

本文重点回顾 Java 10 引入的那些主要特性。 (Java 10 主要新特性脑图) 1 局部变量类型推断 局部变量类型推断是 Java 10 引入的一个重要特性。这个特性使得开发者在声明局部变量时可以使用关键字 var 来代替显式地指定变量类型,而局部变量的类型会由编译器自行推断。

阅读更多

Java 9 主要引入了哪些新特性?

本文重点回顾 Java 9 引入的那些新特性。 (Java 9 主要新特性脑图) 1 模块系统 Java 9 引入的一个最主要的特性就是模块系统(全称为 Java 平台模块系统,Java Platform Module System)。根据官方的定义,模块是一个命名的、自描述的代码和数据的集合。模块系统会在编译时和运行时之间新加一个可选的链接时,在该阶段可以将一组模块组装为一个自定义的运行时镜像。

阅读更多

Java 8 主要引入了哪些新特性?

我们知道 Java 8 是 Java 发布历史上一个里程碑式的版本,哪怕现在 Java 的最新版本已发展到 22,但仍有相当一部分企业在使用 Java 8,可以说 Java 8 是后续 Java 新版本得以快速迭代的基石。本文即重点回顾 Java 8 引入的那些主要特性。

阅读更多

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)中两种不同的代码复用机制。

阅读更多