当前位置:首页 » 网页前端 » javaweb编程规范
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

javaweb编程规范

发布时间: 2022-07-24 08:31:49

A. 对于java web开发初学者,有什么书需要看的

javaweb自学书籍推荐
第一部分:Java语言篇
1.《Java编程规范》 适合对象:初级、中级
介绍:这本书的作者是被誉为Java之父的James Gosling,入门者推荐阅读,对基础的讲解很不错。
2.《Java编程思想》 适合对象:初级、中级
介绍:豆瓣给出了9.1的评分,全球程序员广泛赞誉。有人说这本书不适合初学者,不过小编认为作者并没有对读者已有的知识经验有过多要求,只是要求读者需要知道基本的程序语言。作者以通俗易懂及小而直接的实例解释了一个个晦涩抽象的概念,需要花时间细细研读。
3.《Java核心技术:卷I基础知识》 适合对象:初级、中级
介绍:官方机构图书,备一本总是没错的。这本书比较全面也通俗易懂。可以当字典的功能来用,学习入门必备。
4.《Java数据结构和算法》 适合对象:初级、中级、高级
介绍:这本书目前基本断货,足以说明抢手程度。作者主要使用Java语言描述了我们常用的数据结构,值得一看。
5.《Java与模式》 适合对象:中级、高级
介绍:难得一见的国人写的Java好书。主要讲解设计原则以及最为常见的设计模式的实用教材。这本书出现的比较早,是初级到中高级必读的图书之一。
6.《SCJP学习指南》 适合对象:初级、中级
介绍:官方考试的必备图书,对检验自己的Java学习情况很有帮助。这本书特别适合学生阅读,这本书理解透了,找工作面试Java题目不会有任何问题。一些工作多年的工程师都会在里边遇到一些不会做的题目。
第二部分:中级进阶篇
1.《重构:改善既有代码的设计》 适合对象:中级、高级
介绍:清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以及改善。大师的杰作,让你明白软件是一步步改进的,不是一蹴而就的。
2.《XML入门经典》 适合对象:初级、中级、高级
介绍:很多人觉得没必要买XML书籍,不过我还是觉得推荐一本给你作为工具书,而且看本书可以使得你对XML方方面面有个了解。里面不少东西还是用到的。
3.《jQuery基础教程》 适合对象:初级、中级、高级
介绍:从这个开始学习jQuery才是根本,不然以后遇到的很多奇怪问题不知所以然。jQuery个人感觉已经成为目前的javascript标准库了,插件无数,大大简化了前端工作。
4.《JavaScript权威指南》 适合对象:初级、中级、高级
介绍:一本从全新视角和层次来介绍JavaScript的参考书,填补了市场的空白。是学习js的必备参考工具书之一。
5.《代码整洁之道》 适合对象:中级、高级
介绍:讲述了一系列行之有效的整洁代码操作实践。软件工程的理想编码是无数人编出来的代码像一个人写的,这本书当作规范就不错。
第三部分:高级篇
1.《Enterprise JavaBeans 3.0中文版》适合对象:中级,高级
介绍:EJB技术在大型系统中使用,主要有银行等金融机构。是开发分布式程序的选项之一,不过我不喜欢,其实银行使用的也不怎么的。结合JavaEE容器使用,开源的有JBoss,商用的有IBM和Oracle支持。
2.《Java并发编程实践》 适合对象:中级、高级
介绍:这本书名为《Java并发编程实践》有些抹杀了它的价值,其中并非只讲述了Java的多线程设施,对一般的并发编程的rationale也有相当透彻的阐述。市面上并发编程的书比较少,这一本推荐阅读。
3.《Hadoop权威指南》 适合对象:中级、高级
介绍:云计算必备图书。作为分布式计算的工具,Hadoop目前可以说是市场上唯一成熟的产品,而且大家也都向其看齐。而起云计算炙手可热,你搞明白这本书就大概明白了什么是云以及怎么做云。
4.《Java消息服务》 适合对象:中级、高级
介绍:深入浅出地讲解了JMS1.1规范的底层技术、Java类和接口、编程模型及其不同实现等Java消息服务(JMS)和消息传送机制关键技术。讲解简单明了,偏向于如何使用以及设计的一些原则。排版相当不错。

