java开发:笔记
1
inputstream/outputstream->filterstream+nodestream->
reader/writer->inputstreamreader+outputstreamwriter(用于char<-->byte双向转换)
buffered默认8k
编码 Unicode-> utf-8
解码 Unicode<-utf-8
2
pipestream 类似于socket的阻塞式线程间管道通信
序列化时只会保存所有非静态成员,静态和方法不保存,如果有对象成员,则对象成员也需要继承标志接口才行。序列化对象内部实现的read和write是特殊的private方法。
3
java中的io类的stream对象分为两种类型,一种是节点类型,提供数据来源,一种是过滤类型,提供功能和能力。
4
方法中的内部类访问方法中的局部变量或者方法声明传进来的参数时,变量和参数必须为final的,至于原因很有意思,在别的情况下有木有这种情况呢?目前想不起来了啊 >_<
另外内部类的对象必须要用外部类的对象产生,要不然没有外面,哪来里面。
形式:
ExternalClass external=new ExternalClass();
ExternalClass.Inner inner=external.new External.Inner();
5
无意中看了下join的源码,原来也是在java层实现的啊。
6
显式写下的字符串对象如"i\'m hungry" 是存储与全局字符串池里面的,只要是这几个字儿的显示字符串生成的对象(比如直接赋值给String),那就是同一个引用。当然,如果你先new一个String对象,那自然是不同的。
7
一个子类继承父类,子类构造的时候必须要调用父类的构造先(第一行),至于为神马,这很简单,首先在逻辑上,没有老子哪来儿子,另外既然是继承肯定都要有,你不能老子初始化了儿子忘了,或者儿子还没写代码的时候初始化的不一样。
默认如果父类木有构造,运行时会给他个默认的,子类也就不需要显示调用。如果有个无参的构造,子类也不需要显示调用。如果是只有有参的构造,或者你想选择构造,就必须在子类构造的第一行显示调用了,super(oo,xx);
8
Integer类好像比较阴险啊。。。带缓冲的么。。。?0-255?