导航:首页 > 编程语言 > java语言编程规范

java语言编程规范

发布时间:2022-08-18 08:32:25

① 哈哈哈哈,我真的想知道java怎么学习

第一步:首先要做好学习前的准备工作:java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。

第二步:然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。

第三步:掌握java语言基础后接下来就是面向对象语言的共性:Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。

第四步:JDK核心API语言核心包、异常处理、常用工具包、集合框架。熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。

2
java怎么学习

系统的学习Java编程的基础

如果真的想成为Java程序员,那么学习Java时就不要东一片、西一片的学习,要全面的、系统的学习Java编程基础,包括AWT、Swing这些不是经常用到的 内容也要学习,深刻的理解面向对象(Object-Oriented)的编程思想,掌握封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)三大特性,把面向对象的思想运用到实际的代码编写中。

掌握常用的API用法

每一门成熟的编程语言都会向用户提供丰富的应用编程接口(Application programming Interface),也就是通常所说的API,熟练掌握这些API,无疑会极大的提高我们编码的效率,但是Java提供的API实在是太多了点,全部掌握很难实现,而且也没有必要,我们只要熟练掌握常用的API就好,不常用的API用到的时候,再在API文档中查找用法即可。

通读官方语言教程和规范

发布编程语言的官方,一般都会在其官方网站上提供官方语言教程(Tutorials)和规范(Specification),Java的官方网站当然也不例外。Oracle提供的Java Tutorials官方教程是很好的入门读物,系统全面还带有示例演示,非常易学,看到很多Java的初学者还在满网络的找教程,殊不知最好的教程就在官方网站上等着呢,即使是Java老司机也可以在里面发现自己以前的知识遗漏点。Java Specification 语言规范是更进一步的读物,里面解释了语言的内部规范,比较难以读懂,但是初读时不要强求读懂所有的内容,适当的囫囵吞枣,多读几遍可能就理解了。而对于要求更高的Java程序员,可以读读JVM Specification,Java虚拟机规范。

借鉴Java重要类的官方源代码

Java是一门开源的编程语言,下载其JDK(Java Development Kit,Java开发 工具包)时,会自带Java的源代码压缩包src.zip,解压后就可以查看Java自带类的源代码,这些源代码都是Java大神们写的,非常有学习意义。这也是学习Java语言相对于其它闭源开发语言的一大优势。

3
java怎么样学习

1、扎实的基础

数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。

2、丰富的想象力

不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。

3、最简单的是最好的

这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2.简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。

4、不钻牛角尖

当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

4
java怎样学习

it行业目前流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了,而且完全可以同时掌握。

掌握Java的精华特性而且一定要知道为什么。比如,Interface和multi-thread。用interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理解interface是为什么,用多线程又有几种常用的编程模型。

理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式。首先要找出最顶层的对象(这往往是最难的),然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计。

有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。懂了这些模式之后,就会对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种

② 从入门到精通,学Java你需要注意这几点!

Java从入门到精通学习应该怎么做呢?做好哪些事情可以更快的入门Java编程?今天就让小编来帮你梳理一下~

Java编程语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java编程技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显着优势和广阔前景。

No.1

找一本好的书本教材

好的教材,可以让你更快更好的进入Java的世界。在校学生的话,你们的教材通常都是不错的也可以到职坐标的优才商城选择合适的教材。

No.2

学好基本语法,弄清Java的特点

学习Java,说白了,就是学习它的语法、功能、结构等。然后按照它的语法编写代码。Java语法是学习的根本。开始学习时,可能有些难懂。没关系,这很正常。多看多问,多实践,慢慢的你就入门了。

No.3

没有捷径,一定要多动手实践

学习Java,和学数学一样,在学懂理论后,一定要实践。学习Java不能搭便车。有时候,语法和例子很简单,很容易看懂,但到自己动手写的时候,又是另一种感觉。只有多动手编程,哪怕是简单的小程序,重复实现书上简单的例子,也是在积累和提高。动手编码离不开编程工具的支持。


No.4

学习编程规范,编程中坚持遵守

俗话说,无规矩不成方圆。编程是一个将思维逻辑变为代码,让计算机来执行的过程。特别需要规范。无论是变量、函数命名还是代码格式,都需要一致规范。这样便于代码的阅读和修改。代码的规范性,在代码质量中占据着重要的比重。


No.5

给代码添加足够的注释说明

代码注释的作用,毫不夸张的说,就像旅游景点的指示牌。我们在编程时,对自己的想法十分清楚。但一段时间之后呢,或者让别人来阅读代码呢。如果注释丰富,读代码就大体可以用读注释来代替了。

注意,注释要对那些有一定难度的语句、过程方法或结构等的注释,非常浅显易懂的就不需要注释啦。养成对难懂代码注释的习惯吧。

