文章分类 - java学习
java学习,根据狂神教程,学习了用Typora写博客
摘要:TreeMap 实现了SortedMap接口(是Map的子接口),可以对key自动排序 实现TreeMap需要继承Comparable接口,重写CompareTo方法 或者在创建集合的时候使用new Comparator来设置比较规则 TreeMap使用: 创建集合,并使用Comparator设定比
阅读全文
摘要:HashMap源码 HashMap的初始容量大小:1<<4 HashMap的最大容量:1<<30 默认加载因子:0.75f(即大于75%就扩容) jdk1.8当链表大于8时,调整为红黑树 jdk1.8当链表小于6时,调整为链表 总结: (1)HashMap刚创建时,table是null, 为了节省空
阅读全文
摘要:Comparabator接口 可以不实现Comparable接口,直接在创建集合的时候用匿名内部类的方法使用Comparator接口制定规则.创建集合的时候在实例化的括号里new Comparator<数据类型>,然后再制定比较规则 //创建集合,并指定比较规则 TreeSet<Person>per
阅读全文
摘要:TreeSet 基于排列顺序实现元素不重复 实现了SortedSet接口,对集合元素自动排序 元素对象的类型必须实现Comparable接口,指定排序规则 通过CompareTo方法确定是否为重复元素 TreeSet简单使用(存储简单类型) //创建集合 TreeSet<String> treeSe
阅读全文
摘要:HashSet 存储结构:哈希表(数组+链表+红黑树) 存储过程: (1)根据HashCode计算保存的位置,如果此位置为空,则直接保存,如果不为空,则执行第二步 (2)执行equals方法,如果equals方法为true,则认为是重复值,否则将形成链表 注意: 元素出现重复,如果想让其判定为相同元
阅读全文
摘要:泛型集合 概念: 参数化类型,类型安全的集合强制集合元素的类型必须一致 特点 : 编译时即可检查,而非运行时抛出异常 访问时,不必类型转换(拆箱) 不同泛型之间引用不能互相赋值,泛型不存在多态 使用: //定义泛型类 ArrayList<String> arrayList=new ArrayList
阅读全文
摘要:泛型接口 定义语法: 接口名 /* 泛型接口 语法:接口名<T> 不能使用泛型创建静态常量 */ public interface Interface<T> { String name="张三"; T server(T t); } 使用 使用方式一:实现前知道类型,直接在实现的接口名后面用<数据类型
阅读全文
摘要:ArrayList和LinkedList的区别 ArrayList:数组,必须开辟连续空间 LinkedList:双向链表,无需开辟连续空间 泛型结构 java泛型是JDK1.5中引入的新特性,其本质是参数化类型,把类型作为参数传递. 常见的有泛型类,泛型接口,泛型方法. 语法 <T,....> T
阅读全文
摘要:ArrayList源码分析 DEFAULT_CAPACITY = 10:默认容量大小(如果没有向集合中添加任何元素,那它的容量就是0),添加一个任意元素之后,长度就变成10,每次扩容大小是原来的1.5倍 elementData:存放元素的数组 size:实际的元素个数 add():添加元素 Vect
阅读全文
摘要:List子接口 简介 有序,有下标,元素可重复 方法: 除了Collection所有的方法之外,还有特有的方法 void add(int index,object o)//在index的位置插入对象o boolean addAll(int index,Collection c)//将一整个集合元素插
阅读全文
摘要:Collection父接口 特点:代表一组任意类型的对象,无序、无下标、不可重复 方法: boolean add(Object obj)//添加一个对象 boolean addAll(Collection c)//将一个集合中的所有对象添加到此集合中 void clean()//清空此集合中的所有对
阅读全文
摘要:集合 对象的容器,定义了多个对象进行操作的常用方法。可实现数组的功能 和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 集合包的位置:java.util.* Collection体系集合 该体系的根接口,代表一组数据,称为“集合” List接口特点:
阅读全文
摘要:异常处理机制 抛出异常 捕获异常 异常处理关键字: try、catch、finally、throw、throws 语法: try{ //需要判断是否有异常的代码 } catch(异常类型 异常名称){ //异常后将执行的代码 } finally{ //finally中的代码不管有没有异常都会执行,一
阅读全文
摘要:接口 使用interface定义 本质是契约,就想人间的法律,制定好之后大家都需要遵守 接口就是规范,定义的是一组规则,体现了现实生活中的如果你是。。。就必须能。。。 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范,自己无法写方法,约束和实现的分离 //类可以实现接口,
阅读全文
摘要:接口 使用interface定义 本质是契约,就想人间的法律,制定好之后大家都需要遵守 接口就是规范,定义的是一组规则,体现了现实生活中的如果你是。。。就必须能。。。 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范,自己无法写方法,约束和实现的分离 //类可以实现接口,
阅读全文
摘要:多态相关知识 转型 向上转型:子类转换为父类,可能会丢失自己本来的方法 向下转型:父类转换为子类,使父类可以使用子类特有的方法,需要强制类型转换 子类 实例化子类名=(子类)需要转换的实例化父类名 或者 ((子类)需要转换的实例化父类名).子类方法; instanceof 判断一个对象与类是否有继承
阅读全文
摘要:重写 子类中出现了与父类一模一样的方法声明 用处:父类的方法子类不一定需要,或者不一定满足,用来重写父类的方法 需要有继承关系,重写是子类重写父类的方法,与属性无关 方法名必须相同 参数列表必须一样 修饰符:范围可以扩大,但是不能缩小:public>protected>default>excepti
阅读全文
摘要:创建对象时内存分析 类与对象小结 类就是一类东西,比如人类; 对象就是具体的某个人,比如老甘; 方法就是完成某件的功能,比如喝酒; 而方法内,就是一些东西,类似于很多步骤,来完成这个特定的功能,比如去喝酒的地方,点酒点菜,喝酒等等,共同组成喝酒这个方法 封装 隐藏对象的属性和实现细节,仅对外公开接口
阅读全文
摘要:面向对象编程 面向过程思想 步骤简单清晰,第一步做什么,第二步做什么 面向过程适合处理一些简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索 面向对象适合处理复杂的问题,适合处理需要多人协作
阅读全文
摘要:冒泡排序 int[] array = {15, 12,5,23,54,3,18,234,-2,1,43,18,9,11};//用于排序的数组 int cen=0;//定义一个中间数,用于交换 for (int i = array.length-1; i >= 0; i--)//外循环,用来控制每一个
阅读全文