1、void f() {}
int f() {}
若编译器可根据上下文(语境)明确判断出含义,比如在int x=f()中,那么这样做完全没有问题。然而,
我们也可能调用一个方法,同时忽略返回值;我们通常把这称为“为它的副作用去调用一个方法”,因为我
们关心的不是返回值,而是方法调用的其他效果。所以假如我们象下面这样调用方法:
f();
Java 怎样判断f()的具体调用方式呢?而且别人如何识别并理解代码呢?由于存在这一类的问题,所以不能
根据返回值类型来区分过载的方法
2、它的作用是新建一个对象,并调用默认构建器——即使尚未明确定义一个象这样的构建器。若没有它,就没
有方法可以调用,无法构建我们的对象。然而,如果已经定义了一个构建器(无论是否有自变量),编译程
序都不会帮我们自动合成一个:
3、this
。this 关键字(注意只能在方法内部使用)
可为已调用了其方法的那个对象生成相应的句柄。可象对待其他任何对象句柄一样对待这个句柄。但要注
意,假若准备从自己某个类的另一个方法内部调用一个类方法,就不必使用this。只需简单地调用那个方法
即可。当前的this 句柄会自动应用于其他方法。所以我们能使用下面这样的代码:
class Apricot {
void pick() { /* ... */ }
void pit() { pick(); /* ... */ }
}
在pit()内部,我们可以说this.pick(),但事实上无此必要
4、1. 在构建器里调用构建器
若为一个类写了多个构建器,那么经常都需要在一个构建器里调用另一个构建器,以避免写重复的代码。可
用this 关键字做到这一点。
public class Flower {
private int petalCount = 0;
private String s = new String("null");
Flower(int petals) {
petalCount = petals;
System.out.println(
104
"Constructor w/ int arg only, petalCount= "
+ petalCount);
}
Flower(String ss) {
System.out.println(
"Constructor w/ String arg only, s=" + ss);
s = ss;
}
Flower(String s, int petals) {
this(petals);
//! this(s); // Can't call two!
this.s = s; // Another use of "this"
System.out.println("String & int args");
}
Flower() {
this("hi", 47);
System.out.println(
"default constructor (no args)");
}
void print() {
//! this(11); // Not inside non-constructor!
System.out.println(
"petalCount = " + petalCount + " s = "+ s);
}
public static void main(String[] args) {
Flower x = new Flower();
x.print();
}
} ///:~
5、finalize()
垃圾收集器只知道释放那些由new 分配的内存,所以不知道如何释放对象的“特殊”内存。为
解决这个问题,Java 提供了一个名为finalize()的方法,可为我们的类定义它。在理想情况下,它的工作原
理应该是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下
一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一
些重要的清除或清扫工作。
我们的对象可能不会当作垃圾被收掉。执行的时间是不定的,System.gc()方法(强制执行垃圾收集器)
6、局部变量不会自动初始化,全局变量系统会默认初始化,
分享到:
相关推荐
《Think In Java 学习笔记》 在Java编程语言中,对象是核心概念,它们代表着程序中的实体和行为。对象具有状态、行为和标识,是现实世界概念在软件中的映射。对象的状态由其内部的属性(或称数据成员)表示,行为则...
### Think in Java 学习笔记知识点总结 #### 第1章:对象导论 - **一切皆为对象**:Java 中的几乎所有事物都是对象,对象通过发送消息的方式进行交互。 - **对象模型**:每个对象都有自己的存储空间,该空间由其他...
《Think in Java》读书笔记深度解析 一、构建器(Constructor) 构建器是Java中用于初始化新对象的一种特殊方法,其显著特征是没有返回值类型,包括`void`。这一点与普通方法形成鲜明对比,普通方法即便没有实际...
《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...
Java编程中的打印功能是应用程序与打印机交互的重要环节。在给定的代码中,我们看到一个名为`PrintDemo`的类,这个类展示了如何在Java中使用`Graphics`对象进行文本和图形的打印。以下是该代码涉及到的主要知识点: ...
《原版Think in Java 4》是一本深受程序员喜爱的经典Java编程教材,由 Bruce Eckel 撰写。这本书以其深入浅出的讲解方式和全面的内容覆盖,成为了学习Java语言的重要参考书籍。中文版的出现使得更多的中国读者能够无...
java学习资料/笔记整理,含java语言入门中文版、JDK1.4.2手册、JSP由浅入深、Think In Java(中英文)、Thinking_in_Java_chinese_version、精通swing程序设计等8个编译的HTML帮助文档....
这个压缩包"thinkinjava源码-learn-think-in-java"包含了作者在阅读和学习《Think in Java》时的笔记和代码实现,这为我们提供了宝贵的实践示例和理解书中理论的窗口。 1. **源码分析**:学习源码是提高编程技能的...
2. **Think In Java.chm**:这是经典的《深入思考Java》电子版,作者Bruce Eckel深入浅出地讲解了Java语言的核心概念,包括面向对象编程、集合框架、多线程、异常处理等内容,是Java初学者必读的书籍之一。...
最后,"Think In Java.chm"同样源于《Thinking in Java》,这本电子版可能包含完整的书本内容,包括类与对象、泛型、并发、IO流等主题,是提高Java编程思维的重要教材。 总的来说,这个压缩包为Java初学者和进阶者...
Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...
css参考手册.chm ...JavaScript参考手册中文版.chm java包(简例)中文版.chm ...Think In Java.chm Browser对象笔记.doc DHTML笔记.doc HTML DOM笔记.doc javascript笔记.doc JQuery笔记.doc XML笔记.doc
Think In Java Java容器 Java并发 Java Concurrency in Practice 对象的共享 对象的组合 基础构建模块 JavaGC监控与优化 垃圾回收机制 垃圾回收机制的监控 优化垃圾回收机制 Apache的MaxClients参数详解及其在Tomcat...
《编程思想源码及答案笔记》是一份深入探讨Java编程技术的宝贵资源,它基于《Think in Java》这本书,该书由Bruce Eckel撰写,是许多程序员学习Java的首选教材。这份笔记结合了书中的理论知识与实际源码,旨在帮助...
例如,你可能需要准备如何用英语表达自己的专业技能(如:“I specialize in software development and have hands-on experience with Java and Python.”)、工作成就(如:“During my previous role, I led a ...