最近因为工作需要(为了减少因为被别人咨询而浪费的时间)用java做了一个日志分析工具,主要功能就是用户把自己的环境信息在界面上输入后,自动分析出刚才环境上日志所代表的问题。做完这个工具后,测试时候发现效率很低,分析一次需要2分钟左右,于是分析源代码,发现在文本处理时,直接对string使用了+操作,真是当时图手快...使用StringBuffer替换后,效率提升很多,分析的时长控制在了10S之内。
写完这个工具后,猛然间发现一件事情,对于java语言的学习,我貌似都是在不经意间步步提升。
大学学会了java的基本语法,做了一些小工具(计算器,备忘录,远程关机(android app),无线温度采集(android+单片机),串口助手)加深了对java基本语法的使用。
工作后,做的工具总要有新功能需要扩展,于是用单例,静态工厂,适配器,抽象工厂等模式重构代码,在重构的过程中对于设计模式的理解有了深入理解。
程序扩展性有了,然后发现它的效率低下,又开始优化效率,当然因为我这个工具不涉及算法,所以优化针对具体的代码也是那个粗心错误的修改。
总之,感觉不论是java还是其他语言,其学习路线都是语法--设计模式--算法--语法--编译器--机器来的。
其中基本语法在设计模式与算法学习的时候会对语法会有一个反馈,会提升自己对语法的理解