Perfil de 一龙此博已关闭FotosBlogListasMás Herramientas Ayuda

Blog


28 marzo

java基础疑点

今天在实验室闷了一天啃了3章的书(ebook)。弄明白了一点东西,顺手写下来。
 
在看thinking in java的时候第二章就遇到一个名词primitive不明白什么意思。开始还以为是像pascal里面有这种任意变量的代名词呢。可是越看越不像,原来Primitive的意思就是在结构化编程的时候常用的变量类型(int,boolean等)在分配空间的时候不是由new来创建的,而是储存在中,因此效率会比较高。java为了使结构化和OOP的编程融为一体,换句话说java为了想用oop来实现这种机制,它由定义了一组Primitive类型变量叫做“wrapper”。这不是一个具体类型,这是一组类型,每一个Primitive类型对应的wrapper类允许你在堆里创建一个表示这个Primitive型数据的对象。(具体的对应表格见Chapter 2  Page 5)。这个对象不是Primitive类型的。换句话说,Primitive与new没有什么相关联的地方,只有一点,就是new可以用来创建Primitive类型的数组。(new不能用于创建非数组的Primitive)。
 
Primitive类型的变量还有一点需要注意的就是初始化的问题,当Primitive类型的变量作为类的成员函数的时候java会自动为其初始化,但是如果其作为局部变量则在使用前一定要手动初始化,否则编译器会报错。
 
在第四章讲了很多内存分配和回收的问题,逐渐开始慢慢清晰java的思想了。C++的核心可以说是指针,因为它里面所有的数据结构和分配方式都是以指针的形式实现的,包括oop。然而java抛弃了指针,这只是在形式上这么说而已,其实它是用类来代替了指针。所以说java可以说是完全用oop的思想去编程。甚至用oop的很多机制来实现结构化编程以及指针的效果。这一点其实与指针的复杂度不相上下,但是它比指针安全很多,垃圾回收让程序员放心,但同时它却又失去了指针的灵活性。
 
所以说没有任何一种语言是绝对好的或者绝对差的,C++的灵活性可以说是普遍公认的,而java所代表的这一代编程语言则是以安全著称。思想不同了。同时感觉,thinking in java并不是适合初学者所用的教材,它里面讲的内容过于精辟而且深刻,全部是剖析底层机制,很多时候看的是一头雾水:P所以建议如果没有学过C++的话还是先找本简单的书来看吧。这本书用来深入了解oop倒是不错的选择。
 
在实验室里写了一些,回来宿舍又补充了一些。一整天感觉还算充实。想想当初自己学习编程的时候,结构化语言是多么的高级阿,结果10年之后世界大变样了。哈哈,在这里倚老卖老会被拍死的。
 
以上仅仅代表个人观点,欢迎大家拍砖。
26 marzo

还是看书好

最近在看java,心想看看举世闻名的张孝祥的java视频教程,天啊,13G,哪有那么多空间。一集一集下来看,结果一集就两个多小时,坐在那里不看的睡着也要看的痴呆了。强熬了两个小时看完了一集,结果才发现上当了,张孝祥是把电脑前面的观众当作一个傻逼来看待的,一点一点都要讲的特别细。浪费了浪费了,有这两个小时java的语法我都可以看完了。不过还是推荐从零起步的人可以学习一下,还是不错的。
 
看了看thinking in java,被称为经典的书第一章就不同凡响,没有讲任何语法,而是直接深入讲解oop。看着过瘾,因为什么都看不懂。
 
胡乱写了点,不知道该把Space发展成技术blog还是感性的blog。其实自己一点技术含量都没有,暂且胡乱写着吧。