21xrx.com
2024-12-23 00:20:32 Monday
登录
文章检索 我的文章 写文章
Java常见面试题及解答
2023-06-18 18:28:31 深夜i     --     --
Java 面试题 常见问题

在Java面试中,经常会涉及一些常见的问题,这些问题包括语法基础、面向对象、集合类、多线程等。本文将针对这些问题进行介绍与解答。

1. 语法基础

Java的语法基础包括数据类型、控制语句、运算符等。在面试中,常见的问题如:基本数据类型有哪些?自动拆箱和装箱是什么?==和equals的区别是什么?等等。

下面是部分代码案例:


//基本数据类型

byte a = 1;

short b = 2;

int c = 3;

long d = 4L;

float e = 5.0f;

double f = 6.0;

char g = 'a';

boolean h = true;

//自动拆箱和装箱

Integer i = 1; //装箱

int j = i;   //拆箱

//==和equals的区别

String str1 = new String("hello");

String str2 = new String("hello");

System.out.println(str1 == str2);//false

System.out.println(str1.equals(str2));//true

2. 面向对象

面向对象是Java语言的核心。在面试中,常见的问题如:什么是封装?什么是继承和多态?如何实现单例?等等。

下面是部分代码案例:


//封装

public class Person{

  private String name;

  private int age;

  public String getName()

    return name;

  

  public void setName(String name)

    this.name = name;

  

  public int getAge()

    return age;

  

  public void setAge(int age)

    this.age = age;

  

}

//继承和多态

public class Animal{

  public void run(){

    System.out.println("run");

  }

}

public class Cat extends Animal{

  @Override

  public void run(){

    System.out.println("cat run");

  }

}

//单例

public class Singleton{

  private static Singleton instance;

  private Singleton(){}

  public static Singleton getInstance(){

    if(instance == null){

      instance = new Singleton();

    }

    return instance;

  }

}

3. 集合类

Java的集合类是经常被面试官问到的内容。常见的问题如:ArrayList和LinkedList有什么区别?HashMap和HashTable有什么区别?等等。

下面是部分代码案例:


//ArrayList和LinkedList的区别

List list1 = new ArrayList<>();

List list2 = new LinkedList<>();

//ArrayList适合随机访问,LinkedList适合插入和删除

//HashMap和HashTable的区别

Map map1 = new HashMap<>();

Map map2 = new Hashtable<>();

//HashMap非线程安全,性能更好;HashTable线程安全,性能更差

4. 多线程

多线程是面试中难度较高的问题之一。常见的问题如:什么是线程?线程有哪些状态?如何创建线程?等等。

下面是部分代码案例:


//创建线程

class MyThread extends Thread{

  @Override

  public void run(){

    System.out.println("MyThread is running");

  }

}

public class Test{

  public static void main(String[] args){

    MyThread thread = new MyThread();

    thread.start();

  }

}

  
  

评论区

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