当前位置: 首页 > news >正文

idea Java代码格式化规范

文章目录

  • 引入
  • 基础知识
  • 代码模板
    • idea模板
    • eclipse模板
      • 1.安装插件
      • 2.生成配置文件
      • 3.导入配置文件
  • 附录一:xml配置项说明
  • 附录二:赠送

引入

最近在公司开发中,遇到了一点小问题,组内各同事的格式化规范不一致。一来导致代码样式并不统一,二来有时候合并代码会出现冲突,因此做一套统一代码格式化规范很有必要。

基础知识

在idea中,可以通过快捷键Ctrl+Alt+L来格式化代码,如果没有做任何配置,idea本身也有一套默认的格式化标准。
除此以外,使用快捷键 Ctrl+Shift+Alt+L可以打开一个简易的格式化配置界面如下。
在这里插入图片描述
其他选项的说明,可以去官网查询,不同版本的idea有细微区别。Reformat File dialog

代码模板

如果所有开发者都使用Only VCS changed text,似乎就不存在互相影响,但仍然有两个问题。

  1. 整个工程的格式依然不统一;
  2. 不同开发者修改同一函数时,仍可能互相影响导致代码冲突。

因此,我们还是需要找&写一个统一的格式化模板来处理。

idea模板

进入菜单settings -> Editor -> Code Style -> Java便可以对格式化代码的配置进行修改,idea还贴心的做了预览功能,可以很直观的看到变更。
在这里插入图片描述
同时,也支持导入导出配置。我配置好后,便可以分享给同事进行处理。但单独基于这里去配置,其实比较复杂,需要逐项比对,建议还是导入导出对应的idea xml配置来处理。
但查阅资料发现,网络上的大多数配置文件,仍是基于eclipse配置方式的xml。

eclipse模板

在这里插入图片描述
这里可以引入eclipse的xml模板。但实测此处引入,似乎并没有生效。因此,目前主流的方式还是需要安装插件。

1.安装插件

去市场搜索并安装Adapter For Eclipse Code Formatter的插件。
在这里插入图片描述

2.生成配置文件

当然是去找现成的配置文件啦。参考idea java EclipseFormatter代码格式化模板可以搞到阿里和唯品会的模板。

  • 阿里格式化模板文件下载地址
  • 唯品会通用代码格式化模板

若我们对模板都不是很满意,也是可以自己调整配置的。作为参考,我们组的规范是基于第二个略加修改得到的。由于此处涉及到一些保密规定,就不做上传了。我们简单看下配置文件的形式。

<!--略-->
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<!--略-->

对于这样的配置项,我们需要一个配置说明才能读懂(见附录一)。

3.导入配置文件

重启idea后,进入菜单。
在这里插入图片描述
如此,我们再使用快捷键Ctrl+Alt+L就可以使用上我们的自定义配置啦。

附录一:xml配置项说明

(eclipse使用1.2代码自动格式化配置,这个资料很难找,目测不全,但暂时找不到更完整的了)。

