课程实录

(01)Java代码是怎么运行的?

  • 从虚拟机视角来看,执行 Java 代码首先需要将它编译而成的 class 文件加载到 Java 虚拟机中。加载后的 Java 类会被存放于方法区(Method Area)中。实际运行时,虚拟机会执行方法区内的代码。
    Java 虚拟机会将栈细分为面向 Java 方法的 Java 方法栈,面向本地方法(用 C++ 写的 native 方法)的本地方法栈,以及存放各个线程执行位置的 PC 寄存器。
  • 在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而且 Java 虚拟机不要求栈帧在内存空间里连续分布。
  • 当退出当前执行的方法时,不管是正常返回还是异常返回,Java 虚拟机均会弹出当前线程的当前栈帧,并将之舍弃。
    在 HotSpot 里面,上述翻译过程有两种形式:
  • 第一种是解释执行,即逐条将字节码翻译成机器码并执行;
  • 第二种是即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行。
    !(HotSpot字节码解释执行与即时编译)[52d27346/AutoCapture_2020-07-12_195739.jpg]
    两者之间,前者的优势在于无需等待编译,而后者的优势在于实际运行速度更快。HotSpot默认采用混合模式,综合了解释执行和即时编译两者的优点。它会先解释执行字节码,而后将其中反复执行的热点代码,以方法为单位进行即时编译。

Java虚拟机的运行效率

HotSpot 采用了多种技术来提升启动性能以及峰值性能,刚刚提到的即时编译便是其中最重要的技术之一。即时编译建立在程序符合二八定律的假设上,也就是百分之二十的代码占据了百分之八十的计算资源。
对于占据大部分的 不常用的代码,我们无需耗费时间将其编译成机器码,而是采取解释执行的方式运行;另一方面,对于仅占据小部分的热点代码,我们则可以将其编译成机器码,以达到理想的运行速度。
注:综合编译,以优化达到理想的运行性能

为了满足不同用户场景的需要,HotSpot 内置了多个即时编译器:C1、C2 和 Graal。Graal 是 Java 10 正式引入的实验性即时编译器。

  • C1 又叫做 Client 编译器,面向的是对启动性能有要求的客户端 GUI 程序,采用的优化手段相对简单,因此编译时间较短。
  • C2 又叫做 Server 编译器,面向的是对峰值性能有要求的服务器端程序,采用的优化手段相对复杂,因此编译时间较长,但同时生成代码的执行效率较高。
    从 Java 7 开始,HotSpot 默认采用分层编译的方式:热点方法首先会被 C1 编译,而后热点方法中的热点会进一步被 C2 编译。

(03)Java虚拟机是如何加载Java类

(10)Java对象的内存布局

(11&12)垃圾回收

延伸阅读

额外实践

背景

本篇文章整理Sony 7M3K在摄影摄像中的一些拍摄设置技巧。多数技巧都来源B站或油管等UP主推荐,不排除后期个人设置心得。

配置整理

B站洪峰设置教程

源视频链接:https://www.bilibili.com/video/BV1R4411A7p4
该期视频中主要提到了HLG3、SLOG3、Cine4这三种模式拍摄设置技巧。其中:
Cine4 - 一般用在白天阴天模式下拍摄
HLG3 & SLOG3 - 主要用在明暗反差比较大,宽容度要去比较高的情况下使用。
其中SLOG3模式,拍摄人物时用的较多,这种视频样式较灰,后期调色较容易;HLG3主要用在白天,明暗度对比比较大场景。

Cine4图片配置设置

黑色等级 = +2
伽马 = Cine4
黑伽马 = (范围 = 宽, 等级 = +4)
膝点 = (模式 = 手动, 手动设置 = [Point = 80%, Slope = +2])
色彩模式 = Pro
饱和度 = -5
色相 = 0
色彩深度 = (R = +3, G = +1, B = -1, C = -4, M = -4, Y = +3)
细节 = -6

SLOG3图片配置设置

原生PP8

HLG3预设

PP10 - HLG3
黑色等级 = +5
伽马 = HLG3
黑伽马 = (范围 = 宽, 等级 = +4)
膝点 = (模式 = 手动, 手动设置 = [Point = 90%])
色彩模式 = BT. 2020
饱和度 = 0
色相 = +3
色彩深度 = (R = +1, G = +2, B = -2, C = 0, M = +2, Y = +2)
细节 = -6

三种模式曝光设置

Cine4无需过度曝光,正常曝光即可。
SLOG3一定要过度曝光设置
HLG3拍摄,正常曝光,无需过度曝光设置

延伸

前言

魔鬼经济学-揭示隐藏在表象之下的真实世界
FREAKONOMICS-A Rogue Economist Explorers the Hidden Side of Everything

书籍摘录

读后感

延伸

前言

本篇主要记录王争老师在极客时间算法课程中主要提到的核心要点。

课程纪实

复杂度分析方法

用课程中提到的一句话:复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。

如何分析与统计算法的执行效率和资源消耗

为什么需要复杂度分析?
  • 测试结果非常依赖测试环境:不同的硬件环境,测试的结果自然不同
  • 测试结果受数据规模的影响很大

因此需要一种不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。

阅读全文 »

订阅测试

原视频地址

https://www.bilibili.com/video/BV13g4y1676D

背景

在本期核心内容中,半佛老师不是在说如何理财,而是告诫我们合理理财,更好的控制个人的现金流,不要盲目的追求高收益。尤其倾家荡产的去投资,最后可能就是得不偿失!搞的真的就是倾家荡产了。

内容知识点

“很多话你听着觉得可能是废话,很多整理被传多了都会让人失去敬畏之心”
防坑的重点,永远是事前而不是事后

阅读全文 »

内容声明

  • 本文分篇章节中会列出相关优秀的UP主的视频主页
  • 学习视频章节会贴出具体视频引用主页
  • 所有视频素材所有权均归各自UP主本身所有,本文仅以学习的态度学习制作技巧等相关,绝不会借此谋取我个人利益
  • 文章主体是记录关于各个优秀UP主下优秀的VLOG视频,我呢,会对这些视频,尽可能的逐帧去分析,这个在剪辑软件中怎么实现。先勾勒出思考的问题,再有针对性的去自己尝试做一些这些学习的实践内容。当然不排除后期会将这些内容,以视频的方式输出到自己个人B站去
  • 涉及版面问题,文章中暂时不会考虑添加视频播放功能!

背景

自己看VLOG,学剪辑也小有一段时间了,但是都还没有迈出实质性的一步。最主要的原因可能是,自己没有有一个系统的直观认识,换句话说,没有一个适合自己的IDEA!
当然其余的,便是自己的后期剪辑技能还没有达到一定水平。
写这篇文章的主要目的就一个:观摩与练习
综合当下个人的综合情况分析来看,下面的这个学习思路还算是适合我的:

阅读全文 »

背景

认识AU的历史

今年早些时候,入手了《Adobe Audition CC经典教程》这本书,打算系统的补充一下AU相关的知识。
认识AU不短,早在自己高二时代(距今11年了),就认识了,那时候还是3.0时代。那时候记得托付兄长在亚马逊(当时还是卓越)上买过教程书籍。
但是,由于那时候环境条件有限,没有办法延展开来学习。
直到上大学,有了自己个人的笔记本,那时候才算是弄了起来。
早在大一的时候,那时候还加入了学生会,哈哈哈。记得非常清楚,大一的迎新晚会,我是作为后台的音效师角色,负责整场晚会的前期音频、音效素材的收集,晚会现场后台音频的播放控制相关。也算是得益于早年很早接触AU相关后的一次实战吧。

阅读全文 »
0%