找到 34423 篇文章,关于编程

Java 序列化中 transient 如何与 final 一起工作?

Maruthi Krishna
更新于 2019年10月15日 06:56:27

862 次浏览

在 Java 中,序列化是一个概念,我们可以使用它将对象的状态写入字节流中,以便我们可以通过网络传输它(使用 JPA 和 RMI 等技术)。瞬态变量 - 瞬态变量的值永远不会被考虑(它们被排除在序列化过程之外)。即,当我们声明一个变量为 transient 时,反序列化后,它的值将始终为 null、false 或零(默认值)。因此,在序列化类的对象时,如果希望 JVM 忽略特定的实例变量,则可以将其声明为 transient。public transient int limit = ... 阅读更多

Java 中常量和 final 变量的区别?

Maruthi Krishna
更新于 2019年10月15日 06:53:36

11K+ 次浏览

Java 中的常量 常量变量的值是固定的,并且程序中只存在它的一个副本。一旦声明常量变量并为其赋值,就不能在整个程序中再次更改其值。与 C 语言不同,Java 不直接支持常量。但是,您仍然可以通过声明一个变量为 static 和 final 来创建一个常量。一旦声明一个变量为 static,它们将在编译时加载到内存中,即只有一个副本可用。一旦声明一个变量为 final,就不能修改其值…… 阅读更多

我们可以在 Java 的默认构造函数中初始化静态变量吗?

Maruthi Krishna
更新于 2019年10月15日 06:50:25

7K+ 次浏览

类/静态变量属于一个类,就像实例变量一样,它们在类中声明,在任何方法之外,但使用 static 关键字。它们可以在编译时访问,您可以在实例化类之前/无需实例化类即可访问它们,在整个类中只有一个静态字段的副本可用,即静态字段的值在所有对象中都相同。您可以使用 static 关键字定义静态字段。如果您在类中声明一个静态变量,如果您没有初始化它,就像实例变量一样,编译器会用默认值初始化它们…… 阅读更多

如何在 Java 中使数组元素不可变?

Maruthi Krishna
更新于 2019年10月15日 06:44:33

3K+ 次浏览

不,您不能使数组元素不可变。但是,java.util.Collections 类的 unmodifiableList() 方法接受 List 接口的对象(实现其类的对象)并返回给定对象的不可修改形式。用户只能对获得的列表进行只读访问。而 ArrayList 类的 asList() 方法接受一个数组并返回一个 List 对象。因此,要将数组转换为不可变的 - 获取所需的数组。使用 asList() 方法将其转换为列表对象。将获得的列表作为参数传递给 unmodifiableList() 方法。示例 实时演示 import java.util.Arrays; import java.util.Collections; import java.util.List; public class UnmodifiableExample ... 阅读更多

仅 final 关键字可以用来在 Java 中定义常量吗?

Maruthi Krishna
更新于 2019年10月15日 06:41:59

346 次浏览

常量变量的值是固定的,并且程序中只存在它的一个副本。一旦声明常量变量并为其赋值,就不能在整个程序中再次更改其值。与其他语言不同,java 不直接支持常量。但是,您仍然可以通过声明一个变量为 static 和 final 来创建一个常量。Static - 一旦声明一个变量为 static,它们将在编译时加载到内存中,即只有一个副本可用。Final - 一旦声明一个变量为 final,就不能修改其值…… 阅读更多

为什么 Java 不允许在构造函数中初始化静态 final 变量?

Maruthi Krishna
更新于 2019年10月15日 06:37:04

609 次浏览

如果您声明一个变量为 static 和 final,则需要在声明时或在静态块中初始化它。如果您尝试在构造函数中初始化它,编译器会假设您尝试重新分配值,并生成编译时错误 - 示例 实时演示 class Data { static final int num; Data(int i) { num = i; } } public class ConstantsExample { public static void main(String args[]) { System.out.println("value of the constant: "+Data.num); } } 编译时错误 ConstantsExample.java:4: error: cannot assign a value to ... 阅读更多

为什么应该在所有 Java 构造函数中显式初始化空白 final 变量?

Maruthi Krishna
更新于 2019年10月15日 06:35:01

1K+ 次浏览

一个未初始化的 final 变量被称为空白 final 变量。通常,我们在构造函数中初始化实例变量。如果我们遗漏了它们,构造函数将用默认值初始化它们。但是,final 空白变量不会用默认值初始化。因此,如果您尝试在没有在构造函数中初始化的情况下使用空白 final 变量,则会生成编译时错误。示例 实时演示 public class Student { public final String name; public void display() { System.out.println("Name of the Student: "+this.name); } public static void main(String args[]) { ... 阅读更多

为什么构造函数在 Java 中不能是 final 的?

Maruthi Krishna
更新于 2019年10月15日 06:32:11

3K+ 次浏览

每当您将方法设为 final 时,您就无法覆盖它。即,您不能从子类为超类的 final 方法提供实现。即,使方法成为 final 的目的是防止从外部(子类)修改方法。在继承中,每当您扩展一个类时。子类继承超类所有成员,构造函数除外。换句话说,构造函数不能在 Java 中继承,因此您不能覆盖构造函数。因此,在构造函数前写 final 没有意义。因此,java 不允许在构造函数前使用 final 关键字。如果您尝试使构造函数成为 final,则会发生编译时错误…… 阅读更多

如何在 Java 中通过接口对象访问派生类成员变量?

Maruthi Krishna
更新于 2019年10月15日 06:30:06

656 次浏览

当您尝试使用子类对象持有超类的引用变量时,使用此对象,您只能访问超类的成员,如果您尝试使用此引用访问派生类的成员,则会收到编译时错误。示例 实时演示 interface Sample { void demoMethod1(); } public class InterfaceExample implements Sample { public void display() { System.out.println("This ia a method of the sub class"); } public void demoMethod1() { System.out.println("This is demo method-1"); } public static void main(String args[]) ... 阅读更多

如何在 Java 中将 JSONArray 转换为字符串数组?

raja
更新于 2020年7月6日 12:42:31

3K+ 次浏览

JSON 是一种广泛使用的数据交换格式。它轻量级且与语言无关。JSONArray 可以解析来自字符串的文本以生成类似向量的对象,并支持 java.util.List 接口。我们可以在下面的示例中将 JSONArray 转换为字符串数组示例 import org.json.*; import java.util.*; public class JsonArraytoStringArrayTest { public static void main(String[] args) { JSONArray jsonArray = new JSONArray(); jsonArray.put("INDIA "); jsonArray.put("AUSTRALIA "); jsonArray.put("SOUTH AFRICA "); jsonArray.put("ENGLAND "); jsonArray.put("NEWZEALAND "); List list = new ArrayList(); for(int i=0; ... 阅读更多

广告
© . All rights reserved.