B. java做web开发都需要java的哪些知识

开发JSP项目所需要的技能包括: Java 在使用JSP的时候,任何程序员都不可能不和Java打交道。JSP本身就是用一套Java对象编写的。更重要的是,JSP的缺省脚本语言就是Java。所以,一个JSP程序员必须理解Java的基础概念。我建议程序员在开发JSP之前至少得有一个月开发Java的经验。 HTML/XHTML 不管你怎么看JSP,反正你最后要产生的结果中超过95%的比例将是HTML文件。因此,JSP程序员还得全面理解HTML技术。我建议程序员在考虑学习JSP之前应该有至少一个月的HTML/XHTML编程经验。 了解Web服务器 因为JSP是一种用以建立网络站点的编程技术,所以在某种程度上你应该了解一点你的站点所采用的Web服务器的相关知识。Web服务器处理HTML页面,所以,它通常要与其它软件联合起来共同运行才可以处理JSP页。这也是我们所遇到JSP难题之一。 了解运行JSP的容器 所谓容器(container)其实就是JSP服务器。这是一种解释软件,负责解释向JSP页提出的请求,同时,把输出结果送回向JSP页提出请求的用户。容器很象Web服务器,只不过后者处理HTML网页而容器则为JSP页提供服务。要学习JSP容器的细节所消耗的时间取决于你最后选择的容器。某些容器很简单,学习起来也很容易。而另一些容器则功能强大但学习和维护的时间很长。要了解更多的相关内容请参看有关JSP工具的FAQ。 JavaScript JSP产生的数据会被发送给客户机,通常就是某种浏览器,也就是我们所说的“客户端”。当前的大多数JSP输出结果都建立在HTML基础之上。JavaScript则是针对HTML的脚本语言。JavaScript允许程序员在客户端执行条件逻辑。这就意味着客户机和服务器之间的联系会少一些,客户机的性能也就大大增强了。还有,JavaScript允许程序员修改HTML被显示的方式以增加HTML的功能。JavaScript可不是Java。实际上,JavaScript仅仅在能看到HTML输出的浏览器上运行。 有一点要特别注意:尽管JavaScript还是这种脚本语言所普遍接受的名字,但是JavaScript实际上拥有好多种具有不同名称的不同版本(微软推出的JavaScript就叫Jscript)。比如,现在欧洲推出的新型JavaScript标准就叫ECMAScript。所以如果有人把JavaScript称作Jscript或者ECMAScript你可别犯糊涂啊! 学习JSP JSP并不是一种真正的编程语言而是: ¨—用Java编写的一组对象的集合。 ¨—采用简单的脚本语法用来在对象和JSP容器之间通信。 学习JSP技术需要你掌握一些简单地脚本规范和组成JSP标准的对象。在程序员熟悉和了解Java之后,学习JSP的基础知识就相当简单了。 按JSP的思想进行思考 JSP是一种分布式的、基于Web的应用程序。这就是说,其逻辑处理被划分在许多机器上进行。大多数处理过程发生在装有JSP应用程序的服务器上。还有一些时间则花在处理客户机上的HTML页面上,而这些客户机就是察看Web应用程序的客户机。还有许多项目会和数据库服务器一道协同工作来处理数据。更大的项目可能采用组件服务器运行集中的EnterpriseJavaBean对象。如果一个Web应用程序足够大,核心的JSP部分还可能实际上分布在若干JSP服务器运行。所有这一切都意味着,你必须了解JSP应用程序的逻辑处理在许多机器上被恰当分布运行的原理。更重要的是,理解混合客户端和服务器端逻辑的Web应用程序这种双重性是很关键的。所以,按JSP的思想进行思考在我看来绝对算得上是一门真正的艺术。 学习JSP语法和对象是最基础的第一步。同时我们还采取其他一些重要的工作来完成掌握JSP这一过程,这些工作有: —了解这些不同技术之间是如何相互交流、协同运行的。 —了解这些逻辑处理过程在什么时候、在什么场合下发生。 分布式应用程序的平衡是最难掌握的技术之一。把这问题搞清楚了可以大大提高学习过程的速度。否则你可能在这一主题上花费大量的时间和精力。 开发JSP项目所需要的其他一些技能还包括: DHTML和层叠样式表 我现在建立的的每个Web应用程序都使用了DHTML(动态HTML)和层叠样式表CSS(CascadingStyleSheet)。这些工具对HTML页面的功能而言是个极大的扩展。它们可以让用户建立模仿客户机—服务器结构的Web应用程序。我个人认为这些工具完全是我们必须掌握的技能,不过,很多简单的项目或许并不需要这些工具。 Servlet 你不需要学习过多的servlet知识。当Sun开发了JSP的时候JSP曾被认为“servlet的简化版”。

