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

在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

  
  

评论区

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