static、final总结

一、static总结:

1.static定义:①static被称为静态,可以用来修饰类的属性或者方法。

②如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰,被static修饰的属性被称为静态属性。

③static属性可以使用对象调用,也可以直接用类名调用。

④静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。

2.static属性

public class Employee {

private String name ;---------非静态属性

private double salary; ---------非静态属性

private static int count;---------静态属性

3.static方法:①定义:如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰,被static修饰的方法称为静态方法。

②作用:static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用。

③何时使用static方法:如果某个方法与实例无关,也就是说不管哪个对象调用这个方法,都执行相同的操作,与对象没有关系,则应该定义为静态方法。不需要创建对象后再使用该方法。

④任何方法都可以直接调用静态方法;静态方法不能直接调用非静态方法,需要创建对象,用对象名调用非静态方法。

4.static块:①static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

②静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行。

③如果一个类加载的时候,总要预先做一些事情,则可以放在静态块中,例如,读取一个属性文件,进行一些常规配置,写一些日志等。

④一个类中可以有多个静态块,按照顺序执行。

二、final总结:

1.static定义:用于声明属性,方法和类。

①属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。

②方法:定义必须有实现代码,并且子类里不可被覆盖。

③类:不能被定义为抽象类或是接口,不可被继承。

2.final修饰属性:当final修饰属性时,基本数据类型的属性将成为常量,不能被修改。一些数学定理中的常量经常使用final修饰。

比如,π= 3.14159265358979,E= 2.718281828459045。

3.final属性的赋值:①在声明时同时赋值,往往与static一起使用。

②声明时不赋值,必须在构造方法中逐一赋值。

③总的原则:保证创建每一个对象的时候,final属性的值是确定的。

4.final修饰参数:在方法参数前面加final关键字,为了防止数据在方法体中被修改。

时间: 2024-10-15 20:27:09

static、final总结的相关文章

static final常量

package oo.day06;//static final常量public class StaticFinalDemo { public static void main(String[] args) { //Aoo.NUM = 250; //编译错误,常量不能修改 //System.out.println(Aoo.NUM); //1.方法区中加载Boo.class //2.将NUM1存储在方法区中 //3.去方法区中获取NUM1的值并输出 System.out.println(Boo.NU

Java-小技巧-003-static、final、static final的区别

final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变,jvm会将其分配到常量池中,程序不可改变其值: final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值. final修饰的属性表明是一个常数(创建后不能被修改). final修饰的方法表示该方法在子类中不能被重写,final修饰的类表示该类不能被继承. 对于基本类型数据,final会将值变为一个常数(创建后不能被修改):但

为什么接口要规定成员变量必须是public static final的呢?(转)

在interface里面的变量默认都是public static final 的.所以可以直接省略修饰符: String param="ssm"://变量需要初始化 为什么接口要规定成员变量必须是public static final的呢? 答: 首先接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是所有实现"模版"的实现类的共有特性,所以它是public static的 ,是所有实现类共有的 .假如可以是非static

java进阶11 static final关键字

static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块. 被static修饰的成员变量和成员方法独立于该类的任何对象,也就是说. 它不依赖类的特定的实例,被类的所有实例共享. package Static; public class Static { /* * 使用的情况 * 1:在对象之间共享值时 * 2:方便访问变量 * */ public static void main(String[] args){ Sta

java中 static,final,transient,volatile关键字的作用

static 和final static  静态修饰关键字,可以修饰 变量,程序块,类的方法: 当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存: 修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主要用于系统初始化:当修饰一个类方法时候你就可以直接通过类来调用而不需要新建对象. final 只能赋值一次:修饰变量.方法及类,当你定义一个final变量时,jvm会将其

static、final、static final 用法

1.使用范围:类.方法.变量. 2.区别和联系: 2.1.static 含义:静态的,被 static 修饰的方法和属性只属于类不属于类的任何对象.2.2.static 用法:2.2.1.static 可以修饰[内部类].方法和成员变量.2.2.2.static[不可以修饰外部类].[不可以修饰局部变量](因为 static 本身就是定义为类级别的,所以局部级别的变量是不可以用 static 修饰的). 2.3 final 含义:[只能赋值一次]的.2.2.final 用法:2.2.1.fina

Java 关键字static final使用总结

Static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要该类加载,JVM虚拟机就能根据类名在运行时数据区的方法区内找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象.1.static修饰类的成员方法或者成员变量,我们通常称该方法是静态方法,该方法是静态变量:若用public修饰static成员方法或者成

静态常量(static final)在class文件中是怎样的呢?

最近写项目遇到一个问题,来回折腾了几次,终于探究清楚了.不废话,上例子. 背景:因为项目小,没有使用配置文件,所有静态常量都放在Config.java里面了 public class Config { public static final String URL="http://www.xxxx.com/"; public static final int PAGE_NUM=10; } 看起来也不错啊,没什么大问题,都这么用的啊. 好吧,放到服务器上运行一下,正常啊. 接下来,问题来了

private static final long serialVersionUID = 1L;

作者:郭无心链接:https://www.zhihu.com/question/24852886/answer/117314768来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 其实答主想问的是serialVersionUID的作用. 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的. 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionU

浅析java修饰符之public default protected private static final abstract

浅析java修饰符之public default protected private static final abstract 一   修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 二   分类(大致分两类) 1.访问修饰符,包括:public default protected private 2.非访问修饰符,包括:static final abstract 三 访问修饰符--Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权