飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

Google 的 Java 编码规范

  • 2014-02-12
  • 本文字数:798 字

    阅读完需:约 3 分钟

Google 最近发布了一份完整的 Java 编码规范。规范的内容包括一些切实可行的硬性规定。Google 内部均遵守此规范。该规范不仅涵盖了代码格式,还包括其他类型的约定和编码标准。

该规范主要分为 6 大部分:源文件基本规范、源文件结构、代码格式、命名、编程实践和 Javadoc。_ 源文件基本规范 _ 说明文件名、文件编码、空格和特殊字符等规范要求。_ 源文件结构 _ 说明许可信息、package 和 import 声明、类成员顺序等规范要求。_ 代码格式 _ 用于说明源代码中大括号、缩进、换行、空格、括号、枚举、数组、switch 语句、注解、注释和修饰符等格式要求。_ 命名 _ 说明了标识符(包、类、方法、常量、属性、局部变量和类变量)的命名规范和驼峰大小写定义。_ 编程实践 _ 说明 @Override、异常、静态成员和终结器的用法。Javadoc 说明哪些地方需要 Javadoc,以及它的格式要求。

以下是从规范中摘录的一些内容:

  • import 中不能有通配符。
  • 重载方法应该放在一起连续出现。
  • 即使代码块中没有内容,或者只有一行代码,也必须使用大括号。
  • 2 空格缩进。
  • 列宽是 80 或 100 个字符。
  • 不能使用类似 C 语言的数组变量声明。
  • switch 语句中,必须包含 default 语句。
  • 修饰符的顺序应按照 Java 语言规范推荐的顺序。
  • 常量命名应使用 CONSTANT_CASE 格式(译注:所有字母大写,单词使用下划线分隔)。注意,所有常量都必须是 static final 成员,但并不是所有的 static final 成员都是常量。

更多内容请阅读 Google Java Style 。Oracle 也提供了官方的Java 语言编码规范。Google 还提供了其它语言的代码风格指南,包括C++、Objective-C、Python、Shell、HTML/CSS、JavaScript 和Lisp 等等。

原文英文链接: Google’s Java Coding Standards


感谢姚琪琳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-02-12 02:4923455

评论

发布
暂无评论
发现更多内容

wapper解析

卢卡多多

6月月更

【Python技能树共建】字符编码与解码

梦想橡皮擦

Python 6月月更

Python 设计模式:原型模式

宇宙之一粟

设计模式 原型模式 6月月更

【Spring 学习笔记(十四)】Spring AOP 通知中获取数据

倔强的牛角

Java spring 6月月更

面试突击58:truncate、delete和drop的6大区别

王磊

Java java常见面试题 常见面试题

C#入门系列(二十) -- 面向对象之封装

陈言必行

C# 6月月更

敲了几万行源码后,我给Mybatis画了张“全地图”

小傅哥

源码分析 面试 小傅哥 mybatis 大厂面试

【愚公系列】2022年06月 通用职责分配原则(八)-中介原则

愚公搬代码

6月月更

在线JSON转TSV工具

入门小站

工具

架构实战营模块4作业

挖了蘑菇哩斯

架构实战营 存储方案

初创公司,如何拥有企业级Java脚手架

昵称不能为null

Java脚手架 企业级代码架构

scanf的使用,cin和scanf的区别

工程师日月

6月月更

解决k8s调度不均衡问题

劼哥stone

Kubernetes 云原生 调度 调度不均衡 kube-scheduler

【作业四 千万级学生管理系统的考试试卷存储方案】

wuli洋

远程办公三部曲 - 如何提高工作效率| 社区征文

耳东@Erdong

工作效率 远程办公 6月月更 初夏征文

Jenkins 通过检查代码提交自动触发编译

HoneyMoose

618战报销冠谜底:“收割机”联想屠榜背后的三大利器是什么?

脑极体

uni-app进阶之生命周期【day8】

恒山其若陋兮

6月月更

dart使用技巧集合【01】

坚果

6月月更

GetX 响应式状态管理简介

岛上码农

flutter ios 安卓 跨平台应用 6月月更

课程背景

IT蜗壳-Tango

6月月更

ImportSelector与DeferredImportSelector的区别(spring4)

程序员欣宸

Java spring SpringFramework 6月月更

Linux开发_采用线程处理网络请求

DS小龙哥

6月月更

在线多行文本行转列工具

入门小站

工具

JVM调优简要思想及简单案例-JVM分代模型

zarmnosaj

6月月更

我理解的微服务 -- 读《微服务设计模式》总结

潜水员

golang 微服务

《网络是怎么样连接的》读书笔记 - Tcp/IP连接(二)

懒时小窝

TCP 网络编程 IP

echo命令实用技巧

Nick

Docker 镜像源 echo 6月月更 tldr

DOM

Jason199

DOM js 6月月更

redis内存优化

乌龟哥哥

6月月更

DOM核心——Element类型

大熊G

JavaScript 前端 6月月更

Google的Java编码规范_Java_Bienvenido David_InfoQ精选文章