C. 想学习java web技术需要学习那些东西

需要学的东西不多,也就是一些java基础和数据库基础的东西。不过要把每个点都写出来,还是比较多,下面的列出来,分得比较细:

  • Java语言基础:算法基础、常用数据结构、编程规范。

掌握常见的数据结构和实用算法;培养良好的编程习惯。

  • Java面向对象:封装、继承、多态等,面向对象程序设计,基础设计模式等。

掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。

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

熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力。

  • JavaSE核心:异常处理、多线程基础、IO系统、网络编程、Java反射机制、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性

熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。

  • sql语言:SQL语句基础和提高、SQL语句调优。

熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。

  • Oracle数据库:Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。

掌握Oracle体系结构及核心编程技术

  • XML:XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。

熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。

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

掌握HTML基本原理;掌握CSS各种选择器及常见样式设置;熟练使用HTML常用元素。

  • JavaScript核心:JavaScript语言基础(数据类型、函数、对象、闭包)、Java DOM编程、事件模型、JavaScript面向对象编程。

深入理解JavaScript语言原理;熟练的使用JavaScript对HTML DOM进行编程;熟练掌握JavaScript对象对象封装技巧,为后续的JavaScript学习打下坚实的基础。

  • Servlet/JSP:Servlet生命周期及Servlet服务器、Tomcat部署配置、JSP语法、自定义标记、JSTL和EL表达式、JSP 新特性、Java Web 设计模式。

透彻理解Servlet核心原理;熟练掌握Servlet API;透彻理解JSP引擎工作原理;透彻理解标记库原理;熟悉常见的Java Web设计模式;为后续的Java Web开发打下坚实的理论基础。

  • Ajax:Ajax基础、XHR对象、Ajax设计模式、JSON技术。

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

D. 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支持结构的话),那么把类的实例变量声明为公有是合适的。

E. java学习路线

个人觉得这个java学习路线还可以,算是2018年比较新颖的java学习路线,比较符合企业用人的标准。

因为大部分的人都是从零基础进行学习的,所以我建议大家一定要跟着大纲走,不然非常容易走偏,最后放弃,这是我以一个过来的经验给大家说的,希望大家引以为戒,多练习永远是学习Java的最佳捷径。

文章来源:悟空问答

F. javaweb和jsp的区别

JAVA是一种编程语言,可以编写应用程序,主要应用在网络编程上。JSP是建立在JAVA基础上的一种网络编程语言,只能在网页上应用。

可以把jsp理解为脚本,java为面向对象语言。jsp作用主要是负责页面展现,java负责逻辑,业务处理

jsp本质是servlet,servlet本质是java类,就是这么个关系。

(6)javaweb编程规范扩展阅读

JAVA和JSP之间的关系,以及JAVA的完整认识

JAVA分为J2EE,J2SE,J2ME下面分别介绍:

一、J2EE:Java 2 Platform Enterprise Edition 企业版,用于企业应用,支持分布式部署。

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,

它对开发基于Web的多层应用提供了功能上的支持。它包含13种核心技术规范:

1、Java Database Connectivity (JDBC)

以一种统一的方式来对各种各样的数据库进行存取

2、Java Naming and Directory Interface (JNDI)

用于名字和目录服务,它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统等

3、Enterprise Java Beans (EJB)

