Java基础01

今天是2025/03/09 14:36 day 01

总路线请移步主页Java大纲相关文章

今天进行Java基础前三个模块的归纳

首先是Java基础的相关内容概括的思维导图

Java基础01_第1张图片


三个模块均非常重要,需系统学习

Java基础 前三大模块

一、基础语法

1.1 数据类型

  • 基本类型

    • 整数:byte(1字节)/short(2)/int(4)/long(8) → long num = 100L

    • 浮点:float(4)/double(8) → float f = 3.14f

    • 布尔:boolean (true/false)

    • 字符:char (2字节 Unicode)

    • 默认值陷阱:局部变量必须显式初始化,成员变量有默认值(如int为0)

  • 引用类型

    • 对象引用:存储对象内存地址

    • 数组特性:int[] arr = new int[3]; arr.length属性

1.2 变量

  • 三类变量对比

    类型 声明位置 生命周期 初始化要求
    局部变量 方法内部 方法执行期间 必须显式初始化
    成员变量 类内部方法外 对象存在期间 自动赋默认值
    静态变量 类内部static修饰 类加载期间 自动赋默认值
  • 常量定义

    final double PI = 3.1415926;  // 必须初始化且不可修改
    

1.3 运算符

  • 特殊运算符

    • 三目运算符:int max = (a > b) ? a : b;

    • instanceof:判断对象类型 obj instanceof String

    • 逻辑短路:&&||遇到false/true即终止运算

  • 运算符优先级(常见)

    1. 括号()

    2. 单目++ -- !

    3. 算术* / %+ -

    4. 比较> < >= <=

    5. 相等== !=

    6. 逻辑&&||

1.4 流程控制

  • switch增强(JDK12+)

    String day = "MON";
    switch (day) {
        case "MON", "TUE" -> System.out.println("工作日");
        case "SAT", "SUN" -> System.out.println("周末");
        default -> System.out.println("无效");
    }
  • 循环控制

    • 增强for循环:for(int num : arr) { ... }

    • 标签跳转:outer: while(...) { break outer; }

二、面向对象

2.1 四大特性

class Person {
    private String name;
    // getter/setter方法
    public String getName() { return name; }
    public void setName(String name) { if(name != null) this.name = name; }
}
  • 继承注意

    • 构造方法链:子类构造器必须调用父类构造器(默认super())

    • 方法覆盖规则:子类方法访问权限 >= 父类方法

  • 多态本质

    Animal a = new Dog();  // 编译时类型Animal,运行时类型Dog
    a.eat();  // 实际调用Dog类重写的eat方法

2.2 类与对象

  • 构造方法特性

    • 默认提供无参构造(若未显式定义)

    • 重载构造方法:通过this()调用本类其他构造

  • static关键作用

    class Counter {
        static int count = 0;  // 类级别共享
        Counter() { count++; }
    }
  • 包管理

    • 包命名规范:公司域名倒写(com.baidu.xxx)

    • 访问控制:默认包级私有(无修饰符时)

三、核心类库

3.1 Object类

  • equals重写规范

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MyClass obj = (MyClass) o;
        return 字段逐个比较;
    }
  • hashCode约定

    • 相等对象必须有相同hashCode

    • 不同对象可能产生相同hashCode(哈希碰撞)

3.2 字符串处理

  • 不可变原理

    String s1 = "abc";
    String s2 = s1.concat("def");  // 创建新对象"abcdef"
  • 性能对比

    操作类型 String StringBuilder StringBuffer
    修改操作 新建对象 原地修改 原地修改
    线程安全
    10万次拼接耗时 2000ms 5ms 8ms

3.3 包装类

  • 自动装箱陷阱

    Integer a = 127;  
    Integer b = 127;
    System.out.println(a == b); // true(缓存范围内)
    ​
    Integer c = 128;
    Integer d = 128;
    System.out.println(c == d); // false(超出缓存)

3.4 时间处理

  • 新旧API对比

    • 旧API:Date线程不安全、Calendar复杂

    • 新API(java.time):

      • LocalDate:日期

      • LocalTime:时间

      • LocalDateTime:日期+时间

      LocalDateTime now = LocalDateTime.now();
      LocalDateTime nextWeek = now.plusWeeks(1);
      
  • 时间格式化

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String str = now.format(formatter);
    
 
  


 


 

你可能感兴趣的:(java,开发语言)