No.6

多看别人的代码


对同一种功能的实现,可以有很多种编码方式。多读别人的代码,非常有利用开拓思路,提高编码的灵活性。甚至经常可以从别人的代码中得到启发,产生灵感,创作出优秀的代码。

No.7

代码尽量写的简单,易于理解

代码的简单性、正确性是最重要的。不要为了追求高效率而写出晦涩难懂的代码。后续阅读和修改代码时,你会为晦涩的代码付出很多代价。记住,尽量将代码写成初学 Java就能读懂的,那么你的代码就十分的优美了。

No.8

学习设计模式

设计模式就是高手们总结的一些关于编程方法的总结,这对新手来说非常的有用。学习设计模式,可以提高我们编程的灵活度以及设计的合理性。不仅 Java,其他编程语言,如C#、C++中,设计模式也在大行其道。所以,你没有理由错过高手们总结的编程精华。

No.9

喜欢它,并坚持走下去

Java的学习,容易入门,却难以精通。永远不要因为害怕困难,而减少你对它的兴趣。每年都有很多人在学习Java,因为它很强大。如果你能坚持下去,那么你也是强大的。


No.10

选择一套体系完善的课程

在完善的课程体系中学习非常重要,这有助于你掌握系统的Java编程知识和技能,而且好的课程会帮助你前期打好基础,后期有针对性地使你快速提升,这对Java新手来说十分有效。比如云和数据的Java大数据企业直通班,不仅有国际名师在线指导,还有牛人大咖全程面授,“六位一体”、“X+12”双重教学模式,打造一流完善的课程体系,可以给你全方位因材施教的教学指导。

关于我们学校简介

③ Java初学者入门指南!

很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识。小编总结了零基础学习Java编程语言的几个基础知识要点。希望能够对刚入门的Java新手有帮助。

1先了解什么是Java的四个方面

初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有哪些应用。想想这些代码中用到了哪些知识点。不要一味地照着书本敲代码。而不去理解。

1.Java编程语言,即语法。

2.Java文件格式,即各种文件夹、文件的后缀。

3.Java虚拟机(JVM),即处理*.class文件的解释器。

4.Java应用程序接口(Java API)。

2掌握静态方法和属性

静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。

理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。因此学习者应该理解静态方法和属性。Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。

3初学者还需明白JAVA的三个技术平台的关系

Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版)。JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版)。Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。

要知道java是分两部分的:一个是编译,一个是运行。

javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数。

4掌握JAVA代码的基本格式

1、Java注释尽可能全面

对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述:类的注释应该包含类的功能说明、作者和修改者。

2、多次使用的相同变量最好归纳成常量

多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。

3、尽量少的在循环中执行方法调用

尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:

for(int i=0;i<list.size();i++){

System.out.println(i);

}

可以修改为:

for(int i=0,size=list.size();i<size;i++){

System.out.println(i);

}

4、常量的定义可以放到接口中

④ java编程是什么

Java(计算机编程语言),深入了解Java开发?
Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上,后来随着互联网的兴起,Java语言迅速崛起(Java applet 可以在浏览器中运行),成为大型互联网项目的首选语言。
从首次发布开始,Java就跃到了 Internet 编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java依然是开发基于 Web 的应用程序的最佳选择。此外,Java还是智能手机变革的推手,Android 编程采用的就是Java语言。
Java可分为3个体系,即JavaSE、JavaEE 和JavaME。下面千锋重庆Java的小编简单介绍下这3个体系。
1、JavaSE
JavaSE(JavaPlatform Standard Edition,Java平台标准版)以前称为J2SE,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE包含了支持JavaWeb服务开发的类,并为JavaEE 提供基础,如Java语言基础、JDBC操作、I/O 操作、网络通信以及多线程等技术。图所示为JavaSE的体系结构。

2、JavaEE
JavaEE(JavaPlatform Enterprise Edition,Java平台企业版)以前称为J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE是在JavaSE基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture,SOA)和Web 2.0应用程序。
3、JavaME
JavaME(JavaPlatform Micro Edition,Java平台微型版)以前称为 J2ME,也叫 K-JAVA。JavaME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
JavaME包括灵活的用户界面、健壮的安全模型、丰富的内置网络协议以及对可以动态下载的联网和离线应用程序。基于JavaME 规范的应用程序 只需编写一次就可以用于许多设备,而且可以利用每个设备的本机功能。

⑤ java编码规范有哪些

这个就有点多了,可以借鉴比较成熟公司的编码规范看看,一般规范,比如代码命名规范,常量定义,集合处理,异常处理,注释等等。

⑥ 零基础学习Java编程需要知道的十二个步骤!


一、学习前的准备工作

java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。

二、Java语言基础的学习阶段学习

任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。

三、面向对象语言的共性

Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。

