1.声明的受限定的类型参数和传的一般的父类的参数的区别是
①public void ddd(Number num);是把传过来的参数转换成Number类,如果是子类
Integer的话,会向上转型成为Number类
public <T extends Number>void ddd(T t);如果传进来的参数是
Integer的话,不会向上转型成为Number类
②extends的后面可以是接口,可以是类,也就是说可以限定T
是一种什么或者实现了特定接口的类型
2.T类型,除了赋值和返回,T类型怎么做其他操作呢?(用强制类型转换)
3.复写父类方法却又要用到父类的这个方法,用super.方法名();
覆盖需要和父类函数一模一样,返回值如果不一样就会出错
生物为什么分男女?
接口
作用:
做软件时(设计和面向接口编程),给用户用时,实现“多继承”
语法细节:
接口中只能包含有常量、方法签名和嵌套类
接口访问修饰符只能是public或默认
常量默认是public static final
方法默认是public abstract
用iterator删除某个元素的时候不能边输出边删除,因为判断和输出都要调用iterator.next();
要删除iterator,前必须调用iterator.next();
int = char
int[] = char[] cuo
String类型不可变,返回改变的对象,相对的是StringBuilder
?运行结果清空了文件
FileInputStream in = new FileInputStream("D:/123.txt");
FileOutputStream out = new FileOutputStream("D:/123.txt");
while(in.available()>0){
out.write(in.read());
如果不是一个字节一个字节读的话,可能打印出别的东西,比如空格,或者以前存过的数据
read()=>read(byte[])作用
+bufferedread 作用
byte[] buffer = new byte[1024];
int length;
//拷贝文件
while((length = in.read(buffer)) > 0){
out.write(buffer,0,length);
}
网络编程
1.数据发送方 如果用的是字节流或者字符流都没事
2.接收方如果用的事字节流接收,而接收时又需要用到字节数组,当字节数组不够长,正好把一个汉字分开传送的话,就出
现乱码,而如果用InputStreamReader(),把传送过来的数据转成字符流的话就不用定义数组什么的了,就不会乱码
Socket 只有getInputStream和getOutputStream 当需要用到字符流的时候(比如接收数据时,通过InputStreamReader把字节流转成字符流,就可以用
字符流的方法,println来输出一行数据,而不用必须用字节数组接收和操作,数组操作不方便,比如数组小的时候可能正好把一个字符拆成乱码,每次还要
注意,到最后,清空字节数组,以防止,最后接收的字节数组不够充满数组而产生多余的数据)
3.输入字节流===>输入字符流 InputStream(FileInputStream BufferedInputStream)==InputStreamReader==>Reader(FileReader BufferedReader)
输出字节流===>输出字符流 OutputStream(FileOutputStream BufferedOutputStream)==OutputStreamWriter==>Writer(FileWriter BufferedWriter);
为了传送输出数据方便经常用 OutputStream====>PrintWriter();因为PrintWriter有println方法,方便处理
①public void ddd(Number num);是把传过来的参数转换成Number类,如果是子类
Integer的话,会向上转型成为Number类
public <T extends Number>void ddd(T t);如果传进来的参数是
Integer的话,不会向上转型成为Number类
②extends的后面可以是接口,可以是类,也就是说可以限定T
是一种什么或者实现了特定接口的类型
2.T类型,除了赋值和返回,T类型怎么做其他操作呢?(用强制类型转换)
3.复写父类方法却又要用到父类的这个方法,用super.方法名();
覆盖需要和父类函数一模一样,返回值如果不一样就会出错
生物为什么分男女?
接口
作用:
做软件时(设计和面向接口编程),给用户用时,实现“多继承”
语法细节:
接口中只能包含有常量、方法签名和嵌套类
接口访问修饰符只能是public或默认
常量默认是public static final
方法默认是public abstract
用iterator删除某个元素的时候不能边输出边删除,因为判断和输出都要调用iterator.next();
要删除iterator,前必须调用iterator.next();
int = char
int[] = char[] cuo
String类型不可变,返回改变的对象,相对的是StringBuilder
?运行结果清空了文件
FileInputStream in = new FileInputStream("D:/123.txt");
FileOutputStream out = new FileOutputStream("D:/123.txt");
while(in.available()>0){
out.write(in.read());
如果不是一个字节一个字节读的话,可能打印出别的东西,比如空格,或者以前存过的数据
read()=>read(byte[])作用
+bufferedread 作用
byte[] buffer = new byte[1024];
int length;
//拷贝文件
while((length = in.read(buffer)) > 0){
out.write(buffer,0,length);
}
网络编程
1.数据发送方 如果用的是字节流或者字符流都没事
2.接收方如果用的事字节流接收,而接收时又需要用到字节数组,当字节数组不够长,正好把一个汉字分开传送的话,就出
现乱码,而如果用InputStreamReader(),把传送过来的数据转成字符流的话就不用定义数组什么的了,就不会乱码
Socket 只有getInputStream和getOutputStream 当需要用到字符流的时候(比如接收数据时,通过InputStreamReader把字节流转成字符流,就可以用
字符流的方法,println来输出一行数据,而不用必须用字节数组接收和操作,数组操作不方便,比如数组小的时候可能正好把一个字符拆成乱码,每次还要
注意,到最后,清空字节数组,以防止,最后接收的字节数组不够充满数组而产生多余的数据)
3.输入字节流===>输入字符流 InputStream(FileInputStream BufferedInputStream)==InputStreamReader==>Reader(FileReader BufferedReader)
输出字节流===>输出字符流 OutputStream(FileOutputStream BufferedOutputStream)==OutputStreamWriter==>Writer(FileWriter BufferedWriter);
为了传送输出数据方便经常用 OutputStream====>PrintWriter();因为PrintWriter有println方法,方便处理