找到 343篇 文章 关于Java编程
1K+ 次查看
当我们需要自定义序列化机制时,可以使用外部化。如果一个类实现了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 ... 阅读更多
10K+ 次查看
Java中的运行时多态性是通过方法重写实现的,其中子类重写其父类中的方法。重写的方法本质上隐藏在父类中,除非子类在重写方法中使用super关键字,否则不会调用。这种方法调用解析发生在运行时,称为动态方法调度机制。示例让我们来看一个例子。class Animal { public void move() { System.out.println("动物可以移动"); } } class Dog extends Animal { public void move() { System.out.println("狗可以行走和 ... 阅读更多
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 ... 阅读更多
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"); ... 阅读更多
571 次查看
前向声明是指在方法或变量实现之前声明它们。为了能够在实现之前使用变量或对象,这种声明在C/C++编程语言中是必要的。如果我们要使用库代码,则需要创建其头文件并使用它。但这在Java中并非如此。Java允许在声明和实现之前使用变量、类。Java允许使用库代码而无需任何头文件。下面的例子展示了这一点。在这里,我们在声明之前使用了类对象。示例public ... 阅读更多
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; ... 阅读更多
260 次查看
以下是将整数转换为Java字符串的不同方法。使用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()-使用StringBuffer.toString()方法将int转换为String ... 阅读更多
6K+ 次查看
以下是Java中super()和this()方法的显著区别。super()this()定义super()-引用直接父类实例。this()-引用当前类实例。调用可用于调用直接父类方法。可用于调用当前类方法。构造函数super()充当直接父类构造函数,并且应该是子类构造函数中的第一行。this()充当当前类构造函数,可用于参数化构造函数。重写当调用重写方法的超类版本时,使用super关键字。当调用重写方法的当前版本时,使用this关键字。示例实时演示类Animal { String name; Animal(String name) ... 阅读更多
12K+ 次查看
HashMap、TreeMap和LinkedHashMap都实现了java.util.Map接口,以下是它们的特性。HashMapHashMap的插入和查找复杂度为O(1)。HashMap允许一个空键和多个空值。HashMap不维护任何顺序。TreeMapTreeMap的插入和查找复杂度为O(logN)。TreeMap不允许空键,但允许多个空值。TreeMap维护顺序。它以排序的升序存储键。LinkedHashMapLinkedHashMap的插入和查找复杂度为O(1)。LinkedHashMap允许一个空键和多个空值。LinkedHashMap维护键值对插入的顺序。示例import java.util.HashMap; import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class Tester { ... 阅读更多
3K+ 次查看
以下是Java中HashTable和HashMap类的显著区别: HashTableHashMap同步HashTable是同步的。HashMap是非同步的。线程安全HashTable是线程安全的。HashMap不是线程安全的。空对象HashTable不允许空键或空值。HashMap允许一个空键和多个空值。性能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"); ... 阅读更多