Java从入门到精通读书笔记—c++程序员学java.doc

上传人:11****ws 文档编号:3179706 上传时间:2019-05-24 格式:DOC 页数:4 大小:35.50KB
下载 相关 举报
Java从入门到精通读书笔记—c++程序员学java.doc_第1页
第1页 / 共4页
Java从入门到精通读书笔记—c++程序员学java.doc_第2页
第2页 / 共4页
Java从入门到精通读书笔记—c++程序员学java.doc_第3页
第3页 / 共4页
Java从入门到精通读书笔记—c++程序员学java.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、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+几乎一模一样。半小时

2、看完。第三章: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)。当然如果使用

3、STL 中的 vector 之类的也和java 一样简单。3.java 的所谓数组赋值(或者叫数组拷贝)其实就是 c+中的两个数组指针的赋值,java 没有指针,所以作者费了一大堆口水。好在 java 有垃圾回收,要不然一个指针的内存就算泄露了。至于真正的数组内容赋值,是使用 System.arraycopy(ir, srcPos, ir, destPos, length);而C+一般使用 memcpy 等函数。若使用 STL 中的 vector,那么就看 vector 的拷贝构造函数怎么写的,应该是 vector 的对象赋值过去而不是指针指过去。4.重温了冒泡排序(时间复杂度 O(n2))

4、,和快速排序(最坏情况的时间复杂度为 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+

5、的对象在栈上和堆上创建的都很多。3.基本类型的参数传递,java 和 c+都是传值。对象的参数传递,java 是传引用,c+ 是拷贝,也就是传值。其实 c+中大部分时候也是传引用或者传指针,但 java 没有指针,也没有选择耗时耗空间的拷贝,只能传引用了。这章对于 c+程序员来说太简单,几分钟过一遍就可以了。第六章:继承1.方法被覆写后,如果要调用父类的方法,c+必须用父类名:方法名,而 java 用 super.方法名即可。2.多态和动态绑定,java 和 c+几乎一样,都很简单。3.final 关键字:java 中的 final 关键字可以将一个类限制为无法继承的,同样的还有 C#中的se

6、aled 关键字。而 c+是没有这个玩意的。4.java 的抽象类和 c+几乎一样。5.java 是独根语言,引入了 Object 类,它的 clone 方法就好像 c+中的拷贝构造函数,它的equals 方法是用来比较内容的,而 toString 方法是将对象作为字符串输出的。这章对于 c+程序员来说同样简单,几分钟过一遍就可以了。第七章:接口1.java 中有接口。 C+没有,唯一类似的是含有纯虚函数的虚类(没有纯虚基类这个说法) 。但是 COM、CORBA 等中间件中都有 IDL 语言(接口定义语言) ,使用这些中间件的 c+程序员也没有少写接口。2.接口实现的一些规定:1)如果实现接口

7、的不是抽象类,则必须实现其接口的所有方法才能被实例化;2)接口中所有的方法默认为 public;3.接口可以用来实现多态;4.java 的内部类和 c+差不多,都没人关心,最多懒得想名字的时候用用那个匿名内部类(例如什么 UI 的响应函数) 。5.java 的对象克隆,吹了一堆就是个 c+中的拷贝构造函数。所谓什么“浅克隆、深克隆”问题,就是 c+中拷贝构造是遇上类中定义了指针的问题。C+程序员一望即知。接口是为了维护单继承机制弄出来的,花半小时看看还是值得的。 第八章:面向对象编程C+程序员不用看。第九章:异常处理1.java 的异常处理中有 finally 语句块,而 c+中没有,所以程序

8、员要自己想办法来处理异常发生后诸如“资源释放”之类的问题;第十章:线程1.java 语言自带线程机制, c+目前还是不带线程机制的。虽然 boost:thread 库也被众多c+程序员广泛使用。但是 windows 下用得最多的还是 windows SDK 自带的线程函数;而linux 下用得最多的还是 pthread。另外还有一些号称同时支持多个平台的多线程库。2.java 多线程有两种方法实现,第一是派生 Thread 类,第二种是实现 Runnable 接口。3.java 线程分为 4 种状态:new、runnable、non runnable 和 done,这和其他线程库大同小异;4.

9、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的一些乱七八糟的用法

10、,相信对于新手这只有反作用。这一章对于线程,介绍得比较浅显,实现简单的多线程应该没问题,但是稍微复杂一点的也许就需要其他的开发包了。Java 线程连个 Mutex 类都没有,这是最让我吃惊的,仅仅使用 synchonized 来实现同步、互斥、信号量该多麻烦啊,也许是我还没弄懂 java 多线程吧。第十一章:图形编程1.IDE 的年代,GUI 还是画出来吧。Java 中也就 Layout 类需要看看,其他大部分 Layout 类也是凑数的,根本不会有人用。第十二章:事件处理随便看看了解即可,新手可以试着写写代码,老手直接 IDE 中添加事件即可。第十三章:Swing 用户界面设计同第十一章,随便看看即可。界面一般有专人搞,普通程序员能看懂就行了。总结:java 从入门到精通 这本书整体质量尚可,c+熟手大概一到两天可以看完,掌握程度在 80%左右。看完后能够有一些基本概念,可以写一些基本程序。看完后离入门还早,更谈不上精通了。说说我看完后的两个迷惑之处吧,第一是从来没有提到 java 中的对象、常量、代码所在的堆、栈等内存分布情况,对于 c+程序员来说是很难适应的,可能是篇幅的原因吧;第二没有介绍垃圾回收机制,这可能是 c+程序员更感兴趣的吧。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。