网站建设与管理课程项目,时尚字体设计网站,贵金属交易网站源码,什么公司设计网站建设十一、集合体系结构和特点
Collection └ List 有索引#xff0c;存取一致#xff0c;有序#xff0c;元素允许重复 ┃ └ ArrayLIst ┃ └ LinkedList ┃ └ Vector └ Set 无索引#xff0c;无序#xff0c;元素不允许重复 └ HashSet └ TreeSet └ Linke…十一、集合体系结构和特点
Collection └ List 有索引存取一致有序元素允许重复 ┃ └ ArrayLIst ┃ └ LinkedList ┃ └ Vector └ Set 无索引无序元素不允许重复 └ HashSet └ TreeSet └ LinkedHashSet
十二、ArrayList特点扩容
特点
1.增删慢
每次删除元素都需要更改数组长度、拷贝以及移动元素位置。当然增删最后一个元素快。
2.查询快
连续空间存储数组根据地址索引能快速访问到数据。
3.可扩容/动态性
ArrayList使用动态数组作为底层的数据结构能够自动扩容、缩容
4.非线程安全
多个线程同时访问和修改同一个ArrayList实例可能会导致不可预测的结果 扩容
无参、传参为0、传列表为0时创建ArrayList容量为0添加第一个元素后容量为10下次正常扩容。
正常扩容列表满时扩容1.5倍。 十三、HashMap的原理
对于底层数据结构采用的是哈希表。
哈希表在jdk1.8之前哈希表是数组链表jdk1.8及之后哈希表是数组链表红黑树。
存取原理
首先根据键计算哈希值。
根据哈希值计算下标存入数组。
数组中如果该下标下链表为空则直接存入
如果链表不为空则产生了哈希冲突进一步判断哈希值是否相等。相等则重复了替代掉
如果不相等则存入链表后面。 取时首先计算被取元素的哈希值然后计算其在数组中的下标在下标中的链表中找到相同哈希值的元素即可取出。 在jdk1.8之前解决哈希冲突时采用的是拉链法即直接使用链表。
1.8之后解决哈希冲突用红黑树。如果链表长度大于8则扩容为红黑树如果长度小于了6则又退化为链表。
十四、什么是递归有什么优缺点
递归方法自己调用自己
优点代码简介。
缺点1.性能开销大2.栈溢出3.调试困难。
十五、IO流的分类
字符流、字节流
输入流、输出流
节点流、处理流
其中文本用字符流非文本数据、文件拷贝用字节流。 十六、多线程的实现方式
4种方式
1.继承Thread
2.实现Runnable
3.实现Callable
4.线程池
十七、线程安全问题产生的原因、解决方案
产生原因
1.有多线程要并发
2.要操作同一组数据 解决方案
加同步锁synchronized
加锁Lockjdk5之后
十八、线程池的7个参数
1.corePoolSize 核心线程数
2.maxinumPoolSize 最大线程数
3.keepAliveTime 空闲线程的存活时间。
4.unit 存活时间的单位
5.workQueue 任务队列存放被提交但是尚未被执行的任务。
6.threadFactory 生成线程池中工作线程的线程工厂。
7.handler:拒绝策略队列、线程都满了时如何处理线程。 十九、UDP和TCP协议的区别
1.UDP无连接速度快安全性低适合高速传输、实时广播通信等。
2.TCP面向连接速度慢安全性高适合传输质量要求高、大文件等的传输比如邮件发送等。
还有TCP只能是一对一的UDP支持一对一、一对多、多对一
还有TCP首部开销有20个字节UDP分组首部开销小只有8个字节
二十、什么是反射
Java中动态获取类及类的成员、方法的技术。
框架的底层都用了大量的反射。