
基础复习
文章平均质量分 68
雨雨季
滴滴滴哒哒哒`
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ConcurrentHashMap 1.7/1.8区别与优化点(手打知识核心点总结)
ConcurrentHashMap 1.7/1.8区别与优化点底层结构的区别1.71.8结构变化后带来的优化put方法对比1.71.8 底层结构的区别 1.7 segment 继承 ReentrantLock 所以每个segment就是一段锁机制,也就是所谓的分段锁 hashEntry和hashMap里的entry类似,每个segment对象里都有一个hashEnty[]数组,所以实际的数据是存储在hashEnty的的key,value中 1.7本质上就是利用重入锁实现了分段锁的机制 1.8 抛弃了segm原创 2021-08-29 14:22:06 · 675 阅读 · 0 评论 -
Java中的锁
一、Lock接口 在Java SE 5之后,并发包新增了Lock接口用来实现锁功能。 相比于synchronize关键字:Lock虽然缺少了synchronize隐式获取释放锁的便捷性,但是多出了可操作性性。 例如:可中断获取锁,超时获取锁等功能。 二、重入锁 公平锁和非公平锁:重入锁支持获取锁时公平性的选择。 公平锁就是按照线程等待的时间来获取锁,保证绝对的公平性,减少“饥饿”的发生概率。 ...原创 2019-09-28 15:25:43 · 197 阅读 · 0 评论 -
ConcurrentHashMap的实现原理
ConcurrentHashMap结构 ConcurrentHashMap由Segment数组和HashEntry数组构成。 segment继承了ReentrantLock扮演锁的角色。HashEntry用于存储键值对数据。 Segment的结构与HashMap类似,数组+链表+红黑树。 要对HashEntry数组的数据进行修改要先获得Segment锁。 ConcurrentHashMap初始化 ...原创 2019-09-28 12:07:26 · 195 阅读 · 0 评论 -
Java基础复习—注解
一、注解 注解根据是否有成员变量可分为两类:标签注解和元注解 1.标签注解 常用的基本Annotation: @Override 限定重写父类标签,在对复杂父类重写时能进行限制提示; @Deprecated 表示已过时,不可再调用否则将出错 @SuppressWarnings 抑制编译器警告 @SafeVararag 抑制堆污染警告,例如不同类型数据存入集合中产生的堆污染 @Functiona...原创 2019-04-03 20:22:26 · 274 阅读 · 0 评论 -
字符串常量池和intern()方法
一、Java中两种创建字符串对象的方式 public static void main(String[] args) { //使用字面值创建s1对象,对象实例存放于常量池; String s1 = "1"; //使用new关键字创建s2对象,对象实例存放于堆中; String s2 = new String("1"); } ...原创 2019-04-09 12:44:22 · 222 阅读 · 0 评论 -
Java基础复习—集合
一、Collection接口和Iterator 1.boolean add(Object c) 添加操作,返回布尔值表示状态; 2.void clear(); 清除集合里所有的元素,集合长度变为0; 3.boolean contains(Object c); 查找集合里是否有指定元素c,返回布尔值; 4.boolean remove(Object c); 删除数组里指定元素c,返回...原创 2019-03-28 22:20:32 · 140 阅读 · 0 评论 -
Java基础复习—异常处理
一、异常的处理机制 1.使用try…catch捕获异常 try { System.out.println(1/0); } catch (Exception e) { //打印异常的详细描述字符串 System.out.println(e.getMessage()); //打印异常的跟踪栈 ...原创 2019-04-01 23:38:25 · 182 阅读 · 0 评论 -
Java基础复习—Arrays工具类
1.数组的复制 //定义一个数组a; int[] a = new int[]{1,2,3,4}; //新定义的数组b和a的内容相同; int[] b = Arrays.copyOf(a,4); 2.数组的比较 //数组的比较 System.out.print(Arrays.equals(a, b)); 3.数组的查找 //查找到数组自定义索引位置的值,输出为3 System.out.print...原创 2019-03-27 21:47:58 · 140 阅读 · 0 评论 -
Java基本类库的复习
使用Scanner类读取文件 public class ScannerFile{ public static void main(String[] args){ Scanner sc = new Scanner(new File("file.txt")) while(sc.hasNextLine()){ System.out.println(sc.next...原创 2019-03-27 17:33:36 · 136 阅读 · 0 评论 -
Java基础复习—多线程
一、线程的创建和启动原创 2019-04-05 20:29:26 · 395 阅读 · 2 评论 -
Java基础复习—泛型
一、泛型的概念及意义 我对于泛型的理解就是在一种形式类型,可以类比于形式参数。 它的作用是在我们不清楚具体的类型时,做的一种形式定义。并且在这种定义下可以进行多种类型的定义。 二、泛型的作用域 泛型可以作用于:1.类 2.接口 3.方法; 1.泛型类 泛型类中最经典的就是各种容器类:set、list、map; 在这些类中提供了对不同类型的相同方法。 泛型类是在实例化类的时候指定泛型的具体类...原创 2019-03-31 18:38:14 · 209 阅读 · 0 评论 -
Java基础复习—输入/输出
1.File类 文件名相关的方法 String getName() 返回File对象的文件名 String getPath() 返回File对象的相对路径 File getAbsoluteFile() 返回File对象的绝对路径 String getParent() 返回上一级父类名 文件检测相关的方法 boolean exists() 判断File对象所对应的的文件是否存在 boolean...原创 2019-04-04 12:54:09 · 165 阅读 · 0 评论 -
Java中基本类型的转换和String类型
基本类型转String类型 利用String类型的重载方法; (注意这是属于String的方法) String a = String.valueOf(123); 普通的连接方法; String a = “” + (123); 利用包装类的toString方法 (注意这是属于包装类的方法) String a = Integer.toString(int a); String类...原创 2019-03-25 22:43:54 · 336 阅读 · 0 评论 -
Java继承多态总结。及this,static,super的用法。
欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体...原创 2019-03-25 20:57:19 · 267 阅读 · 0 评论