transient:将实例变量标记为transient以指示JVM在序列化包含它的对象时跳过该特定变量。此修饰符包含在创建变量的语句中,位于变量的类或数据类型之前。示例 public transient int limit = 55; // 将不会持久化 public int b; // 将会持久化 volatile:volatile修饰符用于让JVM知道访问该变量的线程必须始终将其自己的变量私有副本与内存中的主副本合并。访问volatile变量会同步所有缓存的副本... 阅读更多
volatile修饰符用于让JVM理解访问该变量的线程应该始终将其自己的变量私有副本与内存中的原始副本合并。访问volatile变量会同步主内存中所有变量的缓存副本。volatile只能应用于实例变量,这些变量是对象类型或私有类型。volatile对象引用可以为null。示例 public class MyRunnable implements Runnable { private volatile boolean active; public void run() { active = true; while (active) { } } public void stop() { active = false; } }
将实例变量标记为transient以指示JVM在序列化包含它的对象时跳过该实际变量。此修饰符包含在创建变量的语句中,位于变量的类或数据类型之前。示例 public class Employee implements java.io.Serializable { public String name; public String address; public transient int SSN; public int number; public void mailCheck() { System.out.println("Mailing a check to " + name + " ... 阅读更多
abstract关键字用于声明抽象方法和抽象类。一旦声明了一个方法为抽象的,我们就不能为其指定主体。示例 public abstract class Sample{ public abstract demo(){ } } 错误 Sample.java:2: error: invalid method declaration; return type required public abstract demo(){ ^ 1 error 一旦声明一个类为抽象的,就不能实例化它。示例 public abstract class Sample{ public abstract void demo(); public static void main(String args[]){ new Sample(); } } 错误 C:\Sample>javac Sample.java Sample.java:4: error: Sample is abstract; cannot be instantiated new Sample(); ^ 1 error
synchronized关键字用于指示方法一次只能被一个线程访问。synchronized修饰符可以与任何四个访问级别修饰符一起使用。示例 实时演示 public class TestThread { public static Object Lock1 = new Object(); public static Object Lock2 = new Object(); public static void main(String args[]) { ThreadDemo1 T1 = new ThreadDemo1(); ThreadDemo2 T2 = new ThreadDemo2(); ... 阅读更多
您可以将final变量作为参数传递给Java中的方法。final变量只能显式初始化一次。声明为final的引用变量永远不能重新赋值以引用不同的对象。但是,对象中的数据可以更改。因此,可以更改对象的状态,但不能更改引用。对于变量,final修饰符通常与static一起使用,以使常量成为类变量。示例 实时演示 public class Test{ public void sample(final int data){ System.out.println(data); ... 阅读更多