本文主要是介绍Java关键字static、final、transient详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.static关键字
static关键字修饰的变量表示该变量为该类的所有对象共有。static修饰的方法表示类的方法,通过类名直接可以调用该方法。
static 修饰的代码块可以让类刚加载到内存的时候就执行该代码块。
我们来看一下如下代码及执行结果:
StaticDemo类:
package StaticFinalTransient;public class StaticDemo {public static String nameString="xyp";public static int count=0;private String ageString;static {count++;System.out.println("静态代码块执行!"+count);}public static void printInfo(){System.out.println("静态方法!");}public StaticDemo(String age){this.ageString=age;}public String getAgeString() {return ageString;}public void setAgeString(String ageString) {this.ageString = ageString;}}
MainApp类:
package StaticFinalTransient;public class MainApp {public static void main(String agrs[]){StaticDemo.printInfo();StaticDemo s=new StaticDemo("18");s.nameString="北半球先生";StaticDemo t=new StaticDemo("20");System.out.println(t.nameString);}
}
运行结果如下:
从运行结果看来,证实了static修饰变量,代码块及方法的功能。
2.Final关键字
Final 顾名思义就是不可再修改的,通常Final和Static 组合使用来定义一些常用的常量。Final比较简单就不再赘述了。
3.transient关键字
transient 比较少见。transient 修饰的变量表示短暂的,不可以被序列化的。
来看如下代码:
package StaticFinalTransient;import java.io.Serializable;/**
* Person实现Serializable接口
*/
public class Person implements Serializable
{ /*** */private static final long serialVersionUID = 1L;private String name; private transient String password; public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public static long getSerialversionuid() {return serialVersionUID;}//setter 和 getter方法 @Override public String toString() { return "Peron [name=" + name + ", password=" + password + "]"; } }
//通常如果想要将一个对象持久化存储到磁盘中,那么通常是先将该对象序列化然后再存储。
package StaticFinalTransient;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;public class Test {public static void main(String agrs[]) throws FileNotFoundException, IOException, ClassNotFoundException{File file = new File("e:/out.txt"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file)); Person person=new Person();person.setName("北半球先生");person.setPassword("123");out.writeObject(person);out.flush(); out.close(); ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); Person outPerson = (Person) in.readObject(); in.close(); System.out.println(outPerson.toString());
}
}
运行结果如下:
这篇关于Java关键字static、final、transient详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!