Java学习笔记:属性赋值顺序与单例模式详解

需积分: 11 0 下载量 160 浏览量 更新于2024-08-27 收藏 70KB TXT 举报
"Java学习笔记.txt" 在这个Java学习笔记中,我们探讨了几个关键的主题: 1. **属性赋值顺序**: - Java中属性赋值遵循特定顺序:首先执行默认赋值(如果没有显式设定),然后是显示赋值(即直接在声明时赋值)或代码块赋值,接着是构造器赋值。最后,如果属性尚未被这些方式初始化,可以通过创建类的实例并调用方法赋值。然而,这种方式不推荐用于对象中方法内部,因为这可能导致不可预期的结果。 2. **final关键字的用法**: - final是一个关键字,用于强调某种不可更改性。它可以修饰类、方法和变量: - 类:final修饰的类表示该类不可被继承,如String、System和StringBuffer。 - 方法:final方法表示其不可被子类重写,例如Object类中的getClass()方法。 - 变量:final变量,即常量,一旦赋值后就不能改变。它可以在显示初始化、代码块初始化或构造器初始化时使用。 - 对于局部变量,final可以限制其在方法内部的可变性,如方法体内定义的final变量以及作为参数传递的final类型。 3. **单例模式示例**: - 学习了两种常见的单例模式实现方式: - **饿汉式**(在类加载时就创建实例): ```java class Bank { private Bank() {} private static Bank instance = new Bank(); public static Bank getInstance() { return instance; } } ``` - **懒汉式(线程不安全)**: ```java class Bank { private Bank() {} private static Bank instance = null; public static Bank getInstance() { if (instance == null) { instance = new Bank(); } return instance; } } ``` - 懒汉式需要注意线程安全问题,若在多线程环境中使用,可能会导致多个实例被创建。 这份笔记涵盖了Java中的基础语法、关键字final的用法以及单例模式的两种常见实现,这些都是Java开发者理解和掌握编程语言核心概念的重要部分。通过深入理解这些内容,可以帮助新手更好地构建和维护高质量的Java应用程序。