篇一 :读《java编程思想》有感

编程

--------读《java编程思想》有

自从学电脑以来,我对于编程有了浓厚的兴趣,正好朋友有一本叫做《java编程思想》的书,我便借来研读,读完之后我深有体会,所以和大家分享一下。

本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。

一切皆是对象

在第二章中讲到,一切皆为对象,引起了我深度的思考,为何说一切都是对象呢?无论C++还是Java都属于杂合语言。但在Java中假定了我们只希望进行面向对象的程序设计。也就是说,正式用它设计之前,必须先将自己的思想转入一个面向对象的世界(除非早已习惯了这个世界的思维方式)。只有做好这个准备工作,与其他OOP语言相比,才能体会到Java的易学易用。

多线程

看到十四章多线程时,我出现了一些困惑不明白何为多线程所以我上网找到了正解:线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础。多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不是真正的并行运行,而是通过时间片切换来执行,由于时间片切换频繁,使用者感觉程序是在并行运行。读完这一章,我深刻的感受到java的强大之处,不管是不是单核,java都可以实现表面上的多线程。

…… …… 余下全文

篇二 :java编程思想读书笔记

源码网资料下载:

第2章 万事万物皆对象

(源码网整理:)

一.所有对象都必须由你建立

1. 存储在哪里

1. 寄存器:我们在程序中无法控制

2. stack:存放基本类型的数据和对象的reference,但对象本身不存放在stack中,而是存放在Heap中

3. Heap:存放用new产生的数据

4. Static storage:存放在对象中用static定义的静态成员

5. Constant storage:存放常量

6. NON-RAM:硬盘等永久存储空间

2. 特例:基本型别

基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。

3. Java中的数组

当你产生某个存储对象的数组时,真正产生的其实是存储reference的数组。引数组建立后,其中的每一个reference都会被自动设为null,表示“不指向任何对象”。

二.建立新的数据型别:Class

1. 数据成员和函数

1.1 基本成员的缺省值

…… …… 余下全文

篇三 :java编程思想读书笔记

源码网资料下载:

第2章 万事万物皆对象

(源码网整理:)

一.所有对象都必须由你建立

1. 存储在哪里

1. 寄存器:我们在程序中无法控制

2. stack:存放基本类型的数据和对象的reference,但对象本身不存放在stack中,而是存放在Heap中

3. Heap:存放用new产生的数据

4. Static storage:存放在对象中用static定义的静态成员

5. Constant storage:存放常量

6. NON-RAM:硬盘等永久存储空间

2. 特例:基本型别

基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。

3. Java中的数组

当你产生某个存储对象的数组时,真正产生的其实是存储reference的数组。引数组建立后,其中的每一个reference都会被自动设为null,表示“不指向任何对象”。

二.建立新的数据型别:Class

1. 数据成员和函数

1.1 基本成员的缺省值

…… …… 余下全文

篇四 :Java编程思想第四版_读书笔记

一 基础知识点

1.面向对象程序设计(Object-oriented Programming OOP) ,UML(Unitied Modelling Language 统一建模语言)。将对象想像成“服务提供者” ,它们看起来像什么?能够提供哪 些服务?需要哪些对象? 2.Java中动态绑定是默认行为。Java采用动态内存分配方式,通过new操作在堆(Heap)的内 存池中动态创建对象。Java存储结构类型:1)寄存器2)堆栈,主要存储对象引用3)堆, 主要用于存放所有的Java对象4)常量存储,也就是程序代码区5)非RAM存储,如流对象 和持久化对象。基本类型不用new来创建变量,而且这个变量直接存储”值”,并置于堆栈中。 3.BigInteger和BigDecimal的使用。当变量作为类的成员使用时 当变量作为类的成员使用时,Java才确保给定其默认初 当变量作为类的成员使用时 始值,但是在方法中定义的变量,它有可能是任意值。面向对象的程序设计可以归纳为“向 对象发送消息” 。关键字Static。 4.Javadoc只能为public和protected成员进行文档注释,但是也可以通过-private进行标记注 释。 Javadoc常用方法: @see 引用其他类, link package.class#member label}, {@ {@docRoot}, {@inheritDoc},@version,@ author,@since,@param,@return,@throws,@deprecated。 5.整数除法会直接去掉结果的小数位。基本类型的对象如果直接对它们赋值,对象指向同 一个常量存储区,但是如果通过对象来初始化则会指向不同的堆的存储区。如:

…… …… 余下全文

篇五 :Java编程思想读书笔记

Java编程思想读书笔记-1(第5-7章)

作者:未知 时间:2005-07-24 21:15 出处:JR 责编:My FAQ

摘要:Java编程思想读书笔记-1(第5-7章)

第2章 万事万物皆对象

一.所有对象都必须由你建立

1. 存储在哪里

1. 寄存器:我们在程序中无法控制

2. stack:存放基本类型的数据和对象的reference,但对象本身不存放在stack中

,而是存放在Heap中

3. Heap:存放用new产生的数据

4. Static storage:存放在对象中用static定义的静态成员

