找到 34423 篇文章 关于编程

Java 中 transient 和 volatile 的区别是什么?

Rishi Raj
更新于 2020-02-26 10:11:11

630 次浏览

transient:使用 transient 标记实例变量表示在序列化包含该变量的对象时,JVM 应跳过该特定变量。此修饰符包含在创建变量的语句中,位于变量的类或数据类型之前。例如public transient int limit = 55; // 不会持久化 public int b; // 会持久化volatile:volatile 修饰符用于让 JVM 知道访问该变量的线程必须始终将其自己的变量私有副本与内存中的主副本合并。访问 volatile 变量会同步所有缓存的副本... 阅读更多

Java 中 volatile 修饰符的作用是什么?

Jai Janardhan
更新于 2020-02-19 12:41:26

510 次浏览

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; } }

Java 中 transient 修饰符的作用是什么?

George John
更新于 2019-07-30 22:30:20

183 次浏览

使用 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 + " ... 阅读更多

Java 中是否可以在局部变量上使用访问修饰符?

Arushi
更新于 2019-07-30 22:30:20

657 次浏览

是的,局部变量可以是 public、private、protected 或默认。

如何在 Java 中使用 final 修饰符?

Moumita
更新于 2024-10-25 23:40:58

1K+ 次浏览

在本文中,我们将学习如何在 Java 中使用 final 修饰符。final 修饰符可以与方法、类和变量关联。一旦我们将其声明为 final - final 类不能被实例化。final 方法不能被重写。final 变量不能重新赋值。这些限制使代码更具可预测性,并且可以防止意外修改。使用 final 修饰符的步骤以下是使用 final 修饰符的步骤 -首先,我们将定义一个类 TestExample 并声明一个 final 变量 value ... 阅读更多

c 中 ++i 和 i++ 的区别是什么?

Jayashree
更新于 2023-09-12 02:57:07

35K+ 次浏览

在 C 中,++ 和 -- 运算符称为增量和减量运算符。它们是一元运算符,只需要一个操作数。因此 ++ 和 -- 运算符都可以出现在操作数之前或之后,效果相同。这意味着 i++ 和 ++i 将是等价的。i=5; i++; printf("%d", i);和 i=5 ++i; printf("%d", i);两者都会使 i=6。但是,当增量表达式与赋值运算符一起使用时,运算符优先级将起作用。i=5; j=i++;在这种情况下,= 的优先级高于后缀 ++。因此,在递增 i 之前,i 的值被赋予 i。这里 j 变为 5,i 变为 6。i=5; ... 阅读更多

Java 中 abstract 修饰符的作用是什么?

Vikyath Ram
更新于 2019-07-30 22:30:20

308 次浏览

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

Java 中 synchronized 修饰符的作用是什么?

Rishi Raj
更新于 2019-07-30 22:30:20

1K+ 次浏览

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(); ... 阅读更多

Java 数组可以声明为静态字段、局部变量或方法参数吗?

Rahul Sharma
更新于 2019-07-30 22:30:20

503 次浏览

我们可以将数组声明为局部变量或方法参数,但是数组不能是静态的。例如 public class Test{ public void sample(){ static int[] myArray = {20, 30}; System.out.println(); } public static void main(String args[]){ Test t = new Test(); t.sample(); } } 错误 C:\Sample>javac Test.java Test.java:3: error: illegal start of expression static int[] myArray = {20, 30}; ^ 1 error

Java 中 final、abstract、synchronized 非访问修饰符是什么?

Jai Janardhan
更新于 2019-07-30 22:30:20

327 次浏览

abstract 关键字用于声明抽象方法和抽象类。一旦方法被声明为抽象的,我们就不能为它们指定主体。并且一旦类被声明为抽象的,它就不能被实例化。例如 实时演示 abstract class Employee { private String name; private String address; private int number; public Employee(String name, String address, int number) { System.out.println("Constructing an Employee"); this.name = name; ... 阅读更多

广告