Java 最常见的 208 道面试题(1-17) -- Java基础部分

1.JDK 和 JRE 有什么区别?

    JRE是java的运行环境,JDK是java开发工具包

2.== 和 equals 的区别是什么?

    ==对于基本类型是对值的比较,对于引用类型来说是比较值的引用,equals是对 值的比较

3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

    不一定,hashCode(方法)是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值,equals()是Object中的方法,默认返回==的比较值,但是两个方法都是可以可以被重写的

4.final 在 java 中有什么作用?

    final可以修饰类,方法,变量final修饰的类不可以被继承,final修饰的方法不可以被重写,final修饰的变量不可以重新赋值

5.java 中的 Math.round(-1.5) 等于多少?

    Math.round(-1.5) = -1

6.String 属于基础的数据类型吗?

    八大基础类型 int short byte charlong double float boolean, String不属于基础类型

7.java 中操作字符串都有哪些类?它们之间有什么区别?

   String,StringBuffer,StringBuilder
   String是不可变的对象,每一次对String的修改都是一次新的创建
   StringBuffer是可改变对象的,线程安全,可用于多线程
   StringBulider是可改变对象的,非线程安全,用于单线程
   操作效率  StringBuilder > StringBuffer > String

8.String str="i"与 String str=new String("i")一样吗?

   不一样, String str = "i"是创建了一个对象
                  String str = new String("i")是创建了两个对象

    String是final类型的,i放在常量池中,new String是对象,放在堆内存中

9.如何将字符串反转?

    StringBuilder.reverse()或StringBuffer.reverse()

10.String 类的常用方法都有那些?

       length(),              //计算字符串长度
       charAt(),             //截取字符串
       subString(),        //获取字符串的子串
       compareTo(),       //比较字符串
       indexOf(),            //查找子串在字符串中的位置
       toLowerCase(),    //转换成小写
       toUpperCase(),    //转换成大写
       trim(),                 //去首尾空格
       split(),                 //将字符串分割成字符串数组
       valueOf(),            //基本类型转换成字符串
       replace()

11.抽象类必须要有抽象方法吗?

      不必须

12.普通类和抽象类有哪些区别?

       抽象类必须有关键字abstract来修饰
       抽象类可以不包含抽象方法
       如果一个类包含抽象方法,则该类必须是抽象类

13.抽象类能使用 final 修饰吗?

      不能,抽象类是用来继承的,final修饰的类无法继承,方法无法重写

14.接口和抽象类有什么区别?

       接口需要实现,抽象类需要继承
       接口只能做方法声明, 抽象类可以做方法声明,也可以做方法实现
       接口里定义的变量是公共的静态变量, 抽象类中的变量是普通的变量
       接口是设计的结果,抽象类是重构的结果

15.java 中 IO 流分为几种?

       按照流的流向分为输入流跟输出流
       按照操作单元划分分为字节流跟字符流
       按照流的角色分为节点流和处理流

16.BIO、NIO、AIO 有什么区别?

       BIO(Blocking I/O):同步阻塞I/O模式, 数据的读取必须阻塞在一个线程里完成
       NIO(New Blocking):同步非阻塞I/O模式, 适用于高负载高并发的网络应用
       AIO(Asynchromous I/O):升级版的NIO

17.Files的常用方法都有哪些?

       exists()                   //检查文件路径是否存在
       createFile()            //创建文件
       createDirectory()   //创建文件夹
       delete()                  //删除文件或目录
       copy()                    //复制文件
       move()                   //移动文件
       size()                     //查看文件个数
       read()                    //读取文件
       write()                   //写入文件

发布了13 篇原创文章 · 获赞 1 · 访问量 1521

猜你喜欢

转载自blog.csdn.net/qq_42029989/article/details/104856897
今日推荐