首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java进阶笔记
pren2016
创建于2021-05-13
订阅专栏
Java核心进阶内容精华笔记
等 4 人订阅
共13篇文章
创建于2021-05-13
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【Java进阶笔记】Java泛型原理(类型擦除)
1. 泛型的概念 泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(类型形参),然后在使用/调用时传入具体的类型(类型实参)。 JDK1.5 之后引入。 让代码更通用更灵活。 核心目标是解决容器类型在编译时安全检查的问…
【Java进阶笔记】ThreadLocal
1. ThreadLocal ThreadLocal是一个线程内部的数据存储类,可以在指定线程中存储数据,且只有在该指定线程中才可以获取存储数据。 ThreadLocal的静态内部类ThreadLocalMap为每个Thread都维护了一个数组 table。 ThreadLoc…
【Java进阶笔记】线程池(类比银行业务来理解)
1. Java 线程池 线程池是一种多线程处理形式,处理过程中可以将任务(Runnable、Callable)添加到队列中,然后在创建线程后自动启动这些任务。 1.1. 线程池的特点 使用线程池可以根
【Java进阶笔记】synchronized原理(悲观锁和乐观锁)
1. 悲观锁(阻塞) 1.1. 临界区与竞态条件 1.1.1. 临界区 一段代码块内如果存在对共享资源的多线程读写操作,称这段代码块就称为临界区(Critical Section)。易发生指令交错,就会出现前面的问题。 1.1.2. 竞态条件 多个线程在临界区内执行,由于代码的…
【Java进阶笔记】Java内存模型(内存一致性、volatile原理)
1. 硬件内存模型 1.1. 数据加载 1.1.1. 处理流程 1.1.2. 缓存行 1.2. 执行流程 2. Java 内存模型 2.1. 内存划分 2.1.1. 内存模型 2.1.2. 模型类比 2.2. 主内存与工作内存之间的交互操作 2.2.1. 个交互协议 2.2.2…
【Java进阶笔记】java并发(进程、线程、协程)
1. 基本概念 1.1. 进程与线程 1.1.1. 二者概念 进程是操作系统结构的基础,是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位。 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用…
【Java进阶笔记】运行期优化(即时编译、反射优化)
1. 即时编译 1.1. 分层编译 0层,解释执行(Interpreter)。 1层,使用 C1 即时编译器编译执行(不带profiling)。 2层,使佣 C1 即时编译器编译执行(带基本的profiling)。 3层,使用 C1 即时编译器编译执行(带完全的profilin…
【Java进阶笔记】字节码与类加载(带你读懂字节码)
1. 类文件结构 1.1. 魔数 【magic】:魔数(第1~4字节)。 唯一作用是判断该文件是否为一个能被虚拟机接受的 Class 文件。值固定为 0xcafebabe。 1.2. 文件版本 【minor_version】:副版本号(第5~6字节)。 【major_versi…
【Java进阶笔记】编译期处理(java语法糖)
1. 语法糖 语法糖,指java编译器把 .java 源码文件编译为 .class 字节码文件的过程中,自动生成和转换的一些代码,主要是为了减轻程序员的负担,算是java编译器给我们的一个额外福利(给糖吃)。 1.1. 默认构造方法 1.2. 自动拆装箱 包装类型和基本类型,在…
【Java进阶笔记】字符串与StringTable(字符串常量池)
1. 字符串 1.1. 字符串的创建(JDK8) 1.1.1. char[]数组创建 1.1.2. byte[]数组创建 按 GBK 字符集转换时,两个 byte 类型的 0xD5和 0xC5 被转换成了一个 char 类型的 0x5F20 (汉字【张】)。 按 UTF-8 字…
【Java进阶笔记】4种常量池
1. Class文件常量池 class文件是一组二进制字节流,class文件常量池在编译阶段就已经确定。class文件常量池主要存放两大常量:字面量和符号引用。 1.1. 字面量 字面量接近 java 语言层面的常量概念。 字符串的值。 包括成员变量、静态变量、实例变量和局部变…
【Java进阶笔记】垃圾回收器GC(finalize对象复活、强软弱虚引用)
1. 垃圾回收器 GC 垃圾回收器是 JVM 的三个重要模块(另外是解释器和多线程机制)之一。 为应用程序提供内存的自动分配 (Memory Allocation)、自动回收 (Garbage Collect) 功能,这两个操作都发生在 Java 堆上。 垃圾回收操作需要消耗 …
【Java进阶笔记】JVM内存模型(堆、栈、方法区、逃逸分析)
1. JVM 内存模型 .java文件会被编译器编译为.class文件,然后由JVM中的类加载器加载各个类的字节码文件,加载完毕后,交由JVM执行。JVM会用一段空间来存储程序执行期间需要的数据和相关信息,这段空间一般称为Runtime Data Area运行时数据区,也就是J…