1.静态变量(被static修饰的成员变量)

1-静态变量

  1. 运行时,Java虚拟机只为静态变量分配一次内存(加载类的过程中完成静态变量的内存分配)
  2. 类的内部可以在任何方法内直接访问静态变量
  3. 其他类中可通过类名访问该类中的静态变量 Class.staticVal

2-实例变量

  1. 每创建一个实例,Java虚拟机就会为实例变量分配一次内存
  2. 类的内部,可以在非静态方法中直接访问实例变量
  3. 类内部的静态方法其他类中则需要通过类的实例对象进行访问。 class.val

3-静态变量在类中的作用

  1. 静态变量可被类的所有实例共享。(增加实例之间的交互性)
  2. 若所有类的实例均包含一个相同的常量属性,则可将其定义为静态变量而节省内存空间。(圆周率)

2.静态方法(被static修饰的方法)

静态方法与实例方法区别
  1. 静态方法不需要通过其所属的类的实例即可调用(Class.method()),因此静态方法中不能使用this与super关键字(其都与类的实例相关),也不可直接访问所属类的实例变量和实例方法。但可以访问所属类的静态变量和静态方法。
  2. 实例方法中可直接访问所属类的静态变量,静态方法,实例变量和实例方法。

3.静态代码块

用法:

静态代码块指Java类中的static{}代码块,主要用于初始化类,为类的静态变量赋予初始值(提升程序性能)

static {
a = 33;
message = "Hello World";
}
特点:
  1. 静态代码块类似于一个方法,但不可存在于任何方法体中。
  2. 静态代码块可置于类中任何地方,类中可以有多个静态代码块。
  3. JVM在加载类时执行静态代码块(将只执行一次的初始化操作置于静态代码块中)
  4. 若类中含多个静态代码块,则JVM按其出现次序依次执行且每个只被执行依次。
  5. 同静态方法一样不可直接访问类的实例变量和实例方法,需通过类的实例对象来访问。

注: 将static除去即为非静态代码块,其仅在创建对象时自动执行的代码。创建对象时先执行静态代码块再执行非静态代码块。

4.静态导入

导入方法
  1. 导入指定类的全部静态成员变量、方法

    import static java.lang.Math.*;
  2. 导入指定类的单个静态成员变量、方法

    import static java.lang.Math.fieldName|mathodName;

导入后使用静态成员变量或方法时不需使用Class.method(),可直接使用method()。

5.静态内部类(static修饰的内部类)

实例代码
public class Outer {
static class Inner {
// 静态内部类
}
}
特点:
  1. 创建静态内部类的实例时不需创建外部类的实例

    Outter.Inner inner = new Outer.Inner();
  2. 静态内部类可以定义静态成员和实例成员。外部类以外其他类需通过完成类名访问静态内部类中静态成员int b2 = Outer.Inner.b;,访问实例成员需通过静态内部类的实例来访问。
  3. 静态内部类可以直接访问外部类的静态成员,需通过外部类的实例访问外部类的实例成员。

不积跬步,无以至千里.不积小流,无以成江海。

Java关键字-static汇总的更多相关文章

  1. java关键字static使用总结

    java关键字static使用总结 1.static修饰的方法被称之为静态方法也叫做类方法,加static的方法,可以通过类名直接访问,不加static的方法只能通过对象名访问. 静态方法可以直接通过 ...

  2. java笔记——Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  3. Java关键字--static

    在Java中,将关键字static分为三部分进行讨论,分别为Java静态变量.Java静态方法.Java静态类 Java Static Variables Java instance variable ...

  4. Java关键字static、final

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  5. Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  6. [JAVA关键字] static & final

    JAVA十分常见的关键字static & final 总的来说final表示常量,即不可更改的:而static表示静态,即全局的 1. final 类:不能被继承 2. final 方法:能被 ...

  7. Java 关键字 static

    关键字static作用如下: 1. 为某个基本数据类型或对象分配单一的存储空间. 2. 实现某个属性或方法与类关联.在类被加载后类名可以直接调用静态成员方法(下面简称静态方法)或者访问静态成员变量(下 ...

  8. java 关键字static

    在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. Java把内存分为栈内存和堆内存, 栈内存用来存放一些基本类型的变量.数组和对象的引用, 堆 ...

  9. java关键字“static”

    Java中static使用方法 1.static静态变量 静态变量:每个类只有一个,所有实例共享: 实例变量:每个实例只有一个: package test2; import java.lang.Str ...

随机推荐

  1. 计算机网络part2——物理层

    物理层概述 1.物理层基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体. 主要任务:确定与传输媒体接口有关的一些特性 特性: 机械特性 电气特性 功能特性 规 ...

  2. 涨姿势啦!Java程序员装X必备词汇之对象标记Mark Word!

    大家好,我是庆哥Java,一个专注于干货分享的Java自学者! 写在前面 如果你已经知道什么是Mark Word,那我也希望你都好好阅读下本篇文章,因为你有可能发现不一样的切入点来帮助你更加深入的了解 ...

  3. 作为Java开发工程师,如何高效优雅地编写接口文档

    作为一名优秀的Java开发工程师,编写接口文档向来是一件很头疼的事情.本来就被bug纠缠的很累了,你还让我干这? 其实,你可以试试ApiPost. ApiPost的定位是Postman+Swagger ...

  4. 记一次WindowsServer2012提权 - 烂土豆

    此次主题:烂土豆 shell咋拿的 我也忘了 好像是添加友情链接那里还是啥 不重要了 直接获取shell后 先用systeminfo > 1.txt了一下 然后放到了 windows-explo ...

  5. POI解析excel,将批量数据写入文件或数据库

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  6. openssl常用命令行汇总

    openssl常用命令行汇总 随机数 openssl rand -out rand.dat -base64 32 摘要 直接做摘要 openssl dgst -sha1 -out dgst.dat p ...

  7. [开源]入坑Qt,我的第一个小程序:MD5计算器

    版权声明 --------- 本文仅在知乎与博客园发布.开发者为szx0427 MFC和Win32搞了好几年了,也算是懂了个皮毛,但是一直觉得用这两者开发软件都很麻烦,需要将大量的代码花费在UI等地方 ...

  8. Blazor 模板化组件开发指南

    翻译自 Waqas Anwar 2021年4月15日的文章 <A Developer's Guide To Blazor Templated Components> [1] 在我之前的一篇 ...

  9. PLSQL编程及存储过程的创建

    一.PLSQL的初步介绍 PLSQL是使sql具有处理过程的能力,可以分为三个部分:声明部分.可执行部分.异常处理部分 1.如何使用PLSQL打印Hello World! 在sqlplus里中打印   ...

  10. Redis分布式锁的原理和实现

    前言 我们之前聊过redis的,对基础不了解的可以移步查看一下: 几分钟搞定redis存储session共享--设计实现:https://www.cnblogs.com/xiongze520/p/10 ...