Hi! 我是小小,今天的主要内容是讲解一份Java工程师必备面试题,学会了这些面试题,面试至少三万起步。

File常用方法有哪些

  1. Files.exists() 检测文件路径是否存在
  2. Files.createFile() 用于创建文件
  3. Files.createDirectory() 用于创建文件夹
  4. Files.delete() 用于删除一个文件或者目录
  5. Files.copy() 用于复制文件
  6. Files.move() 用于移动文件
  7. Files.size() 查看文件个数
  8. Files.read() 读取文件
  9. Files.write() 写入文件

BIO,AIO,NIO 有什么区别

BIO,同步阻塞模型I/O模型,数据读取写入必须阻塞在一个线程内等待其完成。
NIO 同步阻塞模型,用一个线程不断的轮询模型状态,通过状态,查看下一步的操作。
AIO,异步非阻塞I/O模型,通过系统通知对应的线程处理相应的I/O.当线程处理完毕以后,会自动通知对应的模型。

Java 中的 IO 流有几种

如图所示
3W | 跟着小小学会这些 Java 工程师面试题,月薪至少 3 W插图
Java中的 IO 有五个类一个接口,OutputStream,InputStream,Writer,Reader,一个接口是 Serializable。
其分为三大类,为流部分,IO的主体部分,非流式部分,一些辅助类,其他类,相关的线程安全同步类。

接口和抽象类有什么区别

抽象类可以有默认方法的实现,其实现也是抽象的,但是接口根本不存在方法的实现。
实现抽象类必须使用关键字extends来继承,如果子类不是抽象类,必须提供抽象类中所有方法声明的实现,子类使用关键字implements关键字实现接口。
抽象类可以有构造器,但是接口不能有构造器。
抽象类可以有public,protected,default这些修饰符。
接口方法默认修饰符是public,不能使用其他修饰符。
抽象类在Java语言中表示的是一种继承关系,一个子类只能存在一个父类,但是可以有多个接口。
抽象方法比接口速度要快。

抽象类能使用final修饰吗?

不能,抽象类用于被继承,final修饰符代表不可修改,不可继承。

普通类和抽象类和接口有哪些区别

普通类可以去实例化调用。接口不能实例化调用
普通类和抽象类都可以被继承。

抽象类必须要有抽象方法吗

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

String的常用方法

length 返回长度
charAt 求字符串某一位置的字符
substring 提取子串
compareTo 进行字符串比较
concat 进行字符串连接
indexOf 字符串查找
toLowerCase 大小写转换
replace 字符串替换
trim 去除空格
split 使用str作为分隔符进行字符串分解。

字符串如何反转

使用 reverse 函数实现

public class StringReverseExample{
   public static void main(String[] args){
      String string="runoob";
      String reverse = new StringBuffer(string).reverse().toString();
      System.out.println("字符串反转前:"+string);
      System.out.println("字符串反转后:"+reverse);
   }
}

String str=”i”与 String str=new String(“i”)一样吗?

不一样,一个分配到常量池中,一个分配到堆中。

Java 操作字符串的有哪些类

String final 修饰,
StringBuffer 对字符串的操作加锁,保证线程安全
StringBuilder 不保证线程安全

String 属于基础数据类型吗

不属于,属于一个类,是java编程语言中的字符串。

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

值为-1,0.5的时候向右取整,直接舍弃0.5

final 在 java 中有什么作用?

final 关键字可以用来修饰类,方法和变量。当用final修饰一个类的时候,表明这个类不能被继承,也就是说,如果一个类里永远不然他被继承,就用final进行修饰

hashCode相同,equesh 一定相同吗?

0、hashCode()返回该对象的哈希码值;equals()返回两个对象是否相等。

1、HashCode 用于在散列的存储结构中确定对象的存储地址。

2、如果两个对象equals()相等,那么两个对象的hashCode()方法返回的结果也必然相等。

3、如果两个对象的 hashCode()相同,则 equals()却不一定相等。

4、如果重写equals()方法,必须重写hashCode()方法,以保证equals方法相等时两个对象hashcode返回相同的值。(API上有标注:请注意,通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等的对象必须具有相等的哈希代码。)

JDK 和 JRE 的区别

JDK Java 开发工具包
JRE Java 运行环境。

关于作者

我是小小,一枚双鱼座的程序猿,我是小小,我们下期再见。