![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
文章平均质量分 62
雄关漫道_
Just Do It
展开
-
泛型
定义泛化的类型。 包括: 泛型形参[public class ArrayList<E> ],泛型实参[ArrayList<String> list=new ArrayList<String>(); ]。 瓶子上贴标签,集合类指定存放数据的类型。取出来的时候方便知道是哪种类型。好处: ①安全 ② 避免类型转换使用:泛型类\泛型接口 泛型方法:泛型类\泛型接口 【修饰符】 class 类名 <泛型形参列表>{ } 【修饰符...原创 2021-04-22 12:48:50 · 67 阅读 · 0 评论 -
面向对象一些知识点
面向对象三大特性封装:把对象属性私有化,向外界提供一些访问该属性的方法 继承:子类继承父类的所有方法和属性,包括私有的[ 但只能拥有,不能访问 ], 多态:多种形态,具体的表现特征是编译时的类型和运行时的类型不一致[ 编译看左边,运行看右边 ]。 变量的引用形式有两种:本态引用:左边的变量与右边的对象是同一种类型。 多态引用:左边的变量是父类类型,右边的对象是子类的对象。多用可用于方法的动态绑定。多态数组[数组声明是父类的类型,实际存储的是子类的对象 ],多态参数[ 形参是父类的类型,实参是...原创 2021-04-21 23:06:00 · 62 阅读 · 0 评论 -
JDK1.8中HashMap源码追踪
几个常量默认初始容量:default_initial_capacity=(1<<4)=16 最大容量:maximum_capacity=(1<<30); 树化阈值:treeify_threshold=8:当链表的长度达到这个数值后,要考虑树化 反树化值:untreeify_threshold=6:当树中的节点个数达到这个阈值之后,要考虑变为链表。 最小树化容量:min_treeify_capacity=64。 单个链表的节点个数达到8且table的长度达到64,会...原创 2021-04-21 17:46:55 · 119 阅读 · 0 评论 -
JDK1.7的hashMap源码
public V put(K key, V value) { if (table == EMPTY_TABLE) {//判断table数组是否是空数组 inflateTable(threshold); } if (key == null) return putForNullKey(value); int hash = hash(key);//根据...原创 2021-04-21 00:04:22 · 125 阅读 · 1 评论 -
Set,Map的底层实现
Set的底层实现 1、HashSet : HashMap 2、TreeSet : TreeMap 3、LinkedHashSet: LinkedHashMap Set添加元素时用add(元素),而Map添加元素put(key,value)。 发现添加到Set中的元素,是作为底层的Map的key,那么value它们选用了一个Object类型的常量对象PRESENT。 所有的HashSet共用同一个PRESENT对象。 所有的TreeSet共用同一个PRESENT对象。 所有的Lin原创 2021-04-20 23:45:23 · 421 阅读 · 1 评论 -
List的子类源码笔记
List的Vectornew Vector(),初始化长度为10的数组,增量为0 public synchronized boolean add(E e) 。线程安全方法+synchronized锁。默认扩容为原来的2倍,如果手动指定了capacityIncrement的值,那么就可以按照指定的增量进行扩容。 public synchroniezed boolean insertElementAt (E e,int index)。① .考虑扩容 [ ensureCapacityHelper(el原创 2021-04-20 21:34:57 · 60 阅读 · 0 评论 -
多线程基础
(1)Java的程序入口是main,其实也是main线程,主线程。 线程是进程的其中一条执行路径,即一个进程至少有一个线程。那么main线程就是Java程序进程的第一个线程了。(2)如何开启main线程以外的其他线程:①继承Thread类②实现Runnable接口 ③④⑤.....待学启动线程的两种方式继承Thread类* 步骤:* (1)编写线程类去继承java.lang.Thread类* (2)必须重写父类的public void run(){}* ...原创 2021-04-13 22:53:53 · 66 阅读 · 0 评论 -
字符串
特点String类型被final修饰声明的,意味着我们不能继承String。 字符串的对象也是不可变对象,意味着一旦进行修改,就会产生新对象。 如果修改了字符串后,想要重新获取新的内容,必须重新接受。 如果程序中涉及大量的字符串修改操作,那么此时的时空消耗就比较高。可能需要考虑使用StringBuilder或StringBuffer。 String对象内部是用字符数组进行保存的。 JDK 1.9之前,有过一个Char[] value数组,JDK 1.9之后用byte[]数组。 String类的原创 2021-04-03 20:53:41 · 51 阅读 · 0 评论 -
集合
可以动态保存多个对象,使用比较方便。提供一系列方便的操作对象的方法:add,remove,set,get;集合框架体系集合框架分为两个家族:Collection(一组对象)和Map(一组映射关系 | 一组键值对)CollectionCollection是根接口,没有提供任何直接实现的。它有一些更具体的子接口,例如:List 和 Set 。public interface Collection<E> extends Iterable<E>{}/...原创 2021-04-02 11:57:10 · 75 阅读 · 0 评论 -
包装类
| 序号 | 基本数据类型 | 包装类 | 是否有缓存| ---- | ------------ | --------- | ------------------| 1 | byte | Byte | 全部缓存| 2 | short | Short | -128~127| 3 | int | Integer | -128~127| 4 |...原创 2021-04-01 15:41:29 · 57 阅读 · 0 评论