找到 2637 篇文章 关于 Java

为什么我们应该在 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 使用特殊的内存位置来重用 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。如果它是可变的,则可以轻松更改这些参数。同步和并发使 String 变得不可变,从而自动使它们成为线程安全的,从而解决了同步问题。缓存当编译器优化我们的 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("构造函数名称应与类名相同");    }    public static void main(String args[]){       MyConstructor mc = new MyConstructor();    } }在上面的程序中,构造函数名称应与类名相同 (MyConstructor)。输出构造函数名称应与类名相同

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

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

4K+ 次浏览

是的,我们可以在 Java 中将 main 方法声明为私有。它在编译时会成功编译而没有任何错误,但在运行时,它会提示 main 方法不是公共的。示例:class PrivateMainMethod {    private static void main(String args[]){        System.out.println("欢迎来到 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("没有 main 方法的类");       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("匿名类"); } }; a.show(); } } 输出 匿名类

如何在 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 "欢迎来到 Tutorials Point"; } }); } } 输出 欢迎来到 Tutorials Point

广告