四、JDK核心API语言核心包、异常处理、常用工具包、集合框架

熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。

五、SQL语言SQL语句基础和提高、SQL语句调优

熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。Oracle数据库开发Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。掌握Oracle体系结构及核心编程技术。

六、连接数据库:JDBCJDBC核心API(Connection、Statement、ResultSet)、JDBC优化技术(缓存技术、批处理技术、连接池技术)

理解JDBC作为规范的设计原则;熟练掌握JDBC API;具备使用JDBC对数据库进行高效访问的能力。

七、软件工程基础软件过程和软件活动

需求设计、概要设计、详细设计基本原则和文档规范;配置管理的基本概念和必要性;CVS基本操作;Ant简介理解软件过程的普遍概念和基本的软件活动;理解迭代的意义;掌握Ant、CVS等常用配置管理及部署工具。

八、OOAD及设计模式面向对象基本设计原则、工厂模式、策略模式、适配器模式、代理模式等、门面模式

理解面向对象设计的一般原则;理解重用的意义;掌握常见的设计模式。

九、HTML/CSSHTML基本文档结构、掌握CSS基础语法、关于HTML文档块、链接、列表、表格、表单等

掌握

十、Ajax基础、XHR对象、Ajax设计模式、JSON技术

掌握Ajax的基本通信原理;掌握基于XML和JSON的Ajax数据规则。

十一、JavaScript框架JQuery、JQuery插件、DWR

掌握JQuery核心API;了解JQuery基本设计原则;了解多种JQuery插件;掌握DWR的基本原理及应用技巧。

十二、ssh三大框架的学习

这是企业实际应用的框架模型:

1,Struts 2.1.6 Struts2核心控制流程、Ognl、Action、Interceptor、,Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。熟练掌握Struts2核心要件,特别是Interceptor和Result;掌握基于模板技术的Struts2 UI组件;掌握基于Ognl的数据共享方式、掌握Struts2各种定制及扩展方式;熟练掌握基于Struts2的Web开发技巧。

2,Hibernate 3.2.1 ORM概念、Hibernate核心API、Hibernate实体映射技术、Hibernate关系映射技巧、HQL查询、OSCache及Hibernate缓存技术。重点掌握Hibernate多种关联映射技巧及其实用背景,做到在合适的时候使用合适的关联方式;掌握多种Hibernate查询技巧及优化技术。

3,Spring 2.5 Spring Ioc基础、Ioc注入技巧、对象高级装配(自动装配、模板装配、组件扫描特性、FactoryBean、对象生命周期)、Spring AOP原理、AspectJ、Spring JDBC支持、Spring事务及安全管理;Spring整合Hibernate、Spring整合Struts、Spring MVC简介。深入理解Ioc和AOP的基本原理和实现方式;熟练掌握SpringIoc及AOP实现方式;熟练掌握Spring事务管理;熟练掌握Spring与其他组件的整合技术。




⑦ java。。。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1]  。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3]  。
外文名Java现公司Oracle推出时间1995年5月
目录
1 发展历程
2 编程开发
▪ 编程环境
▪ 编程工具
3 语言特点
4 工作原理
5 语言基础
▪ 基本数据结构
▪ 关键字
▪ 运算符
▪ 程序举例
6 语言标准
7 语言规范
8 技术应用
9 学习指南
▪ 考试
▪ 教材
10 语言评价
▪ 发展前景
▪ 贡献及影响力
发展历程
编辑
JAVA
20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。
由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台。对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。
由于在开发Oak语言时,尚且不存在运行字节码的硬件平台,所以为了在开发时可以对这种语言进行实验研究,他们就在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比C++更加简单之外,没有什么大的区别。1992年的夏天,当Oak语言开发成功后,研究者们向硬件生产商进行演示了Green操作系统、Oak的程序设计语言、类库和其硬件,以说服他们使用Oak语言生产硬件芯片,但是,硬件生产商并未对此产生极大的热情。因为他们认为,在所有人对Oak语言还一无所知的情况下,就生产硬件产品的风险实在太大了,所以Oak语言也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。
1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器WebRunner。 

⑧ 哪位高手赐教java和jsp,等编程规范

1.struts

struts框架具组件模块化灵性重用性优点同简化基于MVCweb应用程序发

优点:
Struts跟Tomcat、Turbine等诸Apache项目源软件优点使发者能更深入解其内部实现机制
除外Struts优点主要集体现两面:Taglib页面导航TaglibStruts标记库灵用能提高发效率另外目前内JSP发者言除使

用JSP自带用标记外少发自标记或许Struts起点
关于页面导航我认今发展向事实做使系统脉络更加清晰通配置文件即握整系统各部间联系于期维护着

莫处尤其另批发者接手项目种优势体现更加明显

另外struts业界"标准"(功案例)习资源丰富HTML标签非优秀

