1.接口和抽象类的区别?
- 默认方法实现:抽象类有默认方法实现,接口没有
- 实现方式:抽象类通过extend继承,接口通过implement实现
- 实现个数:接口可以多实现,抽象类只能单继承
- main方法:抽象类可以有main方法,接口中不能有main方法
- 构造函数:抽象类有构造函数,接口没有
- 访问修饰符:抽象类可以任何修饰符,接口默认修饰符为public
2.&和&&的区别?
&和&&都是Java的基本运算符,表示逻辑运算符与(and),当表达式两边都为true时,表达式为true,当表达式一方为false时,整个表达式为false,&&还具有短路功能即表达式一方为false时其他表达式不计算,整个表达式为false,&无论第一个表达式是否为false第二个表达式都将进行计算
3.java中的Io流分为几类?
按照功能分为:输入流和输出流
按照类型分为:字节流和字符流
4.字节流和字符流的区别?
字节流的基本单元为字节
字符流的基本单元为unicode码元
字节流默认不使用缓冲区
字符流使用缓冲区
字节流通常读取二进制的数据,实际上它可以处理任何类型数据,但它不支持直接读取和写入unicode码元
字符流可以处理文本数据类型,支持读取和写入unicode码元
5.BIO ,NIO ,AIO的区别?
BIO:同步阻塞io,我们所说的传统io,特点是模式使用简单,处理并发能力低
NIO:同步非阻塞io,bio的升级,客户端和服务器端通过channel通讯,实现多路复用
AIO:异步非阻塞io,nio的升级又称nio2,异步io的操作基于事件和回调机制
6.Files的常用方法?
- files.read ()读取文件
- files.copy () 复制文件
- files.createfiles ()创建文件
- files.createdirectory ()创建文件夹
- files.move ()移动文件
- files.delete()删除文件
- files.size()获取文件个数
- files.write()写文件
- files.exists()检查文件是否存在
7.常见的数据结构?
1.线性结构
数组类型
链表
2.栈和队列
3.数和二叉树
树
二叉树的概念
二叉查找树
平衡二叉树
红黑树
8.java容器有哪些?
Java容器分为collection和map两大类
collection:
list,linkedlist ,arraylist,vector,stack
set, hashset,treeset,linkedhashset
map:
hashmap ,treemap,linkedhashmap,hashtable
9.collection和collections的区别?
collection是一个集合接口,提供了对集合对象进行操作的基本通用接口方法,所有的集合对象都是他的子类,例如list和set
collections是一个包装类,包含很多静态方法,不能被实例化,就像是一个工具类提供了排序,集合反转复用等方法
10.List,set,map之间有什么区别?
List,set,map是Java的集合三大类,都是接口都有位于java.util中。它们有各自的实现类,set的实现类是hashset和treeset,list的实现类是arraylist,map的实现类是hashmap 和treemap
set中的对象无需,不允许重复,但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator<Type>接口来自定义排序方式。
List中的对象有序,可重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。
Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复