/**2011年3月12日
* Hacked by Younger.shen
*http://www.hack2me.com
*younger.x.shen@gmail.com
*/
研究java也有几个月的时间了,现在想写一点心得体会,虽然我现在基本上还是停留在读书写程序片段死扣语法的阶段,但是我认为还是很有必要来写一写的。
首先对于java的认识让我一开始对java没有太多的好感,直到现在读了很多书之后才认识到java的高明之处,至于if (x>0) return true;else return false; 这样的脑残写法,在短暂的学
习过c++之后还是会在写java的时候出现,感觉还是对逻辑本质的了解不深,有时候感觉做程序就像是在做脑筋急转弯一样,有时候可以做的很好,但是有时候要费很大的劲才能写出来,尤其
是要翻译成有严格语法的程序语言的时候,有时候感觉确实很难,又缺乏数学以及数据结构以及算法方面的培养,所以感觉还是非常困难的。
刚开始的时候感觉java的类库以及API的继承结构实在是很复杂,而且有相当一段时间分不清楚package 权限与类权限到底是什么关系,而且在编译程序做实验的时候也遇到过很多问题,我
打算把遇到的问题都记录下来,其实我是把这当作一个爱好来写的,哈哈哈哈哈哈!
现在我要写的是一篇大体的关于java的技术特性的文章,作为新手的第一感觉,等我以后成了高手以后再回过头来我想那是会相当有趣的。
1)首先是对于 c++的遗留问题的处理,其实java的jvm很好的解决了关于内存处理以及垃圾回收与释放,其实一开始在做java的时候我首先想到的既然java中必须有类与对象来驱动整个程序
,而且看java的程序结构的时候用到了 import 来将c/c++的include 更新到更安全更简易的上下文环境中,这一点我还没有研究过java对于多重包含是怎么处理的,就我以前的经验,c++在
这方面做的十分不智能,而且用了那么长时间的vc++6.0(现在偶尔还用)在错误处理方面感觉也是十分有限,这也应该是ide的异常处理不够完善把,当然我在单纯用jdk进行开发的时候,不
能说是开发,应该说是做实验,感觉jdk的错误处理更加的抽象,有时候看起来会相当麻烦,也许这也是java的特点之一吧,最近才感觉到的,其实占的更多的还是困惑,排错还是很费劲,也
许是因为新手把,在用到了哪个类的方法的时候查API的时候感觉相当费劲。
2)还有目前想到的就是在第一次写程序的时候我就很纳闷既然都是类那么没有显示实例化主类那程序怎么就能执行呢?而且为什么主类不需要实例化就可以自动被执行?这些问题弄的我很纳
闷呀,其实解决问题是我一直想做的一件事,而且现在对java的喜爱已经上升到了很高的程度了,之后也是通过看书才发现的,原来java在进行所有类的实例化的过程中都会从它的根类开始进行初始化也就是调用构造方法进行数据的填充,在这个过程中java会自动的从object类开始,因为所有的类都是继承自该类,所以在有继承关系的类中,实例化相对子类的时候也会实例化它的子类的父类,这个过程应该是隐式进行的,如果可以进行人为操作的话那会不会不安全呢?我认为可能会不安全,不过还有待查看文档或者是做实验什么的。而且关于main主方法的写法一开始感觉也是十分奇怪,因为string类的关系,在进行实用程序编写的时候java不会像c++那样写成 int main(int argc, char* argv[] ){} ,而是写成了一个新类型的数组的样子,至于java中的多参数方法的编写技术也应该在主类参数中有所应用吧。其次就是类方法与实例方法之间的问题,其实早在c++的时候就看过c++ primer上写的很多关于这方面的资料,java就是这么好懂,直接把static说成类方法,而c++就说是什么静态方法,当初想破头皮也想不出到底怎么算是动态怎么算是静态,现在还认识到另一点就是main方法的写法是非常必要的,因为程序都必须要从头开始嘛,而且会发现并没有实例去调用main方法,其实是系统隐式调用的,这也是后来才发现的。
3)还有一点关于Integer.ValueOf(1)与new Integer(1)谁更健壮的问题现在感觉自己还不适合去讨论或者是研究,不过关于类的初始操作我还是有一点自己的看法的,还有就是java中静态字符串的共享机制,个人认为是个不错的设计,Object a=new Object(x);与c++中的 object *a=new object[x];是不一样的,其实有很多微妙的区别,在定义数组以及操作数组方面 java采用了更具有代表性的定义方法是用 int[] a=new int[x];而不是int a[x];这样的直接的方式,而且还有在字符串操作方面 java有了equals方法感觉比strcmp这样的老方法安全了许多。
也就这么多了,毕竟做的时间不长,最近在做的是web的前端,关于怎么在涂层里面嵌入框架的问题我还是没解决掉,会持续更新的!哈哈!