static修饰符

本文深入解析Java中static关键字的用途及限制,强调static用于修饰类成员而非实例成员,阐述其与成员变量、方法、初始化块和内部类的关系,并提供常见错误示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念
static并非静态的意思,static是类的意思,有static的成员是类成员,没有static的成员属于实例成员——static是用来修饰成员的!

static可修饰的成员包括:成员变量、方法、(不包括构造器,构造器是用来初始化对象的,new)、初始化块、内部类。(五大成员中的四个)

类变量和实例变量可以统称为成员变量**
成员变量是在类范围内定义的变量,局部变量是在一个方法内定义的变量)

C里面的static int age = 20;是静态,是能够修饰局部变量的

但是Java里面的static不可以修饰局部变量,不是静态!static是修饰成员的! 因为Java脱胎于C,所以保留了static,但是用法不同,swift里面直接用class了。

局部变量不属于成员,因此不可以用static修饰

static不能修饰外部类,因为外部类不属于成员。

(Java当年设计的这个static其实是错误的,但是现在很难改正了)

【小知识】class前面只能出现三个修饰符:public final | abstract class Xxx{ }
final与abstract互斥,二者只能出现一个,单独出现或者与public一起出现。

【建议】所有的类成员,都只能用类名调用!
如果遇到用对象来调用类成员的情形(虽然允许这样),建议先把对象改成类,这样更科学。

【常见考点】
static成员不能访问非static成员,非static成员能访问static成员。
成员:成员变量、方法、初始化块、内部类

eg1:成员变量

public class  面试题1
{
	int b = 20;
    static int age = b; 
}

在这里插入图片描述
调换位置就正确了!

eg2: 方法

public class  面试题1
{
	public int test()
	{
		return 2;
	}
	static int age = test();
}

在这里插入图片描述

eg3: 内部类

public class  面试题1
{
	class A
	{
	}
	static A a = new A();
}

没有static才对!

eg4: 静态方法,使用了非静态的内部类

public class  面试题1
{
	class A
	{
	}
	public static void main(String[] args)
	{
	//静态方法,使用了非静态的内部类
		A a = new A();
	}
}

eg5:初始化块

public class  面试题1
{
	int age;
	static 
		{
			age = 20;
		}
}

在这里插入图片描述

Docker 是一个开源的容器化平台,它可以让你更方便地创建、部署和运行应用程序。本文将为您提供 Docker 的基础知识,以及如何在您的计算机上安装和使用 Docker。 1. Docker 的基础概念 Docker 是一个容器化平台,它可以让您更轻松地创建、部署和运行应用程序。容器是一个轻量级的运行环境,它可以在任何操作系统上运行,而无需额外的配置。 Docker 的主要组成部分包括 Docker 镜像、Docker 容器Docker 仓库。 - Docker 镜像:一个 Docker 镜像是一个可执行的软件包,它包含了应用程序的所有代码、运行时环境、库和依赖项。您可以将 Docker 镜像看作是一个打包好的应用程序。 - Docker 容器:一个 Docker 容器是一个可运行的实例,它是由 Docker 镜像创建而来的。每个容器都是独立的运行环境,它可以运行在任何 Docker 主机上。多个 Docker 容器可以运行在同一个主机上,并且它们之间是隔离的。 - Docker 仓库:Docker 仓库是一个存储 Docker 镜像的地方。您可以将 Docker 镜像上传到 Docker 仓库中,也可以从 Docker 仓库中下载 Docker 镜像。 2. Docker安装 在开始使用 Docker 之前,您需要在您的计算机上安装 DockerDocker 可以在不同的操作系统上运行,包括 Linux、Windows 和 macOS。 - Linux:对于 Linux 用户,您可以根据您的发行版选择适当的 Docker 安装方式。例如,在 Ubuntu 上,您可以使用以下命令安装 Docker: ``` $ sudo apt-get update $ sudo apt-get install docker-ce ``` - Windows 和 macOS:对于 Windows 和 macOS 用户,您可以使用 Docker Desktop 进行安装Docker Desktop 是一个带有图形界面的应用程序,可以让您更轻松地管理 Docker。 3. Docker 的使用 一旦您成功地安装Docker,您就可以开始使用它来创建、部署和运行应用程序了。 - 创建 Docker 镜像:您可以使用 Dockerfile 文件来创建 Docker 镜像。Dockerfile 是一个文本文件,其中包含了创建 Docker 镜像所需的所有指令。例如,以下是一个简单的 Dockerfile 文件: ``` FROM ubuntu:latest RUN apt-get update && apt-get install -y nginx CMD ["nginx", "-g", "daemon off;"] ``` 这个 Dockerfile 文件指定了一个基于最新版 Ubuntu 镜像的 Docker 镜像,然后安装了 Nginx 服务器。最后,CMD 指令指定了 Nginx 服务器的启动命令。 - 构建 Docker 镜像:一旦您编写了 Dockerfile 文件,您就可以使用 docker build 命令来构建 Docker 镜像。例如,以下是一个简单的构建命令: ``` $ docker build -t my-nginx . ``` 这个命令将使用当前目录下的 Dockerfile 文件来创建一个名为 my-nginx 的 Docker 镜像。 - 运行 Docker 容器:一旦您有了 Docker 镜像,您就可以使用 docker run 命令来运行 Docker 容器。例如,以下是一个简单的运行命令: ``` $ docker run -d -p 80:80 my-nginx ``` 这个命令将在后台运行一个名为 my-nginx 的 Docker 容器,并将容器的 80 端口映射到主机的 80 端口上。 - 将 Docker 镜像推送到 Docker 仓库:一旦您创建了 Docker 镜像,您可以使用 docker push 命令将其推送到 Docker 仓库中。例如,以下是一个简单的推送命令: ``` $ docker push my-nginx ``` 这个命令将名为 my-nginx 的 Docker 镜像推送到 Docker 仓库中。 这些都是 Docker 的基础知识和用法。如果您想深入了解 Docker,您可以访问 Docker 官方网站,其中包含了更详细的文档和教程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值