Think in java 笔记二(第3~4章)

本文详细介绍了Thinkinjava的前四章内容,包括基本语法、控制程序流程、初始化和清除等方面的知识。重点讲解了Java中的运算符、执行控制语句、构建器初始化、方法过载等概念,并探讨了垃圾收集机制及其特殊情况下如何使用finalize()方法进行资源回收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

Think in java 前4章都是一些基本的语法。

第3 章 控制程序流程

  有C语言基础或者其他语言基础的理解起来很容易,java基本语法类似。

3.1 使用J a v a 运算符

优先级
赋值算术运算符
自增自减
关系运算符
逻辑运算符
按位运算符
移位运算符
三元if-else运算符
逗号运算符
字符串运算符
造型运算符
  与c++中类型转换类似,cast
Java中没有"sizeof"
注意:C、C++中不同的数据在不同的机型上,大小不同,区分不同的机型很有必要。但是在java不需要考虑这个问题,java数据类型在所有的机器上都是固定的,简而言之,java是一种与平台无关的语言。

3 . 2 执行控制

真和假(条件语句)
    所有条件语句都利用条件表达式的真或假来决定执行流程
if-else
for循环
while循环
do while循环
break和continue
    break结束循环,continue结束本次循环。
switch

第4 章 初始化和清除

4 . 1 用构建器自动初始化
类似c,c++中构造函数。
4 . 2 方法过载
类似c,c++中函数的重载。一般通过方法的参数和返回值来实现方法的重载。
关键字this
关键字static
4 . 3 清除:收尾和垃圾收集
Java 可用垃圾收集器回收由不再使用的对象占据的内存。
问题:
现在考虑一种非常特殊且不多见的情况。假定我们的对象分配了一个“特殊”内存区域,没有使用new。垃圾收集器只知道释放那些由new 分配的内存,所以不知道如何释放对象的“特殊”内存。
方法:Java 提供了一个名为finalize()的方法,可为我们的类定义它。

class Chair {
    static boolean gcrun = false;

    static boolean f = false;

    static int created = 0;

    static int finalized = 0;

    int i;

    Chair() {
        i = ++created;
        if (created == 47)
            System.out.println("Created 47");
    }

    protected void finalize() {
        if (!gcrun) {
            gcrun = true;
            System.out.println("Beginning to finalize after " + created + " Chairs have been created");
        }
        if (i == 47) {
            System.out.println("Finalizing Chair #47, " + "Setting flag to stop Chair creation");
            f = true;
        }
        finalized++;
        if (finalized >= created)
            System.out.println("All " + finalized + " finalized");
    }
}

public class Garbage {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.err.println("Usage: \n" + "java Garbage before\n or:\n" + "java Garbage after");
            return;
        }
        while (!Chair.f) {
            new Chair();
            new String("To take up space");
        }
        System.out.println("After all Chairs have been created:\n" + "total created = " + Chair.created
            + ", total finalized = " + Chair.finalized);
        if (args[0].equals("before")) {
            System.out.println("gc():");
            System.gc();
            System.out.println("runFinalization():");
            System.runFinalization();
        }
        System.out.println("bye!");
        if (args[0].equals("after"))
            //System.runFinalizersOnExit(true);
            System.runFinalization();
    }
}

java Garbage before 垃圾回收之前

Created 47
Beginning to finalize after 266434 Chairs have been created
Finalizing Chair #47, Setting flag to stop Chair creation
After all Chairs have been created:
total created = 4083631, total finalized = 3800545
gc():
runFinalization():
All 4083631 finalized
bye!

java Garbage after 垃圾回收之后

Created 47
Beginning to finalize after 266988 Chairs have been created
Finalizing Chair #47, Setting flag to stop Chair creation
After all Chairs have been created:
total created = 555981, total finalized = 95088
bye!

参考文章:
http://www.cnblogs.com/ywl925/p/3925637.html
http://www.cnblogs.com/dolphin0520/p/3783345.html

4 . 4 成员初始化
4 . 5 数组初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值