21xrx.com
2024-11-22 09:56:52 Friday
登录
文章检索 我的文章 写文章
Java面试:常见问题及解析
2023-06-12 21:00:47 深夜i     --     --
Java面试 数据结构 多线程 String Object 静态方法 实例方法

在企业招聘中,Java面试经常是必经之路。而在面试中针对技术岗位,考查的技能当中最基础的依然是编程语言,其中 Java 更是应用最广泛的编程语言之一。因此在这里列举一些企业常问到的 Java 面试问题,帮助读者快速整理和复习知识点,增强成功面试的信心。

1. 常见数据结构:数组、链表、栈、队列、树、图的相关操作?

数组和链表是最常用的数据结构,Java 中数组定长,而链表则可以动态添加节点。栈和队列是经典的数据结构,栈的特点是后进先出,队列的特点是先进先出。对树和图的操作,主要是遍历,最常见的有深度优先遍历和广度优先遍历。

2. 多线程的理解,创建和启动线程的方式?

多线程可以使得代码并发执行,更大化地利用系统资源。Java 支持多线程,实现方式可以通过继承 Thread 类或者实现 Runnable 接口。启动线程的方式包括继承 start() 方法,实现 Callable 接口,使用线程池等。

示例代码:


public class MyRunnable implements Runnable {

  public void run() {

    System.out.println("线程运行中");

  }

}

public class Test {

  public static void main(String [] args) {

    Thread t = new Thread(new MyRunnable());

    t.start();

  }

}

3. String 和 StringBuilder 的区别?

String 类型不可变,是 final 类型;StringBuilder 是可变的,可以进行插入、追加和删除操作,而 String 需要生成新的字符串对象进行修改。因此 StringBuilder 适合频繁对字符串进行操作的情况,而 String 适合于不需要修改的字符串。

示例代码:


String str = "hello ";

str += "world!"; // 拼接字符串,生成新的字符串对象

System.out.println(str);

StringBuilder sb = new StringBuilder("hello ");

sb.append("world!"); // 追加字符串,在原对象上修改

System.out.println(sb.toString());

4. Object 类是 Java 中的基类,为什么?

所有的类都是从 Object 类继承而来的,这是 Java 的基本设计规则之一。Object 对象提供了通用的方法,如 toString(), hashCode() 和 equals() 等,因此所有的对象都可以使用这些方法进行通用的操作。

5. 静态方法和实例方法有何区别?

静态方法是与类相关联的,不依赖于实例化的对象,可以在未创建对象的情况下直接被访问和使用;而实例方法则是完全与所属的对象相关联的,需要对对象进行实例化操作才能调用。

示例代码:


public class MyObject {

  public static void print() {

    System.out.println("这是静态方法");

  }

  public void print2() {

    System.out.println("这是实例方法");

  }

}

public class Test {

  public static void main(String [] args) {

    MyObject.print(); // 直接调用静态方法

    MyObject obj = new MyObject();

    obj.print2(); // 调用实例方法,需要创建对象

  }

}

  
  

评论区

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