Java面试题大全带答案,阿里研发工程师Java笔试

15. java 中 IO 流分为几种?

按功能来分可以分输入流(input)和输出流(output)。从类型来分可以是字节流和字符流。

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

  • BIO的英语全称是Block IO, 同步阻塞式 IO,就是平常经常使用的传统 IO,特点是简单方便,但并发处理能力低。

  • NIO,叫New IO, 同步非阻塞 IO,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

  • AIO,Asynchronous IO, 是 NIO 的升级,实现了异步非堵塞 IO ,它是基于事件和回调机制。

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

  • Files.exists():检测路径是否存在。

  • Files.createFile():创建文件。

  • Files.createDirectory():创建文件夹。

  • Files.delete():删除文件或文件夹。

  • Files.copy():复制文件。

  • Files.move():移动文件,即复制后删除。

  • Files.size():查看文件的个数。

  • Files.read():读取文件。

  • Files.write():写入文件。


第二部分,Java的集合,也叫容器

==================================================================================

18. java 的集合容器都有哪些?

如下给出了大致的结构

  • 所有线性表对象的父类是Collection

  • 有线性表类,比如ArrayList和Set等。

  • 有键值对类,比如HashMap。

19. Collection 和 Collections 有什么区别?

  • Collection 是一个集合接口,是所有线性表对象的父类。

  • Collections是集合类的一个工具类,包含了对集合元素进行排序和线程安全等各种操作方法。

20. List、Set、Map 之间的区别是什么?

21. HashMap 和 Hashtable 有什么区别?

首先说,两者都是键值类的对象

  • HashTable线程安全的,而HashMap线程不安全的,大多数的场景是单线程环境,在单线程环境下,HashMap效率上比hashTable要高。

  • HashMap允许空键值,而hashTable不允许。

22. 如何决定使用 HashMap 还是 TreeMap?

对于在Map中进行插入、删除和定位元素这类操作,可以选HashMap。但如果你要对一个有序的key集合进行遍历,需要选TreeMap。

23. 说一下 HashMap 的实现原理?

HashMap是基于数据结构里的

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供完整的Java笔试大全答案。但是,我可以为您提供一些常见的Java笔试题类型和一些参考答案,希望对您有所帮助。 1. Java基础知识 Q:Java中的八种基本类型是什么? A:byte、short、int、long、float、double、char、boolean。 Q:什么是Java中的自动装箱和拆箱? A:自动装箱是指将基本类型自动转换为相应的包装类型,拆箱则是将包装类型自动转换为相应的基本类型。例如: ``` int a = 123; Integer b = a; // 自动装箱 int c = b; // 自动拆箱 ``` 2. 面向对象编程 Q:什么是Java中的抽象类和接口?它们有什么区别? A:抽象类是一个不能被实例化的类,它的存在只是为了被子类继承。抽象类可以包含抽象方法和非抽象方法。接口是一组方法的集合,没有实现的方法,只有方法的签名,需要实现该接口的类来实现这些方法。 区别在于,抽象类可以包含成员变量和非抽象方法,而接口只能包含常量和抽象方法。另外,一个类只能继承一个抽象类,但是可以实现多个接口。 Q:Java中的多态是什么? A:多态是指同一种行为具有多种不同的表现形式或形态。在Java中,多态可以通过继承和接口来实现。例如: ``` class Animal { void makeSound() { System.out.println("Animal"); } } class Dog extends Animal { void makeSound() { System.out.println("Dog"); } } Animal a = new Dog(); a.makeSound(); // 输出Dog ``` 3. 异常处理 Q:Java中的异常分为哪些类型? A:Java中的异常分为受检异常和非受检异常两种类型。受检异常是指必须在方法声明中声明并处理的异常,例如IOException和SQLException;非受检异常是指RuntimeException及其子类,通常是由程序错误导致的异常,例如NullPointerException和ArrayIndexOutOfBoundsException。 Q:Java中的异常处理机制是什么? A:Java中的异常处理机制包括try-catch-finally语句和throw语句。try块中包含可能抛出异常的代码,catch块用于捕获异常并处理异常,finally块中的代码总是会被执行。throw语句用于手动抛出异常。例如: ``` try { // 可能会抛出异常的代码 } catch (Exception e) { // 处理异常 } finally { // 始终会执行的代码 } ``` 以上是一些常见的Java笔试题类型和参考答案,希望能够帮助您。但是请注意,在面试或者笔试中,考官可能会根据您的回答提出更深入的问题,所以最好还是对Java的各个方面有一个全面的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值