学习笔记
新的知识倒是没接触,但可以说现在主要是对旧知识的熟练了不是吗。
首先是对课程目前涉及的知识。这周通过做了一个通讯录加上对聊天室系统的改善,收获可也说是比较客观。
收获一:对socket编程的进一步了解。可以说我现在对socket的进一步了解就是了解到我现在对socket的知识还很欠缺…先别汗,本人说的却是事实,在对聊天室的完善过程中发现了自己对socket的原理还是有点模糊导致进度不是很顺利。至于我对socket的认识大概就是上次笔记写的了,这周增加的只是应用的熟练度和懂得了我这方面还比较缺陷。再加努力。
收获2:对异常的更进一步认识。异常区别于error异常可以通过对代码的处理捕获并不影响程序的进行,当然并不代表程序能正常运行… 因为毕竟产生异常了,虽然能继续运行但会出错误。那么异常的好处是什么呢,当然既然出了这个异常机制说明好处是大大的有的。我的了理解是,在异常类的帮助下,通过对异常的捕获可以让程序员知道是哪里出了错,能准确得找到出错的位置并能知道是处了什么错,这就是异常类的强大威力。在知道哪里出错后,就可以进行异常的适当的处理了。而我们平常的应用主要是捕获掉异常后调用相应异常类的打印出异常的方法如printStackTrace(),等。这样可以准确找到异常的位置和知道是什么异常。而也有很多时候需要对该异常进行别的处理,就可以在相应出异常后的语句内写自己想处理的代码。异常机制特有的性能—产生异常后部影响程序的继续执行 决定了你可以在出异常后语句快里可以比较随意的写处理了。只要能保证程序运行结果是正确的就是了。
再就是关于RuntimeException 这类异常不是强迫捕获的。但必要时也可以抛出或捕获这些异常。比如一段代码可能产生产生ArrayIndexOutOfBoundsException 就可以捕获这个异常并在catch后的语句快些上写上数组越界后的提示语等。如一个卖票系统,票已售完还有人来买,使存储票数的数组越界,可以捕获这个异常后输出一个提示语“对不起票已售完。”当然非RuntimeException 也可以这么干。我感觉异常机制主要是利用了其被捕获后程序还能继续运行的特点,还有sun提供的强大的异常类库。
收获3:对于封装的理解。上周沈老师提到要多注意代码功能的封装。开始我感觉封装不是很难而自己盲目做一些无意义的封装,碰了不少钉子,通过纪老师的指导,到我目前对封装的理解是:封装就是把一部分功能学到一起,哪对数据库的操作来说,我们就可以把对数据库的增,删,改,查得操作封装到一个类中这个类专门用来数据库的连接以及对数据库的所有操作。当然还要也别注意的一点就是不要把夺别的模块的操作也写到封装的模块中来一面是去封装的意义。 当然还要注意的就是我这周初犯的错误—无意义的封装。也就是说在封装时别只想着这个要被封装的模块的操作,要根据整个程序的需求而封装。要让封装的模块为该程序服务,而不是隔绝。
然后就是对java EE的一点小小体会,目前初步开始做信息系统的网络版了,也就是接触jsp,servlet 等了。
首先servlet是网络服务器里web容器里的运行的一个小程序—当然一个web容器可以跑多个servlet和Jsp。Servlet可以实现服务器与客户端的动态交互,servlet接受到客户端的http请求并对请求进行处理,最后通过out.println(“ ”) 动态返回给客户端一个html页面但,如果做大型软件这样写会导致代码很乱,而且通过out.println(“”)输出网页显然很麻烦。这样就可以借助Jsp进行网页的动态传输了。jsp可以动态从servlet获得处理后的数据并返回html界面切能很方便地返回html代码。这样就吧两个功能分开了。当然jsp实质上也是一种servlet 但我们往往把两者分工servlet主要进行请求的处理 jsp利用其嵌套在html代码的特点动态获得serlet处理后的数据并返回html 页面。
这样通过这种处理再加上JavaBean对数据操作的封装就形成了现在较流行的设计模式—servlet+jsp+JavaBean.
还没真正开始做java EE 就这么扯显得有点大了呵呵以上这些大部分是从书上看的加上自己浅显的理解,现在也只能说稍微理解了 因为只有亲身去写代码,自己能真正应用这些东西才能真正体会这些。
通过纪老师的指导,发现自己现在太过偏激地在意于封装啊设计啊等等的东西了。因为所谓封装的好处,某种设计模式的好处,甚至servlet+jsp+JavaBean. 的好处,只有在自己亲身写相关代码后才能真正体会到。所以目前对这些不用硬着头皮去琢磨了,只要平常写代码多注意这些方面的设计,自己会逐渐体会到这些的。
侯兆炜
2008.04.25