死锁
进程之间互相竞争资源导致的等待,在没有外力作用下,会一直等待。
互斥条件
不可剥夺
请求和保持
循环等待条件
银行家算法 当进程首次申请资源 系统会测试现存资源是否满足进程的最大需求 如果满足就分配资源 否则拒绝
当进程运行中再次申请 系统会测试进程所占用的和申请的资源之和是否大于该进程最大需求量。如果小于在检测系统所存的资源是否满足索要申请的资源
java 平台无关性 安全的内存管理和访问机制,避免了大部分的内存泄漏和指针越界,热点代码检测和编译优化,程序虽运行时长性能越快,丰富的应用接口,支持第三方类库
jvm 编译器将程序转化成字节码,字节码不仅能在任何凭条运行 还能动态的转换成本地机器码,由JVM实现。
Throwable 分为Error和Exception
error是内部资源耗尽
面向过程 软件复用和维护存在问题
面向过程强调流程化
ArrayList 是容量可变的列表 使用数组实现,扩容时复制数组
LinkedList本质上是双向链表 插入和删除快 size first last
内存溢出 是指没有足够的空间可以使用了
内存泄漏 程序在申请内存时,无法正常释放内存,内存泄漏最终的导致内存溢出
直接插入排序 是稳定的 o(n^2)
希尔排序是对直接插入排序的改进 不稳定 平均时间复杂度o(n^1.3)
选择排序是 不稳定 o(n^2)
堆排序是对直接选择排序的改进 o(nlogn),不稳定