找到 343 篇文章 适用于 Java 编程

Java 中的 Externalizable 接口

Vikyath Ram
更新于 2020-06-21 13:49:30

1K+ 次查看

当我们需要自定义序列化机制时,就会用到 Externalization。如果一个类实现了 Externalizable 接口,那么对象的序列化将使用 writeExternal() 方法完成。而在接收端,当一个 Externalizable 对象被重建时,将使用无参构造函数创建一个实例,然后调用 readExternal() 方法。如果一个类只实现了 Serializable 接口,对象的序列化将使用 ObjectoutputStream 完成。在接收端,可序列化对象将使用 ObjectInputStream 重建。下面的例子展示了 Externalizable 接口的用法。示例import java.io.Externalizable; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; public class ... 阅读更多

Java 中的动态方法分派或运行时多态性

Rishi Raj
更新于 2020-06-21 13:12:05

10K+ 次查看

Java 中的运行时多态性是通过方法覆盖实现的,在方法覆盖中,子类覆盖了其父类中的方法。被覆盖的方法本质上隐藏在父类中,除非子类在覆盖方法中使用 super 关键字,否则不会被调用。这种方法调用解析发生在运行时,被称为动态方法分派机制。示例让我们来看一个例子。class Animal {    public void move() {       System.out.println("动物可以移动");    } } class Dog extends Animal {    public void move() {       System.out.println("狗可以行走和 ... 阅读更多

在 Java 中下载网页

Vikyath Ram
更新于 2020-06-21 13:16:19

2K+ 次查看

我们可以使用其 URL 在 Java 中下载网页。以下是所需步骤。使用 url 字符串创建 URL 对象。在 Java 中下载网页使用 url.openStream() 方法创建一个 BufferReader 对象。BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));创建一个 BufferWriter 对象以写入文件。BufferedWriter writer = new BufferedWriter(new FileWriter("page.html"));使用 BufferReader 读取每一行并使用 BufferWriter 写入。String line; while ((line = reader.readLine()) != null) { writer.write(line); }以下是下载给定 URL 页面到当前位置的完整程序。import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class Tester {    public static void main(String ... 阅读更多

Java 中的双括号初始化

Paul Richard
更新于 2020-06-21 12:59:12

350 次查看

双括号可用于在一个 Java 表达式中创建和初始化对象。请参见下面的示例 - 示例import java.util.ArrayList; import java.util.List; public class Tester{    public static void main(String args[]) {       List list = new ArrayList();       list.add("A");       list.add("B");       list.add("C");       list.add("D");       list.add("E");       list.add("F");       System.out.println(list);       List list1 = new ArrayList() {       {          add("A"); add("B");add("C");          add("D");add("E");add("F");       ... 阅读更多

Java 中是否需要前向声明?

Paul Richard
更新于 2020-06-21 12:43:56

571 次查看

前向声明是指在方法或变量实现之前对其进行声明。这种声明在 C/C++ 编程语言中是必要的,以便能够在变量或对象的实现之前使用它们。如果我们想使用库代码,则需要创建其头文件并使用它。但这在 Java 中并非如此。Java 允许在变量、类声明和实现之前使用它们。Java 允许使用库代码,而无需任何头文件。下面的示例展示了这一点。这里我们在声明之前使用了类对象。示例public ... 阅读更多

Java 中打印异常消息的不同方法

Fendadis John
更新于 2023-09-14 14:13:37

34K+ 次查看

以下是 Java 中处理异常消息的不同方法。使用 printStackTrace() 方法 - 它打印异常的名称、描述和完整的堆栈跟踪,包括发生异常的行。catch(Exception e) { e.printStackTrace(); }使用 toString() 方法 - 它打印异常的名称和描述。catch(Exception e) { System.out.println(e.toString()); }使用 getMessage() 方法 - 最常用。它打印异常的描述。catch(Exception e) { System.out.println(e.getMessage()); }示例import java.io.Serializable; public class Tester implements Serializable, Cloneable {    public static void main(String args[]) {       try {          int a = 0;     ... 阅读更多

Java 中将 Integer 转换为 String 的不同方法

Fendadis John
更新于 2020-06-21 12:40:05

260 次查看

以下是 Java 中将 Integer 转换为 String 的不同方法。使用 Integer.toString(int) - 使用 Integer 类的静态 toString() 方法将 int 转换为 String。String b = Integer.toString(125);使用 String.valueOf(int) - 使用 String 类的静态 valueOf() 方法将 int 转换为 String。String b = String.valueOf(125);使用 new Integer(int).toString() - 使用 Integer 对象的 toString() 方法将 int 转换为 String。String b = new Integer(125).toString();使用 DecimalFormat(pattern).format(int) - 使用 DecimalFormat.format() 方法将 int 转换为 String。String b = new DecimalFormat("#").format(125);使用 StringBuilder().toString() - 使用 StringBuilder.toString() 方法将 int 转换为 String。String b = new StringBuilder().append(125).toString();使用 StringBuffer().toString() - 将 int 转换为 String ... 阅读更多

Java 中 super() 和 this() 的区别

Vikyath Ram
更新于 2020-06-21 12:42:48

6K+ 次查看

以下是 Java 中 super() 和 this() 方法之间的一些显着区别。 super()this()定义super() - 指向直接父类实例。this() - 指向当前类实例。调用可用于调用直接父类方法。可用于调用当前类方法。构造函数super() 充当直接父类构造函数,并且应该是子类构造函数中的第一行。this() 充当当前类构造函数,可用于参数化构造函数。覆盖当调用覆盖方法的超类版本时,将使用 super 关键字。当调用覆盖方法的当前版本时,将使用 this 关键字。示例 实时演示class Animal {    String name;    Animal(String name) ... 阅读更多

Java 中 TreeMap、HashMap 和 LinkedHashMap 的区别

Paul Richard
更新于 2020-06-21 12:35:10

12K+ 次查看

HashMap、TreeMap 和 LinkedHashMap 都实现了 java.util.Map 接口,以下是它们的特性。HashMapHashMap 的插入和查找复杂度为 O(1)。HashMap 允许一个 null 键和多个 null 值。HashMap 不维护任何顺序。TreeMapTreeMap 的插入和查找复杂度为 O(logN)。TreeMap 不允许 null 键,但允许多个 null 值。TreeMap 维护顺序。它以排序且升序的方式存储键。LinkedHashMapLinkedHashMap 的插入和查找复杂度为 O(1)。LinkedHashMap 允许一个 null 键和多个 null 值。LinkedHashMap 维护键值对插入的顺序。示例import java.util.HashMap; import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class Tester { ... 阅读更多

Java 中 HashTable 和 HashMap 的区别

Rishi Raj
更新于 2020-06-21 12:35:45

3K+ 浏览量

以下是 Java 中 HashTable 和 HashMap 类的一些显著区别。HashTableHashMap同步HashTable 是同步的。HashMap 不是同步的。线程安全HashTable 是线程安全的。HashMap 不是线程安全的。空对象HashTable 不允许 null 键或 null 值。HashMap 允许一个 null 键和多个 null 值。性能HashTable 更快。HashMap 比 HashTable 慢。自 Java 版本 1.21.5 起示例import java.util.HashMap; import java.util.Hashtable; import java.util.Map; public class Tester {    public static void main(String args[]) {       Map map = new HashMap();       map.put("1", "One");       map.put("2", "Two");       map.put("3", "Three");       map.put("5", "Five");       ... 阅读更多

广告