Real 焜

Stay Simple. Stay NexT.

写这些文章的初衷是什么?

中文世界的Java教材亦或者视频教程使用的JDK版本大多比较滞后,且带有传统编程思维的局限性(从面向过程到面向对象的转变)。内容编排和知识体系也比较陈旧,无法和英文世界的Java知识体系接轨。因此我决定梳理自己的Java知识体系,分享给大家。Java语言的内容翻译自 dev.java,内容非常棒。

主要针对哪些问题?

  1. 碎片化的Java知识体系
  2. 过时的Java编程思维
阅读全文 »

装箱(Boxing) 和 拆箱(Unboxing)

Autoboxing 是指Java编译器在基本类型与其对应的对象包装类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,等等。如果转换方向相反,则称为Unboxing

以下是最简单的自动装箱示例:

Character ch = 'a';

本节其余示例均使用泛型。若您尚未熟悉泛型的语法,请参阅泛型章节。

阅读全文 »

StringBuilder 类

字符串对象类似于StringBuilder对象,区别在于它们可以被修改。在内部,这些对象被视为包含字符序列的可变长度数组。在任何时候,都可以通过方法调用改变序列的长度和内容。
除非String Builder能带来更简洁的代码(参见本节末尾的示例程序)或更优的性能,否则应始终使用字符串。在Java SE 9之前,若需连接大量字符串,向StringBuilder对象追加内容可能更高效。Java SE 9中已优化字符串连接操作,使其效率超越StringBuilder的追加方式。

阅读全文 »

创建字符串

字符串在Java编程中广泛使用,它是一系列字符的序列。在Java编程语言中,字符串是对象。
Java平台提供了 String 类来创建和操作字符串。
创建字符串最直接的方式是这样:

String greeting = "Hello, World!";

在此情况下,“Hello world!”是一个字符串字面量——即代码中用双引号括起来的一系列字符。编译器在代码中遇到字符串字面量时,会创建一个与其值相同的String对象——本例中即为Hello world!
与其他对象一样,你可以使用 new 关键字和构造函数创建 String 对象。String 类提供了十三个构造函数,允许你通过不同来源(如字符数组)为字符串提供初始值:

char[] helloArray = { 'H', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
IO.println(helloString);
阅读全文 »

字符

大多数情况下,若使用单字符值,则采用 char 类型。例如:

char ch = 'a';
// Unicode for uppercase Greek omega character
char uniChar = '\u03A9';
// an array of chars
char[] charAarray = {'a', 'b', 'c', 'd', 'e'};

然而,有时你需要将字符作为对象使用——例如作为方法参数时,该参数要求传入对象。Java编程语言为此提供了一个包装类,它将字符”包装”成Character对象。Character类型的对象包含一个字段,其类型为字符。该Character类还提供了一系列有用的类方法(即静态方法)来操作字符。

阅读全文 »

数值

本节首先讨论 java.lang 包中的 Number 类及其子类,并说明在哪些情况下应使用这些类的实例化而非基本数值类型。

本节还介绍了 PrintStreamDecimalFormat 类,它们提供了用于写入格式化数值输出的方法。

阅读全文 »

Java语言提供了多种创建不可变类的方法。最直接的方式可能是创建一个包含final字段和构造函数的final类,用于初始化这些字段。以下是一个此类类的示例。

public class Point {
    private final int x;
    private final int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}
阅读全文 »

在嵌套类、局部类、匿名类和Lambda表达式之间进行选择

如嵌套类章节所述,嵌套类可将仅在单一位置使用的类进行逻辑分组,增强封装性,并创建更易读易维护的代码。局部类、匿名类和lambda表达式同样具备这些优势,但它们适用于更特定的场景:嵌套类、局部类、匿名类与lambda表达式的选择:

阅读全文 »

Enums 是什么?

枚举是所有实例均被编译器所知的类。它们用于创建仅能取少数可能值的类型。
枚举的创建方式与类类似,但需使用枚举关键字(enum)替代类关键字(class)。枚举主体中包含一组称为枚举常量的实例列表,各常量以逗号分隔。除枚举常量之外,无法创建枚举的其他实例。

public enum DayOfWeek {
    // enum constants are listed here:
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

所有枚举类型都隐式继承自 java.lang.Enum,且不能有任何子类。

阅读全文 »

Java 编程语言允许你在另一个类内部定义类。此类称为嵌套类,示例如下:

class OuterClass {
    ...
    class NestedClass {
        ...
    }
}

术语:嵌套类分为两类:非静态类和静态类。非静态嵌套类称为内部类。声明为静态的嵌套类称为静态嵌套类。

阅读全文 »