Java基础知识点总结:数据类型、方法重载重写、访问控制、静态关键字、字符串类与集合框架

Java基础知识点总结:数据类型、方法重载重写、访问控制、静态关键字、字符串类与集合框架


1、数据类型

1.1 基本数据类型

整数类型
  • byte:1字节(8位),范围:-128 ~ 127
  • short:2字节(16位),范围:-32768 ~ 32767
  • int:4字节(32位),默认整数类型
  • long:8字节(64位),声明时需加L后缀(如long num = 100L;
浮点类型
  • float:4字节(32位),单精度,声明需加F后缀(如float num = 3.14F;
  • double:8字节(64位),双精度,默认浮点类型
字符与布尔类型
  • char:2字节(16位),存储Unicode字符(如char c = 'A';
  • boolean:仅truefalse,JVM实现通常占1位

1.2 引用数据类型

  • 类(Class):自定义类型(如String、自定义对象)
  • 接口(Interface):定义方法规范
  • 数组(Array):固定长度的同类型集合(如int[] arr = new int[5];

2、访问控制修饰符

修饰符 访问范围 典型用途
private 仅当前类内部可见 封装属性、隐藏实现细节
default 同一包内可见 包内共享的工具方法或属性
protected 同一包内或不同包的子类可见(需通过继承) 子类继承或扩展父类功能
public 全局可见 对外暴露的API方法或常量

3、static关键字的四大应用场景

3.1 静态变量

  • 特点:类级别共享,所有实例共用同一内存
  • 示例static int count = 0;

3.2 静态方法

  • 特点:无需实例即可调用(如Math.random()),不可访问非静态成员
  • 示例public static void print() { ... }

3.3 静态代码块

  • 执行时机:类加载时执行一次
  • 用途:初始化静态资源
static {
    // 初始化静态变量
}

3.4 静态内部类

  • 特点:不依赖外部类实例,可独立存在
  • 示例
class Outer {
    static class Inner { ... }
}

4、字符串三兄弟对比

类型 可变性 线程安全 性能特点 适用场景
String 频繁操作产生大量新对象 不频繁修改的字符串
StringBuilder 单线程下高效(非同步) 单线程字符串拼接
StringBuffer 多线程安全(同步锁) 多线程环境下的字符串操作

5、集合框架核心解析

5.1 List接口(有序、可重复、索引访问)

实现类 数据结构 线程安全 性能特点
ArrayList 动态数组 查询快(O(1)),增删慢
LinkedList 双向链表 增删快(O(1)),查询慢
Vector 动态数组 ✅(同步) 线程安全但性能较低

5.2 Set接口(无序、唯一)

实现类 数据结构 排序规则 允许null
HashSet 哈希表 无顺序
LinkedHashSet 链表+哈希表 插入顺序
TreeSet 红黑树 自然/比较器排序

5.3 Map接口(键值对)

实现类 数据结构 线程安全 键特性
HashMap 数组+链表/红黑树 允许一个null键
LinkedHashMap 链表+哈希表 保留插入/访问顺序
TreeMap 红黑树 键按自然/比较器排序
Hashtable 哈希表 ✅(同步) 不允许null键/值

6、重载(Overload)与重写(Override)对比

特性 重载 重写
作用域 同一类中 父子类之间
参数列表 必须不同(类型/数量/顺序) 必须完全相同
返回类型 可自由变化 必须相同或为子类(协变返回)
访问权限 无限制 子类方法不能更严格
异常声明 无限制 子类不能声明更宽泛的异常

7、Switch穿透现象

  • 原理case分支未写break时,会继续执行后续分支代码
  • 示例
switch (num) {
    case 1: 
        System.out.println("1");
        // 无break,穿透到case2
    case 2: 
        System.out.println("2");
        break;
}
// 输入1时输出:"1" "2"

也是到了必须赶紧补博客的时候了deepseek好好用啊把我写的丑丑的word变得清晰多了

你可能感兴趣的:(java,笔记)