并发编程-不变性模式

Java不变性模式

不变性模式通过创建不可变对象来避免并发问题。不可变对象一旦创建就不能修改,天然线程安全。

不可变对象的特征

  • **状态不可变:**对象创建后状态不能改变
  • **所有字段都是final:**确保字段不能被重新赋值
  • **没有setter方法:**不提供修改状态的方法
  • **类是final的:**防止子类破坏不变性

举例说明

并发编程-单例模式

Java单例模式

单例模式是最常用的设计模式之一,但在多线程环境下,传统的单例实现可能存在线程安全问题。我们需要掌握各种线程安全的单例实现方式。

懒汉式单例

线程不安全的懒汉式

端口号只有65536个,能够用吗?

端口号只有65536个,能够用吗?

在计算机网络中,端口号的范围是 0 到 65535,共 65536 个端口。这一限制核心原因是 TCP/IP 协议的设计规范,可以从以下几个维度详细解释:

一、端口号的数量限制:源于 16 位无符号整数

TCP(传输控制协议)和 UDP(用户数据报协议)是互联网中最核心的传输层协议,它们的头部格式中,端口号字段被定义为 16 位(2 字节)。也就是取值范围为 $0 \sim2^{16}-1$,即0~65535

Java_generics

什么是泛型

先看Java标准库中的ArrayList ,这是一个“可变长”数组。内部通过Object[]数组实现

public class ArrayList {
    private Object[] array;
    private int size;
    public void add(Object e) {...}
    public void remove(int index) {...}
    public Object get(int index) {...}
}

在很久很久以前(泛型之前)如果用ArrayList存储String类型,需要强制转型

Java面向对象基础

Java面向对象基础

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式。通过把现实中的事物抽象成程序中的对象(Object)来处理逻辑。Java是一门纯面向对象的编程语言。

C指针越界

指针越界

在 C 语言中,指针越界是指针指向了其合法访问范围之外的内存地址,这种行为会导致未定义行为(Undefined Behavior, UB),是 C 语言中最常见也最危险的错误之一。 示例代码如下