`

Java中的静态方法、静态变量及静态常量

阅读更多

1、静态方法:

 

    1)静态方法代表一种不依靠实例变量也就不需要对象的行为。

    2)静态方法通过直接使用类名调用(最常用),非静态方法通过对象的引用变量来调用。

    3)可以通过对象的引用变量代替类名调用静态方法(容易造成误解,不常用)。

    4)带有静态方法的类通常(虽然不一定是这样)不打算被初始化。

    5)静态的方法不能调用(访问)非静态的变量。

    原因:因为非静态的变量(实例变量)是归属于某个实例(对象)的,所以尝试在静态方法中访问实例变量时,编译器会抱怨说:“我是属于类的,我可不知道你说的是哪个实例(对象)的变量!”。

    6)静态的方法不能调用非静态的方法(原因类似以上第4点)。

    7)静态方法中不能使用this关键字(因为this与特定实例相关)。

 

2、静态变量:

 

    1)静态变量的值对于同类的所有实例都是相同的,即同类的所有实例(对象)都共享同一份静态变量。

    2)静态变量:每个类一份;实例变量:每个实例一份。

    3)静态变量是在类被加载的时候初始化的。

    注:通常Java虚拟机会加载某个类是因为第一次有人尝试创建该类的实例或使用该类的静态方法或变量。

    4)静态变量会在该类的任何对象创建之前就完成初始化。

    5)静态变量会在该类的任何静态方法执行之前完成初始化。

 

3、静态常量

 

    1)静态常量:静态的final变量。

    2)静态常量的初始化(必须初始化)。

        a)在声明的时候:如public static final int PI=3.14。

        b)在静态初始化程序(静态代码块)中:如static{...}。

        注:静态初始化程序是一段在加载类时会执行的程序代码,他会在其他程序可以使用该类之前执行,所以很适合用来初始化静态的final变量,另外其中只能访问类的静态成员。

        c)静态常量的初始化和静态代码块的执行级别是一样的,所以根据他们在代码中的顺序执行。

 

4、非静态的final变量

 

    1)final变量可以修饰实例变量、局部变量及方法参数。

    2)关于不可变性的说明:

        a)修饰基本数据类型变量,则变量值不可改变。

        b)修饰对象引用类型变量,则该引用不能改变(指向其他对象),但指向的对象内容可以改变。

 

5、final方法:final修饰的方法表示你不能覆盖掉该方法。

 

6、final类:final修饰的类表示你不能继承该类,即创建它的子类。

 

分享到:
评论

相关推荐

    java学习java中的常量和静态变量

    java学习java中的常量和静态变量

    静态变量的导入以及集合的运用

    静态变量的导入以及集合的运用,以及综合实例。

    Java 静态方法/变量,非静态方法/变量的区别

    // 静态变量 public static int id = 1; // 普通变量 public int usualId = 2; // 静态常量 public static final int finalNextId = 3; // 静态方法 public static void A(){ // 静态方法只能访问静态字

    Test.java关于静态的分析

    //可以初始化静态常量 d[0]=1; d[0]=2; d[0]=3; d[0]=4; } //静态方法不能调用成员变量 什么时候必须用成员方法 ? 实例化 =初始化成员变量 //类中不需要记录状态的时候,都可以是静态...

    JAVA基础知识精华总结 收藏

    程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化...

    JVM常量池教程吐血整理干货.md

    字面量: 字面量分为文本字符串(如: "abc",1等)和用final修饰的成员变量(实例变量和静态变量) 符号引用: 符号引用包括三种:类的全限定名,方法名和描述符,字段名和描述符。 Class文件常量池 运行时常量池 运行时...

    java-内存-方法区介绍

    存放类的class字节码信息、静态与非静态方法、静态成员变量、常量、字符串常量池

    Java经典面试题.pdf

    在Java中,多态性通过方法重写和方法重载来实现。方法重写是指子类重新定义父类的方法,而方法重载是指在同一个类中定义多个同名但参数列表不同的方法。 3.什么是Java的静态关键字? 静态关键字用于修饰类的成员...

    【Java基础】Java8新特性—接口中使用default和static关键字

    接口中的变量默认类型是public static final,也是就是说是 公有静态常量 。 而方法默认是public abstract,公有抽象方法,但是事实真的是这样吗? 一.新特性 Java 1.8对接口有两个方面的增强:接口中可以添加使用...

    泰豪软件招聘笔试题(java)new201102

    抽象类中可以有成员变量,接口只能拥有常量(final类型)。 抽象类的方法在继承的时候只能呗继承一个,而接口在实现的过程中可以实现多个接口。 抽象类中可以有构造方法,接口中不能有构造。 抽象类中可以包含静态...

    java中常量以及常量池

    1、举例说明 变量 常量 字面...  静态常量池:*.class文件中的常量池,class文件中的常量池不仅仅包含字符串,数值字面量,还包含类、方法的信息,占用class文件绝大部分空间。  运行时常量池:是jvm虚拟机在完成类装

    Java怎么在函数内改变传入的值

    public class TestInt { public int aa(int i) { return i+4; } public static void main(String [] args) { int i=3;...而引用传递,是把变量的所在内存中的地址传递给参数,参数通过地址找

    java技术-让学员少走弯路

    全面解析java技术,让...讲解了Java中的构造、重载、this和super变量、静态变量、Java中的常量、继承、多态。 Java中包的概念,类的说明符、方法的说明符、对象的销毁(JVM垃圾回收器的演示),Java中接口理解与掌握。

    Java期末复习题

    1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和( )特征。 A. 颜色 B. 动态 C. 状态 D. 重量 3.Java语言的主要特点不包括( )。 A. 面向对象 B. 自动垃圾回收 C. 处理文件 D. 可移植性 4. ...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    在类体中定义的数据、变量和方法称为类的成员, 或称为实例变量和实例方法。 (7) 例如: 下例定义了一个 Point 类 ,并且声明了它的两个变量 x、y 坐标 ,同时实现 init()方法 对 x、y 赋初值 。 class Ponit { int...

    Java面试常问问题.doc

    1、面向对象的理解 面向对象是基于面向过程的。在开发过程中,要完成特定的功能就去找相应的对象,如果找不到就创建相应的...final:可以修饰类、方法和变量,被final修饰的类无法被继承,方法无法被复写,变量为常量只

    Java常量池理解与总结

     final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。  Class文件中的常量池  在Class文件结构中,头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再...

    Java重点知识总结

    数组:一维数组 ,静态方法(结合第3章静态变量)特点 方法参数传递(传值、传递引用的区别) , 方法重载(同名、参数形式不同) 字符串(常量、与字符常量的区别、连接运算、例2.18) 。。。。。。。 。。。。 第...

    java初学者必看

    10.1.7 接口中定义常量 10.1.8 Cloneable接口 10.1.9 Cloneable接口应用 10.1.10 抽象类与接口区别 10.2 内部类概念 10.3 成员内部类 10.3.1 创建内部类对象 10.3.2 内部类的this引用 10.3.3 成员内部类的...

Global site tag (gtag.js) - Google Analytics