摘要: hashmap基于哈希表的map接口实现。查询速度快。线程不安全。 底层:数组+链表 哈希冲突解决: jdk1.7:位桶+链表 jdk1.8:位桶+链表+红黑树 当链表长度超过阈值(8)时,会将链表转化为红黑树,减少查询时间。 数组长度是不改变的,集合创建后长度是可以改变的。 集合分支体系 Coll 阅读全文
posted @ 2019-07-02 22:08 hhhl 阅读(144) 评论(0) 推荐(0) 编辑
摘要: class Solution { public List> threeSum(int[] nums) { //这题采用双指针解法。 //首先对数组排序。 //然后固定第一个值i,再定义两个指针,一个low指针指向i的下一个数,一个high指针指向最后一个数 //通过三个数的和判断。因为low和high在同一层移动,所以时间复... 阅读全文
posted @ 2019-07-02 20:32 hhhl 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 线程同步条件 形成队列+锁机制 问题 上下文切换和调度延时,引起性能问题。 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置。 synchronnized synchronnized方法和synchronnized块 目标要对+效率要高 同步方法:锁的是对象的资源 如果要锁的不变量 阅读全文
posted @ 2019-07-02 20:31 hhhl 阅读(121) 评论(0) 推荐(0) 编辑
摘要: clinit:类构造器方法。在jvm进行类加载-验证-解析-初始化中的初始化阶段jvm会调用clinit方法对静态变量,静态代码块进行初始化。 init:对象构造器方法。在new一个对象调用构造方法时执行,对非静态变量初始化。 阅读全文
posted @ 2019-07-02 08:58 hhhl 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 方法重载 类中创建多个方法,具有相同的名字,但是有不同的参数和定义 方法重写 1.父类与子类之间的多态性,对父类的函数进行重新定义。 2.新方法覆盖原方法。 3.返回值类型也必须与原方法相同。 阅读全文
posted @ 2019-07-02 08:50 hhhl 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.检查类是否被加载 如果没有,限执行下相应的类加载过程; 2.为新生对象分配内存 如果堆中内存是规整的,采用指针碰撞。(所有用过的内存放在一边,空闲的内存方法另一边,中间放一个指针作为分界点的指示器,那么分配内存就是把指针向空闲空间挪动一段与对象相等的距离) 如果堆中内存不规整,采用空闲列表。虚拟 阅读全文
posted @ 2019-07-02 08:43 hhhl 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 区别: 1.抽象类可以有构造方法,接口中没有; 2.抽象类可以有普通成员变量,接口中没有; 3.抽象类可以包含静态方法,接口中没有; 4.一个类可以实现多个接口,但是只能继承一个抽象类; 相同点: 1.都可以被继承; 2.都不能实例化; 3.都可以包含方法声明; 4.派生类必须实现未实现的方法。 阅读全文
posted @ 2019-07-02 08:25 hhhl 阅读(852) 评论(0) 推荐(0) 编辑