发表于: 2016-11-06 22:33:34
2 2407
今天完成的事情:学习try catch方面的内容
明天的计划:改bug,继续学习
收获:因为别人离职的原因,我需要优化他的接口代码,今天主要了解了一下如何优化java代码,如何让自己的代码适应生产环境。
1.
如何优化自己的代码
知乎上的一个答案
https://www.zhihu.com/question/33096037
1).
避免重复计算
2).
减少io次数
3).
优化内存
尽量重复使用对象和线程,使用对象池和线程池来代替new Thread和new Object
java有一个ThreadLocal,但是自己做一个也可以
4).
避免无谓的对象创建,比如自动装箱拆箱,无谓的String创建
比如下面的代码
logger.deug("something" + data)
如果没有开启debug模式,此时里面的debug仍然会被不停的创建。但是没有任何效果,正确的我做法是
if(logger.isDebugEnabled()){
logger.debug("something" + data)
}
5).
在必要的io操作中尽量避免等待,即异步io
6).
避免使用任何形式的反射
如果是单次的初始化反射(通常用来做ioc,例如)
7).
测试前做好预热
2.为了弄明白是否要在我现在写的工程中加入try catch,我决定还是看看书来的合适
需要查的名词:程序健壮性,basic语言,c++,Ada,object Pascal,耦合
1).java编程思想的第12章提到,错误源通过某种方式,把适当的信息传递给某个接受者-该接收者将知道如何正确处理问题
2).改进的错误恢复机制是提供代码健壮性的最强有力的方式
3).如果使用异常,那就不必在方法调用处进行检查,因为异常机制将保证能够捕获这个错误。并且,只需要在一个地方处理错误,
将描述在正常执行过程中做什么事的代码和出了问题怎么办的代码分离
4).异常情形是指阻止当前方法或作用域继续执行的问题
5).为什么要抛出异常:在当前环境下无法获得必要的信息来解决问题,你所能做的就是从当前环境跳出,并且把问题提交给上一级环境。
这时就需要抛出异常了
6).异常也是一个对象,所以我们需要用new实例化, 而且异常的构造器有两种,一种是默认构造器,一种是接受字符串作为参数,
以便能把相关信息放入异常对象的构造器中
7).捕获异常和监控区域有关,监控区域是一段可能产生异常的代码,并且后面跟着处理这些异常的代码。也就是我们平常使用的try块,
后面跟着的异常处理程序就是catch块
8).终止模型和恢复模型
终止模型:将无法返回到异常发生的地方继续执行。一旦异常被抛出,就表明错误已无法挽回,也不能回来继续执行。
恢复模型:意思是异常处理程序的工作是修正错误,然后重新尝试调用出问题的方法,并认为第二次能成功。
9).自定义的异常:要自己定义异常类必须从已有的异常类继承。如果要将错误信息输出到控制台,可以使用System.out,
同时可以将错误通过System.err发送给标准错误流
关于标准错误流,百度了之后找到了linux系统的内容,没有理解,这里需要再找找资料
什么是标准流:百度百科解释为一个电脑程序在运行时,在它和它的环境间(典型为终端),事先连接的输入和输出频道
10.找到了一个有效处理java异常三原则
http://www.importnew.com/1701.html
评论