1. 目录

  1. 目录 1
  2. JVM 19

2.1.    线程      20

  1. JVM 内存区域 21

    1. 程序计数器(线程私有) 22
    2. 虚拟机栈(线程私有) 22
    3. 本地方法区(线程私有) 23
    4. 堆(Heap-线程共享)-运行时数据区 23
    5. 方法区/永久代(线程共享) 23
  2. JVM 运行时内存 24
    1. 新生代 24

      1. Eden 区 24
      2. ServivorFrom 24
      3. ServivorTo 24
      4. MinorGC 的过程(复制->清空->互换) 24

1:eden、servicorFrom 复制到 ServicorTo,年龄+1.................................................................................................................................................................. 25

2:清空 eden、servicorFrom.................................................................................................................................................................. 25

3:ServicorTo 和 ServicorFrom 互换................................................................................. 25

    1. 老年代 25
    2. 永久代 25
      1. JAVA8 与元数据 25
  1. 垃圾回收与算法 26
    1. 如何确定垃圾 26

      1. 引用计数法 26
      2. 可达性分析 26
    2. 标记清除算法(Mark-Sweep 27
    3. 复制算法(copying 27
    4. 标记整理算法(Mark-Compact) 28
    5. 分代收集算法 29
      1. 新生代与复制算法 29
      2. 老年代与标记复制算法 29
  2. JAVA 四中引用类型 30
    1. 强引用 30
    2. 软引用 30
    3. 弱引用 30
    4. 虚引用 30
  3. GC 分代收集算法 VS 分区收集算法 30
    1. 分代收集算法 30

      1. 在新生代-复制算法 30
      2. 在老年代-标记整理算法 30
    2. 分区收集算法 31
  4. GC 垃圾收集器 31
    1. Serial 垃圾收集器(单线程、复制算法) 31
    2. ParNew 垃圾收集器(Serial+多线程) 31
    3. Parallel Scavenge 收集器(多线程复制算法、高效) 32
    4. Serial Old 收集器(单线程标记整理算法) 32
    5. Parallel Old 收集器(多线程标记整理算法) 33
    6. CMS 收集器(多线程标记清除算法) 33
      1. 初始标记 33
      1. 并发标记 34
      2. 重新标记 34
      3. 并发清除 34
    1. G1 收集器 34
  1. JAVA IO/NIO 34
    1. 阻塞 IO 模型 34
    2. 非阻塞 IO 模型 35
    3. 多路复用 IO 模型 35
    4. 信号驱动 IO 模型 36
    5. 异步 IO 模型 36
      1. JAVA IO 包 36
      2. JAVA NIO 37
        1. NIO 的缓冲区 38
        2. NIO 的非阻塞 38
      3. Channel 40
      4. Buffer 40
      5. Selector 40
    1. JVM 类加载机制 41

2.9.1.1.   加载................................................................................... 41

2.9.1.2.   验证................................................................................... 41

2.9.1.3.   准备................................................................................... 41

2.9.1.4.   解析................................................................................... 41

      1. 符号引用 42
      2. 直接引用 42
      3. 初始化 42
      4. 类构造器<client> 42
    1. 类加载器 42
      1. 启动类加载器(Bootstrap ClassLoader) 43
      2. 扩展类加载器(Extension ClassLoader) 43
      3. 应用程序类加载器(Application ClassLoader): 43
    2. 双亲委派 43
    3. OSGI(动态模型系统) 44
      1. 动态改变构造 44
      2. 模块化编程与热插拔 44
  1. JAVA 集合 45
    1. 接口继承关系和实现 45
    2. LIST 47
      1. ArrayList(数组) 47
      2. Vector(数组实现、线程同步) 47
      3. LinkList(链表) 47
    3. SET 48
      1. HashSet(Hash 表) 48
      2. TreeSet(二叉树) 49
      3. LinkHashSet(HashSet+LinkedHashMap) 49
    4. MAP 50
      1. HashMap(数组+链表+红黑树) 50

        1. JAVA7 实现 50
        2. JAVA8 实现 51
      2. ConcurrentHashMap 51
        1. Segment 段 51
        2. 线程安全(Segment 继承 ReentrantLock 加锁) 51

3.4.2.3.   并行度(默认 16)................................................................................... 52

3.4.2.4.   Java8 实现 (引入了红黑树)................................................................................... 52

    1. HashTable(线程安全) 53
    2. TreeMap(可排序) 53
    3. LinkHashMap(记录插入顺序) 53
  1. JAVA 多线程并发 54
    1. JAVA 并发知识库 54
    2. JAVA 线程实现/创建方式 54
      1. 继承 Thread 类 54
      2. 实现 Runnable 接口。 54
      3. ExecutorService、Callable<Class>、Future 有返回值线程 55
      4. 基于线程池的方式 56
    3. 4 种线程池 56
      1. newCachedThreadPool 57
      2. newFixedThreadPool 57
      3. newScheduledThreadPool 58
      4. newSingleThreadExecutor 58
    4. 线程生命周期(状态) 58
      1. 新建状态(NEW) 58
      2. 就绪状态(RUNNABLE): 59
      3. 运行状态(RUNNING): 59
      4. 阻塞状态(BLOCKED): 59

等待阻塞(o.wait->等待对列):................................................................................. 59

同步阻塞(lock->锁池).................................................................................................................................................................. 59

其他阻塞(sleep/join).................................................................................................................................................................. 59

  1. 线程死亡(DEAD) 59

正常结束................................................................................. 59

异常结束................................................................................. 59

调用 stop.................................................................................................................................................................. 59

  1. 终止线程 4 种方式 60

    1. 正常运行结束 60
    2. 使用退出标志退出线程 60
    3. Interrupt 方法结束线程 60
    4. stop 方法终止线程(线程不安全) 61
  2. sleep 与 wait 区别 61
  3. start 与 run 区别 62
  4. JAVA 后台线程 62
  5. JAVA 锁 63
    1. 乐观锁 63
    2. 悲观锁 63
    3. 自旋锁 63

自旋锁的优缺点................................................................................. 63

自旋锁时间阈值(1.6 引入了适应性自旋锁)................................................................................. 63

自旋锁的开启................................................................................. 64

  1. Synchronized 同步锁 64

Synchronized 作用范围................................................................................. 64

Synchronized 核心组件................................................................................. 64

Synchronized 实现................................................................................. 64

  1. ReentrantLock 66

Lock 接口的主要方法................................................................................. 66

非公平锁................................................................................. 66

公平锁................................................................................. 67

ReentrantLock 与 synchronized.................................................................................................................................................................. 67

ReentrantLock 实现................................................................................. 67

Condition 类和 Object 类锁方法区别区别................................................................................. 68

tryLock 和 lock 和lockInterruptibly 的区别................................................................................. 68

  1. Semaphore 信号量 68

实现互斥锁(计数器为 1)................................................................................. 68

代码实现................................................................................. 68

Semaphore 与 ReentrantLock.................................................................................................................................................................. 69

【无标题】java核心资料相关推荐

  1. 由P8架构师整理,283页的Java核心资料pdf文档,学会后月薪4W

    java思维导图 前言: 这份长达283页的pdf有阿里的大佬精心整理,干货满满.包含了2020年java有关的核心知识点,分享给大家 这份PDF面经知识点包括了五个大部分,26个知识点: Java部 ...

  2. 2020最新java学习资料,全套源码无加密网盘下载

    点击上方蓝字关注我们! 前言--------2020最新java学习资料完整版,全套源码无加密网盘下载 最近小编整理了三套java的学习资料(视频+资料+源码),无加密: 1.2020java会员版 ...

  3. 【无标题】JAVA概述

    JAVA 语言是一种无关于底层硬件.只需一次编写就可在各个环境运行的一种计算机高级语言和平台.JAVA 与生俱来就拥有联系各个网络平台的能力,是真正实现网络实践性的一种语言.从JAVA 的发展趋势来看 ...

  4. 最全最新的的Java核心知识点整理!!! 【推荐】

    前言: 想要文档版的小伙伴们可以私信我领取哦,更加清晰 一目了然 ~ Java核心知识点! 博客整理出来的稍微有点乱~ 目录 目录 -1 JVM - 19 2.1. 线程 - 20 2.2. JVM ...

  5. 进大厂一条龙服务(Java核心面试知识点+一线大厂Java笔试面试题+月薪3万Java优秀简历模板),看这篇就够了

    你有没有觉得Java_工程师竞争压力大.就业困难?不知道面试Java工程师应该准备些什么?.. 现在一切都解决了!你想要的干货知识和面试题统统在这,还有月薪3万Java优秀简历模板,快拿回去嚼烂吧! ...

  6. java获取当前日期的前一天日期,Java核心知识点

    一.分布式架构学习路线图 据统计,人的阅读时间在20分钟以内是能够达到全身心投入的,顾文章单张篇幅以后会尽量缩短,但更新会尽量相应频繁一些. 二.计算机软件发展历史 首先我们了解下计算机软件的发展历史 ...

  7. 牛逼了!8000页Java 核心知识点+面试题整理,超全!

    今年金九银十要来了,很多小伙伴都在准备跳槽.小编为大家汇总了份Java核心知识点面试题和答案,基本上涵盖了所有后端技术栈,相信可以帮助大家拿到自己心仪的offer. 截了几张图,大家可以仔细查看左边的 ...

  8. 31 道 Java 核心面试题,统统打包给你!

    作者 | 沉默王二 来源 | 沉默王二 责编 | 王晓曼 二哥,你好,找工作找了仨月,还没有找到,很焦虑,我该怎么办呢?你那有没有 Java 方面的面试题可以分享一波啊? 以上是读者田田给我发的私信, ...

  9. Android 置Activity全屏和无标题

    今天,实在没有什么好些写的内容,所以在网上找了很久,才决定写这个博客.比较简单,还是想保持写博客的习惯. 一.在代码里设置全屏. Activity设置全屏和无标题栏,要用到andorid.view.W ...

最新文章

  1. 使用MyBatis简化枚举类值的存储和读取
  2. 视频大变革:需要技术,也需要情怀
  3. JSP/ Servlet常见的中文乱码原因
  4. OpenCV-Python 中文教程(搬运)目录
  5. C语言课后习题(28)
  6. php的floorval函数,php 取整函数(floor,ceil,round,intval)_PHP教程
  7. 2019-02-25 SQL:cast(itemvalue as decimal(19,4))
  8. python深度学习库tensorflow——实现FC卷积神经网络识别mnist手写体
  9. 让你的模型acc更上一层楼:模型trick和数据方法总结
  10. 特稿:OceanBase 连破纪录的背后,是技术人的砥砺前行 | 凌云时刻
  11. 安装pgadmin3
  12. UE4入门实例31(Unreal制作炫酷高效黑洞粒子)
  13. 链表节点被删除时的资源释放
  14. flash for linux安装教程,Flash Player 9 FOR Linux 的安装
  15. shiro 自定义FormAuthenticationFilter,记住我
  16. fabric2.0 概念, peer、账本和排序服务
  17. 绿地签约十家酒店项目,轻资产输出步伐再提档
  18. Win10 WSL2 linux 子系统安装Docker
  19. os.listdir()详解
  20. 良心推荐:看完这20部BBC神级纪录片,英语水平提升几个Level!

热门文章

  1. 列举所有的“四叶玫瑰数”,并统计四叶玫瑰数的个数 四叶玫瑰数:是一个四位数,各个位的数字的四次方的和,为该数字本身
  2. 认真推荐几个高质量的原创公众号
  3. MySQL的数据库引擎介绍
  4. 前端实现“查看更多”效果
  5. 如何部署简单腾讯云服务器
  6. spring_boot 发布成war包 ,部署到外部的tomcat
  7. Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明
  8. P1217 [USACO1.5]回文质数 Prime Palindromes(打表)
  9. Avoid mutating a prop directly since the value will be overwritten whenever
  10. 天勤python_天勤量化策略库:R-Breaker策略(难度:初级)