之前我们都定义的 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;
相关文章
函数式编程-记忆化缓存
记忆化,是一种为了提高应用程序性能的FP技术。程序加速是通过缓存函数的结果实现的,避免了重复计算带来的额外开销。 1、现在我们使用Dictionary作为缓存结构 打印结果: 可以看出第三次打印的结果...
我使用Spring AOP实现了用户操作日志功能
我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 第一个想法是在每种方...
【一知半解】synchronied
synchronized是什么 synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性。 synch...
spring数据验证
通常,我们不建议在服务器端进行基本数据验证,因为这存在一个主要问题:它增加了服务器上的负载,如果并发性越强,这一点就越明显。[En]In general, we do not recommend ba...
Java基础常见知识&面试题总结(下)
Java基础常见知识&面试题总结(下) 1.面向对象基础 1.1面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 解决问题的过程通过面向过程的方法分为方法,问题通过方法的逐个实...
多线程那点事—Parallel.for
先看段代码: 1 for (int i = 0; i < 10; i++) 2 { 3 Task.Factory.StartNew(()=>Console.WriteLine($"...
构建一个基于事件分发驱动的EventLoop线程模型
在之前的文章中我们详细介绍过Netty中的NioEventLoop,NioEventLoop从本质上讲是一个事件循环执行器,每个NioEventLoop都会绑定一个对应的线程通过一个 for(;;)循...
安装各类软件时弹出windows installer的无法访问您试图使用的功能所在的CD-ROM或者移动硬盘提示的问题的解决
首先声明一下:这个问题太**坑爹了,网上的那些各类方法,什么修改注册表了,修改组策略了,都不管用,说一下具体要怎么解决。 1.问题附图,我已经解决了,从网上找的一个一样的图,就是下面这个图,还有网上七...
ucore操作系统学习(三) ucore lab3虚拟内存管理分析
1. ucore lab3介绍 虚拟内存介绍 在当前的硬件体系结构中,程序必须加载到物理主存中才能在计算机上运行。在支持多程序运行的系统上,我们希望包括操作系统内核在内的各种程序能够并发执行,而物理主...
函数式数据结构-列表
在开始之前我们先了解几个名词: 1、什么是函数式编程:函数式编程属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用,可以说是面向过程的程序设计。 2、函数式编程的优势: 1)函...
Typora + PicGo + SM.MS实现图片自动上传
Typora + PicGo + SM.MS实现图片自动上传 1.SM.MS PicGo插件设置 打开PigGo的 插件设&#...