Yomii Blog

Time is short!

音视频 流和协议整理

当前音视频方面了解到的各种流和协议的概念,中间有很多容易混淆,整理一下以免忘记。 流协议 M2V、 WAV、AC3 等后缀名的音视频文件,属 ES 流范畴。 M2P、MPG、MPEG 等后缀名的文件,属 PS 流。 MTS、M2TS、TS 等后缀名的文件,属 TS 流。 ES 流 (Elementary Stream) 也叫基本码流,包含视频、音频或数据的连续码流。分视频 ES ...

复习08 网络通讯协议

网络层级结构 应用层 实现特定功能的协议,Http、Stmp、Dns 等。 传输层 负责传输数据的协议,Tcp、Udp。不针对特定应用,多线程可复用同一个传输通道。组装数据为数据包进行传输,Tcp 是有连接的,可以确保传输可靠性,同时有限流、重发等控制协议。UDP 不需要握手和挥手进行连接,只负责数据发送,在丢失一部分内容也不产生影响的情况下,消耗更小。 网络层 Ip 协...

复习07 Java中的类加载器

类加载过程 简单的类加载过程如下 加载 连接 验证 准备 解析 初始化 加载过程 通过全类名获取定义此类的二进制字节流,将字节流所代表的静态存储结构转换为方法区的运行时数据结构,在内存中生成一个代表该类的 Class 对象, 作为方法区这些数据的访问入口。 重写类加载器可以控制获取类的二进制流的方式,可以...

复习06 Java中的类和对象

类的结构 根据 Java 虚拟机规范,类文件由单个 ClassFile 结构组成: ClassFile { u4 magic; //Class 文件的标志 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u...

复习05 Java中的内存管理

内存区域 线程独立区域 程序计数器 记录编译完成的机器码的运行行数,保证多线程切换后运行不会出错 虚拟机栈 运行 java 方法,类似栈的结构,调用就是入栈,返回就是出栈。虚拟机栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信息。局部变量表储存的是基本数据类型的值和引用类型的句柄或内存地址 (根据虚拟机的实现不同...

复习04 Java中的并发容器

CopyOnWriteArrayList 读完全无锁,使用 volatile 修饰 array,保证读可见性,因此读是不加锁的。写的时候是使用了 ReentrantLock,创建一个新拷贝做修改,然后再把引用指向新拷贝。 读写性能较高,因为写的过程也不会造成阻塞,缺点是不是强一致性的,特别是做耗时遍历的时候。CopyOnWriteArrayList 内部的迭代器会保留一份单独的拷贝,不受...

复习03 Java中的并发处理

原子类 使用了 CAS 操作的乐观锁,主要操作通过 Unsafe 类来进行。原理是写操作之前比较旧值和当前值是否一致,一致表示没人改过,可以更新,不一致表示改过了,不可执行,然后进行自旋重试。它是利用 cpu 指令集提供的 compare and swap 指令进行操作,效率高,适合多读少写场景。如果写过多,一直重试会造成 cpu 资源浪费。 Java 提供了 AtomicInteger...

复习02 Java中的线程和锁

进程与线程 进程是程序代码运行时的实例,线程是程序内部执行代码的一条通道,同进程下的线程共享堆和方法区资源,但有独立的程序计数器、虚拟机栈、本地方法栈。多线程可以提高 cpu 的利用率,在某个线程处于 IO 等待操作时,不至于闲置 CPU 资源。多核时代,每个核心可以处理一个线程,因此常驻的线程池经常维持 CPU 核心数 + 1 个线程,合理利用 cpu 同时减少线程上下文切换的资源消耗。...

复习01 Java中的数据结构

HashMap 底层为内部类 Node 的数组 + 链表 HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),假设有 hash 碰撞,进行 == 或 equals 判断,替换或加入链表。1.8 之后为了优化链表阶段的查询速度,在数量超过 8 之后改...

旧项目替换 WebView 内核解决兼容性问题

背景 公司的某个硬件设备项目使用的是 Android 4.4 的系统, WebView 内核 chrome 33.0, 其中有个使用 WebView 浏览外部网页的模块, 随着网站的更新, 出现了不兼容的语法导致无法播放网页中的视频,因此考虑用引入新内核的方式做个修复。 方案比较 比较完善的浏览器内核方案有 2 种,Crosswalk 和 TBS 腾讯浏览服务 ...