缺点:
TaglibStruts优势于初者言却需要持续习程甚至打乱网页编写习惯习惯觉真棒
StrutsMVCController三获结构更加清晰同增加系统复杂度
ActionForms使用便、进行单元测试(StrutsTestCase能用于集)

【IT168技术文档】
Struts跟Tomcat、Turbine等诸Apache项目源软件优点使发者能更深入解其内部实现机制 Struts放源码框架创建使发者

构建基于Java ServletJavaServer Pages(JSP)技术Web应用更加容易Struts框架放者提供统标准框架通使用Struts作基础发者能够更专注

于应用程序商业逻辑Struts框架本身使用Java ServletJavaServer Pages技术种Model-View-Controller(MVC)实现.
具体讲,Struts优点:

1. 实现MVC模式结构清晰,使发者关注业务逻辑实现.

2. 丰富tag用 ,Struts标记库(Taglib)能灵用则能提高发效率另外目前内JSP发者言除使用JSP自带用标记外少发

自标记或许Struts起点

3. 页面导航.页面导航今发展向事实做使系统脉络更加清晰通配置文件即握整系统各部间联系于期维护

着莫处尤其另批发者接手项目种优势体现更加明显

4. 提供Exception处理机制 .

5. 数据库链接池管理

6. 支持I18N

缺点:
、 转展示层需要配置forward每转展示层相信数都直接转jsp涉及转向需要配置forward十展示层jsp需要配置十struts

且包括候目录、文件变更需要重新修改forward注意每修改配置要求重新部署整项目tomcate服务器必须重新启服务器业务

变更复杂频繁系统操作简单想象现几十百同线使用我系统家想象我烦恼

二、 Struts Action必需thread-safe式仅仅允许实例处理所请求所action用所资源都必需统同步引起线程安全问题

三、 测试便. Struts每Action都同Web层耦合起测试依赖于Web容器单元测试难实现Junit扩展工具Struts TestCase实现

单元测试

四、 类型转换. StrutsFormBean所数据都作String类型使用工具Commons-Beanutils进行类型转化转化都Class级别且转化类型

配置类型转化错误信息返给用户非困难

五、 Servlet依赖性强. Struts处理Action必需要依赖ServletRequest ServletResponse所摆脱Servlet容器

六、 前端表达式语言面.Struts集JSTL所主要使用JSTL表达式语言获取数据JSTL表达式语言Collection索引属性面处理显弱

七、 Action执行控制困难. Struts创建Action想控制执行顺序非困难甚至要重新写Servlet实现功能需求

八、 Action 执行前处理. Struts处理Action候基于classhierarchies难action处理前进行操作

九、 事件支持够. struts实际表单Form应Action类(或DispatchAction)换句说:Struts实际表单能应事件struts种事

件式称application eventapplication eventcomponent event相比种粗粒度事件

Struts重要表单象ActionForm种象代表种应用象至少包含几字段些字段Jsp页面表单input字段表单应事件所

我需要事件粒度细化表单些字段说字段应事件单纯使用Struts太能通结合JavaScript转弯实现

2.Hibernate
Hibernate放源代码象关系映射框架JDBC进行非轻量级象封装使Java程序员随所欲使用象编程思维操纵数据库
Hibernate应用任何使用JDBC场合既Java客户端程序实用Servlet/JSPWeb应用使用具革命意义Hibernate应用EJBJ2EE架构

取代CMP完数据持久化重任
数发机构经采取创建各自独立数据持久层旦底层数据结构发改变修改应用其余部使适应种改变代价十巨Hibernate适填补

空白Java应用提供易用、高效率象关系映射框架hibernate轻量级持久性框架功能却非丰富

优点:
a.Hibernate 使用 Java 反射机制 字节码增强程序实现透明性
b.Hibernate 性能非轻量级框架 映射灵性色
c.支持各种关系数据库各种复杂关系

缺点:限制您所使用象模型(例持久性类能映射表)其独界面怜市场份额让安尽管Hibernate 其强发展力减轻

些风险其源持久性框架些都没 Hibernate 市场冲击力

面贴情绪点激希望谅解我批评Hibernate快帖面观点实让我觉荒谬管觉Hibernate吧吧我唯觉

遗憾文论坛面找Hibernate真高水平评价TSS关于Hibernatehot thread跟几百贴其包括Hibernate作者GavinLiDO JDO

CTO于JDOHibernate些激烈争论我曾经耐看遍仍没发现针Hibernate真力攻击些所谓攻击非针Hibernate没GUI配置工

具没商业公司支持没标准化等等些站住脚理由

补充几点我意见:

、HibernateJDBC轻量级象封装独立象持久层框架App ServerEJB没必联系Hibernate用任何JDBC使用场合例Java

