static关键字详解
static是Java中用于修饰成员变量和方法的修饰符,被static修饰的成员属于类而非对象实例。类被加载时,static成员就会被分配内存空间,所有对象共享同一份static成员。
static变量通常用于存储被所有对象共享的数据:
class Counter {
static int count = 0; // 静态变量
Counter() {
count++;
}
}
static方法不能访问非静态成员,因为非静态成员属于对象实例:
class MathUtil {
static double PI = 3.1415926;
static double circleArea(double r) {
return PI * r * r;
}
}
static代码块在类加载时执行,常用于初始化静态资源:
class Database {
static Connection conn;
static {
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
this关键字深度解析
this代表当前对象的引用,主要用于解决局部变量与成员变量同名时的歧义问题。在构造方法中,this()可调用同类其他构造方法。
基础用法示例:
class Person {
String name;
void setName(String name) {
this.name = name; // 使用this区分成员变量和参数
}
}
构造方法链式调用:
class Rectangle {
int width, height;
Rectangle() {
this(1, 1); // 调用双参数构造器
}
Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
}
方法链式调用:
class StringBuilder {
private String value;
StringBuilder append(String str) {
this.value += str;
return this; // 返回当前对象实现链式调用
}
}
static与this的对比分析
内存分配方面,static成员随类加载而初始化,存储在方法区;this相关的实例成员随对象创建而
Java静态与实例关键字解析
503

被折叠的 条评论
为什么被折叠?



