HashMap 的底层数据结构:散列表 + 红黑树。关于散列表,采用拉链法处理hash冲突,其中通过引入红黑树来提升效率。
more >>在上一篇文章java抽象语法树(AST)中已经介绍了部分定义语法树的的节点,接下来在这篇将会通过样例代码以及注释介绍如何使用语法树节点来生成setter、getter、toString、hash、equal 等方法。
more >>在上一篇文章java自定义编译时注解器中讲述到了有关自定义注解器的使用,接来在这里将会讲述的是如何通过语法树表示所想要的代码结构,并通过编译处理器生成相应的字节码。
more >>java 注解编译处理器,主要作用是针对特定的注解进行相应的处理。根据个人观察目前主要多用于代码生成、代码审查。在安卓开发中,常用的Butterknife、Dagger2、Room等以及一些组件化的框架都都会看到编译注解处理器的身影。而在java后端的开发中 Lombok 也是有使用到边缘处理器的。
more >>在Android视频或者拍摄图片开发中,因为不了解yuv,所以在写视频demo时,手机预览的界面可能存在旋转 90/180/270 度的问题。大部分后置摄像头是旋转了90度,
前置摄像头旋转270了度。如果要看到正常角度的预览界面,我们则需要对摄像头进行旋转一定的角度,而且旋转的角度只能是 0/90/180/270。
关于摄像头的旋转和开发打算放在下一篇文章记录,而这一次有更加重要的内容要记录。即使我们设置了正确的预览界面,当按下快门或者拍摄视频的那一刻,
摄像头记录下的数据(默认为NV21数据格式,是YUV的一种数据格式),可能并不是我们真正想要的。记录的照片或者视频的角度可能会存在问题,可能是旋转了 90/180/270 度。而我们要想获取到正确的角度,那么需要用 YUV 对数据进行转换或者旋转,才能得到我们希望的角度。
more >>我们常说的JVM 内存模型指的是 JVM 的内存分区;而 Java 内存模型是一种虚拟机规范。
Java 虚拟机规范中定义了 Java 内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各个平台下都能达到一致的并发效果,JMM 规范了 Java 虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true