应用程序数据库访问代码DAO接口实现类甚至BMP面访问数据库代码意义说HibernateEB范畴东西存非即彼关系

二、HibernateJDBC密切关联框架所Hibernate兼容性JDBC驱数据库都定关系使用Java程序App Server没任何关系存

兼容性问题

三、Hibernate能用直接Entity Bean做比放整J2EE项目框架才能比较并且即使放软件整体框架看Hibernate做JDBC替代者现

Entity Bean替代者现让我再列我已经列n框架结构:

传统架构:
1) Session Bean Entity Bean DB
解决性能障碍替代架构:
2) Session Bean DAO JDBC DB
使用Hibernate提高面架构发效率架构:
3) Session Bean DAO Hibernate DB

面3架构析:
1、内存消耗:采用JDBC架构2疑省内存Hibernate架构3EB架构1差

2、运行效率:JDBC代码写非优化JDBC架构运行效率高实际项目点几乎做需要程序员非精通JDBC运用Batch语句调整

PreapredStatementBatch SizeFetch Size等参数及必要情况采用结集cache等等般情况程序员做点Hibernate架构表现快运行

效率EB架构效率差远

3、发效率:JBuilder支持及简单项目EB架构发效率高JDBCHibernate差项目特别持久层关系映射复杂情况Hibernate效

率高惊JDBCEB架构能失败

4、布式安全检查集群负载均衡支持
由于SB做Facade3架构没区别

四、EBHibernate习难度哪

EB难度哪复杂XML配置文件于EB运用稍微慎严重性能障碍所难需要习EJB设计模式避性能问题需要习App ServerEB

配置优化EB运行效率做EB发工作程序员部精力都放EB性能问题反没更精力关注本身主要投入精力考虑象持久层设计

Hibernate难哪Hibernate本身复杂实际Hibernate非简单难Hibernate太灵

用EB实现持久层候发现EB实太笨拙笨拙根本没选择余所根本用花费精力设计案平衡案坏费脑筋考虑

选择哪案唯案摆面前能做没选择

Hibernate相反太灵相同问题至少设计十几种案解决所特别犯难究竟用用呢些案间底区别呢运行原

理同运行效率哪比较光主键七八种案供选择难难集合属性用Set用List用Bag底哪效率高难

难查询用iterator用list哪区别难难复合主键直接hbm面配置自定义CustomerType哪种比较些难难

于表选择单映射象映射父象映射两1:1象情况用哪种案比较难难

列表直列直想再看止面前摆着数眼花缭乱案候觉幸福呢悲哀呢负责程序员定

仔细研究每种案区别每种案效率每种案适用场合觉已经陷入进拔用EB第秒种已经做决定根本没选择比说集

合属性能用CollectionHibernateBagListSet间犹豫决甚至搞清楚程序都没办写

3. Spring
源项目且目前非跃;基于IoC(Inversion of Control反向控制)AOP构架层j2ee系统框架强迫必须每层 必须使用Spring

模块化允许根据自需要选择使用某模块;实现优雅MVC同数据访问技术提供统 接口采用IoC使容易实现bean装

配提供简洁AOP并据实现Transcation Managment等等
优点
a. Spring能效组织间层象管否选择使用EJB仅仅使用Struts或其J2EE API特制frameworkSpring致力于解决剩问题
b. Spring能消除许工程见Singleton使用根据我经验问题降低系统测试性面向象程度
c. 通种同应用程序项目间致处理配置文件Spring能消除各种各自定义格式属性文件需要曾经某类要寻找哪魔般属性项或系统属

性解读Javadoc甚至源编码Spring仅仅需要看看类JavaBean属性Inversion of Control使用(面讨论)帮助完种简化
d. 通接口编程类编程代价几乎减少没Spring能够促进养编程习惯
e. Spring设计让使用创建应用尽能少依赖于APIsSpring应用数业务象没依赖于Spring
f. 使用Spring构建应用程序易于单元测试
g. Spring能使EJB使用实现选择,应用架构必选择能选择用POJOs或local EJBs实现业务接口却影响调用代码
h. Spring帮助解决许问题需使用EJBSpring能提供种EJB替换物适用于许web应用例Spring能使用AOP提供声明性事务管理通EJB容器

仅仅需要与单数据库打交道甚至需要JTA实现
i. Spring数据存取提供致框架,论使用JDBCO/R mapping产品(Hibernate)
Spring确实使能通简单行解决办解决问题价值

缺点:使用数、jsp要写代码、控制器于灵缺少公用控制器

⑨ java编程规范!!!

