找到 2637 篇文章 关于 Java

如何在 Java 中更改/增加 Java 虚拟机的堆大小?

raja
更新于 2020年2月11日 10:21:05

1K+ 次浏览

Java 程序可以在 Java 虚拟机 (JVM) 中执行,JVM 使用堆内存来管理数据。如果我们的 Java 程序需要更多内存,则 Java 虚拟机 (JVM) 在尝试实例化 Java 对象时可能会开始抛出 OutOfMemoryError 实例。更改/增加 JVM 堆大小在 Java 中,可以使用命令行选项 -Xms、-Xmx 和 -Xss 来增加 JVM 分配的堆大小:-Xms - 设置初始 Java 堆大小 -Xmx - 设置最大 Java 堆大小 -Xss - 设置 Java 线程堆栈大小示例在线演示 public class HeapSizeTest { public static void main(String[] args){ // 获取 ... 阅读更多

我们可以在 Java 中定义静态构造函数吗?

raja
更新于 2019年7月30日 22:30:26

4K+ 次浏览

不可以,我们不能在 Java 中定义静态构造函数。如果我们尝试使用 static 关键字定义构造函数,则会发生编译时错误。一般来说,static 表示类级别。构造函数用于为实例变量赋值初始值。static 和构造函数是不同的,并且彼此相反。我们需要为实例变量赋值初始值,可以使用构造函数;我们需要为静态变量赋值,可以使用静态块。示例在线演示 public class StaticConstructorTest { int x = 10; // 静态构造函数的声明 static StaticConstructorTest() { ... 阅读更多

何时可以在 Java 中使用 String 类的 intern() 方法?

raja
更新于 2020年2月7日 05:45:33

352 次浏览

String 类的 intern() 方法可以用来处理 Java 中的字符串重复问题。使用 intern(),我们可以节省重复字符串实例消耗的大量内存。如果一个字符串的内容与另一个字符串相同,但它可能占用不同的内存位置,则该字符串是重复的。我们知道 JVM 为字符串字面量维护一个单独的堆内存以提高性能。一旦我们声明一个字符串字面量,它就会进入此池,如果另一个变量被赋值为相同的字面量值,它将从池中获取,而不是创建一个新的... 阅读更多

我们可以在 Java 中将 public static void main() 的顺序更改为 static public void main() 吗?

raja
更新于 2020年2月7日 05:47:14

4K+ 次浏览

可以,我们可以将 Java 中的 public static void main() 的顺序更改为 static public void main(),编译器不会抛出任何编译时或运行时错误。在 Java 中,我们可以按任何顺序声明访问修饰符,方法名放在最后,返回类型放在倒数第二位,然后按照我们的选择。但是,根据 Java 编码标准,建议将访问修饰符(public、private 和 protected)放在最前面。语法 public static void main(String args[]) { // 一些语句 } 示例在线演示 class ParentTest { int age = 10; public int getAge() { age ... 阅读更多

我们可以在 Java 中扩展枚举吗?

raja
更新于 2020年2月7日 05:58:29

4K+ 次浏览

不可以,我们不能在 Java 中扩展枚举。Java 枚举可以隐式扩展 java.lang.Enum 类,因此枚举类型不能扩展另一个类。语法 public abstract class Enum> implements Comparable, Serializable { // 一些语句 } 枚举枚举类型是一种在 Java 1.5 版本中添加的特殊数据类型。枚举用于定义常量集合,当我们需要预定义的值列表不代表某种数值或文本数据时,可以使用枚举。枚举是常量,默认情况下它们是静态和最终的。因此,枚举类型字段的名称为大写字母。只能使用 Public 或 protected 修饰符... 阅读更多

Java 中静态块和构造函数的区别是什么?

raja
更新于 2020年2月11日 10:10:35

2K+ 次浏览

静态块静态块在类加载时执行。静态块在运行 main() 方法之前执行。静态块在其原型中没有任何名称。如果我们想要在类加载时执行的任何逻辑,则需要将该逻辑放在静态块中,以便在类加载时执行它。语法 static { // 一些语句 } 示例在线演示 public class StaticBlockTest { static { System.out.println("静态块!"); } public static void main(String args[]) { System.out.println("欢迎来到 Tutorials Point!"); } } 输出静态块!... 阅读更多

我们可以在 Java 中定义与类名相同的方法名吗?

raja
更新于 2019年7月30日 22:30:26

5K+ 次浏览

可以,允许定义与类名相同的方法名。不会发生编译时或运行时错误。但是,根据 Java 编码标准,这并不推荐。通常情况下,Java 中的构造函数名称和类名总是相同的。示例在线演示 public class MethodNameTest { private String str = "欢迎来到 TutorialsPoint"; public void MethodNameTest() { // 声明的方法名与类名相同 System.out.println("方法名和类名相同"); } public static void main(String args[]) { MethodNameTest test ... 阅读更多

我们可以在 Java 中将构造函数声明为私有吗?

raja
更新于 2019年7月30日 22:30:26

10K+ 次浏览

可以,我们可以将构造函数声明为私有。如果我们将构造函数声明为私有,我们将无法创建类的对象。我们可以在单例设计模式中使用此私有构造函数。私有构造函数的条件私有构造函数不允许对类进行子类化。私有构造函数不允许在类外部创建对象。如果我们的类中所有方法都是常量方法,则可以使用私有构造函数。如果所有方法都是静态的,则可以使用私有构造函数。如果我们尝试扩展具有私有构造函数的类,则会... 阅读更多

当我们尝试在 Java 中重写超类的 final 方法时会发生什么?

raja
更新于 2019年7月30日 22:30:26

1K+ 次浏览

在超类中声明为 final 的任何方法都不能被子类重写。如果我们尝试重写超类的 final 方法,我们将得到一个 Java 错误。实现方法重写的规则方法声明应该与要重写的方法相同。在尝试重写之前,类(子类)应该扩展另一个类(超类)。子类永远不能重写超类的 final 方法。示例在线演示 class Car { public void brake() { System.out.println("Car 的 brake() 方法"); } public final void accelerate() { ... 阅读更多

什么是 ClassCastException,它何时在 Java 中被抛出?

raja
更新于 2019年7月30日 22:30:26

1K+ 次浏览

java.lang.ClassCastException 是 Java 中的一种未检查异常。当尝试将一个类的对象转换为另一个类的对象时,程序中可能会发生此异常。何时会抛出 ClassCastException?当尝试将父类对象转换为其子类类型时,将抛出此异常。当尝试将一个类的对象转换为另一个与其没有继承关系或没有任何关系的类类型时,也会抛出此异常。示例在线演示类 ParentTest { String parentName; ParentTest(String n1){ parentName = n1; } public ... 阅读更多

广告