找到 34423 篇文章 关于编程
423 次查看
众所周知,Java 需要在公共类中将 main() 方法声明为静态方法才能使其可执行。此要求的主要原因是使 JVM 能够在不创建对象的情况下调用 main() 方法。这意味着 JVM 不会创建包含 main() 方法的 Main 类的对象。为了证明这一点,我们可以将包含 main 方法的 Main 类声明为抽象类,程序仍然可以运行。以下示例演示了这一点。在这里,我们将主类设为抽象类。示例abstract public class Tester { public static void main(String args[]) ... 阅读更多
590 次查看
x++ 自动处理类型转换,而 x = x + 1 在 x 不是 int 变量的情况下需要类型转换。请参见下面的示例。示例 在线演示public class Tester { public static void main(String args[]) { byte b = 2; //需要类型转换 //因为 1 是 int 类型,而 b 是 byte 类型 b = (byte) (b + 1); System.out.println(b); byte b1 = 2; //编译器隐式类型转换 b1++; System.out.println(b1); } }输出3 3
555 次查看
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 { ... 阅读更多
4K+ 次查看
辅助类具有以下用途。提供项目中多个类所需的通用方法。辅助方法通常是公共的和静态的,因此可以独立调用。辅助类的每个方法都应独立于同一类的其他方法工作。以下示例展示了一个这样的辅助类。示例public class Tester { public static void main(String[] args) { int a = 37; int b = 39; System.out.println(a + " is prime: " + Helper.isPrime(a)); System.out.println(b + " is prime: " + Helper.isPrime(b)); } } ... 阅读更多
265 次查看
不可变类的对象的属性在初始化后无法修改。例如,String 是 Java 中的一个不可变类。我们可以通过遵循以下规则来创建一个不可变类。将类设为 final - 类应为 final,这样就不能扩展它。将每个字段设为 final - 每个字段都应为 final,这样在初始化后就不能修改它们。为每个字段创建 getter 方法 - 为每个字段创建一个公共 getter 方法。字段应为私有的。没有每个字段的 setter 方法 - 不要为任何字段创建公共 setter 方法。创建一个参数化构造函数 ... 阅读更多
2K+ 次查看
为了找到两个 Java 字符串中匹配字符的数量,方法是首先创建两个字符串的字符数组,这使得比较变得简单。然后将每个唯一字符放入哈希映射中。将另一个字符串的每个字符与创建的哈希映射进行比较,查看它是否存在;如果存在,则将其放入另一个哈希映射中,以防止重复。最后,获取这个新创建的目标哈希映射的大小,它等于两个给定字符串中匹配字符的数量。示例 在线演示import java.util.HashMap; public class ... 阅读更多
193 次查看
类声明public class CopyOnWriteArrayList extends Object implements List, RandomAccess, Cloneable, SerializableCopyOnWriteArrayList 是 ArrayList 的线程安全变体,其中可以更改 ArrayList 的操作(添加、更新、设置方法)会创建底层数组的克隆。CopyOnWriteArrayList 用于线程环境中,其中读取操作非常频繁,而更新操作很少见。CopyOnWriteArrayList 的迭代器永远不会抛出 ConcurrentModificationException。对 CopyOnWriteArrayList 的任何修改都不会在迭代期间反映出来,因为迭代器已经创建。在迭代期间不支持 List 修改方法,如 remove、set 和 add。这些方法将抛出 UnsupportedOperationException。可以向列表中添加 null。CopyOnWriteArrayList 方法以下是 ... 阅读更多
315 次查看
我们可以使用以下方法在 Java 中按字典序比较两个字符串。使用 String.compareTo(String) 方法。它以区分大小写的方式进行比较。使用 String.compareToIgnoreCase(String) 方法。它以不区分大小写的方式进行比较。使用 String.compareTo(Object) 方法。它以区分大小写的方式进行比较。这些方法返回比较字符串的第一个奇数字符的 ASCII 差值。示例 在线演示public class Tester { public static void main(String args[]) { String str = "Hello World"; String anotherString = "hello world"; Object objStr = str; System.out.println( str.compareTo(anotherString) ); System.out.println( str.compareToIgnoreCase(anotherString) ); System.out.println( str.compareTo(objStr.toString())); } }输出-32 0 0
1K+ 次查看
测试重写的优点是可以定义特定于子类类型的行为,这意味着子类可以根据其需求实现父类方法。在面向对象方面,重写意味着重写现有方法的功能。示例 在线演示class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Animal { public void move() { System.out.println("Dogs can walk and run"); } } public class TestDog { public static void main(String args[]) { Animal a = new Animal(); // ... 阅读更多
258 次查看
方法重载是静态多态的一种。在方法重载中,我们可以定义多个具有相同名称但参数不同的方法。请考虑以下示例程序。示例 在线演示
public class Tester {
public static void main(String args[]) {
Tester tester = new Tester();
System.out.println(tester.add(1, 2));
System.out.println(tester.add(1, 2, 3));
}
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
} }
输出
3 ... 阅读更多
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP