
java
hy_小小可
爱好编程的小菜鸟
展开
-
异常的基本用法
异常是什么? 异常是程序运行时出现错误之后的一种通知机制 Java中的异常有很多种,针对不同种类的异常,可以有不同的处理方式 如果在代码中不做任何处理,此时异常就会交给JVM来处理,JVM一般处理的方式就是把程序直接强行终止 异常的应用场景 -> 防御式编程 LBYL: Look Before You Leap 三思而后行 先进行合法校验,校验通过,再进行实际操作 EAFP(推荐): It’...原创 2020-03-24 00:08:31 · 270 阅读 · 0 评论 -
抽象类和接口的使用特性
抽象类 抽象类是一种特殊的类,由于这个类太抽象了,导致这个类无法创建对象 抽象类和普通类最主要的区别就是不能实例化 从设计的角度上,有些类,本来就不应该被实例化 我们就应该把它设置成抽象类 抽象类和抽象方法存在的意义:就是为了不被其他类继承,并重写抽象方法 使用抽象类的时候 和继承 多态语法是密切相关的 抽象类是一种语法上的校验机制 是为了降低代码出错的概率 如果某个地方抽象类,去掉abstrac...原创 2020-03-19 23:52:53 · 109 阅读 · 0 评论 -
顺序表和链表的比较
顺序表 数据保存在连续的内存空间上,支持随机访问 根据下标获取\修改元素、尾插、尾删效率比较高(尾插有可能会触发扩容逻辑,这时消耗就比较大,时间复杂度变为(O(1))) 如果中间插入和删除,时间复杂度较高(O(N)) 基本操作的时间复杂度 1. 新增元素: O(N) (尾插是O(1),不考虑扩容的情况) 2. 查找元素: O(N) 3. 根据下标获取/修改元素:O(1) 4. 删除元素:O(N...原创 2020-02-28 00:21:27 · 273 阅读 · 0 评论 -
单链表(不带环、无傀儡结点)增、删、改、查代码实现和时间复杂度
单链表时间复杂度 1.单链表头插/头删和尾插/尾删比较高效,时间复杂度为O(1) 2.单链表除上述操作其他时间度都为O(N) 注:其中头删和尾删要想实现时间复杂度为O(1)代码需要优化,具体方法就是起始创建一个尾结点每次记录最后数据 单链表代码相关代码 // 一个节点 class Node { public int data; // 数据 public Node next = ...原创 2020-01-10 20:12:37 · 459 阅读 · 0 评论 -
顺序表增、删、改、插代码实现和时间复杂度
顺序表基本操作的时间复杂度: 1. 新增元素: O(N) (尾插是O(1),不考虑扩容的情况) 2. 查找元素: O(N) 3. 根据下标获取/修改元素:O(1) 4. 删除元素:O(N) 5. 清除所有元素:O(1) 顺序表最主要的特点支持随机访问能力(可以高效的按照下标来操作) 尾插的时候效率也比较高(但可能会触发扩容,如果扩容了,开销就比较大了) 顺序表增删改查的代码 public cla...原创 2020-01-10 20:02:47 · 6548 阅读 · 0 评论