21xrx.com
2024-09-17 04:18:36 Tuesday
登录
文章检索 我的文章 写文章
Java面试:常见问题解答和代码案例
2023-06-15 17:08:45 深夜i     --     --
Java面试问题 封装 继承 StringBuffer StringBuilder

Java作为一门广泛应用的编程语言,在面试过程中常被问及一些基础的问题。本文将针对常见的Java面试问题进行解答,并提供相关代码案例以供参考。

1. Java中String、StringBuffer和StringBuilder的区别是什么?

答:String类是不可变的,也就是说一旦构造了一个String对象,就无法再对它进行修改。而StringBuffer和StringBuilder类则是可变的,可以通过append()或insert()方法来增加其内容。StringBuffer和StringBuilder的主要区别在于线程安全性,前者线程安全,后者不安全但性能更高。

代码案例:

String str = "Java";

StringBuffer buffer = new StringBuffer("Java");

StringBuilder builder = new StringBuilder("Java");

str += " is awesome"; // 基于String的“+=”实际上是创建了新的字符串对象

buffer.append(" is awesome"); // 修改了原来的字符串对象

builder.append(" is awesome"); // 修改了原来的字符串对象

2. Java中的封装是什么意思?

答:封装是指隐藏对象的内部细节,并将其暴露出公共接口供外部访问。在Java中,使用private、protected和public等访问修饰符限定成员变量和方法的访问范围来实现封装。

代码案例:

public class Person {

  private int age;

  private String name;

  public Person(int age, String name)

    this.age = age;

    this.name = name;

  public int getAge()

    return age;

  public String getName()

    return name;

  public void setAge(int age)

    this.age = age;

  public void setName(String name)

    this.name = name;

}

3. Java中的继承是什么意思?

答:继承是指在已有的类基础上创建新类,并可以共享基类的属性和方法。在Java中,使用extends关键字来实现继承关系。

代码案例:

public class Animal {

  public void move() {

    System.out.println("Animal is moving...");

  }

}

public class Dog extends Animal {

  public void bark() {

    System.out.println("Dog is barking...");

  }

}

public class Main {

  public static void main(String[] args) {

    Dog dog = new Dog();

    dog.move(); // 可以调用继承自Animal类的move()方法

    dog.bark();

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复