名称 Java语言编码规范(Java Code Conventions)
简介 本文档讲述了Java语言的编码规范,较之陈世忠先生《c++编码规范》的浩繁详尽,此文当属短小精悍了。而其中所列之各项条款,从编码风格,到注意事项,不单只Java,对于其他语言,也都很有借鉴意义。因为简短,所以易记,大家不妨将此作为handbook,常备案头,逐一对验。
1 介绍
1.1 为什么要有编码规范
1.2 版权声明
2 文件名
2.1 文件后缀
2.2 常用文件名
3 文件组织
3.1 Java源文件
3.1.1 开头注释
3.1.2 包和引入语句
3.1.3 类和接口声明
4 缩进排版
4.1 行长度
4.2 换行
5 注释
5.1 实现注释的格式
5.1.1 块注释
5.1.2 单行注释
5.1.3 尾端注释
5.1.4 行末注释
5.2 文挡注释
6 声明
6.1 每行声明变量的数量
6.2 初始化
6.3 布局
6.4 类和接口的声明
7 语句
7.1 简单语句
7.2 复合语句
7.3 返回语句
7.4 if,if-else,if else-if else语句
7.5 for语句
7.6 while语句
7.7 do-while语句
7.8 switch语句
7.9 try-catch语句
8 空白
8.1 空行
8.2 空格
9 命名规范
10 编程惯例
10.1 提供对实例以及类变量的访问控制
10.2 引用类变量和类方法
10.3 常量
10.4 变量赋值
10.5 其它惯例
10.5.1 圆括号
10.5.2 返回值
10.5.3 条件运算符"?"前的表达式"?"前的表达式
10.5.4 特殊注释
11 代码范例
11.1 Java源文件范例

1 介绍(Introction)

1.1 为什么要有编码规范(Why Have Code Conventions)

编码规范对于程序员而言尤为重要,有以下几个原因:

- 一个软件的生命周期中,80%的花费在于维护
- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护
- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码
- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品

为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人。

1.2 版权声明(Acknowledgments)

本文档反映的是Sun MicroSystems公司,Java语言规范中的编码标准部分。主要贡献者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。

本文档现由Scott Hommel维护,有关评论意见请发至[email protected]

2 文件名(File Names)

这部分列出了常用的文件名及其后缀。

2.1 文件后缀(File Suffixes)

Java程序使用下列文件后缀:

文件类别 文件后缀
Java源文件 .java
Java字节码文件 .class

2.2 常用文件名(Common File Names)

常用的文件名包括:

文件名 用途
GNUmakefile makefiles的首选文件名。我们采用gnumake来创建(build)软件。
README 概述特定目录下所含内容的文件的首选文件名

3 文件组织(File Organization)

一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过2000行的程序难以阅读,应该尽量避免。"Java源文件范例"提供了一个布局合理的Java程序范例。

3.1 Java源文件(Java Source Files)

每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。

Java源文件还遵循以下规则:

- 开头注释(参见"开头注释")
- 包和引入语句(参见"包和引入语句")
- 类和接口声明(参见"类和接口声明")

3.1.1 开头注释(Beginning Comments)

所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明:

/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/

3.1.2 包和引入语句(Package and Import Statements)

在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。例如:

package java.awt;

import java.awt.peer.CanvasPeer;

3.1.3 类和接口声明(Class and Interface Declarations)

下表描述了类和接口声明的各个部分以及它们出现的先后次序。参见"Java源文件范例"中一个包含注释的例子。

类/接口声明的各部分 注解
1 类/接口文档注释(/**……*/) 该注释中所需包含的信息,参见"文档注释"
2 类或接口的声明
3 类/接口实现的注释(/*……*/)如果有必要的话 该注释应包含任何有关整个类或接口的信息,而这些信息又不适合作为类/接口文档注释。
4 类的(静态)变量 首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量。
5 实例变量 首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的。
6 构造器
7 方法 这些方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。

4 缩进排版(Indentation)

4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于8个空格(而非4个)。

4.1 行长度(Line Length)

尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。

注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。

4.2 换行(Wrapping Lines)

当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:

- 在一个逗号后面断开
- 在一个操作符前面断开
- 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
- 新的一行应该与上一行同一级别表达式的开头处对齐
- 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。

以下是断开方法调用的一些例子:

someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);

var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));

以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。

longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER

longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID

以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格

//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:

//DON’T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}

//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

这里有三种可行的方法用于处理三元运算表达式:

alpha = (aLongBooleanExpression) ? beta : gamma;

alpha = (aLongBooleanExpression) ? beta
: gamma;

alpha = (aLongBooleanExpression)
? beta
: gamma;

5 注释(Comments)

Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释是那些在C++中见过的,使用/*...*/和//界定的注释。文档注释(被称为"doc comments")是Java独有的,并由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件。

