仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 967|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网站制作之JAVA划定规矩――开辟篇

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:54:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。本文先容的JAVA划定规矩的申明分为3个次要级别,本篇丢弃了平常开辟中很少碰到的情形,那些用得对照少的今后再初级篇内里呈现。并有六个有效的国际软件开辟主要注重的有关String的成绩,恪守了这些划定规矩能够进步程序的效力、使代码又更好的可读性等。
(1)假如有JDBC毗连没有关失落的话,必要在"finally"办法中关失落
假如数据库毗连失利大概是没有开释毗连,看上往可有可无。可是其他的用户就必要用更长的工夫守候毗连,如许数据库使用效力就会下落。确保你的代码在任何情形下,包含堕落大概程序非常停止的情形下都开释数据库毗连。在"finally"办法中关失落毗连,就能够确保这一点。
毛病示例:
try{
Statementstmt=con.createStatement();
}catch(SQLExceptione){
e.printStackTrace();
}
准确示例:
try{
Statementstmt=con.createStatement();
}finally{
if(con!=null&&!con.isClosed()){
con.close();
}
}
(2)只管制止利用Thread.resume(),Thread.stop(),Thread.suspend()和Runtime.runFinalizersOnExit()办法。
这些办法在平常的开辟大概是教科书内里也有效到过,可是这些办法会招致四锁的偏向。一下有充分的材料来讲明为何不倡议用上述办法。
参考:1."java.lang.Thread"intheJDKAPIdocumentation
2.http://java.sun.com/j2se/1.3/docs/guide/misc/threadPrimitiveDeprecation.html
3.PaulHyde:"JavaThreadProgramming"
Sams,ISBN:0-672-31585-8pp.270
(3)在暗示长整常量的时分,用L来取代l.
由于l很简单和1混一同。
毛病示例:
longtemp=23434l;
准确示例:
longtemp=23434L;
参考:KenArnold,JamesGosling:"TheJavaProgrammingLanguageSecondEdition"AddisonWesley,1997,pp.108
(4)最幸亏jsp开首写一条正文
在jsp文件头下面写一条正文,如许能够匡助他人来了解你的代码。这条划定规矩不但合用于jsp,更是用于任何开辟的文档。
准确示例:<%--JSPcomment--%>

(5)明白的初始化一个机关类内里的一切的字段
由于没有初始化的字段会是一个潜伏的bug,以是最好初始化类内里的一切的字段。出格是静态的字段,最幸亏一入手下手就分派一个初始值
毛病示例:
publicclassCSI{
publicCSI(){
this(12);
k=0;
}
publicCSI(intval){
j=val;
}
privateinti=5;
privateintj;
privateintk;
}
准确示例:
publicclassCSIFixed{
publicCSIFixed(){
this(12);
}
publicCSIFixed(intval){
j=val;
k=0;
}
privateinti=5;
privateintj;
privateintk;
}
参考:http://www.ambysoft.com/javaCodingStandards.pdf
(5)国际化开辟倡议:逻辑操纵符不要再一个单个的字符的后面大概前面
一个单个字符的前后不要用逻辑操纵符,假如代码要在一个国度情况中运转的话。我们可使用字符对照办法,这些办法利用一致字符对照尺度来界说字符的属性的。
毛病示例:publicclassCLO{
publicbooleanisLetter(charch){
boolean_isLetter=(ch>=a&&ch<=z)//毛病
||(ch>=A&&ch<=Z);
return_isLetter;
}
}
准确示例:
publicclassCLOFixed{
publicbooleanisLetter(charch){
boolean_isLetter=Character.isLetter(ch);
return_isLetter;
}
}
参考:http://java.sun.com/docs/books/tutorial/i18n/intro/checklist.html
更多的字符对照办法请参考:http://java.sun.com/docs/books/tutorial/i18n/text/charintro.html

(6)国际化开辟倡议:不要对日期对象利用Date.toString()
不要利用Date.toString()办法,日期格局关于区域和言语分歧的国度来讲是纷歧样的,务必不要利用。
毛病示例:DateFormat类供应了一个预界说的格局范例来指定当地的格局。
publicvoidprintToday(){
Datetoday=newDate();
StringtodayStr=today.toString();
System.out.println(todayStr);
}
准确示例:
publicvoidprintToday(){
LocalecurrentLocale=Locale.getDefault();
DateFormatdateFormatter=DateFormat.getDateInstance(
DateFormat.DEFAULT,currentLocale);
Datetoday=newDate();
StringtodayStr=dateFormatter.format(today);
System.out.println(todayStr);
}
参考:http://java.sun.com/docs/books/tutorial/i18n/intro/checklist.html
http://java.sun.com/docs/books/tutorial/i18n/format/dateFormat.html
(7)国际化开辟倡议:不要对数字变量利用toString()办法
在环球化的开辟中,不要对数字变量利用toString()办法,关于java.lang.Number的任何子类都合用。包含:BigDecimal,BigInteger,Byte,Double,Float,Integer,Long,andShort.关于如许的情形,java里也与界说了"NumberFormat"办法来格局化。
毛病示例:
publicclassNTS{
publicvoidmethod(Doubleamount){
StringamountStr=amount.toString();
System.out.println(amountStr);
}
}
准确示例:
publicclassNTSFixed{
publicvoidmethod(Doubleamount){
LocalecurrentLocale=Locale.getDefault();
NumberFormatnumberFormatter=
NumberFormat.getNumberInstance(currentLocale);
StringamountStr=numberFormatter.format(amount);//
System.out.println(amountStr++currentLocale.toString());
}
}
参考:http://java.sun.com/docs/books/tutorial/i18n/intro/checklist.html
http://java.sun.com/docs/books/tutorial/i18n/format/numberFormat.html

