idea注释模板配置

类头注释settings->File and Code Templates->class 然后在上面填上想要的内容,一个模板如下: 123456/** * @Auther: MichaelWang * @Date: ${DATE} ${HOUR}:${MINUTE} * @Description: ${NAME} * @Version 1.0.0 */ 其中内置变量如下: $[PACKAGE_N...

Read More

Photoshop批量处理工具

Photoshop批量处理步骤 选择动作 ![1. 选择动作](/images/Photoshop批量处理工具/1. 选择动作.png) 新建动作 ![2. 新建动作](/images/Photoshop批量处理工具/2. 新建动作.png) 停止录制 ![3. 停止录制](/images/Photoshop批量处理工具/3. 停止录制.png) 选择批处理菜单 ![4. 选择批处理菜单](&#...

Read More

阿里云数据库开发规范

设计规范1.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循: 不是频繁修改的字段。 不是 varchar 超长字段,更不能是 text 字段。 1正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存 储类目名称,避免关联查询。 2.【推荐】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计2年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。 3.【推荐】id必须是主键,每个表必...

Read More

深入理解JVM4-2-高效并发-线程安全与锁优化

线程安全线程安全在《Java并发编程实战(Java Concurrency In Practice)》中有一个比较恰当的定义:“当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下 的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。” 这个定义就很严谨而且有可操作性,它要求线程安全的代码都必须具备一个共同特征:代码本身封装了所有必要的正确性保障手段(如互斥同步等),令调用者无须关心多...

Read More

深入理解JVM4-1-高效并发-Java内存模型与线程

硬件和效率一致性由于CPU的的运算是需要存储空间的,光是寄存器肯定是远远不够的。但是内存的传递速度远远比CPU的运算速度慢,则需要一个比内存快一些的空间作为CPU运行时数据的临时存储空间。而这个空间就是所谓的高速缓存(Cache)来作为内存与处理器之间的缓冲:将内存需要使用的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。 基于高速缓存的存储交互虽然很好的解决了处理器与内存之间的矛盾,但是也为计算机系统带来了另外一个问题:缓存一...

Read More

Java编译相关的JCTree和TreeMaker的API介绍

关于编译原理在文章深入理解JVM3-1-程序编译与代码优化-前端编译与优化中,其中介绍了javac的编译原理。其中简要流程如下: 准备过程:初始化插入式注解处理器。 解析与填充符号表过程 词法、语法分析:将源代码的字符流转变为标记集合,构造出抽象语法树。 填充符号表:产生符号地址和符号信息。 插入式注解处理器的注解处理过程:插入式注解处理器的执行阶段。 分析与字节码生成过程 标注检查:对语法的静态信息进行检查。 数据流及控制流分析:对程序动态运行过程进行检查。 解语法糖:将简化代码编...

Read More

javac命令参数参考

参数标准选项是指用来支撑当前开发环境并且会长期支持的参数。与之对应,还有一些非标准的参数,它们可能使用来自定义虚拟机参数或者编译的实现,标准参数以-X开头。 标准参数 -Akey[=value]:传递给注解处理器的选项。这些参数不由javac直接编译,而是交给对应的注解处理器来使用。如果有多个key,则使用.分隔。(注意,-A与key之间没有空格,后面有些参数也一样) -cp path or -classpath path:设置类查找目录,即从哪里去寻找后面给出的类。这个选项会...

Read More

深入理解JVM3-2-程序编译与代码优化-后端编译与优化

概述如果我们把字节码看作是程序语言的一种中间表示形式(Intermediate Representation,IR)的话, 那编译器无论在何时、在何种状态下把Class文件转换成与本地基础设施(硬件指令集、操作系统)相关的二进制机器码,它都可以视为整个编译过程的后端。 后面所提及的即时编译器都是特指HotSpot虚 拟机内置的即时编译器,虚拟机也是特指HotSpot虚拟机。 即时编译器目前主流的两款商用Java虚拟机(HotSpot、OpenJ9)里,Java程序最初都是通过解释器 (In...

Read More

深入理解JVM3-1-程序编译与代码优化-前端编译与优化

概述在Java技术下谈“编译期”而没有具体上下文语境的话,其实是一句很含糊的表述,因为它可能是 指一个前端编译器(叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是 指Java虚拟机的即时编译器(常称JIT编译器,Just In Time Compiler)运行期把字节码转变成本地机器码的过程;还可能是指使用静态的提前编译器(常称AOT编译器,Ahead Of Time Compiler)直接把程序编译成与目标机器指令集相关的二进制代码的过程。 这3类...

Read More

深入理解JVM2-3-虚拟机执行子系统-虚拟机字节码执行引擎

概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。 在不同的虚拟机实现中,执行引擎在执行字节码的 时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,还可...

Read More


Powered by Hexo and Hexo-theme-hiker

Copyright © 2019 - 2024 My Wonderland All Rights Reserved.

UV : | PV :