实现注释用以注释代码或者实现细节。文档注释从实现自由(implementation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂。

注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解程序有关的信息。例如,相应的包如何被建立或位于哪个目录下之类的信息不应包括在注释中。

在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。多余的的注释很容易过时。通常应避免那些代码更新就可能过时的注释。

注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下重写代码使其更清晰。

注释不应写在用星号或其他字符画出来的大框里。注释不应包括诸如制表符和回退符之类的特殊字符。

5.1 实现注释的格式(Implementation Comment Formats)

程序可以有4种实现注释的风格:块(block)、单行(single-line)、尾端(trailing)和行末(end-of-line)。

5.1.1 块注释(Block Comments)

块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。

块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:

/*
* Here is a block comment.
*/

块注释可以以/*-开头,这样indent(1)就可以将之识别为一个代码块的开始,而不会重排它。

/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/

注意:如果你不使用indent(1),就不必在代码中使用/*-,或为他人可能对你的代码运行indent(1)作让步。

参见"文档注释"

5.1.2 单行注释(Single-Line Comments)

短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释(参见"块注释")。单行注释之前应该有一个空行。以下是一个Java代码中单行注释的例子:

if (condition) {

/* Handle the condition. */
...
}

5.1.3 尾端注释(Trailing Comments)

极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。

以下是一个Java代码中尾端注释的例子:

if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}

5.1.4 行末注释(End-Of-Line Comments)

注释界定符"//",可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段。以下是所有三种风格的例子:

if (foo > 1) {

// Do a double-flip.
...
}
else {
return false; // Explain why here.
}

//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}

5.2 文档注释(Documentation Comments)

注意:此处描述的注释格式之范例,参见"Java源文件范例"

若想了解更多,参见"How to Write Doc Comments for Javadoc",其中包含了有关文档注释标记的信息(@return, @param, @see):

http://java.sun.com/javadoc/writingdoccomments/index.html

若想了解更多有关文档注释和javadoc的详细资料,参见javadoc的主页:

http://java.sun.com/javadoc/index.html

文档注释描述Java的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前:

/**
* The Example class provides ...
*/
public class Example { ...

注意顶层(top-level)的类和接口是不缩进的,而其成员是缩进的。描述类和接口的文档注释的第一行(/**)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。

若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释(见5.1.1)或紧跟在声明后面的单行注释(见5.1.2)。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。

文档注释不能放在一个方法或构造器的定义块中,因为Java会将位于文档注释之后的第一个声明与其相关联。

6 声明(Declarations)

6.1 每行声明变量的数量(Number Per Line)

推荐一行一个声明,因为这样以利于写注释。亦即,

int level; // indentation level
int size; // size of table

要优于,

int level, size;

不要将不同类型变量的声明放在同一行,例如:

int foo, fooarray[]; //WRONG!

注意:上面的例子中,在类型和标识符之间放了一个空格,另一种被允许的替代方式是使用制表符:

int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry

6.2 初始化(Initialization)

尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。

6.3 布局(Placement)

只在代码块的开始处声明变量。(一个块是指任何被包含在大括号"{"和"}"中间的代码。)不要在首次用到该变量时才声明之。这会把注意力不集中的程序员搞糊涂,同时会妨碍代码在该作用域内的可移植性。

void myMethod() {
int int1 = 0; // beginning of method block

if (condition) {
int int2 = 0; // beginning of "if" block
...
}
}

该规则的一个例外是for循环的索引变量

for (int i = 0; i < maxLoops; i++) { ... }

避免声明的局部变量覆盖上一级声明的变量。例如,不要在内部代码块中声明相同的变量名:

int count;
...
myMethod() {
if (condition) {
int count = 0; // AVOID!
...
}
...
}

6.4 类和接口的声明(Class and Interface Declarations)

当编写类和接口是,应该遵守以下格式规则:

- 在方法名与其参数列表之前的左括号"("间不要有空格
- 左大括号"{"位于声明语句同行的末尾
- 右大括号"}"另起一行,与相应的声明语句对齐,除非是一个空语句,"}"应紧跟在"{"之后

class Sample extends Object {
int ivar1;
int ivar2;

Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}

int emptyMethod() {}

...
}

- 方法与方法之间以空行分隔

7 语句(Statements)

7.1 简单语句(Simple Statements)

每行至多包含一条语句,例如:

argv++; // Correct
argc--; // Correct
argv++; argc--; // AVOID!

7.2 复合语句(Compound Statements)

复合语句是包含在大括号中的语句序列,形如"{ 语句 }"。例如下面各段。

- 被括其中的语句应该较之复合语句缩进一个层次
- 左大括号"{"应位于复合语句起始行的行尾;右大括号"}"应另起一行并与复合语句首行对齐。
- 大括号可以被用于所有语句,包括单个语句,只要这些语句是诸如if-else或for控制结构的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。

7.3 返回语句(return Statements)

一个带返回值的return语句不使用小括号"()",除非它们以某种方式使返回值更为显见。例如:

return;

return myDisk.size();

return (size ? size : defaultSize);

7.4 if,if-else,if else-if else语句(if, if-else, if else-if else Statements)

if-else语句应该具有如下格式:

if (condition) {
statements;
}

if (condition) {
statements;
} else {
statements;
}

if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}

注意:if语句总是用"{"和"}"括起来,避免使用如下容易引起错误的格式:

if (condition) //AVOID! THIS OMITS THE BRACES {}!
statement;

7.5 for语句(for Statements)

一个for语句应该具有如下格式:

for (initialization; condition; update) {
statements;
}

一个空的for语句(所有工作都在初始化,条件判断,更新子句中完成)应该具有如下格式:

for (initialization; condition; update);

当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。

7.6 while语句(while Statements)

一个while语句应该具有如下格式

while (condition) {
statements;
}

一个空的while语句应该具有如下格式:

while (condition);

7.7 do-while语句(do-while Statements)

一个do-while语句应该具有如下格式:

do {
statements;
} while (condition);

7.8 switch语句(switch Statements)

一个switch语句应该具有如下格式:

switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;

case XYZ:
statements;
break;

default:
statements;
break;
}

每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释。上面的示例代码中就包含注释/* falls through */。

7.9 try-catch语句(try-catch Statements)

一个try-catch语句应该具有如下格式:

try {
statements;
} catch (ExceptionClass e) {
statements;
}

一个try-catch语句后面也可能跟着一个finally语句,不论try代码块是否顺利执行完,它都会被执行。

try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}

8 空白(White Space)

8.1 空行(Blank Lines)

空行将逻辑相关的代码段分隔开,以提高可读性。

下列情况应该总是使用两个空行:

- 一个源文件的两个片段(section)之间
- 类声明和接口声明之间

下列情况应该总是使用一个空行:

- 两个方法之间
- 方法内的局部变量和方法的第一条语句之间
- 块注释(参见"5.1.1")或单行注释(参见"5.1.2")之前
- 一个方法内的两个逻辑段之间,用以提高可读性

8.2 空格(Blank Spaces)

下列情况应该使用空格:

- 一个紧跟着括号的关键字应该被空格分开,例如:

while (true) {
...
}

注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。
- 空白应该位于参数列表中逗号的后面
- 所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。例如:
a += c + d;
a = (a + b) / (c * d);

while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");

- for语句中的表达式应该被空格分开,例如:
for (expr1; expr2; expr3)

- 强制转型后应该跟一个空格,例如:
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);

