找到关于面向对象编程的9301 篇文章
1K+ 次查看
我们可以通过实现 Runnable 接口或扩展 Thread 类来创建线程。以下是使用这两种方法创建线程的详细步骤。通过实现 Runnable 接口创建线程如果您的类旨在作为线程执行,则可以通过实现 Runnable 接口来实现此目的。您需要遵循三个基本步骤 - 步骤 1 首先,您需要实现 Runnable 接口提供的 run() 方法。此方法为线程提供了一个入口点,您将把您的完整业务逻辑放在此方法中。 ... 阅读更多
351 次查看
Java 在向函数传递参数时使用按值调用。要交换对象,我们需要使用它们的包装器。请参见下面的示例 - 示例 在线演示public class Tester{ public static void main(String[] args) { A a = new A(); A b = new A(); a.value = 1; b.value = 2; // 使用对象交换 swap(a, b); System.out.println(a.value +", " + b.value); Wrapper wA = new Wrapper(a); Wrapper wB = new ... 阅读更多
562 次查看
单例模式规定一个类只能有一个实例,不允许创建多个实例。为此,我们将类的构造函数设为私有,并通过静态方法返回一个实例。但是使用序列化,我们仍然可以创建类的多个实例。请参见下面的示例 - 示例 - 破坏单例 在线演示import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class Tester{ public static void main(String[] args) throws ClassNotFoundException, IOException{ A a = A.getInstance(); A b ... 阅读更多
747 次查看
单例模式规定一个类只能有一个实例,不允许创建多个实例。为此,我们将类的构造函数设为私有,并通过静态方法返回一个实例。但是使用反射,我们仍然可以通过修改构造函数作用域来创建类的多个实例。请参见下面的示例 - 示例 - 破坏单例 在线演示import java.io.Serializable; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class Tester { public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{ A a = A.getInstance(); ... 阅读更多
1K+ 次查看
单例模式规定一个类只能有一个实例,不允许创建多个实例。为此,我们将类的构造函数设为私有,并通过静态方法返回一个实例。但是使用克隆,我们仍然可以创建类的多个实例。请参见下面的示例 - 示例 - 破坏单例public class Tester{ public static void main(String[] args) throws CloneNotSupportedException { A a = A.getInstance(); A b = (A)a.clone(); System.out.println(a.hashCode()); System.out.println(b.hashCode()); } } ... 阅读更多
228 次查看
如果一个对象不再被活动引用引用,那么它就符合垃圾回收的条件。请参见下面的示例 - 示例public class Tester{ public static void main(String[] args) { test(); } public static void test(){ A a = new A(); } } class A {}当 test() 方法执行完毕后,a 对象不再被引用,并且符合垃圾回收的条件。Java 垃圾收集器将在运行时释放该对象。要防止垃圾回收,我们可以创建一个对象的静态引用,然后 ... 阅读更多
21K+ 次查看
要查找字符串中每个字符出现的次数,我们可以使用 Java 的 Map 工具。在 Map 中,键不能重复,因此将字符串的每个字符都作为 Map 的键,如果该字符之前没有插入到 Map 中,则为每个键提供初始值为 1。现在,当一个字符作为键重复插入到 Map 中时,将它的值增加一。对每个字符都执行此操作,直到字符串的所有字符都被插入。问题陈述 用 Java 编写一个程序来检查每个字符在…中的出现次数 阅读更多
3K+ 次查看
本文介绍了如何使用 Java 编程语言编码和解码 JSON 对象。让我们从准备环境开始,开始使用 Java 进行 JSON 编程。环境在开始使用 Java 编码和解码 JSON 之前,您需要安装任何可用的 JSON 模块。在本教程中,我们下载并安装了 JSON.simple,并将 json-simple-1.1.1.jar 文件的位置添加到环境变量 CLASSPATH 中。JSON 和 Java 实体之间的映射JSON.simple 在解码或解析时将左侧的实体映射到右侧,在编码时将右侧的实体映射到左侧。JSONJava字符串java.lang.String数字java.lang.Number真|假java.lang.Boolean空null数组java.util.List对象java.util.Map在解码时,… 阅读更多
304 次查看
可以使用 `java.lang.System.currentTimeMillis()` 方法来计算 Java 函数的执行时间。技巧很简单,使用 `currentTimeMillis()` 获取方法调用前和调用后的时间,前者为方法调用时间,后者为方法执行完成时间。请参见下面的示例:示例 在线演示public class Tester{ public static void main(String[] args) { long startTime = System.currentTimeMillis(); longRunningMethod(); long endTime = System.currentTimeMillis(); System.out.println("Time taken: " + (endTime -startTime) + " ms"); } private static void longRunningMethod() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }输出Time taken: 1000 ms
浏览量 13K+
可以使用以下方法在 Java 中比较数组使用 `Arrays.equals(array1, array2)` 方法 - 此方法迭代数组的每个值,并使用 `equals` 方法进行比较。使用 `Arrays.deepEquals(array1, array2)` 方法 - 此方法迭代数组的每个值,并使用任何重写的 `equals` 方法进行深度比较。对数组使用 `==` 不会得到期望的结果,它会将它们作为对象进行比较。请参见下面每个比较方法的示例。示例 在线演示import java.util.Arrays; public class Tester{ public static void main(String[] args) { int[] array1 = {1, 2, 3}; int[] ... 阅读更多
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP