[thinking in java]随笔

来源:互联网 发布:国民女团网络电影 编辑:程序博客网 时间:2024/05/16 17:21

类中的基础类型会自动初始化为0,而局部变量会随机得到一个数……

 

静态方法可针对类调用,毋需一个对象;static关键字的存在:需要一个存储区来保存一个特定的数据(无论创建多少个对象),需要一个特殊的方法(与这个类的任何对象都没有关系)。再不必创建对象钱调用那个方法,如:main()。

 

import:解决名字冲突的类,指明你用的是哪个类。

 

逻辑右移“>>”,算术右移“>>>”,负数用0补充。

 

java木有sizeof,因为Java与平台无关,无论什么的int都是32位。

 

注意两个int相乘 溢出的情况, 这种情况既没有异常也没有编译错误。

 

java中的逗号运算符:只在for中运用:for(int i = 0, j = 1; i < 10&& j != 11; i++, j++){}

 

this:在a.f();这个方法调用中,f(){}方法体中的this指a对象的引用。还有一个就是构造函数中赋值使用this.a = a;避免混淆;

static:static的方法没有传递this。

 

初始化问题:类中的基本数据类型会首先初始为0或null,然后再由构造函数赋值或其他,

对于static的变量,只在类首次载入时初始化:new一个对象或直接用static的属性,其他便不再调用。

初始化顺序:

(1) 类型为Dog 的一个对象首次创建时,或者Dog 类的static 方法/static 字段首次访问时,Java 解释器
必须找到Dog.class(在事先设好的类路径里搜索)。
(2) 找到Dog.class 后(它会创建一个Class 对象,这将在后面学到),它的所有static 初始化模块都会运
行。因此,static 初始化仅发生一次——在Class 对象首次载入的时候。
(3) 创建一个new Dog()时,Dog 对象的构建进程首先会在内存堆(Heap)里为一个Dog 对象分配足够多的存
储空间。
(4) 这种存储空间会清为零,将Dog 中的所有基本类型设为它们的默认值(零用于数字,以及boolean 和
char 的等价设定)。
(5) 进行字段定义时发生的所有初始化都会执行。
(6) 执行构建器。正如第6 章将要讲到的那样,这实际可能要求进行相当多的操作,特别是在涉及继承的时
候。

c++中先调用父类构造函数,引用类构造函数,最后自己的构造函数

 

final:

对于基本数据类型,final 会将值变成一个常数;但对于对象句柄,final会将句柄变成一个常数。进行声明时,必须将句柄初始化到一个具体的对象。而且永远不能将句柄变成指向另一个对象。然而,对象本身是可以修改的。

注意对于含有固定初始化值(即编译期常数)的fianl static 基本数据类型,它们的名字根据规则要全部采用大写。final static也可以在运行时赋值。

把方法声明为final可以关闭动态绑定,从而生成更有效率的代码。

 

多态继承:

在java的父类构造函数中不要调用动态绑定的方法,一些子类的成员值可能还没有初始化,造成错误,应保证构造函数尽可能简单


java File类 简单用法举例

http://blog.csdn.net/sunxiaosunxiao/article/details/6621003


DataInputStream和DataOutputStream类

.有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。
http://xyiyy.iteye.com/blog/361098


Java RandomAccessFile用法

http://blog.csdn.net/akon_vm/article/details/7429245


LineNumberReader

读取配置文件时,标记行很有效
http://hi.baidu.com/xinshenbuning2/item/c11b04ee2bf07ad6ea34c98d


ZipInputStream类


http://newleague.iteye.com/blog/1130506

 

 

0 0
原创粉丝点击