(8)国际化开辟倡议:不要利用String.equals()办法
倡议不要利用String.equals()办法,由于在一致字符对照尺度中纷歧定依照相干的按次来对照。Collator供应的预界说收拾划定规矩来排序string,Collator类挪用getInstance()办法,一样平常来讲,能够为默许的当地创立一个Collator。比方:CollatormyCollator=Collator.getInstance();创立Collator的时分你也能够指定一个特别的locale。比方:CollatormyFrenchCollator=Collator.getInstance(Locale.FRENCH);然后就能够挪用Collator.compare()来实行一个当地的字符对照myCollator.compare(s1,s2);从这里能够懂得更多的有关Collator类的信息:http://java.sun.com/docs/books/tutorial/i18n/text/collationintro.html

毛病示例:
publicclassSE{
publicbooleancompstr(Strings1,Strings2){
booleanb=(s1.equals(s2));
returnb;
}
}
准确示例:
publicclassSEFixed{
publicbooleancompstr(Strings1,Strings2){
CollatormyCollator=Collator.getInstance();
booleanb=(myCollator.compare(s1,s2)==0);
returnb;
}
}
参考:http://java.sun.com/docs/books/tutorial/i18n/intro/checklist.html
http://java.sun.com/docs/books/tutorial/i18n/text/locale.html
(9)国际化开辟倡议:不要利用StringTokenizer()办法
毛病示例:StringTokenizerst=newStringTokenizer(str);
能够从这里失掉更多的信息:‘
参考:http://java.sun.com/docs/books/tutorial/i18n/intro/checklist.html

(10)国际化开辟倡议:不要利用Time.toString()办法
由于工夫的格局各个国度也纷歧样。假如你利用日期格局类,你的使用就可以够活着界上各个中央准确的显现工夫和日期了。起首,用getTimeInstance()办法创立一个formatter。然后,挪用format()办法。
毛病示例:
publicclassTTS{
publicvoidprintTime(Timet1){
StringtimeStr=t1.toString();
System.out.println(timeStr);
}
}
准确示例:
importjava.sql.Time;
importjava.text.DateFormat;
importjava.util.Locale;
publicclassTTSFixed{
publicvoidprintTime(Timet1){
DateFormattimeFormatter=DateFormat.getTimeInstance(
DateFormat.DEFAULT,Locale.getDefault());
StringtimeStr=timeFormatter.format(t1);
System.out.println(timeStr);
}
}


java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-29 13:58:44 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
乐观 该用户已被删除
板凳
发表于 2015-2-6 01:53:52 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小魔女 该用户已被删除
地板
发表于 2015-2-6 15:42:40 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
透明 该用户已被删除
5#
发表于 2015-2-11 00:07:19 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
只想知道 该用户已被删除
6#
发表于 2015-2-24 03:58:27 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
兰色精灵 该用户已被删除
7#
发表于 2015-3-2 21:27:16 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
若天明 该用户已被删除
8#
发表于 2015-3-6 20:23:26 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
不帅 该用户已被删除
9#
发表于 2015-3-13 00:07:22 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
分手快乐 该用户已被删除
10#
发表于 2015-3-13 04:05:25 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
若相依 该用户已被删除
11#
发表于 2015-3-16 23:26:04 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
再现理想 该用户已被删除
12#
发表于 2015-3-22 21:57:19 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-3-22 23:10:44 | 只看该作者
是一种为 Internet发展的计算机语言
蒙在股里 该用户已被删除
14#
发表于 2015-3-27 13:08:35 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
第二个灵魂 该用户已被删除
15#
发表于 2015-3-29 12:43:12 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
深爱那片海 该用户已被删除
16#
发表于 2015-4-1 00:08:34 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
爱飞 该用户已被删除
17#
发表于 2015-4-18 21:51:09 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
小女巫 该用户已被删除
18#
发表于 2015-4-28 19:05:00 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
谁可相欹 该用户已被删除
19#
发表于 2015-5-1 15:11:34 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表