0
点赞
收藏
分享

微信扫一扫

java优质面试题

Java优质面试题解析

Java作为一种广泛应用的编程语言,在面试过程中常常会碰到各种与Java相关的问题。本文将介绍一些经典的Java面试题,并提供详细的解析和代码示例,帮助读者更好地理解和准备面试。

1. Java中的基本数据类型有哪些?

Java中的基本数据类型共有8种,分别是:

类型 大小(字节) 取值范围
boolean 1 true 或 false
byte 1 -128 到 127
char 2 0 到 65535(无符号)
short 2 -32768 到 32767
int 4 -2147483648 到 2147483647
long 8 -9223372036854775808 到 9223372036854775807
float 4 1.4E-45 到 3.4028235E38
double 8 4.9E-324 到 1.7976931348623157E308

以上是Java中基本数据类型的详细介绍。

2. Java中的String是不可变的,你知道为什么吗?

在Java中,String是一个不可变类。这意味着一旦创建了一个String对象,它的内容就不能被修改。这可以带来很多好处,比如线程安全、缓存利用等。以下是一些原因:

  • 字符串常量池:Java中的字符串字面量(如"hello")都存储在一个字符串常量池中。由于String是不可变的,所以多个引用可以共享相同的字符串常量。这样可以减少内存使用,提高性能。
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2); // 输出true
  • 安全性:String的不可变性使得它可以被安全地用作参数传递到方法中,而不必担心其值会被修改。这是因为传递给方法的是引用的副本,而不是原始字符串对象本身。
public class ImmutableExample {

    public static void main(String[] args) {
        String str = "hello";
        modifyString(str);
        System.out.println(str); // 输出hello
    }
  
    public static void modifyString(String s) {
        s = s + " world";
    }
}
  • 线程安全:由于String的不可变性,它可以在多线程环境中安全使用,而无需额外的同步机制。这是因为多个线程可以共享相同的String对象,而不用担心竞争条件。

  • 缓存利用:由于String是不可变的,所以可以被安全地用作HashMap等容器的键。这是因为键的哈希值在创建时计算,并且不会随后修改,保证了哈希表的一致性。

3. Java中的final关键字有什么用途?

在Java中,final关键字用于表示不可更改的实体。它可以用于变量、方法和类等。以下是final关键字的几个用途:

  • 不可变变量:通过使用final关键字,可以声明一个不可更改的变量。一旦赋值后,该变量的值将不再改变。
final int num = 10;
// num = 20; // 编译错误,无法修改final变量的值
  • 不可继承类:通过将类声明为final,可以阻止其他类继承它。这在某些情况下是有用的,比如为了保护类的实现细节或限制类的使用。
final class MyClass {
    // 类的内容
}

class MySubClass extends MyClass { // 编译错误,无
举报

相关推荐

0 条评论