21xrx.com
2025-06-27 14:31:24 Friday
登录
文章检索 我的文章 写文章
Java面试常见问题及代码案例
2023-06-15 07:21:37 深夜i     15     0
基本数据类型 整型 浮点型 字符型 布尔型 存储空间 精度 比特位 有效数字 单引号

在Java开发领域,面试时经常会被问到一些基础问题,因此本文将列举一些常见的Java面试问题,以及相关的代码案例。希望能够帮助读者们更好地准备和应对面试。

1. Java中的基本数据类型有哪些?它们之间有什么区别?

在Java中,基本数据类型主要包括整型、浮点型、字符型和布尔型等四种数据类型。其中,整型按照存储长度和范围分为四种类型:byte、short、int和long,分别对应1字节、2字节、4字节和8字节的存储空间。浮点型主要包括float和double两种类型,区别在于存储空间和精度的不同。字符型用于存储单个字符,用单引号括起来。布尔型用于表示逻辑上的真或假,只占用一个比特位,取值为true或false。

代码案例:

byte a = 127; // -128 ~ 127
short b = 32767; // -32768 ~ 32767
int c = 2147483647; // -2147483648 ~ 2147483647
long d = 9223372036854775807L; // -9223372036854775808 ~ 9223372036854775807
float e = 3.1415926f; // 32位精度,约可保存7位有效数字
double f = 3.141592653589793; // 64位精度,约可保存15位有效数字
char g = 'A';
boolean h = true;

2. Java中的多态是什么?怎样实现多态?

Java中的多态指的是同一种方法或操作具有多种不同的实现方式。实现多态主要有两种方式:继承和接口。

在继承方式中,父类和子类之间存在一种关系,子类继承了父类的属性和方法,并可以对其进行覆盖或扩展。在调用子类对象的方法时,会先找到子类中是否有该方法实现,如果没有则顺着继承链向上查找,直到找到该方法的实现为止。

在接口方式中,一个类可以实现多个接口,把实现接口的功能作为类的行为。不同的类可以实现同一接口,使得它们可以用相同的方式进行操作,但具体的实现方式可以不同。在调用实现接口的类的方法时,会根据对象的实际类型来确定调用哪个类的实现方法。

代码案例:

// 继承
class Animal {
  public void move() {
    System.out.println("动物在移动");
  }
}
class Dog extends Animal {
  public void move() {
    System.out.println("狗在奔跑");
  }
}
class Cat extends Animal {
  public void move() {
    System.out.println("猫在走路");
  }
}
public class Test {
  public static void main(String[] args) {
    Animal a = new Dog();
    Animal b = new Cat();
    a.move();
    b.move();
  }
}
// 接口
interface Shape {
  public void draw();
}
class Circle implements Shape {
  public void draw() {
    System.out.println("绘制圆形");
  }
}
class Rectangle implements Shape {
  public void draw() {
    System.out.println("绘制矩形");
  }
}
public class Test {
  public static void main(String[] args) {
    Shape c = new Circle();
    Shape r = new Rectangle();
    c.draw();
    r.draw();
  }
}

关键词:多态、继承、接口、覆盖、扩展、继承链、实际类型、接口实现

3. Java中的输入输出流有哪些?它们之间有什么区别?

Java中的输入输出流是用来实现数据的读写操作的。常用的输入输出流包括字节流、字符流和标准输入输出流。

字节流按照读写的单位不同分为输入字节流和输出字节流。输入字节流主要用于读取文件或网络数据,而输出字节流主要用于将数据写入到文件或发送到网络。常用的字节流有InputStream和OutputStream。

字符流按照读写的单位不同分为输入字符流和输出字符流。与字节流不同的是,字符流处理的是字符数据,它能够自动进行编码转换,而字节流则需要手动进行编解码。常用的字符流有Reader和Writer。

标准输入输出流分别是System.in和System.out,它们可以进行控制台输入输出。其中System.in是一个InputStream对象,而System.out是一个PrintStream对象。

代码案例:

// 字节流
import java.io.*;
public class Test {
  public static void main(String[] args) throws Exception {
    File file = new File("test.txt");
    FileOutputStream fos = new FileOutputStream(file);
    fos.write('A');
    fos.close();
    FileInputStream fis = new FileInputStream(file);
    int b = fis.read();
    System.out.println((char)b);
    fis.close();
  }
}
// 字符流
import java.io.*;
public class Test {
  public static void main(String[] args) throws Exception {
    File file = new File("test.txt");
    FileWriter fw = new FileWriter(file);
    fw.write('A');
    fw.close();
    FileReader fr = new FileReader(file);
    int c = fr.read();
    System.out.println((char)c);
    fr.close();
  }
}
// 标准输入输出流
import java.util.Scanner;
public class Test {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入一个数字:");
    int a = scanner.nextInt();
    System.out.println("您输入的数字为:" + a);
    System.out.println("Hello, World!");
  }
}

关键词:输入输出流、字节流、字符流、自动编码转换、控制台输入输出、PrintStream

  
  

评论区