Thinking In Java 学习笔记 5.初始化和清理

构造器 构造方法 与类同名 没有返回值 自动初始化
可以有多个,带不同类型的参数,没有写构造方法时会有默认构造方法,它没有参数,默认构造器是default的。
需要在包外返回某个类对象时需要重写构造器。
overloading 方法重载 方法名相同,参数类型顺序不同
向下转型需要强制类型转换,向上转型自动转换

this this 关键字只能用于那些特殊的类——需明确使用当前对象的句柄。


static
1.我们不可从一个 static方法内部发出对非 static方法的调用
2.若将一个 static方法置入一个类的内部,它就可以访问其他static 方法以及static 字段。
3.它意味着一个特定的方法没有this。

垃圾回收
垃圾收集并不等于“破坏”!
我们的对象可能不会当作垃圾被收掉!
垃圾收集只跟内存有关!
局部变量需要手动初始化, 全局变量默认初始化
内存分配以较大的块为单位,每个块由相应的代数来记录它是否存活,某个块被引用,代数增加
停止——复制
标记——清扫(只会产生少量垃圾时使用)
初始化顺序
主类,先static代码块。再main
先静态对象,后非静态对象
静态变量和方法 只初始化一次
在类的内部,对象在任何方法调用之前被初始化
static main
new 一个类 先初始化成员变量,再初始化构造方法
静态代码块
static int i;
static{
i = 47;
}
实例初始化字句
String s1;
String s2;
{
s1 = new String("abc");
s2 = new String("cccc");
System.out.println(s1 + s2);
}
初始化顺序
class A{
static {
System.out.println("static A");
}
void f() {
System.out.println("A.f()");
}
void g() {
this.f();
}
}
public class Test extends A{
void f() {
System.out.println("Test.f()");
}
void g() {
this.f();
super.g();
System.out.println("Test.g()");
}
public static void main(String[] args) {
Test t = new Test();
t.g();
}
static {
System.out.println("static Test");
}
}
output
static A
static Test
Test.f()
Test.f()
Test.g()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Thinking in Java》是一本经典的Java编程入门教材,通过阅读该书可以系统地学习Java编程的基础知识和高级概念。阅读过程中,我结合自己的学习体验和实践,进行了详细的学习笔记。 首先,该书从基础语法开始介绍,包括数据类型、控制语句、数组等。对于初学者来说,这些基础知识是最基本的,通过书中的示例代码和解析,我能够更好地理解这些概念和语法规则。 其次,书中对面向对象编程进行了深入的讲解。通过学习面向对象的思想,我明白了类、对象、继承、多态等概念的含义和使用方法。同时,书中还讲解了接口、内部类、异常处理等较为高级的概念,极大地拓宽了我的Java知识面。 另外,该书还介绍了Java的常见类库和工具,如字符串操作、集合框架、输入输出、线程等。这些内容对于实际开发非常有用,而且书中的示例代码也能帮助我更好地理解和应用这些类库和工具。 此外,该书通过大量的实例和案例,生动地展示了Java编程的实战应用。这些实例涵盖了各种不同的应用场景,从简单的程序到复杂的项目,都有所涉及。通过分析这些实例,我不仅可以学习到实际编程的技巧,还能提高自己的解决问题的能力。 总的来说,读完《Thinking in Java》后,我对Java编程有了更深入的理解和掌握。通过学习笔记的整理,我不仅复习了各个知识点,还加深了对这些概念的理解。希望这份学习笔记能够帮助到其他想要学习Java的同学,让他们能够更快地入门和掌握这门编程语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值