找到关于 Java 的2637 篇文章

为什么在 Java 中应该使用 StringBuffer 而不是 String?

raja
更新于 2020年2月11日 08:04:56

762 次浏览

StringBuffer 是一个线程安全的、可变的字符序列。与 String 类(不可变)不同,StringBuffer 类是可变的。也就是说,我们可以更改 StringBuffer 对象的内容。当我们修改 StringBuffer 类的字符串时,我们不是创建一个新的 String 对象,而是直接操作原始字符串本身。因此,StringBuffer 类提供了一套与 String 类不同的方法,所有这些方法都直接操作包含字符串的缓冲区。StringBuffer 可以简单地通过使用 new 运算符并在… 阅读更多

Java 中堆内存和字符串常量池有什么区别?

raja
更新于 2020年2月6日 10:00:04

5K+ 次浏览

堆内存堆内存是运行时数据区,从中分配所有 Java 类实例和数组的内存。堆在 JVM 启动时创建,并且在应用程序运行时其大小可能会增加或减小。可以使用 –Xms VM 选项指定堆的大小。堆的大小可以是固定的,也可以是可变的,这取决于垃圾收集策略。可以使用 –Xmx 选项设置最大堆大小。默认情况下,最大堆大小设置为 64 MB。字符串常量池字符串使用特殊的内存位置来重用 String 对象… 阅读更多

为什么字符串字面量存储在 Java 的字符串常量池中?

raja
更新于 2023年11月17日 14:10:14

2K+ 次浏览

在 Java 中创建 String 对象有两种方法:使用 new 运算符 String str = new String("Tutorials Point"); 使用字符串字面量 String str = "Tutorials Point"; 每当我们在 Java 中调用 new String() 时,它将在堆内存中创建一个对象,而字符串字面量将进入字符串常量池 (SCP)。对于对象,JVM 使用 SCP,用于 Java 中有效的内存管理。与其他 Java 对象不同,它们没有在堆区域管理 String 对象,而是引入了字符串常量池。字符串常量池的一个重要特性是它不会创建相同的 String… 阅读更多

为什么 String 类在 Java 中是不可变的或最终的?

raja
更新于 2023年11月17日 14:21:41

8K+ 次浏览

字符串不可变意味着我们不能更改对象本身,但我们可以更改对象的引用。字符串被设置为 final 以防止其他人扩展它并破坏其不变性。安全参数通常在网络连接、数据库连接 URL、用户名/密码等中表示为字符串。如果它是可变的,则可以轻松更改这些参数。同步和并发使字符串不可变自动使其线程安全,从而解决了同步问题。缓存当编译器优化我们的 String 对象时,如果两个对象具有相同的值 (a =" test",和 b =" test"),则似乎… 阅读更多

如何在 Java 中调用接口方法?

raja
更新于 2020年2月11日 08:06:59

20K+ 次浏览

为了从 Java 程序调用接口方法,程序必须实例化接口实现程序。然后可以使用实现对象调用方法。示例public interface InterfaceDemo{     default public void displayNameDefault(String name){        System.out.println("Your name is : " + name);    }     public void displayName(String name);     public void displayNameAndDesignation(String name, String designation); }上述接口定义了三种显示名称和可选职位的方法。一种方法是包含实现逻辑的默认方法。其余两种方法不包含实现逻辑。public class InterfaceDemoImpl… 阅读更多

为什么构造函数名称与 Java 中的类名称相同?

raja
更新于 2020年2月6日 10:09:33

3K+ 次浏览

每个类对象都是使用相同的 new 关键字创建的,因此它必须具有关于它必须为其创建对象的类的信息。因此,构造函数名称应与类名称相同。示例class MyConstructor{    public MyConstructor() {       System.out.println("The constructor name should be same as the class name");    }    public static void main(String args[]){       MyConstructor mc = new MyConstructor();    } }在上述程序中,构造函数名称应与类名称 (MyConstructor) 相同。输出The constructor name should be same as the class name

我们可以在 Java 中将 main 方法声明为私有吗?

raja
更新于 2020年2月11日 07:49:21

4K+ 次浏览

是的,我们可以在 Java 中将 main 方法声明为私有。它会在没有任何错误的情况下成功编译,但在运行时,它会说 main 方法不是公共的。示例:class PrivateMainMethod {    private static void main(String args[]){        System.out.println("Welcome to Tutorials Point");     } }上述代码在编译时运行成功,但在运行时会抛出错误。输出:错误:在类 PrivateMainMethod 中找不到 Main 方法,请将 Main 方法定义为:public static void main(String[] args) 或 JavaFX 应用程序类必须扩展 javafx.application.Application

我们可以在没有 main 方法的情况下执行 Java 程序吗?

raja
更新于 2023年10月7日 02:45:53

28K+ 次浏览

是的,我们可以通过使用静态块来执行没有 main 方法的 Java 程序。Java 中的静态块是一组语句,这些语句仅在 Java 类加载器将类加载到内存中时执行一次,它也称为静态初始化块。静态初始化块直接进入堆栈内存。示例class StaticInitializationBlock{    static{       System.out.println("class without a main method");       System.exit(0);    } }在上面的示例中,我们可以执行没有 main 方法的 Java 程序(在 Java 1.6 版本之前有效)。… 阅读更多

是否可以在 Java 中创建没有名称的类?

raja
更新于 2023年11月17日 14:26:55

920 次浏览

是的,我们可以使用匿名类创建没有名称的类。匿名类是一个没有名称的内部类,其实例是在类本身创建时创建的,这些类的创建方式与其普通类有所不同。示例public class Anonymous { public void show() {} public static void main(String args[]) { Anonymous a = new Anonymous() { public void show() { System.out.println("Anonymous Class"); } }; a.show(); } } 输出 Anonymous Class

如何在 Java 中使用匿名内部类实现接口?

raja
更新于 2023年11月17日 08:41:15

1K+ 次浏览

匿名内部类是一个没有名称的类,我们将在实例化行直接定义它。示例在下面的程序中,我们使用匿名内部类实现 TutorialsPoint 接口的 toString() 方法,并打印其返回值。interface TutorialsPoint{ public String toString(); } public class Main implements TutorialsPoint { public static void main(String[] args) { System.out.print(new TutorialsPoint() { public String toString() { return "Welcome to Tutorials Point"; } }); } } 输出 Welcome to Tutorials Point

广告