摘要:
java克隆 为什么需要克隆 我们在很多时候需要使用一个对象去记录另外一个对象的当前状态,对象中可能会有很多属性,如果我们一个一个去设置,不仅不方便,而且效率很低,我们看一个初学者可能遇到的问题 也许有的人认为Person p2=p1这样的方式就可以克隆一个对象,这种想法是错误的,这种使用等号赋值的 阅读全文
摘要:
链表 链表是一个以节点存储的有序列表,每个节点包括data域和next域,data域是用来保存值的,next域是保存下一个节点的地址,根据有无头节点,链表可分为带头节点的链表和不带头节点的链表 单链表 不带头节点的单链表 带头节点的单链表 双链表 分析为什么要双链表 1. 单链表每个节点只保存了后继 阅读全文
摘要:
队列 队列是用数组或链表实现的,遵循先进先出规则的一个有序列表 使用数组模拟队列 分析:虽然队列中的元素已经全部出队,但是由于我们的队列是使用数组模拟的,而且每次入队的时候,头指定都后移,当我们入队次数增加,总有一时刻,头指针指向数组最大下标,尽管我们有出队,但是任然不能入队元素,我们可以使用数组模 阅读全文
摘要:
稀疏数组 介绍 当我们在处理如五子棋这类棋盘问题时,只有棋盘中的黑子和白字位置对于我们来说是由具体意义的,当一个二维数组中的绝大多数值都是某一个值时,我们选定位默认值,我们可以使用稀疏数组来保存,以达到节约空间的目的 处理过程 1. 创建一个n+1行3列的二维数组(n为待压缩数组中不同于选定默认值的 阅读全文
摘要:
数据库隔离级别 如果没有隔离级别会出现的问题 脏读 意思是读取到了事务正在修改的数据,如果事务回滚,那么拿到的数据就是错误的 时间 事务A 事务B 1 开始事务 2 读取quantity为5 3 修改quantity为4 4 开始事务 5 读取到quantity为4 6 发生错误,回滚,quanti 阅读全文
摘要:
时间 java8以前使用的时间很多方法都已经废弃了,而且不是线程安全的,java8提供了一系列的时间类,这些时间类都是线程安全的 LocalDate、LocalTime、LocalDateTime 这三个关于时间的类在使用上都类似 时间戳 Duration获取时间间隔 Peroid获取日期间隔 Te 阅读全文
摘要:
接口默认方法和静态方法 默认方法 如果类的父类的方法和接口中方法名字相同且参数一致,子类还没有重写方法,那么默认使用父类的方法,即类优先 如果类实现的接口中有名字相同参数类型一致的默认方法,那么在类中必须重写 静态方法 重复注解 以前我们是这样使用注解,当要在一个方法上标注两个相同的注解时会报错,j 阅读全文
摘要:
Stream 介绍 java8添加了一个抽象流Stream,可以让我们像写sql一样操作集合元素。Stream将要处理的元素看做是一种流, 在管道中传输,并进行处理,最后由终止操作得到处理的结果。 什么是Stream? Stream是一个来自特定元素队列并支持聚合操作 元素是具体类型的对象,形成一个 阅读全文
摘要:
Lambda表达式 简介 Lambda表达式可以取代大部分匿名内部类,可以优化代码结构。 可以取代匿名内部类?什么意思呢? 在以前如果我们需要对集合排序,我们是这样做: 使用Arrays类提供的sort方法传入一个指定排序规则的Comparator,如果我们使用匿名内部类的话,可以看到整个内部类中只 阅读全文
摘要:
equals和hashCode方法 equals 我们知道equals是用来比较两个对象是否相等的,比如我们常用的String.equals方法 hashCode方法 hashCode方法是通过一定的算法得到一个hash值,一般配合散列集合一起使用,如HashMap、HashSet都是不可以存放重复 阅读全文