QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:4923369

评论

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

说说Vue响应式系统中的Watcher和Dep的关系-面试进阶

bb_xiaxia1998

Vue

Vue是怎样监听数组的变化的?

bb_xiaxia1998

Vue

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵教育

书单 国庆节

Vue3入门指北(八)v-model

Augus

Vue3 10月月更

InetAddress.getLocalHost() 执行很慢?

xiaoxi666

网络 网络库

什么是 Python 垃圾回收机制中的引用计数

宇宙之一粟

Python 垃圾回收机制 引用计数 10月月更

微服务通信

穿过生命散发芬芳

微服务 10月月更

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

React

硬核好文!网络拓扑类型:总线、环形、星形、网状、树形、点对点、混合

wljslmz

网络技术 网络拓扑 10月月更

【C语言难点突破】指针入门讲解

Geek_65222d

10月月更

【一Go到底】第五天---指针

指剑

Go golang 10月月更

经常会采坑的javascript原型应试题

loveX001

JavaScript

C++学习---_IO_new_fdopen函数原理分析学习

桑榆

c++ 源码分析 10月月更

【牛客刷题-算法】NC22 合并两个有序的数组

清风莫追

算法 数组 10月月更

【牛客刷题-算法】NC25 删除有序链表中重复的元素-I

清风莫追

算法 链表 10月月更

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵社区

书单 国庆节

网络请求模块(2)

张立梵

Python. 爬虫必备知识讲解 10月月更

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

面试官:React怎么做性能优化

beifeng1996

React

【愚公系列】2022年10月 Go教学课程 018-分支结构之switch

愚公搬代码

10月月更

最长回文串

掘金安东尼

10月月更 算法、

【牛客刷题-算法】NC16 对称的二叉树

清风莫追

算法 二叉树 10月月更

Mac下vagrant从安装到体验

程序员欣宸

vagrant 虚拟机 10月月更

面向对象究竟是什么鬼?该如何理解?

乌龟哥哥

10月月更

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

老生常谈React的diff算法原理-面试版

beifeng1996

React

Collections之Arraylist源码解读(五)

知识浅谈

ArrayList 10月月更

Fiddler(一) - Fiddler简介

No Silver Bullet

fiddler 10月月更 抓包工具

基于IDE和dlv远程调试Kubernetes组件

琦彦

Go Kubernetes 调试 10月月更 delve

2022-10-04:以下go语言代码输出什么?A:{123} main.T{x:123} B:{123} T{x:123} C:boo boo D:boo main.T{x:123}。 packag

福大大架构师每日一题

golang 福大大 选择题

Fiddler(二) - 使用Fiddler做抓包分析

No Silver Bullet

fiddler 抓包分析 10月月更

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