海妖 发表于 2015-1-18 11:40:47

JAVA网站制作之Java功能优化通用篇

如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,功能|优化1、通用篇

“通用篇”会商的成绩合适于年夜多半Java使用。


1.1不必new关头词创立类的实例


用new关头词创立类的实例时,机关函数链中的一切机关函数城市被主动挪用。但假如一个对象完成了Cloneable接口,我们能够挪用它的clone()办法。clone()办法不会挪用任何类机关函数。


在利用计划形式(DesignPattern)的场所,假如用Factory形式创立对象,则改用clone()办法创立新的对象实例十分复杂。比方,上面是Factory形式的一个典范完成:


publicstaticCreditgetNewCredit(){returnnewCredit();}




改善后的代码利用clone()办法,以下所示:


privatestaticCreditBaseCredit=newCredit();publicstaticCreditgetNewCredit(){return(Credit)BaseCredit.clone();}





下面的思绪关于数组处置一样很有效。


1.2利用非堵塞I/O


版本较低的JDK不撑持非堵塞I/OAPI。为制止I/O堵塞,一些使用接纳了创立大批线程的举措(在较好的情形下,会利用一个缓冲池)。这类手艺能够在很多必需撑持并发I/O流的使用中见到,如Web服务器、报价和拍卖使用等。但是,创立Java线程必要相称可不雅的开支。


JDK1.4引进了非堵塞的I/O库(java.nio)。假如使用请求利用版本较早的JDK,在这里有一个撑持非堵塞I/O的软件包。


1.3慎用非常


非常对功能倒霉。抛出非常起首要创立一个新的对象。Throwable接口的机关函数挪用名为fillInStackTrace()的当地(Native)办法,fillInStackTrace()办法反省仓库,搜集挪用跟踪信息。只需有非常被抛出,VM就必需调剂挪用仓库,由于在处置过程当中创立了一个新的对象。


非常只能用于毛病处置,不该该用来把持程序流程。


1.4不要反复初始化变量


默许情形下,挪用类的机关函数时,Java会把变量初始化成断定的值:一切的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和double变量设置成0.0,逻辑值设置成false。当一个类从另外一个类派生时,这一点特别应当注重,由于用new关头词创立一个对象时,机关函数链中的一切机关函数城市被主动挪用。


1.5只管指定类的final润色符


带有final润色符的类是不成派生的。在Java中心API中,有很多使用final的例子,比方java.lang.String。为String类指定final避免了人们掩盖length()办法。


别的,假如指定一个类为final,则该类一切的办法都是final。Java编译器会寻觅时机内联(inline)一切的final办法(这和详细的编译器完成有关)。此举可以使功能均匀进步50%。


1.6只管利用部分变量


挪用办法时传送的参数和在挪用中创立的一时变量都保留在栈(Stack)中,速率较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创立,速率较慢。别的,依附于详细的编译器/JVM,部分变量还大概失掉进一步优化。


1.7乘法和除法


思索上面的代码:


for(val=0;val<100000;val+=5){alterX=val*8;myResult=val*2;}




用移位操纵替换乘法操纵能够极年夜地进步功能。上面是修正后的代码:


for(val=0;val<100000;val+=5){alterX=val<<3;myResult=val<<1;}





修正后的代码不再做乘以8的操纵,而是改用等价的左移3位操纵,每左移1位相称于乘以2。响应地,右移1位操纵相称于除以2。值得一提的是,固然移位操纵速率快,但大概使代码对照难于了解,以是最好加上一些正文。



java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),

金色的骷髅 发表于 2015-1-21 12:37:08

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

因胸联盟 发表于 2015-1-30 18:24:23

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

山那边是海 发表于 2015-2-2 22:18:01

Java 编程语言的风格十分接近C、C++语言。

透明 发表于 2015-2-6 17:10:18

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

海妖 发表于 2015-2-6 17:28:58

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

爱飞 发表于 2015-2-9 15:54:00

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

冷月葬花魂 发表于 2015-2-14 05:28:25

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

变相怪杰 发表于 2015-3-4 04:54:15

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

第二个灵魂 发表于 2015-3-8 14:57:18

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

飘飘悠悠 发表于 2015-3-11 19:15:59

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

活着的死人 发表于 2015-3-15 12:31:48

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

分手快乐 发表于 2015-3-22 17:46:13

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

简单生活 发表于 2015-3-25 03:43:29

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

乐观 发表于 2015-3-26 02:54:39

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

兰色精灵 发表于 2015-4-1 11:12:11

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

不帅 发表于 2015-4-30 15:28:08

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

admin 发表于 2015-6-15 09:41:34

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

精灵巫婆 发表于 2015-7-4 08:23:23

是一种将安全性(Security)列为第一优先考虑的语言

老尸 发表于 2015-7-9 10:59:22

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
页: [1]
查看完整版本: JAVA网站制作之Java功能优化通用篇