现在做网站怎么样,wordpress克隆他人的网站,网站联盟是什么意思,网站建设 ppt1、普通类和抽象类有那些区别
普通类中不能有抽象方法#xff0c;抽象类中可以有抽象方法普通类可以直接实例化#xff0c;抽象类不能直接实例化
2、抽象类能够使用final修饰吗 不能#xff0c;抽象类是由子类继承的#xff0c;但是final修饰的类不能被继承。两者矛盾所以… 1、普通类和抽象类有那些区别
普通类中不能有抽象方法抽象类中可以有抽象方法普通类可以直接实例化抽象类不能直接实例化
2、抽象类能够使用final修饰吗 不能抽象类是由子类继承的但是final修饰的类不能被继承。两者矛盾所以抽象类不能使用final修饰
3、接口和抽象类有什么区别 接口是子类通过implement实现的抽象类需要子类使用extends来继承。 接口之间可以实现多继承子类可以进行多实现但类之间只能单继承。 接口中的方法默认修饰符是public 抽象类中方法的修饰符可以是任意类型的修饰符
4、Java中IO流分为几种
按功能分输入流input和输出流(output)
按类型来分字节流和字符流
字节流是按8位传输以字节为单位进行输入输出数据字符流是按16位传输以字节为单位进行输入输出数据
5、BIO、NIO、AIO有什么区别 BIOBlock IO同步阻塞IO,模式简单操作方便处理并发能力低 NIONon IO同步非阻塞IO 客户端和服务器通过Channel通道通讯实现了多路复用 AIOAsynchronous IO是NIO的升级也叫NIO2,实现了异步非阻塞IO异步通过事件和回调机制实现的
6、Files的常用方法有哪些
Files.exists()检验文件是否存在Files.createFile()创建文件Files.createDirectory()创建文件夹Files.delete()删除一个文件或目录Files.copy()复制文件Files.move()移动文件Files.size()获取文件个数Files.read()读取文件Files.write()写入文件
7、Java中的容器都有那些
Java容器分为Collection和Map两大类
Collection List ArrayList LinkedList Vector Stack Set HashSet LinkedHashSet TreeSet
Map HashMap LinkedHashMap TreeMap ConcurrentHashMap Hashtable
8、Collection和Collections有什么区别 Collection是一个集合的接口它提供了对集合对象进行基本操作的通用接口方法所有集合都是它的子类比如List、Set等 Collections是一个包装类包含了很多静态方法不能被实例化就像一个集合的工具类。比如排序方法Collections.sort(list)
9、List、Set、Map之间的区别是什么
List和Set是存储单例数据集合Map是以键值对的形式存储数据的
List中存储的数据是有序可以重复的Set中存储的数据无序不可以重复
Map存储的数据是无序的键是不可以重复的但是值可以重复
Set存储的数据的位置是根据元素的hashcode决定的所以对于用户来说是无序的
10、HashMap和Hashtable有什么区别 存储HashMap的key和value允许为null而Hashtable不允许 线程安全HashMap线程不安全Hashtable线程安全所有HashMap的效率要比Hashtable效率高 推荐使用在Hashtable的类注释可以看到Hashtable是保留类不建议使用推荐在单线程环境下使用Hash Map替代如果需要多线程使用则用ConcurrentHashMap替代
11、HashMap的实现原理 HashMap基于Hash算法实现的我们通过put(keyvalue)存储get(key)来获取当传入key时HahMap会根据key.hashCode()计算出hash值根据hash值将value保存在bucket里。当计算出的hash值相同时我们称之为hash冲突。如果出现hash冲突会变量该位置上的链表中的所有数据通过equals()方法来对比每个数据的key如果key相同时会进行数据覆盖如果key不同在jdk1.8以前使用的是头插法在1.8之后使用的是尾插法。另外1.8以后当链表上的节点数大于等于8并且数组长度不小于64时链表会自动转换成红黑树当链表中的数据小于8时会变成链表。
为什么要将链表转换成红黑树? 当数据量大时链表链表查询的时间复杂度为O(n)红黑数查询的时间复杂度为O(logn)最坏时间复杂度为O(algn)
如果链表数据达到8之后数组长度小于64话会先进行数组扩容直到数组长度达到64才会转成红黑树
数组扩容有两种一种时数组达到阙值时数组会扩容两倍。HashMap数组长度默认是16默认负载因子为0.75。所有刚开始阙值为12。另一种是在没有红黑树的情况下添加元素链表长度超过8数组会扩容为两倍。
HashMap的做法是用链表和红黑树存储相同hash值的value。当hash冲突的个数比较少时使用链表否则使用红黑数