insert_space_after_comma_in_annotation(insert/do_not_insert):在注释中的逗号后面插入空格,默认为insert;
insert_space_before_comma_in_type_parameters(insert/do_not_insert):用于在类型参数中在逗号前插入空格,默认为do_not_insert;
insert_space_before_opening_brace_in_type_declaration(insert/do_not_insert):用于在类型声明中打开括号之前插入空格,默认为insert;
insert_space_after_comma_in_type_arguments(insert/do_not_insert):用于在类型参数的逗号后面插入空格,默认为insert;
brace_position_for_anonymous_type_declaration(END_OF_LINE, NEXT_LINE, next_line_shift, NEXT_LINE_ON_WRAP):用于定位匿名类型声明的大括号,默认值:END_OF_LINE;
insert_space_before_colon_in_case(insert/do_not_insert):在冒号之前插入一个空格,在case语句中,默认为insert;
insert_space_after_opening_brace_in_array_initializer(insert/do_not_insert):用于在数组初始化器的开始括号之后插入空格,默认为do_not_insert;insert_new_line_in_empty_annotation_declaration(insert/do_not_insert):在空注释声明,默认为insert;insert_new_line_before_closing_brace_in_array_initializer(insert/do_not_insert):在数组初始化器的关闭括号之前插入新行,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_annotation(insert/do_not_insert):在注释中打开括号后插入空格,默认值:DO_NOT_INSERT;
blank_lines_before_field(其中n为零或正整数):用于在字段声明之前添加空行,默认为:0;insert_space_after_opening_paren_in_while(insert/do_not_insert):在一个while语句后面插入一个空格,默认值:DO_NOT_INSERT;insert_space_between_empty_parens_in_annotation_type_member_declaration(insert/do_not_insert):用于在注释类型成员声明中的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_new_line_before_else_in_if_statement(insert/do_not_insert):用于在if语句中的else关键字之前插入新行,默认值:DO_NOT_INSERT;
insert_space_after_prefix_operator(insert/do_not_insert):在前缀运算符之后插入空格的格式化,默认值:DO_NOT_INSERT;
keep_else_statement_on_same_line(TRUE, FALSE):以在同一行上保留else语句,默认为false;
insert_space_after_ellipsis(insert/do_not_insert):在省略之后插入一个空格,默认为insert;
comment.insert_new_line_for_parameter(insert/do_not_insert):在Javadoc根标记参数之后插入新行,默认为insert;
insert_space_before_opening_brace_in_annotation_type_declaration(insert/do_not_insert):在注释类型声明的开始括号之前插入空格,默认为insert;
indent_breaks_compare_to_cases(TRUE, FALSE):与cases相比,可以选择缩进中断,默认为true;
insert_space_after_at_in_annotation(insert/do_not_insert):在注释后面插入空格,默认为insert;
alignment_for_multiple_fields:用于对多个字段进行对齐,可能的值:由createAlignmentValue(boolean, int, int)调用返回的值——默认值:createAlignmentValue(false, WRAP_COMPACT, INDENT_DEFAULT);
alignment_for_expressions_in_array_initializer:用于数组初始化器中表达式对齐的格式化,可能的值:由createAlignmentValue(boolean, int, int)调用返回的值,默认:createAlignmentValue(false, WRAP_COMPACT, INDENT_DEFAULT)
alignment_for_conditional_expression:条件表达式对齐的格式化;insert_space_before_opening_paren_in_for(insert/do_not_insert):用于在for语句的圆括号前插入一个空格,默认为insert;
insert_space_after_binary_operator(insert/do_not_insert):在二进制操作符之后插入空格,默认为insert;
insert_space_before_question_in_wildcard(insert/do_not_insert):在通配符中问号前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_array_initializer(END_OF_LINE, NEXT_LINE, next_line_shift, NEXT_LINE_ON_WRAP):用于定位数组初始化程序的大括号,默认值:END_OF_LINE;
insert_space_between_empty_parens_in_enum_constant(insert/do_not_insert):用于在enum常量的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_new_line_before_finally_in_try_statement(insert/do_not_insert):用于在try语句中的finally关键字之前插入新行,默认值:DO_NOT_INSERT;insert_new_line_after_annotation_on_local_variable(insert/do_not_insert):在本地变量注释后插入新行,默认:INSERT;
insert_new_line_before_catch_in_try_statement(insert/do_not_insert):在try语句,在catch关键字之前插入新行,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_while(insert/do_not_insert):用于在while语句中打开括号之前插入空格,默认为insert;
blank_lines_after_package(其中n为0或为正整数):用于在包声明之后添加空行,默认值:“0”;
insert_space_after_comma_in_type_parameters(insert/do_not_insert):在类型参数中,在逗号之后插入空格,默认为insert;
continuation_indentation(其中n为零或正整数):设置延续缩进,默认值:“2”;
insert_space_after_postfix_operator(insert/do_not_insert):在后缀操作符之后插入空格的,默认值:DO_NOT_INSERT;
alignment_for_arguments_in_method_invocation:用于方法调用中参数对齐的;
insert_space_before_closing_angle_bracket_in_type_arguments(insert/do_not_insert):在类型参数的关闭角括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_superinterfaces(insert/do_not_insert):在类型头中的超接口名称中插入逗号前的空格,默认值:DO_NOT_INSERT;
blank_lines_before_new_chunk(其中n为零或正整数):用于在新块之前添加空行,默认值:“0;
blank_lines_before_package(其中n为零或正整数):在包声明之前添加空行,默认值:“0;
insert_space_after_comma_in_enum_constant_arguments(insert/do_not_insert):用于在enum常量,在逗号之后插入空格,默认为insert;
insert_space_after_opening_paren_in_constructor_declaration(insert/do_not_insert):构造函数声明中插入空格,默认:DO_NOT_INSERT;
insert_space_after_closing_angle_bracket_in_type_arguments(insert/do_not_insert):在类型参数的结束角括号之后插入空格,默认为insert;
comment.format_line_comments(TRUE, FALSE):控制单行注释是否格式化,默认为TRUE;
insert_space_after_comma_in_enum_declarations(insert/do_not_insert):在enum声明中,在逗号后插入空格,默认值:INSERT;
insert_space_before_opening_brace_in_block(insert/do_not_insert):用于在块中打开括号之前插入空格,默认值:INSERT;
alignment_for_arguments_in_explicit_constructor_call:用于显式构造函数调用中的参数对齐;
insert_space_before_comma_in_method_invocation_arguments(insert/do_not_insert):在方法调用的参数中,在逗号之前插入空格,默认:DO_NOT_INSERT;
blank_lines_before_member_type(其中n为零或正整数):用于在成员类型声明之前添加空行,默认值:“0;
align_type_members_on_columns(TRUE, FALSE):在列上对齐类型声明的类型成员,默认为false;
insert_space_after_opening_paren_in_enum_constant(insert/do_not_insert):在enum常量中打开括号之后插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_for(insert/do_not_insert):在for语句中插入空格后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_brace_in_method_declaration(insert/do_not_insert):用于在方法声明中的打开括号之前插入空格,默认值:INSERT;
alignment_for_selector_in_method_invocation:方法调用中选择器对齐;
insert_space_after_opening_paren_in_switch(insert/do_not_insert):用于在switch语句中打开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_after_unary_operator(insert/do_not_insert):在一个一元操作符后面插入空格,默认值:DO_NOT_INSERT;
insert_space_after_colon_in_case(insert/do_not_insert):用于在case语句中,当冒号后插入空格,默认值:INSERT;
indent_parameter_description(TRUE, FALSE):用于控制Javadoc参数的描述是否缩进,默认为TRUE;
insert_space_before_closing_paren_in_method_declaration(insert/do_not_insert):在方法声明中的结束括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_paren_in_switch(insert/do_not_insert):在switch语句中关闭括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_brace_in_enum_declaration(insert/do_not_insert):在enum声明的开始括号之前插入空格,默认值:INSERT;
insert_space_before_opening_angle_bracket_in_type_parameters(insert/do_not_insert):在类型参数前插入空格,默认值:DO_NOT_INSERT;
insert_new_line_in_empty_type_declaration(insert/do_not_insert):在空类型声明中插入新行,默认值:INSERT;
comment.clear_blank_lines_in_block_comment(TRUE, FALSE):用于控制块注释中的空行是否被清除,默认为FLASE;
insert_space_before_opening_paren_in_if(insert/do_not_insert):用于在if语句中打开括号之前插入空格,默认值:INSERT;
insert_space_between_brackets_in_array_type_reference(insert/do_not_insert):用于在数组类型引用的括号中插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_parenthesized_expression(insert/do_not_insert):用于在圆括号中展开括号之后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_explicitconstructorcall_arguments(insert/do_not_insert):在显式构造函数调用的参数中插入逗号前的空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_brace_in_constructor_declaration(insert/do_not_insert):在构造函数声明的开始括号之前插入空格,默认值:INSERT;
blank_lines_before_first_class_body_declaration(n为0或正整数):在第一个类body声明之前添加空行,-默认值:“0”;
indentation.size(其中n为0或正整数):指定表示一个缩进的等效空格数,只有当选项卡char设置为混合时才使用此选项,默认值:“4”;
insert_space_between_empty_parens_in_method_declaration(insert/do_not_insert):用于在方法声明中的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_enum_constant(insert/do_not_insert):在enum常量中打开括号之前插入空格,默认值:DO_NOT_INSERT;
alignment_for_superclass_in_type_declaration:用于在类型声明中对超类进行对齐;
alignment_for_assignment:分配对齐;
tabulation.char(TAB,空格,混合):指定表格大小,默认为TAB;
insert_space_after_comma_in_constructor_declaration_parameters(insert/do_not_insert):用于在构造函数声明的参数中插入逗号后的空格,默认值:INSERT;
insert_space_before_prefix_operator(insert/do_not_insert):用于在前缀操作符之前插入空格,默认值:DO_NOT_INSERT;
indent_statements_compare_to_body(TRUE, FALSE):在方法或构造函数的主体内缩进语句的,默认为TRUE;
blank_lines_before_method(其中n为零或正整数):用于在方法声明之前添加空行,默认值:“0”
format_guardian_clause_on_one_line(TRUE, FALSE):在一个行中保留保护条款,默认为FLASE;
insert_space_before_colon_in_for(insert/do_not_insert):用于在for语句的冒号之前插入空格,默认值:INSERT;
insert_space_before_closing_paren_in_cast(insert/do_not_insert):在转换表达式中关闭括号之前插入空格,默认值:DO_NOT_INSERT;
alignment_for_parameters_in_constructor_declaration:构造函数声明中参数对齐;
insert_space_after_colon_in_labeled_statement(insert/do_not_insert):在冒号后插入一个标记语句中的空格,默认值:INSERT;
brace_position_for_annotation_type_declaration(END_OF_LINE, NEXT_LINE, next_line_moved, NEXT_LINE_ON_WRAP):用于定位注释类型声明的大括号,默认值:END_OF_LINE;
insert_space_before_closing_paren_in_method_invocation(insert/do_not_insert):在方法调用的结束括号之前插入一个空格,默认值:DO_NOT_INSERT;
insert_new_line_in_empty_method_body(insert/do_not_insert):在空方法体中插入新行,默认值:INSERT;
insert_space_after_opening_bracket_in_array_allocation_expression(insert/do_not_insert):在数组分配表达式的左括号后面插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_brace_in_enum_constant(insert/do_not_insert):在enum中,在开环前插入一个空格,默认值:INSERT;
insert_space_before_comma_in_annotation(insert/do_not_insert):用于在注释中逗号前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_at_in_annotation_type_declaration(insert/do_not_insert):用于在注释类型声明之后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_method_declaration_throws(insert/do_not_insert):在方法声明的throw子句的异常名称中,在逗号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_paren_in_if(insert/do_not_insert):在if语句的结束括号之前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_switch(END_OF_LINE, NEXT_LINE, next_line_shift, NEXT_LINE_ON_WRAP):定位switch语句的大括号,默认为END_OF_LINE;
insert_space_after_comma_in_method_declaration_throws(insert/do_not_insert):在方法声明的抛出子句的异常名称中,在逗号之后插入空格,默认值:INSERT;
insert_space_before_parenthesized_expression_in_return(insert/do_not_insert):在返回语句中的括号表达式之前插入空格,默认值:INSERT;
insert_space_before_opening_paren_in_annotation(insert/do_not_insert):用于在注释中打开括号之前插入空格,默认值:INSERT;
insert_space_after_question_in_conditional(insert/do_not_insert):在条件表达式的问号后面插入空格,默认值:DO_NOT_INSERT;
insert_space_after_question_in_wildcard(insert/do_not_insert):在通配符中问号后面插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_bracket_in_array_allocation_expression(insert/do_not_insert):在数组分配表达式中插入一个空格,默认值:DO_NOT_INSERT;
insert_space_before_parenthesized_expression_in_throw(insert/do_not_insert):在抛出语句中插入括号表达式之前的空格,默认值:INSERT;
insert_space_before_comma_in_type_arguments(insert/do_not_insert):用于在类型参数中在逗号之前插入空格,默认值:DO_NOT_INSERT;
indent_switchstatements_compare_to_switch(TRUE, FALSE):以缩进switch语句比较切换,默认为TRUE;
insert_space_before_ellipsis(insert/do_not_insert):在省略号之前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_block(END_OF_LINE, NEXT_LINE, NEXT_LINE_SHIFTED, NEXT_LINE_ON_WRAP):定位块的括号,默认为END_OF_LINE;
insert_space_before_comma_in_for_inits(insert/do_not_insert):用于在for语句的初始化中,在逗号之前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_method_declaration( END_OF_LINE, NEXT_LINE, NEXT_LINE_SHIFTED, NEXT_LINE_ON_WRAP):用于定位方法声明的大括号,默认为END_OF_LINE;
compact_else_if(TRUE, FALSE):压缩else/if,默认为TRUE;
insert_space_before_comma_in_array_initializer(insert/do_not_insert):在逗号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_comma_in_for_increments(insert/do_not_insert):在for语句的增量中,在逗号后面插入空格,默认值:INSERT;
insert_space_before_closing_bracket_in_array_reference(insert/do_not_insert):用于在数组引用的结束括号前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_enum_constant(END_OF_LINE, NEXT_LINE, next_line_shift, NEXT_LINE_ON_WRAP):用于定位枚举常量的括号,默认为END_OF_LINE;
comment.indent_root_tags(TRUE, FALSE):控制Javadoc根标签是否缩进,默认为TRUE;
insert_space_before_comma_in_enum_declarations(insert/do_not_insert):在枚举声明中插入逗号前的空格,默认值:DO_NOT_INSERT;
insert_space_after_comma_in_explicitconstructorcall_arguments(insert/do_not_insert):用于在显式构造函数调用的参数中,在逗号之后插入空格,默认值:INSERT;
insert_space_before_opening_brace_in_switch(insert/do_not_insert):用于在开关语句的开始括号前插入空格,默认值:INSERT;
insert_space_after_comma_in_superinterfaces(insert/do_not_insert):在类型头的超接口名称中,在逗号之后插入空格,默认值:INSERT;
insert_space_before_comma_in_method_declaration_parameters(insert/do_not_insert):在方法声明的参数中,在逗号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_allocation_expression(insert/do_not_insert):在分配表达式中插入一个空格,默认值:DO_NOT_INSERT;
tabulation.size(其中n为0或为正整数):指定表示一个表格的等效空格数,默认值:“4;
insert_space_before_opening_bracket_in_array_type_reference(insert/do_not_insert):用于在数组类型引用的左括号前插入空格,默认值:DO_NOT_INSERT;
insert_new_line_after_opening_brace_in_array_initializer(insert/do_not_insert):用于在数组初始化器的开始括号之后插入新行,默认值:DO_NOT_INSERT;
insert_space_after_closing_brace_in_block(insert/do_not_insert):在块的闭括号之后插入空格,默认值:INSERT;
insert_space_before_opening_bracket_in_array_reference(insert/do_not_insert):在数组引用的左括号之前插入空格,默认值:DO_NOT_INSERT;
insert_new_line_in_empty_enum_constant(insert/do_not_insert):在空enum常量中插入新行,默认值:INSERT;
insert_space_after_opening_angle_bracket_in_type_arguments(insert/do_not_insert):用于在类型参数的开始角括号之后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_constructor_declaration(insert/do_not_insert):用于在构造函数声明中打开括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_if(insert/do_not_insert):在if语句中打开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_constructor_declaration_throws(insert/do_not_insert):在构造函数声明的throw子句的异常名称中,在逗号之前插入空格,默认值:DO_NOT_INSERT;
comment.clear_blank_lines_in_javadoc_comment(TRUE, FALSE):用于控制在javadoc注释中是否清除空行,默认为FALSE;
alignment_for_throws_clause_in_constructor_declaration:用于在构造函数声明中对齐抛出子句;
insert_space_after_assignment_operator(insert/do_not_insert):在赋值操作符之后插入空格,默认值:INSERT;
insert_space_before_assignment_operator(insert/do_not_insert):在赋值运算符之前插入空格,默认值:INSERT;
indent_empty_lines(TRUE, FALSE):缩进空行,默认为false;
insert_space_after_opening_paren_in_synchronized(insert/do_not_insert):在同步语句中打开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_after_closing_paren_in_cast(insert/do_not_insert):在转换表达式的结束括号之后插入空格,默认值:INSERT;
insert_space_after_comma_in_method_declaration_parameters(insert/do_not_insert):在方法声明的参数中插入逗号之后的空格,默认值:INSERT;
brace_position_for_block_in_case(END_OF_LINE、NEXT_LINE、next_line_shift、NEXT_LINE_ON_WRAP):当块是后面的第一个语句时,将块的大括号放在case语句中,默认值:END_OF_LINE;
number_of_empty_lines_to_preserve(其中n为0或正整数):指定要保存的空行数,默认值:“0”;
insert_space_before_opening_paren_in_method_declaration(insert/do_not_insert):在方法声明中打开括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_catch(insert/do_not_insert):在catch中开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_paren_in_constructor_declaration(insert/do_not_insert):用于在构造函数声明中关闭括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_method_invocation(insert/do_not_insert):在方法调用中打开括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_bracket_in_array_reference(insert/do_not_insert):在数组引用的左括号后面插入空格,默认值:DO_NOT_INSERT;
insert_space_after_and_in_type_parameter(insert/do_not_insert):用于在wilcard后和中插入空格,默认值:INSERT;
alignment_for_arguments_in_qualified_allocation_expression:用于在限定分配表达式中对齐参数;
continuation_indentation_for_array_initializer(其中n为0或为正整数):用于设置数组初始化器中的延续缩进,默认值:“2”;
insert_space_between_empty_brackets_in_array_allocation_expression(insert/do_not_insert):在数组分配表达式的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_space_before_at_in_annotation_type_declaration(insert/do_not_insert):在注释类型声明之前插入空格,默认值:INSERT;
alignment_for_arguments_in_allocation_expression:用于在分配表达式中对齐参数;
insert_space_after_opening_paren_in_cast(insert/do_not_insert):在转换表达式中打开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_unary_operator(insert/do_not_insert):在一元运算符之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_angle_bracket_in_parameterized_type_reference(insert/do_not_insert):在参数化类型引用的结束角括号前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_brace_in_anonymous_type_declaration(insert/do_not_insert):用于在匿名类型声明中打开括号前插入空格,默认值:INSERT;
keep_empty_array_initializer_on_one_line(TRUE, FALSE):要保持空数组初始化器一行,默认值:FALSE;
insert_new_line_in_empty_enum_declaration(insert/do_not_insert):在空枚举声明中插入新行,默认值:INSERT;
keep_imple_if_on_one_line(TRUE, FALSE):用于在一行中保持简单的if语句,默认为FLASE;
insert_space_before_comma_in_constructor_declaration_parameters(insert/do_not_insert):用于在构造函数声明的参数中插入逗号前的空格,默认值:DO_NOT_INSERT;
insert_space_after_closing_angle_bracket_in_type_parameters(insert/do_not_insert):在类型参数的结束角括号之后插入空格,默认值:INSERT;
insert_new_line_at_end_of_file_if_missing(insert/do_not_insert):如果缺少的话,可以在当前文件的末尾插入新行,默认值:DO_NOT_INSERT;
insert_space_after_colon_in_for(insert/do_not_insert):在for语句中,在冒号后插入空格,默认值:INSERT;
insert_space_before_colon_in_labeled_statement(insert/do_not_insert):在冒号之前插入一个标记语句的空格,默认值:INSERT;
insert_space_before_comma_in_parameterized_type_reference(insert/do_not_insert):在参数化类型引用中在逗号之前插入空格,默认值:DO_NOT_INSERT;
alignment_for_superinterfaces_in_type_declaration:用于在类型声明中对超接口进行对齐;
alignment_for_binary_expression:用于二进制表达式的对齐brace_position_for_enum_declaration{END_OF_LINE, NEXT_LINE, next_line_shift, NEXT_LINE_ON_WRAP} :用于定位enum声明的大括号.默认值:END_OF_LINE;
insert_space_before_closing_paren_in_while(insert/do_not_insert):用于在while语句中结束括号之前插入空格,默认值:DO_NOT_INSERT;
put_empty_statement_on_new_line({TRUE, FALSE):用于指定空语句是否应该位于一个新的行,默认:FALSE;
insert_new_line_after_annotation_on_parameter(insert/do_not_insert):在参数的注释之后插入新行,默认值:DO_NOT_INSERT;
insert_space_after_opening_angle_bracket_in_type_parameters(insert/do_not_insert):
在类型参数中,在开始角括号之后插入空格,默认值:DO_NOT_INSERT;
insert_space_between_empty_parens_in_method_invocation(insert/do_not_insert):在方法调用的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_new_line_before_while_in_do_statement(insert/do_not_insert):在do语句之前插入新行,默认值:DO_NOT_INSERT;
alignment_for_arguments_in_enum_constant:为了在enum常量中对齐参数。
comment.format_javadoc_comments(TRUE, FALSE):用于控制javadoc注释是否被格式化,默认为TRUE;
comment.line_length(其中n为0或为正整数):指定注释的行长度,默认值:“80”;
blank_lines_between_import_groups(其中n为0或为正整数):添加导入组之间的空行,默认值:“1”;
insert_space_before_comma_in_enum_constant_arguments(insert/do_not_insert):在enum常量的参数中,在逗号前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_semicolon(insert/do_not_insert):在分号前插入空格,默认值:DO_NOT_INSERT;
brace_position_for_constructor_declaration { END_OF_LINE, NEXT_LINE, NEXT_LINE_SHIFTED, NEXT_LINE_ON_WRAP }:用于定位构造函数声明的大括号,默认值:END_OF_LINE;
number_of_blank_lines_at_beginning_of_method_body(其中n为0或正整数):在方法主体的开头添加空行,默认值:“0”;
insert_space_before_colon_in_conditional(insert/do_not_insert):用于在条件表达式的冒号前插入空格,默认值:INSERT;
indent_body_declarations_compare_to_type_header(TRUE, FALSE):将缩进体声明与它的封闭类型heade进行比较,默认为TRUE;
insert_space_before_opening_paren_in_annotation_type_member_declaration(insert/do_not_insert):在注释类型成员声明中打开括号之前插入空格,默认值:DO_NOT_INSERT;
wrap_before_binary_operator(TRUE, FALSE):在二进制运算符之前包装,默认为TRUE;
indent_body_declarations_compare_to_enum_declaration_header(TRUE, FALSE):与所附的enum声明头相比,缩进正文声明,默认为TRUE;
blank_lines_between_type_declarations(其中n为0或为正整数):在类型声明之间添加空白行,默认值:“0”;
insert_space_before_closing_paren_in_synchronized(insert/do_not_insert):在同步语句的结束括号之前插入空格,默认值:DO_NOT_INSERT;
indent_statements_compare_to_block(TRUE, FALSE):在块内缩进语句,默认为TRUE;
alignment_for_superinterfaces_in_enum_declaration:用于枚举声明中的超接口对齐;
insert_space_before_question_in_conditional(insert/do_not_insert):在条件表达式的问号前插入空格,默认值:INSERT;
insert_space_before_comma_in_multiple_field_declarations(insert/do_not_insert):用于在多个字段声明中在逗号之前插入空格,默认值:DO_NOT_INSERT;
alignment_for_compact_if:对于紧凑型if的对齐;
insert_space_after_comma_in_for_inits(insert/do_not_insert):用于在for语句的初始化中,在逗号之后插入空格,默认值:INSERT;
indent_switchstatements_compare_to_cases(TRUE, FALSE):对缩进开关语句进行比较,默认为TRUE;
insert_space_after_comma_in_array_initializer(insert/do_not_insert):在数组初始化器中插入逗号之后的空格,默认值:INSERT;
insert_space_before_colon_in_default(insert/do_not_insert):用于在默认语句中冒号之前插入空格,默认值:INSERT;
insert_space_before_and_in_type_parameter(insert/do_not_insert):用于在通配符前面和里面插入空格,默认值:INSERT;
insert_space_between_empty_parens_in_constructor_declaration(insert/do_not_insert):在构造函数声明的空括号之间插入空格,默认值:DO_NOT_INSERT;
insert_space_after_colon_in_assert(insert/do_not_insert):用于在assert语句中冒号之后插入空格,默认值:INSERT;
blank_lines_before_imports(其中n为0或为正整数):在导入声明之前添加空行,默认值:“0”;
comment.format_html(TRUE, FALSE):控制HTML标签是否被格式化,默认为TRUE;
alignment_for_throws_clause_in_method_declaratio:用于方法声明中抛出子句的对齐;
insert_space_before_closing_angle_bracket_in_type_parameters(insert/do_not_insert):用于在类型参数中的结束角括号前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_bracket_in_array_allocation_expression(insert/do_not_insert):用于在数组分配表达式的左括号前插入空格,默认值:DO_NOT_INSERT;
insert_new_line_in_empty_anonymous_type_declaration(insert/do_not_insert):在空的匿名类型声明中插入新行,默认值:INSERT;
insert_space_after_colon_in_conditional(insert/do_not_insert):在条件表达式的冒号后面插入空格,默认值:INSERT;
insert_space_after_opening_angle_bracket_in_parameterized_type_reference(insert/do_not_insert):在参数化类型引用的开始角括号之后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_paren_in_for(insert/do_not_insert):在for语句的结束括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_postfix_operator(insert/do_not_insert):在后缀操作符之前插入空格,默认值:DO_NOT_INSERT;
comment.format_source_code(TRUE, FALSE):用于控制代码片段是否在注释中格式化,默认为TRUE;
insert_space_before_opening_paren_in_synchronized(insert/do_not_insert):在同步语句中打开括号之前插入空格,默认值:INSERT;
insert_space_after_comma_in_allocation_expression(insert/do_not_insert):在分配表达式的逗号后面插入空格,默认值:INSERT;
insert_space_after_comma_in_constructor_declaration_throws(insert/do_not_insert):用于在构造函数声明的throw子句的异常名称后面插入一个空格,默认值:INSERT;
alignment_for_parameters_in_method_declaration:方法声明中参数的对齐;
insert_space_before_closing_brace_in_array_initializer(insert/do_not_insert):用于在数组初始化器的闭括号前插入空格,默认值:DO_NOT_INSERT;
use_tabs_only_for_leading_indentations(TRUE, FALSE):用于对缩进和空格进行行包装,默认为FALSE;
insert_new_line_after_annotation_on_member(insert/do_not_insert):在成员的注释(包、类、方法、字段声明)之后插入新行,默认值:INSERT;
comment.format_header(TRUE, FALSE):控制Java源文件的头注释是否被格式化,默认为FALSE;
comment.format_block_comments(TRUE, FALSE):用于控制多行注释是否被格式化,默认为TRUE;
insert_space_before_closing_paren_in_enum_constant(insert/do_not_insert):在enum常量中关闭括号之前插入空格,默认值:DO_NOT_INSERT;
alignment_for_enum_constants:对于枚举常数的对齐;
insert_new_line_in_empty_block(insert/do_not_insert):用于在空块中插入新行,默认值:INSERT;
indent_body_declarations_compare_to_annotation_declaration_header(TRUE, FALSE):将缩进主体声明与其所包含的注释声明头进行比较,默认为TRUE;
insert_space_before_closing_paren_in_parenthesized_expression(insert/do_not_insert):在圆括号中的圆括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_parenthesized_expression(insert/do_not_insert):在括号内的括号前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_closing_paren_in_catch(insert/do_not_insert):用于在catch - Option id中关闭括号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_comma_in_multiple_local_declarations(insert/do_not_insert):用于在多个本地声明中在逗号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_before_opening_paren_in_switch(insert/do_not_insert):用于在switch语句中打开括号之前插入空格,默认值:INSERT;
insert_space_before_comma_in_for_increments(insert/do_not_insert):用于在for语句的增量中在逗号之前插入空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_method_invocation(insert/do_not_insert):在方法调用中打开括号后插入空格,默认值:DO_NOT_INSERT;
insert_space_before_colon_in_assert(insert/do_not_insert):在assert语句中在冒号之前插入空格,默认值:INSERT;
brace_position_for_type_declaration{ END_OF_LINE, NEXT_LINE, NEXT_LINE_SHIFTED, NEXT_LINE_ON_WRAP }:用于定位类型声明的大括号,默认值:END_OF_LINE
insert_space_before_opening_brace_in_array_initializer(insert/do_not_insert):在数组初始化器中插入一个空格前插入一个空格,默认值:DO_NOT_INSERT;
insert_space_between_empty_braces_in_array_initializer(insert/do_not_insert):在数组初始化器中插入空括号之间的空格,默认值:DO_NOT_INSERT;
insert_space_after_opening_paren_in_method_declaration(insert/do_not_insert):用于在方法声明中打开括号后插入空格,默认:DO_NOT_INSERT;
insert_space_before_semicolon_in_for(insert/do_not_insert):在for语句中分号前插入空格,默认:DO_NOT_INSERT;
insert_space_before_opening_paren_in_catch(insert/do_not_insert):在catch中打开括号之前插入空格,默认值:INSERT;
insert_space_before_opening_angle_bracket_in_parameterized_type_reference(insert/do_not_insert):用于在参数化类型引用的开始角括号前插入空格,默认:DO_NOT_INSERT;
insert_space_after_comma_in_multiple_field_declarations(insert/do_not_insert):在多个字段声明中,在逗号后插入空格,默认值:INSERT;
insert_space_before_closing_paren_in_annotation(insert/do_not_insert):在注释中的结束括号之前插入空格,默认:DO_NOT_INSERT;
insert_space_after_comma_in_parameterized_type_reference(insert/do_not_insert):在参数化类型引用中,在逗号之后插入空格,默认值:INSERT;
insert_space_after_comma_in_method_invocation_arguments(insert/do_not_insert):在方法调用的参数中,在逗号之后插入空格,默认值:INSERT;
blank_lines_after_imports(其中n为0或为正整数):在导入声明之后添加空行,默认值:“0”;
insert_space_after_comma_in_multiple_local_declarations(insert/do_not_insert):在多个本地声明中插入逗号之后的空格,默认值:INSERT;
indent_body_declarations_compare_to_enum_constant_header(TRUE, FALSE):对于缩进体声明,与它的封闭枚举常量标题比较,默认为TRUE;
insert_space_after_semicolon_in_for(insert/do_not_insert):用于在for语句中在分号之后插入空格,默认值:INSERT;
never_indent_line_comments_on_first_column(TRUE, FALSE):缩进从第一列开始的行注释,默认为FALSE;
insert_space_before_opening_angle_bracket_in_type_arguments(insert/do_not_insert):用于在类型参数的开始角括号前插入空格,默认:DO_NOT_INSERT;
never_indent_block_comments_on_first_column(TRUE, FALSE):对从第一列开始的注释进行缩进,默认为FALSE;
keep_then_statement_on_same_line(TRUE, FALSE):将语句保持在同一直线上,默认为FALSE;

附录二:赠送

赠送几个我在实操中调整了的配置:

  • enum不强制换行。
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49"/>
<!--参考文档:https://www.5axxw.com/questions/content/pl3la3-->
  • 需要调整缩进,由tab转为空格。
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
  • 自动换行的长度与公司规定不一致。
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="150"/>

相关文章:

idea Java代码格式化规范

文章目录 引入基础知识代码模板idea模板eclipse模板1.安装插件2.生成配置文件3.导入配置文件 附录一&#xff1a;xml配置项说明附录二&#xff1a;赠送 引入 最近在公司开发中&#xff0c;遇到了一点小问题&#xff0c;组内各同事的格式化规范不一致。一来导致代码样式并不统一…...

apple MFI工厂认证,干货,为防止MFI工作人员查看,已设置VIP阅读

一开始以为审核特别严格,准备了好久,经历过了之后会发现很简单,1个小时完成了所有审核事项。 好好招待审计员,比如能接送就接送,到点吃饭就尽量约时间吃饭后再审计,找个正式的会议室,该摆盘水果就摆上,让审计员感觉到公司是很重视这次的MFI审核,但是不能贿赂发红包那…...

软件企业知识库应用场景?如何搭建软件企业知识库?

想要减少人工干预、减少不必要的时间和人力成本、快速获取准确信息……这些应用场景对于我们企业来说是非常渴望在短期内实现的。 软件企业知识库 因为传统知识库仅仅是存储&#xff1a;知识只是“存储”&#xff0c;根本用不起来&#xff0c;缺乏有效的管理方式和储存载体&am…...

华为OD 滑动窗口最大值(100分)【java】B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

软件测试 (用例篇)

前言 上一篇博客讲述的是一次基本的测试过程。 在我们开始做了一段时间基础测试&#xff0c;熟悉了业务之后&#xff0c;往往会分配来写测试用例&#xff0c;并且在日常测试中&#xff0c;有时也需要补充测试用例到现有的案例库中。 在这里我们将回答以下问题 1、测试用例的…...

5G技术的飞速发展:连接未来

随着科技的日益进步&#xff0c;5G通讯技术已经成为了全球科技领域的热门话题。5G&#xff0c;即第五代移动通信技术&#xff0c;带来的不仅仅是更快的网络速度&#xff0c;它的高带宽和低延迟特性将为未来的数字世界奠定基础。 速度与效率的飞跃: 5G技术的最大亮点是它极高的下…...

linux进程管理,一个进程的一生(喂饭级教学)

这篇文章谈谈linux中的进程管理。 一周爆肝&#xff0c;创作不易&#xff0c;望支持&#xff01; 希望对大家有所帮助&#xff01;记得收藏&#xff01; 要理解进程管理&#xff0c;重要的是周边问题&#xff0c;一定要知其然&#xff0c;知其所以然。看下方目录就知道都是干货…...

【SA8295P 源码分析 (四)】51 - QNX NFS Server + Android NFS Client 完整配置

【SA8295P 源码分析】51 - QNX NFS Server + Android NFS Client 完整配置 一、QNX 侧 NFS Server 修改:ip 为 192.168.118.21.1 配置拷贝 nfsd、rpcbind 到 /mnt 目录下1.2 配置 exports1.3 为NFS 共享目录挂载镜像1.4 修 startup.sh 开机自启动 nfsd Server1.5 关闭 QNX 防火…...

2023年10月23日--10月29日(主攻光追视频教程)

最好每周完成一样&#xff0c;将来每月完成一样&#xff0c;有成就感。也免得周末迷茫。 光锥目前还有56节&#xff0c; 周二到周五每天4小节。周六日每天20小节&#xff0c;应该可以完成。 即&#xff1a; 周二&#xff1a;9.5-9.8 周三&#xff1a;9.9-10.3 周四&#xff1a…...

【Python语言速回顾】——函数模块类与对象

目录 引入 一、函数 1、函数概述 2、参数和返回值 3、函数的调用 二、模块 1、模块概述 2、模块应用实例 三、类与对象 1、面向对象概述 2、类 3、类的特点 引入 为了使程序实现的代码更加简单。需要把程序分成越来越小的组成部分&#xff0c;3种方式——函数、对象…...

【JavaEE】Java的多线程编程基础知识 -- 多线程篇(2)

Java多线程编程基础知识 一、多线程的创建二、Thread类常用的方法和API2.1 Thread 的几个常见的属性2.2 start 启动一个线程2.3 终止一个线程2.4 等待一个线程-join()2.5 线程休眠函数 -sleep() 三、线程状态3.1 观察所有线程的状态3.2 线程状态和线程转移的意义 四、线程安全&…...

MFC Windows 程序设计[330]之表头控件例程(附源码)

MFC Windows 程序设计[330]之表头控件例程 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Wind…...

SettingsIntelligence

Android Settings 系列文章&#xff1a; Android Settings解析SettingsIntelligenceSettingsProvider 首语 Android Settings中搜索功能帮助我们可以快速访问设置项&#xff0c;进行自定义设置&#xff0c;以得到更佳的使用体验。Android Settings搜索的实现实际不在Setting…...

C#WPF Prism框架区域管理应用实例

本文实例演示C#WPFPrism框架区域管理应用实例 目录 一、Prism框架区域 二、不使用Prism框架的RegionManager 三、使用Prism框架的RegionManager 一、Prism框架区域...

LabVIEW基于机器视觉的钢轨表面缺陷检测系统

LabVIEW基于机器视觉的钢轨表面缺陷检测系统 机器视觉检测技术和LabVIEW软件程序&#xff0c;可以实现轨道工件的表面质量。CMOS彩色工业相机采集的图像通过图像预处理、图像阈值分割、形态分析、特征定位和图案匹配进行处理和分析。图形显示界面采用LabVIEW软件编程设计&…...

Qt程序的发布和打包,任何电脑都可以安装

## 1. Qt程序的发布 当Qt程序编写完成通过IDE编译就可以得到对应的可执行程序,这个可执行程序在本地运行是完全没有问题的(因为在本地有Qt环境,程序运行过程中可以加载到相关的动态库),但是如果我们想把这个Qt程序给到其他小伙伴使用可能就会出问题了,原因如下: 对方电…...

MD5生成和校验

MD5生成和校验 2021年8月19日席锦 任何类型的一个文件&#xff0c;它都只有一个MD5值&#xff0c;并且如果这个文件被修改过或者篡改过&#xff0c;它的MD5值也将改变。因此&#xff0c;我们会对比文件的MD5值&#xff0c;来校验文件是否是有被恶意篡改过。 什么是MD5&#xff…...

PostgreSQL 正则表达式匹配字段

在 PostgreSQL 数据库中&#xff0c;可以使用 ~ 和 !~ 操作符进行正则表达式的匹配和否定匹配。还可以使用 :: 操作符进行正则表达式的模式匹配。 例如&#xff0c;假设我们有一个名为 users 的表&#xff0c;其中有一个名为 email 的字段&#xff0c;我们可以使用以下 SQL 语句…...

关于iterm2的美化

iterm2 美化 笔者公司最近给发了一个新 M1 mac pro&#xff0c;所以一些软件需要重新安装。其中比较麻烦就是iterm2的一个美化工程 &#xff0c; 由于每次安装的效果都不尽相同所以这次写一个博客来记录一下 安装的过程 。 全程高能开始&#xff1a; 使用brew 来安装 iterm2 …...

Hook原理--逆向开发

今天我们将继续讲解逆向开发工程另一个重要内容--Hook原理讲解。Hook&#xff0c;可以中文译为“挂钩”或者“钩子”&#xff0c;逆向开发中改变程序运行的一种技术。按照如下过程进行讲解 Hook概述Hook技术方式fishhook原理及实例符号表查看函数名称总结 一、Hook概述 在逆…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...