5. Constant storage:存放常量

6. NON-RAM:硬盘等永久存储空间

2. 特例:基本型别

基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的

reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。

3. Java中的数组

当你产生某个存储对象的数组时,真正产生的其实是存储reference的数组。引

数组建立后,其中的每一个reference都会被自动设为null,表示“不指向任何对

…… …… 余下全文

篇六 :Java 编程思想第四版 读书笔记

Java 编程思想第四版 读书笔记

一 基础知识点

1.面向对象程序设计(Object-oriented Programming OOP) ,UML(Unitied Modelling Language 统一建模语言)。将对象想像成“服务提供者” ,它们看起来像什么?能够提供哪 些服务?需要哪些对象?

2.Java中动态绑定是默认行为。Java采用动态内存分配方式,通过new操作在堆(Heap)的内 存池中动态创建对象。

Java存储结构类型:1)寄存器2)堆栈,主要存储对象引用3)堆, 主要用于存放所有的Java对象4)常量存储,也就是程序代码区5)非RAM存储,如流对象 和持久化对象。基本类型不用new来创建变量,而且这个变量直接存储”值”,并置于堆栈中。

3.BigInteger和BigDecimal的使用。当变量作为类的成员使用时 当变量作为类的成员使用时,Java才确保给定其默认初 当变量作为类的成员使用时 始值,但是在方法中定义的变量,它有可能是任意值。面向对象的程序设计可以归纳为“向 对象发送消息” 。关键字Static。

4.Javadoc只能为public和protected成员进行文档注释,但是也可以通过-private进行标记注 释。

…… …… 余下全文

篇七 :java编程思想中程序设计过程的概括

分析和设计

面向对象的范式是思考程序设计时一种新的、而且全然不同的方式,许多人最开始都会在如何构造一个项目上皱起了眉头。事实上,我们可以作出一个“好”的设计,它能充分利用OOP提供的所有优点。有关OOP分析与设计的书籍大多数都不尽如人意。其中的大多数书都充斥着莫名其妙的话语、笨拙的笔调以及许多听起来似乎很重要的声明(注释⑨)。我认为这种书最好压缩到一章左右的空间,至多写成一本非常薄的书。具有讽剌意味的是,那些特别专注于复杂事物管理的人往往在写一些浅显、明白的书上面大费周章!如果不能说得简单和直接,一定没多少人喜欢看这方面的内容。毕竟,OOP的全部宗旨就是让软件开发的过程变得更加容易。尽管这可能影响了那些喜欢解决复杂问题的人的生计,但为什么不从一开始就把事情弄得简单些呢?因此,希望我能从开始就为大家打下一个良好的基础,尽可能用几个段落来说清楚分析与设计的问题。

⑨:最好的入门书仍然是Grady Booch 的《Object-Oriented Design withApplications,第2 版本》,Wiely & Sons 于1996 年出版。这本书讲得很有深度,而且通俗易懂,尽管他的记号方法对大多数设计来说都显得不必要地复杂。

…… …… 余下全文

篇八 :Java编程思想读书笔记(第9章-1)

Java编程思想读书笔记-3(第9-1容器的使用及其工作原理)

9持有你的对象

. 容器简介


1. 容器的分类
1.1. Collection:一组各自独立的元素,即其内的每个位置仅持有一个元素。
1) List:以元素安插的次序来放置元素,不会重新排列。
2) Set:不接爱重复元素,它会使用自己内部的一个排列机制
1.2. Map:一群成对的key-value对象,即所持有的是key-value pairs。
Map中不能有重复的key,它拥有自己的内部排列机制。
2. 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

. 容器的详细介绍


1. Collection
Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。
1.1. List
1.1.1 List(interface):List为Collectin加入了一些函数,使它可以在List内进行安插和移除动作。List会产生ListIterator,通过它可以从两个方向来对List进行走访,也可以在List之内进行元素的安插和移除。
1.1.2 ArrayList:可以快速随机访问;但当元素的安插或移除发生在List中央位置时,效率很差。不宜用ArrayList来进行安插和移除操作。
1.1.3 LinkedList:与ArrayList相反,适合用来进行安插和移除,但随机访问的速度较慢。此外,可以通过LinkedList来实现stack、queue、deque。
1) LinkedList中的addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast()函数未定义于任何一个interface或base class中,所以只能用于LinkedList中。
1.2. Set
1.2.1 Set(interface):Set具有和Collection一模一样的interface(区别:List加入了自己的函数),所以Set就是一个Collection,只不过其行为不同罢了。加至Set内的每个元素都必须独一无二,不与其他元素重复;Set不允许持有重复元素,每个元素都必须定义equals()以判断所谓的独一性。
1.2.2 HashSet:一种把查找时间看得很重要的Sets。所有元素都必须定义hashCode()。
1.2.3 TreeSet:底层结构为tree的一种有序的Set。
2. Map
2.1. Map:维护key-value的关联性,使你可以使用key来查找value。
1) KeySet()函数和values()函数

…… …… 余下全文