Think in java 笔记二(第3~4章)
来源:互联网 发布:淘宝网天猫刷单好评 编辑:程序博客网 时间:2024/04/29 22:40
摘要
Think in java 前4章都是一些基本的语法。
第3 章 控制程序流程
有C语言基础或者其他语言基础的理解起来很容易,java基本语法类似。
3.1 使用J a v a 运算符
优先级赋值算术运算符自增自减关系运算符逻辑运算符按位运算符移位运算符三元if-else运算符逗号运算符字符串运算符造型运算符 与c++中类型转换类似,castJava中没有"sizeof"注意:C、C++中不同的数据在不同的机型上,大小不同,区分不同的机型很有必要。但是在java不需要考虑这个问题,java数据类型在所有的机器上都是固定的,简而言之,java是一种与平台无关的语言。
3 . 2 执行控制
真和假(条件语句) 所有条件语句都利用条件表达式的真或假来决定执行流程if-elsefor循环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 47Beginning to finalize after 266434 Chairs have been createdFinalizing Chair #47, Setting flag to stop Chair creationAfter all Chairs have been created:total created = 4083631, total finalized = 3800545gc():runFinalization():All 4083631 finalizedbye!
java Garbage after 垃圾回收之后
Created 47Beginning to finalize after 266988 Chairs have been createdFinalizing Chair #47, Setting flag to stop Chair creationAfter all Chairs have been created:total created = 555981, total finalized = 95088bye!
参考文章:
http://www.cnblogs.com/ywl925/p/3925637.html
http://www.cnblogs.com/dolphin0520/p/3783345.html
4 . 4 成员初始化
4 . 5 数组初始化
0 0
- Think in java 笔记二(第3~4章)
- think in java 笔记二 第五章
- Think in java 笔记一(第1~2章)
- Think in java学习笔记-第6章 Composition
- Think in java学习笔记-第6章 Inheritance
- Think in java学习笔记-第7章 Polymorphism
- Think in java学习笔记-第8章 Inner Classes
- Think in java学习笔记-第8章 Interfaces
- Think in java学习笔记-第9章 Exceptions
- think in java 笔记(二) : “不可变”
- Think in java学习笔记-第4章 初始化和清除
- Think in java学习笔记-第3章 控制程序流程1
- Think in Java第5章 初始化与清理 (笔记)
- Java - Think in Java 第4章 习题
- Java - Think in Java 第3章 习题
- Think in java 笔记
- think in java 笔记
- Think in java笔记
- [数据库原理] 事务的隔离等级 (ANSI标准)
- Visual Assist X在VS2012中的启用与禁用问题
- HTTP协议之http状态码详解 300-305重定向
- javaScript document对象详解
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- Think in java 笔记二(第3~4章)
- magento cms tutorial
- Android源码IInterface.IBinder,Parcelable的注释翻译
- 【unity】利用sqlite制作排行榜
- EF,MySQL
- CSDN学院升级公告!
- 解决vmware虚拟机安装苹果系统Mac OS X 10.10出现“二进制转换不支持用于Mac OS X”的问题。
- 使用GDB在ARM上进行开发调试
- Java NIO系列教程(六) ServerSocketChannel