提供了一个框架来开发和实施分布式商务逻辑,显着地简化了具有可伸缩性和高度复杂的企业级应用的开发

4、JavaServer Pages (JSPs) 这里就是你所说的JSP!!!!!!

用以创建动态网页

5、Java servlets

提供的功能大多与JSP类似,不过实现的方式不同

6、Remote Method Invocation (RMI)

在远程对象上调用一些方法,使用了连续序列方式在客户端和服务器端传递数据

7、Interface Description Language (IDL)

将Java和CORBA集成在一起

8、Java Transaction Architecture (JTA)

可以存取各种事务

9、Java Transaction Service (JTS)

规定了事务管理器的实现方式

10、JavaMail

用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类

11、JavaBeans Activation Framework(JAF)

JavaMmail利用JAF来处理MIME-编码的邮件附件,MIME的字节流可以被转换成JAVA对象,或者转换自JAVA对象

12、Java Messaging Service (JMS)

是用于和面向消息的中间件相互通信的应用程序接口(API)

13、Extensible Markup Language (XML)

XML是一种可以用来定义其它标记语言的语言

上面的JSP是主流,基于MVC的实现,最流行使用,也最安全(比较其他语言做的网站)

其中EJB是java最难学的东西

但是现在的sun公司出来一种新的技术:java FX,

可以像FLASH一样在浏览器中执行,但是也要安装插件,具体可以参见www.sun.com

二、J2SE:Java 2 Platform Standard Edition 标准版,用于桌面应用,也是J2EE的基础。

包括JAVA基础,IO,Swing,AWT,线程,集合等知识.也是学习JAVA的必经之路(基础)!

三、J2ME:Java 2 Platform Micro Edition 移动版用于小型设备,是J2SE的一个子集。

G. 请问J2EE、Java EE、Java Web究竟有什么不同啊哪位大神详细解释一下

J2EE =Java2.0 EE 也可以叫Java EE,这个区别不大。
Java分类包括J2SE J2EE J2ME ,其中J2SE是标准包,主要用于Application或Apple开发;J2ME是嵌入式系统,不要是手机、PAD这类的开发包;J2EE就比较麻烦理论上包含了JavaBeans EJB Servlet/JSP还有一些其他的比如XML的分析器等等,说白了J2EE就是个大杂烩,SUN自己也说不清楚的东西都放进来了。
至于Java web不见于官方的规范,只能说是一种俗称,主要只Java对web互联网编程的应用,包含J2SE中的Applet客户端以及J2EE的Servlet/JSP等等,后台也可能使用EJB等。

H. 怎么写好Java(或者Java web)代码

作为一个Java开发攻城狮(lao si ji),我可以负责任地告诉你,多看多写~
首先,鉴于题主你说你是刚接触地阶段,我并不推荐你你上来就要写工业级或者企业级的代码,当下的话应该是迅速积累项目经验,快速掌握java web的开发流程为主,可以网上看看什么视频教程,有些还是能学到规范的。
分享一下我的经历吧~
读大学的时候我接一些外包【朋友介绍】,一开始也很虚啊,觉得这里不对,那里不对的。写得多了,慢慢理解整个开发流程后,就觉得也就是增删改查嘛,没什么的。每次都要写,好麻烦啊,既然这样,不如自己造一些轮子,后来就是项目多了,又造了一些轮子,然后做了系列的封装。期间穿插读了 重构和effective java两本书,代码方法保持整洁,但一些代码上还是不规范。
再后来,学习了java的一些高级特性,反射、自省【提高了写代码250%的效率】以及参考了部分阿里的规范,感觉逐渐能写出比以前看上去优雅的代码了。
接下来的一段时间,因为兴趣的原因,研究了一下三大框架,自己强行撸了三个阉割版。回去看源码的时候,发现spring写得真的太优雅了,然后又小小改了一下风格。
最后,出来工作了,哦谢特~ 大家写得什么鬼啊~ 什么规范都不参照~ 简直内心爆炸,一万点伤害~ 好吧,我还是照着我原先的思路,搞一搞~
所以说,工业级、企业级代码不是每个公司都有,但是对自身有要求是好事啊~ 你也别急,慢慢写,也能逐渐规范起来~ 只是现在,不合适~ 加油~
还有问题的话,欢迎联系我~

