一、内部类&匿名类html
new 类名() { 匿名类的类体 };
new 接口名(){ 实现接口的匿名类的类体 };
二、异常类java
三、断言git
一、字节处理数组
两个最基本字节流的抽象父类InputStream、OutputStream,通常用他的继承类。ide
FileInputStream:构造:FileInputStream(File file)、FileInputStream(StringfileName),主要方法:`int read(int d)、int read(byte[] buf) 。学习
FileOutputStream:构造:FileOutputStream(File file)、FileOutputStream(StringfileName)idea
二、缓冲流:BufferedReader和BufferedWriter类建立的对象为缓冲输入流、输出流,两者加强读写文件的能力。调试
三、数组流:字节数组流、字符数组流code
四、对象流:ObjectInputStream、ObjeatOutputStream类建立的对象称为对象输入流和对象输出流;orm
//教材P167 public class Example7_4 { public static void main(String args[ ]) { int n = 0,m = 0,t = 1000; try{ m = Integer.parseInt("8888"); n = Integer.parseInt("ab89"); //发生异常,转向catch t = 7777; //t没有机会被赋值 //*************** System.out.println("a");//这里是我本身添加的 //*************** } catch(NumberFormatException e) { System.out.println("发生异常:"+e.getMessage()); } System.out.println("n="+n+",m="+m+",t="+t); try{ System.out.println("故意抛出I/O异常!"); throw new java.io.IOException("我是故意的"); //System.out.println("这个输出语句确定没有机会执行,因此必须注释掉,不然编译出错"); } catch(java.io.IOException e) { System.out.println("发生异常:"+e.getMessage()); } } }
上面的程序中//System.out.println("这个输出语句确定没有机会执行,因此必须注释掉,不然编译出错");
这句话不太理解,为何没机会执行就要注释掉?上面的t = 7777;
不是也没有机会执行吗?
后来我发现在throw语句的后面不能写任何其余的语句,若是写了错误提示:Unreachable Statement。前面的语句中发生了异常,可是由于没有写throw,因此就不存在没有机会执行的问题。
RUN -> Edit Configurations -> Configuration -> VM options : 输入-ea,点击OK。
教材P170页代码及运行结果(带-ea):
import java.util.Scanner; public class Main { public static void main (String args[ ]) { int [] score={-120,98,89,120,99}; int sum=0; for(int number:score) { assert number>0:"负数不能是成绩"; sum=sum+number; } System.out.println("总成绩:"+sum); } }
Exception in thread "main" java.lang.AssertionError: 负数不能是成绩 at Main.main(Main.java:7) Process finished with exit code 1
上面的例子里:
for(int number:score) { assert number>0:"负数不能是成绩"; sum=sum+number; }
之前注意到了for的这种用法,当时只瞟了一眼,觉得之后用不到也见得少,可是这会儿又想不起来了,惭愧。
找到一篇总结的不错的:Java for循环的几种用法 真 · 活到老学到老。
总结一下,在这里大概就是:
> for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
在这里就是把数组score的每个值赋给一个int型叫number的变量,让他在循环体里面作运算。
System.exit(0);
以前考试的时候用过,我拿C语言的exit(0);
程序报错,我当时还不知道怎么回事,在这记个笔记。