`
joe1100
  • 浏览: 29728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Thinking in Java读书笔记(4-8章)

    博客分类:
  • JAVA
阅读更多

第四章.控制执行流程

1、Java中控制流程和C、C++完全相同,if-else是最基本的流程控制语句,其中在一个if-else块中if是必须的,但是else不一定出现,else if并不是一个单独的关键字。
2、while、do-while、for的异同
whine在循环开始前会计算一次布尔表达式的值,如果为"true"则执行循环体反之则不执行,循环体可能一次都不执行。
do-while是在循环体执行之后再判断其布尔表达式的值,这种情况下无论如何都要执行一次循环体。
for和while非常类似,只不过在其块中需要执行初始化、布尔表达式、步进代码。其括号里也可以三个部分都不写,只有分号。

3、Foreach语句,这是for语句的一种变体,这种方式相对于for语句更加简洁,而且对于遍历的的数据类型更加明了,使得程序的可读性得到提高。

4、return、break、continue
return关键字有两个用途:方法返回值和当前方法的退出。
break关键字用于迭代语句中的强行退出循环,并不执行剩余的部分循环语句。
continue用于停止当前迭代,退出并执行下一次循环。
这三个语句都是不需要任何条件判断语句而直接执行。

5、goto关键字
goto关键字在很多程序设计语言中会用到或者作为关键字,但是这个关键字很多时候会使得程序丢失自身的逻辑性。所以在java中goto仅作为保留关键字而并没有使用。


6、switch
switch是使得程序选择性的执行某一段代码,其中每个case 后面代码可以跟break也可以省略,省略break的情况下会执行其他case语句。


第五章.初始化与清理
1、Java中采用构造器确保对象的初始化,java中每个类都有其默认构造方法这个构造方法是不带参的,当然程序编写人员也可以自己定义带参数的构造方法。这样做有助于减少代码错误并且使得代码更容易阅读。

2、方法重载
方法重载中多个方法名相同,但是参数列表会不一样。另外方法重载其返回值也可能是不一样的。

3、this关键字
this关键字只能在方法内部调用,表示对“调用方法的那个对象的引用”,其应用有三个地方:调用成员变量、调用构造方法、返回对象的值。

4、static关键字
static方法和成员可以在没有创建对象的情况下调用, static方法内部不能调用非静态方法,当一个类加载进虚拟机之后static成员和方法都已经初始化完毕。static不能做用于局部变量,并且static内部不能出现this关键字。

5、垃圾回收
(1)、对象可能不被垃圾回收
(2)、垃圾回收并不等于析构
(3)、垃圾回收至于内存有关

6、初始化
(1)、成员初始化,java保证成员都能够初始化,并且初始化顺序按照成员定义顺序执行。成员在没有指定初始化数据的时候按照自身默认初始化数据进行初始化。
(2)、静态初始化,静态数据或者静态代码块都是在类初次加载的时候进行初始化工作。
(3)、数组初始化,数组是相同类型的一个数据系列,在数组申明的时候会对数组内部每一个元素进行初始化。

7.枚举类型
枚举类型是一个常量集,其取值只能限制在声明的常量范围之内。

第六章.访问权限控制

1、控制访问权限有两个原因:第一是为了使用户不要触碰那些他们不该触碰的代码。第二个原因是为了让类库设计中可以更改类的内部工作方式而不必担心会对客户端造成影响。

2、几个关键字及其作用域

        public     protected    默认   private
当前类   可访问      可访问     可访问  可访问
同一包   可访问       不可      可访问   不可
子孙类   可访问      可访问      不可    不可
其它包   可访问      不可        不可    不可

第七章.复用类

1、复用类有几种情况,使用类的对象作为成员这种情况也叫做组合,另外一种情况是继承,第三种关系叫做代理。

2、继承
java所有类都直接或间接继承自Object,当一个类继承其父类时会自动得到其父类的属性和方法。虽然继承是OOP思想中一个非常重要的概念,但是在实际开发中需要慎用这一功能,他会使类之间的层次关系变得相当复杂。如果需要在其新的导出类向上转型为
基类则可以使用继承关系。
向上转型:对象既可以作为它本身的类型使用,也可以作为他的基类下使用,这种把对象的引用视为对其基类的引用的做法称为向上转型。



3、初始化基类
在继承体系中类的构造过程是从基类“向外”扩散的,基类在其子类构造器调用之前已经完成其初始化。而且当基类只声明带参构造器时,子类构造器内必须显示调用super并传入相关参数调用其构造器,并且需要在子类构造器起始处就调用super。

4、final关键字
final关键字在Java中使用代表是无法做改变的,其可能用到三种情况:数据、方法和类,定义为final的数据是无法修改的也就是一个用不可改变的常量,定义为final的方法是无法覆盖的,定义为final的类是不可被继承的。
使用final方法的原因:第一个原因是不让其子类覆盖修改,第二关原因是出于效率的考虑。final与private在修饰方法的时候可以同时使用,但是这样使用并没有额外的意义。


第八章.多态
1、方法调用的绑定
在程序调用过程中如果执行程序前进行绑定叫做前期绑定。在运行时根据对象的类型进行绑定叫做后期绑定或者动态绑定,java多态的特征依赖于这一特性。Java中除了static方法和final方(private方法属于final方法)法之外其他所有方法都是后期绑定
当一个方法声明为final、static之后则关闭了其动态绑定的特征。

2、构造器及成员的调用顺序,递归地调用基类的构造器,层层调用直到Object。并且在有成员的情况下是先初始化成员然后再调用构造器。

3、初始化的真实过程
1)、在其他任何事物发生之前,将分配给对象的存储空间初始化为二进制0
2)、调用其基类构造器,如果在基类构造器中调用了普通方法,而普通方法被子类所覆盖,将会看到子类数据都为默认初始化值。
3)、按照声明的顺序调用成员的初始化方法
4)、调用导出类的构造器

4、协变返回类型
Java SE5中添加了协变返回类型,他它表示在导出类中被覆盖的方法可以返回基类方法返回类型的某种导出类型。

5、纯粹的继承与扩展继承
在java中如果子类的接口方法完全与其基类一样,这种方式视为父子间is-a关系,可以通过向上转型,使得基类可以接受发送给导出类的任何消息。扩展继承这种方式是导出类提供基类提供的方法之外的方法,一旦通过向上转型基类不能提供这些导出类的新方法,这种情况称为向上转型丢失掉导出类具体信息。

6、RTTI
程序在运行期会对类型进行检查,这种检查行为称之为“运行时类型识别”(RTTI)


分享到:
评论

相关推荐

    Thinking in Java读书笔记

    ### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...

    王者归来之Thinking in java读书笔记

    通过阅读《王者归来之Thinking in Java读书笔记》,你可以系统地掌握Java编程的核心知识,理解编程思想,提高解决问题的能力。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。这本书不仅提供了理论知识,还有...

    thinking in java读书笔记

    ### Thinking in Java 读书笔记知识点总结 #### 一、构造器与方法重载 1. **构造器的特点**: - 构造器不返回任何值,与返回`void`不同。 - 当未在类中声明构造器时,编译器会自动生成一个默认的无参构造器。 - ...

    thinking in java 读书笔记(五)

    《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地讲解了Java语言的核心概念和技术,对于初学者和有经验的开发者来说都是极好的学习资源。这篇读书笔记主要聚焦在第五部分的内容,可能涵盖了类、对象、...

    Thinking in java读书笔记.docx

    《Thinking in Java》是Bruce Eckel的经典之作,这本书深入探讨了Java编程的各个方面。以下是根据提供的部分内容提炼出的一些核心知识点: 1. **访问修饰符**: - `public`:公共访问修饰符,允许所有类访问。 - ...

    thinking in java读书笔记(2)

    Java 编程基础 - 继承和复用 在 Java 编程中,继承和复用是两个非常重要的概念。继承允许我们创建出新的类,继承自已有的类,从而实现代码的重用和扩展。今天,我们将讨论继承和复用相关的知识点,并通过实践例子来...

    读书笔记:Thinking in Java (Java 编程思想).zip

    读书笔记:Thinking in Java (Java 编程思想)

    《Thinking+in+Java》读书笔记共38页.pd

    总之,《Thinking in Java》的读书笔记结合了广泛的Java知识和实践应用,从基础知识到高级主题,从理论到实践,为学习和提升Java编程技能提供了全面的资源。无论是对初学者还是经验丰富的开发者,这都是一个宝贵的...

    JAVA 编程思想 思维导图Thinking_in_Java_MindMapping-master

    用了1个月时间,把《Java编程思想》读了一遍。然后用Mindjet Mindmanager做了读书笔记,跟大家分享一下~ 1. 这个思维导图的读书笔记没有涵盖书中的所有知识点,但是作为框架和读书的思路比较清晰。 2. 思维导图中有...

    恒生电子JAVA笔试试题-Thinking-In-Java-Notes:ThinkinginJava学习笔记

    Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...

    用于存放java源码和Thinking of Java的资源

    "Thinking in Java"是一本由Bruce Eckel编写的经典书籍,它深入浅出地介绍了Java编程语言,是许多初学者和专业开发者的必备读物。这个压缩包文件“java-resources-master”很可能包含了与学习和实践Java相关的各种...

    java基础补足和thinking In Java学习.rar

    《Java学习笔记》 此书的特点在于里面有很多作者对Java语言的独有的理解与讲解,这些内容往往也是所有Java语言初学者迷惑的地方。称之为超简明入门书籍也不为过。 《Java核心技术:卷1基础知识》 这系列...

    java软件笔试题-MyNotebook:我大学时期的笔记本

    java软件笔试题 my notebook 我的笔记本,大部分是在大二大三的时候写的笔记,对于已经毕业的来说可能比较基础甚至naive。...7:读书笔记 thinking in java effective java Android开发艺术探索 Android插件化开发指南

    5本java学习用书

    3. **《Thinking in Java》**:Bruce Eckel的这部巨著深入细致地介绍了Java语言,不仅涵盖基础,还涉及高级特性如多线程、网络编程、反射等。它的特点是理论与实践相结合,通过大量的实例来阐述概念,是提升Java技能...

    常用文档Java4.rar

    "thinking-in-java.pdf"是Bruce Eckel的经典之作《Thinking in Java》,书中详尽介绍了Java语言的基本概念、语法和编程思想,是初学者入门和进阶的必备读物。 3. **Spring框架**: “Spring源码深度解析(第2版)...

    Thingking in java

    《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,被誉为学习Java的必读之作。这本书深入浅出地介绍了Java语言的核心概念和技术,为读者提供了全面而深刻的Java编程知识。 "第二版的"标签...

    TIJ4Reusing Classes

    thinking in java 4 Reusing Classes 读书笔记

    JAVA语言入门资料

    学习资源中的“thinking in java.chm”是经典书籍《Thinking in JAVA》的电子版,深入讲解了JAVA的各个方面;“JAVA语言入门.chm”可能是另一本JAVA入门教程,涵盖了基础知识;“Java学习.doc”则可能包含了一些学习...

    MasteringJava:一些旧的Java笔记

    "Mastering Java: 一些旧的Java笔记" 提供了一个深入学习Java的资源,这可能是一个学习者或开发者在阅读《Thinking in Java》一书时所做的笔记。这本书由Bruce Eckel编写,是Java编程领域的一部经典著作,旨在帮助...

    BookReading:读书笔记

    在《BookReading》的笔记中,你会看到对《Thinking in Java》这本书的解读,这本书是Bruce Eckel的经典之作,详细介绍了Java的基础知识和高级特性。你将了解到如何创建和使用类,如何处理异常,以及如何进行多线程...

Global site tag (gtag.js) - Google Analytics