一、重组函数,消灭临时变量
1、查询函数替换
2、分解 临时变量 后替换 (一个变量多个地方使用时)
3、提炼方法对象 (太多复杂变量)
4、检查是否存在更优算法
(1)提炼函数注意:
取个好名字
检查 所提炼代码,是否引了“作用域限于源函数”的变量、参数
检查 局部变量值 有无被 所提炼代码改变,(返回值,分解变量)
需要的变量以参数传给 把提炼函数
要清除 临时变量 ,可将其声明final先,检查其赋值情况
注意,可适当将一些逻辑,如循环等,搬移到新函数,如果有性能问题,再重新修改
二、简化条件表达式
分解复杂逻辑成小块
合并多个结果相同的条件判断
合并重复的代码段
使用卫语句,去除嵌套判断 (*) | 各个条件的前后顺序(*)
条件判断影响具体为时,考虑用 多态
条件判断注意:
各个条件的前后顺序(*)
三、简化函数调用
参数尽可以少
将查询函数和修改函数分离
两个函数做类似工作,因几个值导制行为不同,可使用传参数,合并两个函数
使用一个对象的若干值,不如直接传对像(*)
能直接引用函数,引用,不要额外赋值给变量后,再将变量传参(*)
以异常取代错误代码(*)
JavaC命令
javac
-verbose
-classpath "
C:\Java\jdk1.6.0_22\jre\lib\charsets.jar;C:\Java\jdk1.6.0_22\jre\lib\deploy.jar;C:\Java\jdk1.6.0_22\jre\lib\javaws.jar;C:\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Java\jdk1.6.0_22\jre\lib\management-agent.jar;C:\Java\jdk1.6.0_22\jre\lib\plugin.jar;C:\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\dnsns.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\localedata.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunpkcs11.jar;F:\workspace\project\security\pojects\sec-201405\upc\target\classes;F:\workspace\tool\plugin\maven\repository\com\alibaba\fastjson\1.1.37\fastjson-1.1.37.jar;F:\workspace\tool\plugin\maven\repository\org\apache\httpcomponents\httpclient\4.3.1\
httpclient-4.3.1.jar
;F:\workspace\tool\plugin\maven\repository\org\apache\httpcomponents\httpcore\4.3\httpcore-4.3.jar;F:\workspace\tool\plugin\maven\repository\commons-logging\commons-logging\1.1.3\
commons-logging-1.1.3.jar
;F:\workspace\tool\plugin\maven\repository\commons-codec\commons-codec\1.6\
commons-codec-1.6.jar
;" -d
F:\workspace\project\demo\target\classes F:\workspace\project\demo\src\main\java\client\LoadImageClient.java
F:\workspace\project\demo\src\main\java\cn\test\Test.java
|
java运行
java
-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51120,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "C:\Java\jdk1.6.0_22\jre\lib\charsets.jar;C:\Java\jdk1.6.0_22\jre\lib\deploy.jar;C:\Java\jdk1.6.0_22\jre\lib\javaws.jar;C:\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Java\jdk1.6.0_22\jre\lib\management-agent.jar;C:\Java\jdk1.6.0_22\jre\lib\plugin.jar;C:\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\dnsns.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\localedata.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunpkcs11.jar;F:\workspace\project\snakedemo\target\classes;F:\workspace\tool\plugin\maven\repository\com\alibaba\fastjson\1.1.37\fastjson-1.1.37.jar;F:\Program\JetBrains\IntelliJ IDEA 12.1.7\lib\idea_rt.jar" client.LoadImageClient |