I. 学习javaweb,需要掌握什么技能到公司一般都做什么

1、语言方面,javaweb的话 java功底肯定要扎实,html比较简单,熟悉基本标签,开发时会基本格式,结合帮助文档,开发多了还是比较容易的,jsp的配置原理要搞清楚
2、平台,一般的javaweb开发都使用myeclipse,多用,掌握基本的调式、排错,主要在实际开发中积累工具使用的经验,以及排错能力。tomcat是网络容器,要会配置部署,也比较简单,内容较少,会基本的配置部署就行了,但是初学者经常会出一些莫名其妙的错误,多自己动手解决,看文档,要学的东西不多。
3、框架的使用是企业为规范团队开发都会规定一个项目使用某个框架,掌握其中的一款就行了,具体那款比较好,就不好评判了,目前我们团队使用的是struts框架,熟练掌握一类框架,其他都有共通之处,以后用到了要学也很快。
4、MVC模式是基本开发理念,在设计自己的功能代码页面的时候有这样的思想使代码层次清晰就好。
5、数据库也是开发者不可缺少的技能之一,SQL查询语句是都要使用的,尽量多掌握,具体数据库类型的化mysql、oracle比较主流,可以选择一种进行开发,能够基本建库建表及基本查询排错就差不多了。

6、脚本语言javascript、jquery也是网页开发广泛使用的脚本语言,是动态网页实现的总要技术。具体学习的化写几个小程序熟悉基本使用格式入门,要想精通的话就得在实际工作中不断积累总结了。

学习阶段主要是基本的东西,有人说理论不重要,但是没有理论的话,永远只能模仿别人的代码,软件工程师是设计者,不是模仿者,所有在理论的基础上多练多思考,找份工作不难,然后在工作中积累经验,不断提高完善,这是我作为一名程序员的感悟,希望对你有所帮助。

J. java web 和 jsp 是什么

http://ke..com/w?ct=17&lm=0&tn=WikiSearch&pn=0&rn=10&word=jsp
这是在网络中查到的jsp的详细介绍。
其实不用全看的,我给楼主简单说一下就行了。
java web 是指java技术中的开发网站的技术,其实真的用java做网站我个人并不推荐,不如直接用asp,php,java很多时候由于其出色的代码书写规范和高效的数据库调用技术从而开发一些用一定难度的基于浏览器的系统,如内部oa,erp等基于intenet的系统。
举个最简单的例子,比如你是一个药房的老板,药房肯定要有一个收费系统,收费系统必须绑定一个数据库。这个收费系统肯定是基于桌面软件开发的,如delphi开发的等,不然运行速度太慢了。
但是由于你是老板,要经常出差,无法及时看到要点数据库内容,所以你可以使用java web技术开发一个基于intenet互联网的“老板查询系统”。这样你就可以在任何可以上网的地方看到你需要的数据,当然,速度要比所面软件开发的要慢一些。
至于jsp,是java web技术中的一种,他的爸爸叫servlet,由于大量由asp,php转过来的程序员看不懂servlet代码,所以sun才开发了基于servlet的,代码编写类似asp,php的jsp。
不过现在很多人将jsp和servlet一起使用,包括我也是这样用的,效果非常好,虽然远比不了struts。
楼主可以这样理解,java web是一种技术理念,而jsp是java web理念的一个实现。
如:大规模杀伤性武器是一种技术理念,而原子弹,氢弹就是这种技术的实现,明白否?
至于教程,建议楼主先看张孝祥的java就业培训教程后(这个教程楼主课下载迅雷后在www.gougou.com中搜索到),在去www.gougou.com搜索关于jsp的教程,jsp学起来有一定难度,需要学数据库中的sql语句以及基本的html,还有如tomcat服务器,weblogic,jboss等服务器的任意一个,建议楼主学tomcat就可以了,免费的,上手快,功能除了ejb都可以。
最后祝福楼主成功吧!