社区服务 统计排行 帮助
  • 1704阅读
  • 4回复

欢迎江城区广大教师加入网络教研阵地!

楼层直达
级别: 新手上路
江城教育的发展需要拥抱信息化!
我们要做教育信息化的弄潮儿,不要做缩头乌龟!
江城教育的发展有待广大教师的积极参与!
我们诚意邀请江城区广大教师加入我们的网络教研阵地,为江城教育的发展出谋划策,贡献力量!!!
打造江城教研网络阵地!
级别: 风云使者
只看该作者 沙发  发表于: 2017-11-09
写出优质Java代码的4个技巧
引用原文:4 More Techniques for Writing Better Java
作者:Justin Albano
翻译:Vincent
译者注:如果现在要求对你写的Java代码进行优化,那你会怎么做呢?作者在本文介绍了可以提高系统性能以及代码可读性的四种方法,如果你对此感兴趣,就让我们一起来看看吧 西安web前端培训。以下为译文。
我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的。然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最有效的方法。在前一篇文章中,我们讨论了必要时可以使用的四种特殊技术,这些特殊技术可以创建更好的Java软件;而本文我们将介绍一些有助于解决常见问题的通用设计策略和目标实现技术,即:
值得注意的是,本文中描述的技术并不是适用于所有情况。另外这些技术应该什么时候使用以及在什么地方使用,都是需要使用者经过深思熟虑的。
1 .只做有目的性的优化
大型软件系统肯定非常关注性能问题。虽然我们希望能够写出最高效的代码,但很多时候,如果想对代码进行优化,我们却无从下手。例如,下面的这段代码会影响到性能吗?
public void processIntegers(List<Integer> integers) { for (Integer value: integers) { for (int i = integers.size() - 1; i >= 0; i--) { value  = integers.get(i); } } }
这就得视情况而定了。上面这段代码可以看出它的处理算法是O(n?)(使用大O符号),其中n是list集合的大小。如果n只有5,那么就不会有问题,只会执行25次迭代。但如果n是10万,那可能会影响性能了。请注意,即使这样我们也不能判定肯定会有问题。尽管此方法需要执行10亿次逻辑迭代,但会不会对性能产生影响仍然有待讨论。
例如,假设客户端是在它自己的线程中执行这段代码,并且异步等待计算完成,那么它的执行时间有可能是可以接受的。同样,如果系统部署在了生产环境上,但是没有客户端进行调用,那我们根本没必要去对这段代码进行优化,因为压根就不会消耗系统的整体性能。事实上,优化性能以后系统会变得更加复杂,悲剧的是系统的性能却没有因此而提高。
最重要的是天下没有免费的午餐,因此为了降低代价,我们通常会通过类似于缓存、循环展开或预计算值这类技术去实现优化,这样反而增加了系统的复杂性,也降低了代码的可读性。如果这种优化可以提高系统的性能,那么即使变得复杂,那也是值得的,但是做决定之前,必须首先知道这两条信息:
首先我们需要清楚地知道性能要求是什么。如果最终是在要求以内,并且最终用户也没有提出什么异议,那么就没有必要进行性能优化。但是,当添加了新功能或者系统的数据量达到一定规模以后就必须进行优化了,否则可能会出现问题。
在这种情况下,不应该靠直觉,也不应该依靠检查。因为即使是像Martin Fowler这样有经验的开发人员也容易做一些错误的优化,正如在重构(第70页)一文中解释的那样:
引用如果分析了足够多的程序以后,你会发现关于性能的有趣之处在于,大部分时间都浪费在了系统中的一小部分代码中里面。如果对所有代码进行了同样的优化,那么最终结果就是浪费了90%的优化,因为优化过以后的代码运行得频率并不多。因为没有目标而做的优化所耗费的时间,都是在浪费时间。
作为一名身经百战的开发人员,我们应该认真对待这一观点。第一次猜测不仅没有提高系统的性能,而且90%的开发时间完全是浪费了。相反,我们应该在生产环境(或者预生产环境中)执行常见用例,并找出在执行过程中是哪部分在消耗系统资源,然后对系统进行配置。例如消耗大部分资源的代码只占了10%,那么优化其余90%的代码就是浪费时间。
根据分析结果,要想使用这些知识,我们应该从最常见的情况入手。因为这将确保实际付出的努力最终是可以提高系统的性能。每次优化后,都应该重复分析步骤。因为这不仅可以确保系统的性能真的得到了改善,也可以看出再对系统进行优化后,性能瓶颈是在哪个部分(因为解决完一个瓶颈以后,其它瓶颈可能消耗系统更多的整体资源)。需要注意的是,在现有瓶颈中花费的时间百分比很可能会增加,因为剩下的瓶颈是暂时不变的,而且随着目标瓶颈的消除,整个执行时间应该会减少。
尽管在Java系统中想要对概要文件进行全面检查需要很大的容量,但是还是有一些很常见的工具可以帮助发现系统的性能热点,这些工具包括JMeter、AppDynamics和YourKit。另外,还可以参见DZone的性能监测指南,获取更多关于Java程序性能优化的信息。
虽然性能是许多大型软件系统一个非常重要的组成部分,也成为产品交付管道中自动化测试套件的一部分,但是还是不能够盲目的且没有目的的进行优化。相反,应该对已经掌握的性能瓶颈进行特定的优化。这不仅可以帮助我们避免增加了系统的复杂性,而且还让我们少走弯路,不去做那些浪费时间的优化。
2.常量尽量使用枚举
需要用户列出一组预定义或常量值的场景有很多,例如在web应用程序中可能遇到的HTTP响应代码。最常见的实现技术之一是新建类,该类里面有很多静态的final类型的值,每个值都应该有一句注释,描述该值的含义是什么:
public class HttpResponseCodes { public static final int OK = 200; public static final int NOT_FOUND = 404; public static final int FORBIDDEN = 403; } if (getHttpResponse().getStatusCode() == HttpResponseCodes.OK) { // Do something if the response code is OK }
能够有这种思路就已经非常好了,但这还是有一些缺点:
在第一种情况下只是简单的创建了一个特定的常量来表示特殊的整数值,但并没有对方法或变量进行限制,因此使用的值可能会超出定义的范围。例如:
public class HttpResponseHandler { public static void printMessage(int statusCode) { System.out.println("Recieved status of "   statusCode); } } HttpResponseHandler.printMessage(15000);
尽管15000并不是有效的HTTP响应代码,但是由于服务器端也没有限制客户端必须提供有效的整数。在第二种情况下,我们没有办法为状态代码定义方法。例如 西安java培训班,如果想要检查给定的状态代码是否是一个成功的代码,那就必须定义一个单独的函数:
public class HttpResponseCodes { public static final int OK = 200; public static final int NOT_FOUND = 404; public static final int FORBIDDEN = 403; public static boolean isSuccess(int statusCode) { return statusCode >= 200
级别: 风云使者
只看该作者 板凳  发表于: 2017-11-09
JEECG 3.6.3版本发布 企业级JAVA快速开发平台
JEECG 3.6.3版本发布 ? 企业级JAVA快速开发平台

JEECG(J2EE 西安java培训班 Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式(OnlineCoding模式->代码生成器模式->手工MERGE智能开发), 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。

JEECG宗旨是: 简单功能由Online在线开发;复杂功能由代码生成器生成进行手工Merge; 复杂流程业务采用表单自定义,业务流程使用工作流来实现、扩展出业务接口,供开发编写业务逻辑,既保证了公司流程的保密行,又减少了开发人员的工作量。

六大能力:

升级日志:

?
西安it培训 源码下载地址:
西安seo培训 ??http://git.oschina.net/jeecg/jeecg ? UI优化改版截图:
?


相关的主题文章:

  
   装修报价精准统计及施工要点推荐
  
   Iodine:一个优秀的Java语言工具链
级别: 风云使者
只看该作者 地板  发表于: 2017-11-09
网站标题关键词位置是否影响seo排名
做seo排名,我们都想有一定的依据,或者最少亲眼看看一些原理是否真的就是如同别人所说,但是很多人都懒于做seo测试,或者害怕“牺牲”自身的网站;但是做seo技术的话,没有试验很多问题就不能说明,很多说法完全没有根据。


焦大今天就做一个seo测试,因为我有另外的一个seo站(焦大seo教程网),它以前的首页标题是这样的:



我现在把标题加长了,而且把seo培训这个词的匹配拉长放后了。现在的标题如下:

西安seo优化

如果我现在只更新内容,不做任何其他的处理,试问,seo培训这个词在关键词搜索上会排名靠后吗,抑或者靠前呢?
西安网站开发
西安网页设计
说明一点的是,虽然直接搜索网址标题已经变了,但是基于关键词搜索的快照还没有变,而我们所要做的测试就是等关键词索引的快照更新之后来看具体的情况。关于快照这个问题,等下篇文章再具体说下,网址搜索与关键词搜索不一致的问题。


这个测试有兴趣的朋友可以关注下,虽然不能完全说明问题,但是至少可以作为写标题时候的一个小参考;我们貌似听惯了很多人说的,标题内关键词靠前会排名好或者标题太长影响关键词排名问题,至于具体的原因和实践却很少做,以此贴为据,最起码也不算完全没有了根据。
相关的主题文章:

  
   植发是什么原理
  
   该如何做搜索引擎自然排名
级别: 风云使者
只看该作者 4楼 发表于: 2018-05-07
病人患偏瘫的肢体检查有哪些 此病有什么样的病因_偏瘫_快速问医生
病人患偏瘫的肢体检查有哪些 此病有什么样的病因 更新时间:2017-11-09 核心提示: 偏瘫是属于神经科的疾病,这种疾病是具有很大的危害性的,一旦患上此病的话,会影响到他们的行动能力,严重的患者甚至是完全丧失走路的能力的。因此,大家一定要十分重视并预防好疾病。这种疾病给患者带来非常大的痛苦,这些痛苦包含了肉体上的疼痛和心理上的摧残。

  偏瘫,又可以称为半身不遂,这种疾病是属于运动障碍。患上疾病 轮椅价格,会令人非常痛苦。大家可以设想一下,当自己失去行走能力的时候,这样子的生活和未来会变得非常的黑暗。因此,治病的患者需要的是大家的关怀和尊重。那么病人患上偏瘫的具体检查有哪些呢?

电动轮椅?
电动轮椅
  一、患者可以进行影像学检查。这个检查主要是使用脑血管造影,而ct检查通过两个检查对此病进行一个诊断。

  二、根据症状进行一个检查。一旦患上此病,会出现单次弯曲,下肢伸直,而且下肢走起路来是就像化半个圈,这是一种很特殊的走路姿势。通过检查患者的症状来救起,并进行一个确诊。

  了解了这种疾病的具体检查,那到底是什么病因引起偏瘫的呢?

  一、饮食不节。这个病因主要是人们在日常生活中经常饮酒和吃很多东西,暴饮暴食,这样子是很容易会患上疾病。
电动轮椅车
  二、情绪不佳。这个病因想必人们都出现过的,每个人都会出现情绪不佳的时候,关键是要怎样去掉正。

  三、心脏病。心脏病的患者是很容易会患上此病。

  简单的介绍了这种疾病的病因,下面给大家介绍一下偏瘫的临床表现是怎么样的?因为这种疾病还可以分为不同的类型,而不同类型是具有不同的临床表现。

  一、痉挛性偏瘫。这个类型的患者会出现肌张力增高,而且上肢弯曲、下肢伸直等临床表现。

  二、轻偏瘫。这个类型的患者,第二篇谈成就是比较轻的,会出现一些简单的下肢弯曲的临床表现。

  三、意识障碍性偏瘫。患者会出现很突然的意识障碍的临床表现,而且还会有一些头痛头晕的伴随症状。

  偏瘫,影响了人们的日常生活,一旦严重程度的话,完全丧失行走能力,这样子大家的下半身将会是多么的孤苦伶仃和黑暗。因为这种疾病的发生是常常受到一些因素的影响,因此,人们一定要及时预防好这些致病因素。这样做是为了自己负责,同时也是为家庭负责 金百合电动轮椅
快速回复

限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个