9 命名规范(Naming Conventions)

命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。

标识符类型 命名规则 例子
包(Packages) 一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,e,gov,mil,net,org,或1981年ISO 3166标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(login names)。 com.sun.eng
com.apple.quicktime.v2
e.cmu.cs.bovik.cheese
类(Classes) 命名规则:类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML) class Raster;
class ImageSprite;
接口(Interfaces) 命名规则:大小写规则与类名相似 interface RasterDelegate;
interface Storing;
方法(Methods) 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。 run();
runFast();
getBackground();
变量(Variables) 除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。 char c;
int i;
float myWidth;
实例变量(Instance Variables) 大小写规则和变量名相似,除了前面需要一个下划线 int _employeeId;
String _name;
Customer _customer;
常量(Constants) 类常量和ANSI常量的声明,应该全部大写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误) static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;

10 编程惯例(Programming Practices)

10.1 提供对实例以及类变量的访问控制(Providing Access to Instance and Class Variables)

若没有足够理由,不要把实例或类变量声明为公有。通常,实例变量无需显式的设置(set)和获取(gotten),通常这作为方法调用的边缘效应 (side effect)而产生。

一个具有公有实例变量的恰当例子,是类仅作为数据结构,没有行为。亦即,若你要使用一个结构(struct)而非一个类(如果java支持结构的话),那么把类的实例变量声明为公有是合适的。

与java语言编程规范相关的资料

热点内容
随车拍app绑定什么设备 浏览:893
方维团购系统源码 浏览:988
linux反弹shell 浏览:152
打印机接口加密狗还能用吗 浏览:299
二板股票源码 浏览:446
度人经pdf 浏览:902
怎么配置android远程服务器地址 浏览:960
java程序员看哪些书 浏览:943
什么app可以免费和外国人聊天 浏览:796
pdf手写笔 浏览:182
别永远伤在童年pdf 浏览:990
爱上北斗星男友在哪个app上看 浏览:421
主力散户派发源码 浏览:671
linux如何修复服务器时间 浏览:61
荣县优途网约车app叫什么 浏览:479
百姓网app截图是什么意思 浏览:229
php如何嵌入html 浏览:817
解压专家怎么传输 浏览:745
如何共享服务器的网络连接 浏览:136
程序员简易表白代码 浏览:170