23:readLine 是字节流的方法吗?
readLine方法是字符流BufferedReader类中的方法
read方法是字节流InputStream的方法。
--------------------------------------------------------------
24:说一下拷贝一个MP3从C盘到D盘的思路
--------------------------------------------------------------
25:什么情况下要用flush();
flush刷新就是把缓冲区字符全部写入到目的地中去,
write和bufferedwritewrite只是将数据输出到缓冲区,还没有输出到目的地。
对于循环多次字符输出流需要刷新。
因为close()就是关闭流之前刷新流。只有write和bufferedwrite需要, 因为操作的文件大于1k,
需要循环几次才能写入完毕,所以需要每次循环最后刷新一下。当循环一次就足够时,
只在最后需要close(),关闭留并且刷新。
--------------------------------------------------------------
26:成员变量局部变量以及静态变量的区别?
成员变量是作用于整个类的,成员变量有默认初始化值,只能被对象调用
对象的建立而建立,存在于对象所在的堆内存中,随着对象的消失而消失
局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效,
存在与栈内存中,作用的范围结束,变量空间会自动释放
局部变量没有默认初始化值,先定义,赋值后才能被使用
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找
静态变量 静态变量随着类的加载而存在,随着类的消失而消失,
存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
可以被对象调用,还可以被类名调用。
成员变量也称为实例变量。
静态变量也称为类变量。
--------------------------------------------------------------
27:装饰设计模式和继承有什么区别?
什么是装饰设计模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
//穷的时候吃饭简简单单的吃饭
class Person
{
public void chiFan(){
System.out.println("吃饭");
}
}
//富裕后吃饭 吃饭前来杯酒吃饭后来根烟 但是这中间的过程还是有吃饭
class SuperPerson
{
private Person p;
public SuperPerson(Person p){
this.p=p;
}
public void superChiFan(){
//吃饭前来杯开胃酒增加食量
System.out.println("开胃酒");
p.chiFan();
//吃完饭后来根烟
System.out.println("来根烟");
}
}
public class PersonDemo
{
public static void main(String args[]){
Person p=new Person();
SuperPerson sp= new SuperPerson(p);
sp.superChiFan();
}
} |
|