![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础学习总结
SteinsJiang
这个作者很懒,什么都没留下…
展开
-
(总结)Java多线程_JUC原子类实现
CAS+volatile 实现JUC原子类 volatile关键字在以下情况下无法保证原子性: 对变量的写操作不依赖于当前值。 该变量没有包含在具有其他变量的不变式中 因此多线程情况下使用JUC包下的 atomic 中的原子类来确保线程安全; 而原子类的实现依赖于 volatile关键字+CAS操作; volatile为什么不能保证原子性 以自增操作 i++ 为例: 首先,i++ 操作并不是原子性的,可以分为:①读取i;②cpu进行计算 i+1;③计算结果 赋值给 i; 假设有两个线程 A &原创 2020-09-24 17:08:18 · 203 阅读 · 0 评论 -
(总结)Java相关_关键字总结
(总结)Java相关_关键字总结 final、volatile、this、super、static 借鉴:Guide哥文章:final,static,this,super 关键字总结 1.final final关键字可以用于三个地方: 用于修饰类 被final关键字修饰的类不能被继承; final类中的所有成员方法都会被隐式的指定为final方法; 类属性 被final关键字修饰的类属性,子类就不能重新赋值; 对于一个final变量如果是基本数据类型变量,数值一旦在初始化之后就不能更改,如果是原创 2020-09-14 14:37:43 · 164 阅读 · 1 评论 -
(总结)Java多线程_ThreadLocal
(总结)Java多线程_ThreadLocal 使用方式 使用ThreadLocal类来定义线程内部的共享变量,在多线程环境下,可以保证各个线程之间的变量互相隔离、相互独立。ThreadLocal实例通常来说都是private static类型的,它们希望将状态与线程进行关联。这种变量在线程的生命周期内起作用,可以减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。 通过set()/get()方法来进行变量值的设定和取出; 线程中可以创建多个ThreadLocal变量,存储在ThreadLoca原创 2020-09-17 15:26:09 · 129 阅读 · 0 评论 -
(总结)Java多线程_多线程继承结构
(总结)Java多线程_多线程继承结构 java.lang.Thread 可以将Runnable的继承类实例(可以采用lambda表达式实现匿名内部类,重写run()方法)传入Thread的构造方法中来实现多线程启动; java.util.concurrent 以下除了接口Runnable位于java.lang.Thread中,其余接口和类位于java.util.concurrent中: Callable<V>接口,获取多线程处理后的返回值<V>; FutureTask<原创 2020-09-15 12:58:09 · 200 阅读 · 0 评论 -
(总结)Java集合_2.Map&Set
(总结)Java集合_2.Map&Set 类继承结构: Map 详见: 美团技术团队:Java 8系列之重新认识HashMap 详解 HashMap 中的 hash 函数 jdk1.8 HashMap工作原理和扩容机制(源码解析) Set JAVA集合Set之HashSet详解 Java Set集合详解及Set与List的区别 Set集合是继承Collection的接口,是一个不包含重复元素的集合 实现类有三个: HashSet():底层为HashMap()实现, 实际上就是利用map的ke原创 2020-09-14 22:36:02 · 109 阅读 · 0 评论 -
(总结)Java集合_1.List
(总结)Java集合_1.List 参考: 面试题 ArrayList与LinkedList的区别 ArrayList和LinkedList对比(性能分析和实现等) 类继承结构: List ArrayList与LinkedList的区别 继承: ArrayList类继承自AbstractList抽象类,实现了List接口;LinkedList类继承了AbstractSequentialList抽象类;同时LinkedList也继承了Deque接口,能够实现双端队列; 数据结构: Arraylist原创 2020-09-14 21:31:51 · 233 阅读 · 0 评论 -
(总结)Java基础_拷贝
(总结)Java基础_拷贝 转自羊哥微信公众号,收藏学习一下: 一个工作三年的同事,居然还搞不清深拷贝、浅拷贝… 值类型 vs 引用类型 这两个概念的准确区分,对于深、浅拷贝问题的理解非常重要。 正如Java圣经《Java编程思想》第二章的标题所言,在Java中一切都可以视为对象! 所以来到Java的世界,我们要习惯用引用去操作对象。在Java中,像数组、类Class、枚举Enum、Integer包装类等等,就是典型的引用类型,所以操作时一般来说采用的也是引用传递的方式; 但是Java的语言级基础数据类型,转载 2020-09-14 15:36:17 · 80 阅读 · 0 评论 -
(总结)Java基础_类继承结构
(总结)Java基础_类继承结构 多线程类继承结构: IO流类继承结构: 容器类继承结构:原创 2020-09-14 15:02:15 · 131 阅读 · 0 评论