Java关键字-static汇总
1.静态变量(被static修饰的成员变量)
1-静态变量
- 运行时,Java虚拟机只为静态变量分配一次内存(加载类的过程中完成静态变量的内存分配)
- 类的内部可以在任何方法内直接访问静态变量
- 其他类中可通过类名访问该类中的静态变量 Class.staticVal
2-实例变量
- 每创建一个实例,Java虚拟机就会为实例变量分配一次内存
- 类的内部,可以在非静态方法中直接访问实例变量
- 类内部的静态方法或其他类中则需要通过类的实例对象进行访问。 class.val
3-静态变量在类中的作用
- 静态变量可被类的所有实例共享。(增加实例之间的交互性)
- 若所有类的实例均包含一个相同的常量属性,则可将其定义为静态变量而节省内存空间。(圆周率)
2.静态方法(被static修饰的方法)
静态方法与实例方法区别
- 静态方法不需要通过其所属的类的实例即可调用(Class.method()),因此静态方法中不能使用this与super关键字(其都与类的实例相关),也不可直接访问所属类的实例变量和实例方法。但可以访问所属类的静态变量和静态方法。
- 实例方法中可直接访问所属类的静态变量,静态方法,实例变量和实例方法。
3.静态代码块
用法:
静态代码块指Java类中的static{}代码块,主要用于初始化类,为类的静态变量赋予初始值(提升程序性能)
static {
a = 33;
message = "Hello World";
}
特点:
- 静态代码块类似于一个方法,但不可存在于任何方法体中。
- 静态代码块可置于类中任何地方,类中可以有多个静态代码块。
- JVM在加载类时执行静态代码块(将只执行一次的初始化操作置于静态代码块中)
- 若类中含多个静态代码块,则JVM按其出现次序依次执行且每个只被执行依次。
- 同静态方法一样不可直接访问类的实例变量和实例方法,需通过类的实例对象来访问。
注: 将static除去即为非静态代码块,其仅在创建对象时自动执行的代码。创建对象时先执行静态代码块再执行非静态代码块。
4.静态导入
导入方法
- 导入指定类的全部静态成员变量、方法
import static java.lang.Math.*;
- 导入指定类的单个静态成员变量、方法
import static java.lang.Math.fieldName|mathodName;
导入后使用静态成员变量或方法时不需使用Class.method(),可直接使用method()。
5.静态内部类(static修饰的内部类)
实例代码
public class Outer {
static class Inner {
// 静态内部类
}
}
特点:
- 创建静态内部类的实例时不需创建外部类的实例
Outter.Inner inner = new Outer.Inner();
- 静态内部类可以定义静态成员和实例成员。外部类以外其他类需通过完成类名访问静态内部类中静态成员
int b2 = Outer.Inner.b;
,访问实例成员需通过静态内部类的实例来访问。 - 静态内部类可以直接访问外部类的静态成员,需通过外部类的实例访问外部类的实例成员。
不积跬步,无以至千里.不积小流,无以成江海。
Java关键字-static汇总的更多相关文章
- java关键字static使用总结
java关键字static使用总结 1.static修饰的方法被称之为静态方法也叫做类方法,加static的方法,可以通过类名直接访问,不加static的方法只能通过对象名访问. 静态方法可以直接通过 ...
- java笔记——Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- Java关键字--static
在Java中,将关键字static分为三部分进行讨论,分别为Java静态变量.Java静态方法.Java静态类 Java Static Variables Java instance variable ...
- Java关键字static、final
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- [JAVA关键字] static & final
JAVA十分常见的关键字static & final 总的来说final表示常量,即不可更改的:而static表示静态,即全局的 1. final 类:不能被继承 2. final 方法:能被 ...
- Java 关键字 static
关键字static作用如下: 1. 为某个基本数据类型或对象分配单一的存储空间. 2. 实现某个属性或方法与类关联.在类被加载后类名可以直接调用静态成员方法(下面简称静态方法)或者访问静态成员变量(下 ...
- java 关键字static
在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. Java把内存分为栈内存和堆内存, 栈内存用来存放一些基本类型的变量.数组和对象的引用, 堆 ...
- java关键字“static”
Java中static使用方法 1.static静态变量 静态变量:每个类只有一个,所有实例共享: 实例变量:每个实例只有一个: package test2; import java.lang.Str ...
随机推荐
- [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码
[洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起 ...
- Jarvis OJ部分逆向
Jarvis OJ部分逆向题解 很久没有写博客了,前天上Jarvis OJ刷了几道逆向,保持了一下感觉.都是简单题目,写个writeup记录一下. easycrackme int __cdecl ma ...
- 【LeetCode】169. 多数元素
169. 多数元素 知识点:数组:排序:消消乐:分治: 题目描述 给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的, ...
- 更换Swing界面中的窗口图标
Swing 窗口图标更换 因为需要,所以要更改窗口的图标,很简单 在代码中加上 Image icon = Toolkit.getDefaultToolkit().getImage("图片地址 ...
- Spring的@PropertySource注解使用
@PropertySource注解是Spring用于加载配置文件,默认支持.properties与.xml两种配置文件.@PropertySource属性如下: name:默认为空,不指定Spring ...
- sqli-labs lesson 11-15
从这一关开始我们开始进入到post注入的世界了,什么是post呢?就是数据从客户端提交到服务器端,例如我们在登录过程中,输入用户名和密码,用户名和密码以表单的形式提交,提交到服务器后服务器再进行验证. ...
- E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to l ...
- NOIP 模拟 $29\; \rm 完全背包问题$
题解 \(by\;zj\varphi\) 一道 \(\rm dp\) 题. 现将所有种类从小到大排序,然后判断,若最小的已经大于了 \(\rm l\),那么直接就是一个裸的完全背包,因为选的总数量有限 ...
- NOIP 模拟 $11\;\rm math$
题解 签到题(然而还是不会) 考虑所有可能的值一定是 \(\in [0,k)\),且一定为 \(gcd(a_1,a_2,...a_n,k)\) 的倍数. 证明: 设 \(tmp=b_1a_1+b_2a ...
- 题解 [SDOI2010]所驼门王的宝藏
传送门 保分题再度爆零,自闭ing×2 tarjan没写vis数组,点权算的也有点问题 这题情况3的连边有点麻烦,考场上想了暴力想了二分就是没想到可以直接拿map水过去 不过map果然贼慢,所以这也是 ...