当前位置: 首页 > news >正文

java基础面试题5道开胃菜(四)

1. Java中的switch语句是否支持字符串?

答案
从Java 7开始,switch语句支持字符串作为条件表达式。字符串的比较基于equals()方法。
示例

String day = "Monday";

switch (day) {
    case "Monday":
        System.out.println("First day of the week");
        break;
    case "Tuesday":
        System.out.println("Second day of the week");
        break;
    default:
        System.out.println("Other day");
}

注意switch语句中的字符串比较是基于equals()方法,因此比较的是字符串的内容,而不是引用。

2. Java中的Integerint有什么区别?

答案

  • int

    • 是Java的基本数据类型之一,占用4个字节(32位)。
    • 只能存储整数值,不能调用方法或继承。
    • 示例:
      int num = 10;
      
  • Integer

    • int的包装类,属于java.lang包。
    • 可以调用方法,例如toString()valueOf()等。
    • 支持自动装箱(autoboxing)和自动拆箱(unboxing)。
    • 示例:
      Integer num = 10; // 自动装箱
      int value = num; // 自动拆箱
      

总结int是基本数据类型,而Integer是包装类,支持更多功能但可能会带来额外的性能开销。

3. Java中的enum是什么?如何使用?

答案
enum是Java 5引入的一种特殊的数据类型,用于定义一组常量。enum可以包含方法、字段和构造器。
示例

public enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;

    public String getDescription() {
        switch (this) {
            case MONDAY: return "First day of the week";
            case TUESDAY: return "Second day of the week";
            case WEDNESDAY: return "Middle of the week";
            case THURSDAY: return "Almost weekend";
            case FRIDAY: return "Weekend is coming";
            case SATURDAY: return "Weekend!";
            case SUNDAY: return "Last day of the week";
            default: return "Unknown day";
        }
    }
}

public class EnumExample {
    public static void main(String[] args) {
        Day day = Day.MONDAY;
        System.out.println(day.getDescription());
    }
}

输出

First day of the week

4. Java中的try-with-resources是什么?

答案
try-with-resources是Java 7引入的一种语法糖,用于自动关闭实现了AutoCloseable接口的资源(如文件流、数据库连接等)。
示例

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class TryWithResourcesExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

优点

  • 自动关闭资源,避免忘记调用close()方法。
  • 减少代码冗余,提高代码可读性。

5. Java中的ComparableComparator有什么区别?

答案

  • Comparable接口

    • 用于定义对象的自然排序顺序。
    • 通过实现compareTo()方法,可以对对象进行比较。
    • 示例:
      public class Person implements Comparable<Person> {
          private String name;
          private int age;
      
          public Person(String name, int age) {
              this.name = name;
              this.age = age;
          }
      
          @Override
          public int compareTo(Person other) {
              return this.age - other.age; // 按年龄排序
          }
      }
      
  • Comparator接口

    • 用于定义对象的自定义排序顺序。
    • 通过实现compare()方法,可以对对象进行比较。
    • 示例:
      import java.util.*;
      
      public class ComparatorExample {
          public static void main(String[] args) {
              List<Person> people = Arrays.asList(
                  new Person("Alice", 30),
                  new Person("Bob", 25)
              );
      
              Collections.sort(people, new Comparator<Person>() {
                  @Override
                  public int compare(Person p1, Person p2) {
                      return p1.getName().compareTo(p2.getName()); // 按姓名排序
                  }
              });
      
              people.forEach(System.out::println);
          }
      }
      

总结

  • Comparable定义了对象的自然排序顺序。
  • Comparator定义了对象的自定义排序顺序,可以有多个。

相关文章:

  • 国产ARM主机安装Ansible
  • redis 过期键删除策略与回收策略
  • S3静态网站托管 VS CloudFront分发
  • Nginx负载均衡配置详解:轻松实现高可用与高性能
  • 【进程和线程】(面试高频考点)
  • 2025-3-6由遍历序列构造二叉树
  • 如何在Android中实现图片加载和缓存
  • 升级到Android Studio 2024.2.2 版本遇到的坑
  • 【ARM汇编】Condition Flags and Codes
  • 【存储中间件】分布式文件存储系统FastDFS
  • pytorch3d学习(二)——安装与纹理显示demo测试
  • 基于javaweb(springboot)城市地名地址信息管理系统设计和实现
  • 【算法day2】无重复字符的最长子串 两数之和
  • 算法之二维装水问题
  • 哈尔滨服务器租用的流程
  • SpringMVC学习(controller层加载控制与(业务、功能)bean加载控制、Web容器初始化配置类)(3)
  • ConcurrentHashMap实现原理
  • nginx基础http基础
  • ReentrantLock源码解析
  • PXE批量安装服务器
  • 有没有便宜做网站的 我要做个/漳州网络推广
  • 阿里云做网站需要环境/持啊传媒企业推广
  • 哪个网站做原创歌曲/抖音视频排名优化
  • php网站开发心得/百度上海分公司地址
  • 如何建立国际网站/长沙官网seo推广
  • 南宁网站制作价格/整站优化seo