staticjava
时间: 2024-12-29 15:27:49 浏览: 7
### 静态Java元素
#### 定义与特性
静态成员属于类本身而不是对象实例。这意味着无论创建多少个该类的对象,静态变量只会有一份副本存在内存中[^3]。
#### 使用场景
当希望某些数据或行为在整个应用程序生命周期内保持一致而不依赖于特定对象状态时可以考虑使用`static`关键字修饰字段、方法等组件。例如,在多线程环境中共享资源或者定义常量值是非常常见的做法之一。
```java
public class Example {
public static final String CONSTANT = "This is a constant";
}
```
对于静态方法而言,可以直接通过类名调用来执行而无需先实例化任何对象;但是需要注意的是这类函数内部不允许访问非静态属性因为它们并不隶属于任何一个具体的实体而是整个类别所共有的一部分[^4]。
#### HashMap中的应用案例
在给定的例子中展示了如何操作HashMap这一容器结构来存储键值对关系并对其进行基本查询和修改操作。这里提到的Map是一个接口类型其具体实现形式多样如LinkedHashMap, TreeMap等等。值得注意的是如果要让这些集合具备跨多个不同地方使用的特性就可以将其声明成静态从而使得所有关联到此类的地方都能够方便快捷地获取相同的数据集。
```java
import java.util.HashMap;
class StaticExample {
private static HashMap<String, Integer> fruitsCount;
static{
fruitsCount=new HashMap<>();
fruitsCount.put("apple",1);
fruitsCount.put("banana",2);
fruitsCount.put("orange",3);
fruitsCount.put("pear",4);
}
public static void main(String[] args){
System.out.println(fruitsCount.size());
for(var entry : fruitsCount.entrySet()){
System.out.printf("Key:%s ,Value:%d\n",entry.getKey(),entry.getValue());
}
boolean containsBanana=fruitsCount.containsKey("banana");
int orangeValue=fruitsCount.getOrDefault("orange",-1);
fruitsCount.remove("pear");
System.out.println(containsBanana?"true":"false");
System.out.println(orangeValue);
System.out.println(fruitsCount.toString());
}
}
```
阅读全文