Java(12)静态字段与静态方法

Java44

之前我们都定义的 main方法都被标记了 static修饰符,那到底是什么意思?下面我们来看看

静态字段

如果将一个字段定义为 static,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。例如,假设需要给每一个员工赋予唯一的标识码。这里给 Employee类添加一个实例字段id和一个静态字段 nextId

class Employee {
    // 定义静态字段nextId
    private static int nextId = 1;
    private int id;
}

现在,每一个 Employee对象都有一个自己的id字段,但这个类的所有实例将共享一个 nextId字段。换句话说,如果有1000个 Employee类对象,则有1000个实例字段id,分别对应每一个对象。但是,只有一个静态字段 nextId。即使没有 Employee对象,静态字段 nextId也存在。它属与类,而不属于任何单个的对象。
下面实现一个简单的方法:

```
public void setId() {
id = nextId;

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

函数式编程-记忆化缓存

记忆化,是一种为了提高应用程序性能的FP技术。程序加速是通过缓存函数的结果实现的,避免了重复计算带来的额外开销。 1、现在我们使用Dictionary作为缓存结构 打印结果: 可以看出第三次打印的结果...
Java

我使用Spring AOP实现了用户操作日志功能

我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 第一个想法是在每种方...
Java

【一知半解】synchronied

synchronized是什么 synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性。 synch...
Java

Storm2

```java;gutter:true; package storm.scheduler; import java.util.ArrayList; import java.util.Collectio...
Java

spring数据验证

通常,我们不建议在服务器端进行基本数据验证,因为这存在一个主要问题:它增加了服务器上的负载,如果并发性越强,这一点就越明显。[En]In general, we do not recommend ba...
Java

SQL

1.between匹配 包含min和max值 count(*) 计算时会包括null值,而count(column)则会忽略null值。 检验是否含有null值需要使用is null。 3.使用聚集函...
Java

Java基础常见知识&面试题总结(下)

Java基础常见知识&面试题总结(下) 1.面向对象基础 1.1面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 解决问题的过程通过面向过程的方法分为方法,问题通过方法的逐个实...
Java

Storm4

``` 1 package storm.scheduler; 2 3 import java.lang.management.ManagementFactory; 4 import java.lang...
Java

ucore操作系统学习(三) ucore lab3虚拟内存管理分析

1. ucore lab3介绍 虚拟内存介绍 在当前的硬件体系结构中,程序必须加载到物理主存中才能在计算机上运行。在支持多程序运行的系统上,我们希望包括操作系统内核在内的各种程序能够并发执行,而物理主...
Java

函数式数据结构-列表

在开始之前我们先了解几个名词: 1、什么是函数式编程:函数式编程属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用,可以说是面向过程的程序设计。 2、函数式编程的优势: 1)函...
Java

线程池面试必考

你对Java线程池了解吗?你有用过线程池吗?那先说下线程池核心参数吧。。。对不起,我回去再看看吧。 为了得体,今天让我们来整理一下面试线索池中的几个面试问题。[En]In order to be de...