Java从入门到精通读书笔记—c++程序员学java.doc_第1页
Java从入门到精通读书笔记—c++程序员学java.doc_第2页
Java从入门到精通读书笔记—c++程序员学java.doc_第3页
Java从入门到精通读书笔记—c++程序员学java.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java从入门到精通读书笔记c+程序员学java第一章:2分钟看完,老生常谈,即使没怎么用过java也知道这些。第二章:1.instanceof应该是c+中没有的,c+使用RTTI解决这个问题的,很难用。2.super这种引用父类的方法也是比较简单的,C+中是用父类名:父类方法()解决的,有点难看。3.自动类型转换和C+一样,精度变高的随便转,精度变低的会丢失。4.强制类型转换只有(type)这一种,不像c+有static_cast、dynamic_cast、reinterpret_cast、和const_cast。5.运算符什么的和c+几乎一模一样。半小时看完。第三章:1.break可以跳出语句块,c+中没有语句块。语句块的定义就是在一段语句前加上花括号和冒号; 其他基本上和c+一样,5分钟看完。第四章:1.java数组越界会在运行时抛异常,c+不会,声明数组的方法也有些不一致。java 声明数组的所有办法int a = new int4;int a = new int4;int a = 1, 15, 26;int a = 1, 15, 26;2.java的数组是一个对象,自带length属性,使用简单。c+的数组不自带方法和属性,要知道数组长度只能sizeof(arrayObject)/sizeof(int)。当然如果使用STL中的vector之类的也和java一样简单。3.java的所谓数组赋值(或者叫数组拷贝)其实就是c+中的两个数组指针的赋值,java没有指针,所以作者费了一大堆口水。好在java有垃圾回收,要不然一个指针的内存就算泄露了。至于真正的数组内容赋值,是使用System.arraycopy(ir, srcPos, ir, destPos, length);而C+一般使用memcpy等函数。若使用STL中的vector,那么就看vector的拷贝构造函数怎么写的,应该是vector的对象赋值过去而不是指针指过去。4.重温了冒泡排序(时间复杂度O(n2)),和快速排序(最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n))。5.For-Each语法被引入java了,在很多地方用起来真是简单。Python和c#早就支持了,c+中虽然STL的algorithm包中引入了for_each,但是由于需要使用函数指针还是略显繁琐。这章挺多,看了一个多小时啊!第五章:类和对象1.Java中方法的重载和c+的一样,都是通过参数的不同来区别。但是c+中可以设置默认参数,而java不可以。2.java中的对象大部分只能new出来,或者clone出来,或者反射出来,而不能直接在栈上定义出来。而c+的对象在栈上和堆上创建的都很多。3.基本类型的参数传递,java和c+都是传值。对象的参数传递,java是传引用,c+是拷贝,也就是传值。其实c+中大部分时候也是传引用或者传指针,但java没有指针,也没有选择耗时耗空间的拷贝,只能传引用了。这章对于c+程序员来说太简单,几分钟过一遍就可以了。第六章:继承1.方法被覆写后,如果要调用父类的方法,c+必须用父类名:方法名,而java用super.方法名即可。2.多态和动态绑定,java和c+几乎一样,都很简单。3.final关键字:java中的final关键字可以将一个类限制为无法继承的,同样的还有C#中的sealed关键字。而c+是没有这个玩意的。4.java的抽象类和c+几乎一样。5.java是独根语言,引入了Object类,它的clone方法就好像c+中的拷贝构造函数,它的equals方法是用来比较内容的,而toString方法是将对象作为字符串输出的。这章对于c+程序员来说同样简单,几分钟过一遍就可以了。第七章:接口1.java中有接口。C+没有,唯一类似的是含有纯虚函数的虚类(没有纯虚基类这个说法)。但是COM、CORBA等中间件中都有IDL语言(接口定义语言),使用这些中间件的c+程序员也没有少写接口。2.接口实现的一些规定:1)如果实现接口的不是抽象类,则必须实现其接口的所有方法才能被实例化;2)接口中所有的方法默认为public;3.接口可以用来实现多态;4.java的内部类和c+差不多,都没人关心,最多懒得想名字的时候用用那个匿名内部类(例如什么UI的响应函数)。5.java的对象克隆,吹了一堆就是个c+中的拷贝构造函数。所谓什么“浅克隆、深克隆”问题,就是c+中拷贝构造是遇上类中定义了指针的问题。C+程序员一望即知。接口是为了维护单继承机制弄出来的,花半小时看看还是值得的。 第八章:面向对象编程C+程序员不用看。第九章:异常处理1.java的异常处理中有finally语句块,而c+中没有,所以程序员要自己想办法来处理异常发生后诸如“资源释放”之类的问题;第十章:线程1.java语言自带线程机制,c+目前还是不带线程机制的。虽然boost:thread库也被众多c+程序员广泛使用。但是windows下用得最多的还是windows SDK自带的线程函数;而linux下用得最多的还是pthread。另外还有一些号称同时支持多个平台的多线程库。2.java多线程有两种方法实现,第一是派生Thread类,第二种是实现Runnable接口。3.java线程分为4种状态:new、runnable、non runnable和done,这和其他线程库大同小异;4.run、start、stop、sleep、suspend、resume、yield、wait、notify和notifyall等方法的含义也和其他线程库一致。但suspend、resume和stop等方法是不建议使用的,因为可能会导致死锁。5.java可使用join方法来等待线程结束,而在某些线程库中join方法经常是不可用的。6.java的互斥使用synchonized关键字实现,它很类似于boost.thread中的lock(mutex),只不过它是对线程对象隐含的锁加锁。其实这很不利于新手理解。另外还介绍了synchonized的一些乱七八糟的用法,相信对于新手这只有反作用。这一章对于线程,介绍得比较浅显,实现简单的多线程应该没问题,但是稍微复杂一点的也许就需要其他的开发包了。Java线程连个Mutex类都没有,这是最让我吃惊的,仅仅使用synchonized来实现同步、互斥、信号量该多麻烦啊,也许是我还没弄懂java多线程吧。第十一章:图形编程1.IDE的年代,GUI还是画出来吧。Java中也就Layout类需要看看,其他大部分Layout类也是凑数的,根本不会有人用。第十二章:事件处理随便看看了解即可,新手可以试着写写代码,老手直接IDE中添加事件即可。第十三章:Swing用户界面设计同第十一章,随便看看即可。界面一般有专人搞,普通程序员能看懂就行了。总结:java从入门到精通这本书整体质量尚可,c+熟手大概一到两天可以看完,掌握程度在80

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论