Java面向对象基础学习笔记

📅 发布时间:2026/8/3 8:37:44
Java面向对象基础学习笔记 前言最近复习Java面向对象核心内容整理了单例模式、final关键字、try-catch-finally执行机制三份代码案例记录踩坑点与考试高频考点适合入门复盘。一、单例模式饿汉式 双重校验锁懒汉式核心思想单例整个项目中该类只能创建唯一的一个对象实现关键私有构造方法 private User(){} 禁止外部使用 new User() 创建实例。public class User { // 饿汉模式类加载时直接创建实例天然线程安全 private static User user new User(); // 懒汉模式实例引用初始为空 private static User king null; private String name; // 私有构造阻断外部 new 对象 private User() {} // 懒汉模式【双重校验锁】延迟创建多线程安全 public static User getKing() { if (king null) { synchronized (User.class) { if(king null){ king new User(); } } } return king; } // 饿汉模式获取实例 public static User getUser() { return user; } public String getName() { return name; } public void setName(String name) { if (name ! null name.length() 0) { this.name name; } } public void showName() { System.out.println(name); } } class Main { static void main() { User user User.getUser(); user.setName(hello); String name user.getName(); // 注意String是不可变类型下面代码无法修改对象内部name name world~; user.showName(); user null; } }知识点总结饿汉式类加载直接初始化写法简单、线程安全缺点是类加载就占用内存。懒汉双重校验锁使用对象时才创建节省内存 synchronized 保证多线程并发安全。易错坑 String name user.getName(); name“world”;只是修改局部变量引用不会修改对象内部成员变量。私有化构造方法后外部无法直接 new User() 。二、final 关键字详解public class Student { // static final静态常量属于类全局唯一必须声明直接赋值 static final int id1 100; // final 实例常量属于对象必须在【构造方法】初始化赋值后不可修改 final int id; public Student(int id) { this.id id; } public void test(){ try { System.out.println(try); System.out.println(try); System.out.println(try); return; }catch (Exception e){ e.printStackTrace(); return; }finally { System.out.println(hello ); } } } class Test { static void main() { for (int i 0; i 100; i) { Student s new Student(i); s.test(); } } }final 三种用法final 修饰变量static final 静态常量声明直接赋值全类共享。final 成员变量实例常量只能构造方法赋值赋值后不能修改。局部final变量一次赋值不可二次修改。final 修饰方法方法不能被子类重写。final 修饰类类不能被继承。三、try-catch-finally 执行机制【高频考点】重点结论try / catch 中写 return finally 代码依旧一定会执行执行顺序演示trytrytryhello执行流程执行try内打印语句遇到 return 不会立刻退出跳转执行 finally 完整代码finally执行完毕方法真正return退出。唯一例外 System.exit(0); 直接终止JVMfinally不会执行。